Httpd install start
Autres actions
| HTTP | HTTPS | |
|---|---|---|
| Protocole | tcp | tcp |
| Port | 80 | 443 |
| Configuration Iptables | iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT | iptables -I INPUT 2 -p tcp --dport 443 -j ACCEPT |
Préparation
Dans un premier temps, il faudra avoir une connexion à Internet, utiliser un serveur DNS et désactiver SELinux.
Pour ceux qui auraient manqué des étapes les voici:
Une fois ces étapes effectuées, entrons dans le vif du sujet !
Installation
HTTP
# dnf -y install httpd
HTTP et HTTPS
# dnf -y install httpd mod_ssl
HTTP2
Si vous souhaitez accélérer le chargement de votre site, il est intéressant de passer en HTTP2. Pour ça on va installer le paquetage :
# dnf -y install mod_http2
Configuration de base
Avant le premier démarrage
Tout d'abord il faut paramétrer le nom de la machine ainsi que l'adresse d'écoute
Pour cela cherchez dans le fichier /etc/httpd/conf/httpd.conf les lignes commençant par :
- Listen 80
- #ServerName www.example.com:80
La première doit contenir l'adresse IP de la machine ou * pour que httpd écoute sur toutes les interfaces
Listen *:80
La deuxième doit être cohérente avec le nom de la machine qui est précisé dans le fichier network
ServerName web:80
Si vous souhaitez activer HTTP2 n'oubliez pas d'ajouter la ligne suivante dans le fichier /etc/httpd/conf/httpd.conf :
Protocols h2 http/1.1
Premier démarrage
Maintenant on peut démarrer httpd
- Pour SystemVInit:
# service httpd start Démarrage de httpd : [ OK ]
- Pour SystemD :
# systemctl start httpd.service
Vérification
On peut vérifier que httpd écoute sur la bonne adresse et les bons ports
- CentOS 6:
# netstat -atnp | grep httpd tcp 0 0 :::80 :::* LISTEN 1202/httpd tcp 0 0 :::443 :::* LISTEN 1202/httpd
- CentOS 7:
# ss -atnp | grep httpd
LISTEN 0 128 :::80 :::* users:(("httpd",pid=1483,fd=4),("httpd",pid=1482,fd=4),("httpd",pid=1481,fd=4),("httpd",pid=1480,fd=4),("httpd",pid=1479,fd=4),("httpd",pid=1478,fd=4))
Enregistrement dans le chargeur de démarrage
- Pour SystemVInit:
# chkconfig httpd on
- Pour SystemD:
# systemctl enable httpd.service
Après le premier démarrage
Essayez de ne jamais JAMAIS jamais redémarrer le serveur Apache avec :
# systemctl restart httpd
"restart" a pour effet de stopper puis démarrer le serveur, si une erreur est présente dans votre configuration le serveur s'arrête sans redémarrer, ce qui ajoute toujours un peu de pression si c'est un serveur de production... ou si c'est vendredi à 17h :)
À la place, préférez vérifier la configuration avec la commande:
# httpd -S
Si une erreur est présente, le fichier et la ligne en question seront mentionnés.
Une fois toutes les vérifications effectuées, utilisez la commande suivante pour recharger la configuration du serveur Apache:
# httpd -k graceful
Si des erreurs sont présentes dans un fichier de configuration, le serveur les affichera mais n'en tiendra pas compte.
Ajout d'une page html
Le dossier de travail de httpd est précisé grâce à la variable DocumentRoot qui a la valeur /var/www/html
Vous pouvez donc créer votre premier site web en ajoutant dans ce dossier le fichier désigné par la variable DirectoryIndex (généralement index.html)
# vi /var/www/html/index.html
Une fois le fichier édité, il ne faut pas oublier de repositionner les bons droits pour qu'apache soit apte à le lire
# chown apache.apache -R /var/www/html
Parcours des logs
httpd log dans le répertoire /var/log/httpd/ et utilise deux fichiers:
- access_log → pour journaliser tous les accès
- error_log → pour journaliser toutes les erreurs
Démarrage et erreurs
Le fichier /var/log/httpd/error_log est fait pour ça. Quand vous avez une erreur PHP ou autre, c'est ici qu'il faut venir faire un tour:
[Sat Feb 15 02:32:53 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Sat Feb 15 02:32:53 2014] [notice] Digest: generating secret for digest authentication ... [Sat Feb 15 02:32:53 2014] [notice] Digest: done [Sat Feb 15 02:32:54 2014] [notice] Apache/2.2.15 (Unix) DAV/2 mod_ssl/2.2.15 OpenSSL/1.0.0-fips configured -- resuming normal operations
Vérifier l'accès aux pages
Pour vérifier qui demande quoi sur à votre serveur, c'est dans le fichier /var/log/httpd/access_log qu'il faut venir regarder:
192.168.200.254 - - [30/Dec/2013:13:43:38 +0100] "GET / HTTP/1.1" 200 130 "-" "Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0" 192.168.200.254 - - [30/Dec/2013:13:43:39 +0100] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0" 192.168.200.254 - - [30/Dec/2013:13:43:42 +0100] "GET / HTTP/1.1" 200 14 "-" "Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0" 192.168.200.254 - - [30/Dec/2013:13:43:45 +0100] "GET / HTTP/1.1" 200 130 "-" "Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"