DOC APACHE

Installation

yum install httpd
L'apache est installé dans le system et réparti dans differend endroits

php

yum install php-cli
yum install php

Base

Lancer

Start pour le demarré et stop pour l'arreter (en root)
systemctl start httpd.service
systemctl start httpd.service
fedo<15:
service httpd start
service httpd stop
Note: cela équivaux à lancer les commandes
/etc/init.d/httpd start
/etc/init.d/httpd stop
home
les logs sous /var/log/httpd

Service

Pour qu'un service comme apache démarre automatiquement faire:
sudo systemctl enable httpd.service
Fedora <15:
chkconfig httpd on
pour verifier
chkconfig --list httpd

url

taper dans votre navigateur http://machinename
http://antec-lio/
sa ne marche pas essayer avec http://127.0.0.1
si sa marche avec 127.0.0.1 c'est que vous avez probablement pas mits de hostname sur votre machine
sudo hostname mamachine
vi /etc/hosts
modifier le hosts et rajouter votre nom de machine avec la ligne 127.0.0.1
127.0.0.1 antec-lio localhost.localdomain localhost

autrescript

Apache ctl est juste un surcouche pour mieux le controller (admin avancé)
Il utilise le httpd
/usr/sbin/apachectl start
/usr/sbin/apachectl stop
/usr/sbin/httpd -k start /usr/sbin/httpd -k stop
produira sensiblement le meme effet

Fonctionement

/etc/httpd/conf/httpd.conf

conf/httpd.conf
Contient entre autre le port ou va ecouter votre apache par defautl le port 80
Listen 80
DocumentRoot "/var/www/html"
Contient vos document

Default page

D'ou vient la page que je vois je n'est encore rien mits sur l'apache?
vi /etc/httpd/conf.d/welcome.conf
<LocationMatch "^/+$">
Options -Indexes
ErrorDocument 403 /error/noindex.html
</LocationMatch>
concraitement cette page ce trouve sous
/var/www etant la home de votre apache
/var/www/error/noindex.html

Virtual host

/etc/httpd/conf/httpd.conf

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot /opt/apache/html
    ServerName antec.gadille.free.fr
    <Directory *>
		Options Indexes FollowSymLinks
		AllowOverride all
		Order allow,deny
		Allow from all
		DirectoryIndex index.html index.html.var index.php
	</Directory>
</VirtualHost>
<VirtualHost *:80>
	DocumentRoot /opt/apache/html/free/spa
	ServerName spa.fr
	<Directory *>
		Options Indexes FollowSymLinks
		AllowOverride all
		Order allow,deny
		Allow from all
		DirectoryIndex index.html index.html.var index.php
	</Directory>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /opt/apache/html/free
    ServerName gadille.free.fr
    <Directory *>
		Options Indexes FollowSymLinks
		AllowOverride all
		Order allow,deny
		Allow from all
		DirectoryIndex index.html index.html.var index.php
	</Directory>
</VirtualHost>

Le 1er virtual host est le vh par defaul
Si l'url Taper ne match aucun autre le navigateur atterira sur ce vhost

doc
MatchAllow,Deny resultDeny,Allow result
Match Allow onlyRequest allowedRequest allowed
Match Deny only Request deniedRequest denied
No matchDefault to second directive: DeniedDefault to second directive: Allowed
Match both Allow & DenyFinal match controls: DeniedFinal match controls: Allowed

/etc/hots

Il faut modifier votre etc hosts en consequence
192.168.0.1	localhost.localdomain	localhost.localdomain	localhost antec antec-lio
192.168.0.1 spadev
192.168.0.1	spokeniece......
192.168.0.1	gadille.free.fr
192.168.0.2	acer-lio acer
192.168.0.3	asus
On voi les correpondance entre les noms de domaien est ma machien principale (en 192.168.0.1)
Inutil d'etre con et de pinguer cette ip c'est une ip interne de la freeboxe
Le spokeniece est ma machien du travaille
Exemple d'url et host appelé
htpp://troufion.con404 --> forcement en tapants n'importe quoi
Un petit tools qui aide bien pour firefox
Avant d'installer ce switcher de /etc/hots le owner du /etc/hots pour votre user courant

Rajout du port

#en debut du fichier Listen 80 Listen 81 #en fin <VirtualHost *:80> DocumentRoot /opt/apache/html/main-kelkoo ServerName antec.gadille.free.fr <Directory *> Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all DirectoryIndex index.html index.html.var index.php </Directory> </VirtualHost> <VirtualHost *:81> DocumentRoot /opt/apache/html/kelkoo-autre ServerName antec.gadille.free.fr <Directory *> Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all DirectoryIndex index.html index.html.var index.php </Directory> </VirtualHost>
<VirtualHost *:80> DocumentRoot /opt/apache/html/tmp ServerName antec.gadille.free.fr <Directory *> Options Indexes FollowSymLinks AllowOverride all Order allow,deny Allow from all DirectoryIndex index.html index.html.var index.php </Directory> </VirtualHost>
La partie rouge n'est pas fonctionel pourquoi?
La reponsse est simple le ServerName est identique et inutil de rajouter un spokeniece.ds.corp.gadille.free.fr/tmp cela revient au meme
Par contre lorsque vous de mander le port 81 explicitement alors sa marche niquel

Couplage tomcat

