Configuration
/etc/httpd/conf/httpd.conf
|
DocumentRoot "/srv/http"
Alias /symfony "/usr/share/webapps/Symfony"
<Directory "/usr/share/webapps/Symfony">
Order allow,deny
Allow from all
</Directory>
<Directory "/srv/http">
DirectoryIndex disabled
Options -Indexes
ErrorDocument 403 /MaPage.html
AllowOverride All|None|directive
Order allow,deny
Allow from all
Deny from 192.168.1.1
</Directory>
|
Directive
/etc/httpd/conf/httpd.conf
|
ErrorLog "/var/log/httpd/error_log"
CustomLog logs/access_log "%v %h %l %u %t \"%r\" %>s %T"
|
ErrorLog | LogFormat | CustomLog
 |
Fichiers de log par défaut:
- /var/log/httpd/error_log
- /var/log/httpd/access_log
|
/etc/apache2/sites-available/000-default.config
|
<Directory /var/www/html>
AllowOverride None
Require all denied
Require all granted
Require not ip 192.168.1.1
Require ip 192.168.0.0/24
Require host example.org
</Directory>
|
 |
Depuis la version 2.4, Order, Allow et Deny sont remplacés par Require. |
/etc/httpd/conf/httpd.conf
|
<Directory "...">
Order allow,deny
Order deny,allow
</Directory>
|
/etc/httpd/conf/httpd.conf
|
Options -FollowSymLinks
Options Indexes
|
 |
Valeur par défaut: Options FollowSymlinks |
Rewrite url
|
sudo a2enmod rewrite
sc-restart apache2
|
/etc/apache2/sites-available/myserver.conf
|
<Directory "/var/www/myserver">
RewriteEngine On
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/index.php [L]
</Directory>
|
|
sudo a2enmod rewrite
sudo a2enmod ssl
sc-restart apache2
sudo systemctl daemon-reload
|
/etc/apache2/sites-available/myserver.conf
|
<VirtualHost *:80>
ServerName www.domain.fr
Redirect permanent / https://www.domain.fr
</VirtualHost>
<VirtualHost *:443>
ServerName www.domain.fr
DocumentRoot /var/www/myserver
SSLEngine On
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.php$">
SSLOptions +StdEnvVars
</FilesMatch>
ServerSignature Off
ServerTokens Prod
SSLCipherSuite HIGH:!aNULL:!MD5
</VirtualHost>
|
Modifiez la configuration PHP
/etc/httpd/conf/httpd.conf
|
<Directory "...">
php_admin_value open_basedir /path/path/:/path/path/
</Directory>
|
Modules
|
a2enmod [module]
a2dismod [module]
apachectl -M
|
 |
Activer un module déjà activé ne pose pas de problème. Même chose pour la désactivation. |
Droits d'accès des dossiers et fichiers
Le serveur Apache accède aux dossiers et fichiers via l'utilisateur « http ».
/etc/httpd/conf/httpd.conf
|
LoadModule php5_module modules/libphp5.so
Include conf/extra/php5_module.conf
|
/etc/httpd/conf/mime.types
|
application/x-httpd-php php php5
|
|
sudo pacman -S mod_perl
|
/etc/httpd/conf/httpd.conf
|
LoadModule perl_module modules/mod_perl.so
|
SSL
/etc/httpd/conf/httpd.conf
|
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
|
/etc/httpd/conf/extra/httpd-ssl.conf
|
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/run/httpd/ssl_scache(512000)"
SSLSessionCacheTimeout 300
SSLMutex "file:/run/httpd/ssl_mutex"
|
 |
« Init: Session Cache is not configured » LoadModule est activé mais pas Include. |
/etc/httpd/conf/httpd.conf
|
Include conf/extra/httpd-vhosts.conf
|
/etc/httpd/conf/extra/httpd-vhosts.conf
|
NameVirtualHost *:80
NameVirtualHost *:8080
<VirtualHost *:80>
DocumentRoot "/srv/http"
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/srv/http/serveur1"
ServerName serveur1
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/srv/http/serveur2"
ServerName serveur2
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "/srv/http/serveur3"
ServerName serveur3
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/srv/http/monsite"
ServerName www.monsite.fr
ServerAlias monsite
</VirtualHost>
|
 |
Les noms d'hôtes devront être renseignés par un serveur DNS ou ajouté au fichier /etc/hosts des clients |
 |
_default_ correspond à n'importe quelle adresse qui n'a pas trouvée de correspondance.
* à une plus grande priorité que _default_. |
File does not exist: favicon.ico
C'est le message d'erreur que vous trouverez dans le fichier « /var/log/httpd/error_log » s'il n'y a pas de fichier « favicon.ico » à la racine du site web.
|
touch favicon.ico
|
Core dump
Lors d'une erreur child pid 3713 exit signal Segmentation fault (11), possible coredump in /tmp/apache-coredump
Si la mention possible coredump in n'est pas présente, les informations du noyau n'ont pas été extraites.
 |
If Apache starts as root and switches to another user, the Linux kernel disables core dumps even if the directory is writable for the process.
Apache (2.0.46 and later) reenables core dumps on Linux 2.4 and beyond, but only if you explicitly configure a CoreDumpDirectory. |
/etc/httpd/conf/httpd.conf
|
CoreDumpDirectory "/tmp/apache-coredump"
|
 |
CoreDumpDirectory fait planter apache au démarrage |
Erreurs
Failed opening required '.../fichier.php'
PHP Fatal error: Unknown: Failed opening required '.../fichier.php' (include_path='.:/usr/share/pear')
in Unknown on line 0, referer: http://www.url.fr/
Le fichier .../fichier.php n'est pas accessible en lecture.
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe
/etc/httpd/conf/httpd.conf
|
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
|
Mediawiki
/etc/apache2/sites-available/mediawiki.conf
|
<VirtualHost *:80>
<Directory "/var/www/mediawiki">
AllowOverride All
Options -Indexes
ErrorDocument 403 /index.php
RewriteEngine On
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/index.php [L]
</Directory>
</VirtualHost>
|
Install
|
sudo pacman -S apache php php-apache mariadb
sudo systemctl start httpd
sudo systemctl enable httpd
|
Apache - Archlinux
Apache HTTPD vs Apache Tomcat
Apache HTTPD
Serveur web écrit en C.
Il possède des modules pour exploiter du contenu dynamique écrit en PHP, Python et Ruby.
Apache Tomcat
Conteneur de Servlet et de JSP écrit en Java.
Peut avoir les mêmes fonctionnalités qu'Apache HTTPD mais est utilisé pour du contenu Java web.