sudo vi /etc/httpd/conf.d/proxy_ajp.conf
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
ProxyRequests On
ProxyPreserveHost On
#preferer le connecteur ajp #ProxyPass / http://localhost:8081/
ProxyPass / ajp://localhost:8010/
Attention a bien placer le /en find de connecteur sinon les reference de type /free/png/Tux.png ne fonctionne pas
(free et un domaine de mon tomcat)
Si on fais
ProxyPass /tomcat-ajp ajp://localhost:8010/
cela fera taper dans son navigateur http://spokeniece/tomcat-ajp pour avoir la home du tomcat
si on tape http://spokeniece/ on aura la home de l'apache
ProxyPass / ajp://localhost:8010/free
si on tape http://spokeniece/ on arrive sur la webapps du tomcat appelé free
ProxyPass /free ajp://toto:8010/free
ProxyPass /service1 ajp://tata:8010/service1
ProxyPass /service2 ajp://tato:8010/service2
ici l'apache nous permet d'attaquer different tomcat fournissant differend service (appli)

Truc et astuce

erreur

Votre apache affiche ce message au demarage
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
La solution ce trouve dans votre /etc/hosts
168.0..0.1 gadille.free.fr
::1 phenon2 localhost6.localdomain6 localhost6
127.0.0.1 phenon2 localhost.localdomain localhost
ici phenon2 est une erreur il doit pas aparaitre ici mais uniquement sur l'ip réel de votre machine
utiliser la commande ifconfig pour la trouver

403 access denied

Vérifier les droit de votre DocumentRoot
Attention au device amovible et au partition windows (fat16,fat32,vfat) qui ne peuvent pas gérer les droits linux
ne pas placer de Document root sur une partoche windows

Glossaire

Block Location/Directory spécifies un emplacements pour qui les règle sont appliqué
Location : une url
Directory : un emplacement physique

Dav on : précise que le protocole dav est on (montage du rep par http)
Allow Deny from apache.org: definy des url ou ip authorisé
Require valid-user: nécessite un utilisateur valide (ldap ou présent sur la machine))
Satisfy all/any: All pour être autorisé un user doit satisfaire tous les critères (allow+required)
order allow,deny: La deuxièmes directive est appliqué sur une utilisateur présent dans la partie allow et deny

!! par default et sans directive allow sur les ancienne versions de apache la conf par default est ALLOW ALL !!
Exemple de limitation pour un aces webdav (montage par nautilus)
Extract from appache conf
<Location />
	Satisfy all                   #les critères allow et require sont nécessaire	 						
	Allow from all                #tous le monde peut accéder
	include conf.d/ldap.include   #on inclut la conf ldap 	
	Require valid-user            #l'utilisateur doit être dans le ldap
</Location>

<Location /Divers/DavAcess>
	Dav on                                       #authorise le protocole dav  (montage sur http)
	Satisfy all                                  #si on ne met pas le all le allow from all de la location / ouvre le dav a tous le monde
	include conf.d/ldap.include
	<Limit GET HEAD PROPFIND OPTIONS>            #Restriction spécifique pour c'est methode du protocole
		require valid-user
	</Limit>
	<LimitExcept GET HEAD PROPFIND OPTIONS>           #Toute les autre on c'est limite
		require ldap-user titi toto               #Seul titi et toto du ldap on le droit d'ecrire
	</LimitExcept>
</Location>
conf.d/ldap.include
AuthName "Gadille intranet"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldaps://gadille.free.fr/ou=user,dc=gadille,dc=free,dc=fr?uid"
AuthLDAPBindDN cn=user,dc=gadille,dc=free,dc=fr
AuthLDAPBindPassword mon pass

Exemple d'un fichier conf pour un extranet ssl autentifier ldap

Attention au selinux qui block l'acces au ldap (voir selinux)
<VirtualHost *:443>

        ServerName extranet.ensimag.fr:443
        DocumentRoot /var/www/extranet

        ErrorLog logs/extranet_error.log
        TransferLog logs/extranet_access.log
        LogLevel warn
        #LogLevel debug
        #DumpIOInput On
        #DumpIOOutput On

        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
        SSLCertificateFile /etc/pki/tls/certs/cert-28289-extranet.ensimag.fr.pem
        SSLCertificateKeyFile /etc/pki/tls/private/extranet.ensimag.fr.key
        SSLCertificateChainFile /etc/pki/tls/certs/chain-28289-extranet.ensimag.fr.pem

        <Location />               
                Require valid-user

                #Satisfy all #semble inutil
                AuthType Basic
                AuthName "LDAP Protected"

                #LDAPReferrals Off
                AuthLDAPBindAuthoritative off   #on si user particulier

                AuthBasicProvider ldap
                AuthLDAPURL ldap://gadilleldap.fr:389/ou=users,dc=gadille,dc=free,dc=fr?uid
                AuthLDAPBindDN "cn=Admin,dc=gadille,dc=free,dc=fr"
                AuthLDAPBindPassword monpass

                Require valid-user
                #Require all granted  # ouvert au 4 vent
                #Require ldap-filter &(uid=*)
        </Location>
</VirtualHost>

apache2 on ubuntu

sudo apt-get install libapache2-mod-php5
sudo a2enmod php5

copier coller le host par default

cp /etc/apache2/sites-available/default /etc/apache2/sites-available/gadille
faire les modif (comme apache1 - bien remover al partie doc)

Authoriser les site
sudo a2ensite gadille

Virer un site
sudo a2dissite gadille