« Apache/Problèmes connus » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
Ligne 8 :
 
Si les logs ne sont pas assez détaillé, on peut augmenter leur verbosité dans le vhost<ref>https://httpd.apache.org/docs/2.4/fr/logs.html</ref> :
<sourcesyntaxhighlight lang=apache>
LogLevel info rewrite:trace8
</syntaxhighlight>
</source>
 
== Lecture seule ==
Ligne 17 :
== Les fonctions PHP s'affichent sur la page au lieu de s'exécuter ==
Si <code>a2enmod php7.2</code> indique que le module est déjà installé, c'est peut-être lié à <code>a2enmod userdir</code>. Cela peut se régler avec :
<sourcesyntaxhighlight lang=bash>
vim /etc/apache2/mods-enabled/php7.2.conf
</syntaxhighlight>
</source>
Commenter les lignes :
<sourcesyntaxhighlight lang=apache>
<IfModule mod_userdir.c>
...
</IfModule>
</syntaxhighlight>
</source>
Et relancer Apache.
 
Ligne 31 :
=== 403 forbidden, client denied by server configuration ===
Ce message apparait dans les logs Apache quand le fichier auquel on tente d'accéder est protégé dans apache2.conf, par un <code>deny</code>, un <code>require</code> ou une absence de ce dernier. Dans ce cas, il faut l'ajouter :
<sourcesyntaxhighlight lang=apache>
<Directory /home>
Options Indexes FollowSymLinks
Ligne 37 :
Require all granted
</Directory>
</syntaxhighlight>
</source>
 
=== 403 forbidden, You don't have permission to access / on this server ===
Ligne 53 :
=== Missing suexec binary ===
Installer le module :
<sourcesyntaxhighlight lang=bash>
sudo apt-get install apache2-suexec-custom
</syntaxhighlight>
</source>
 
=== suEXEC is disabled ===
Ligne 68 :
=== <code>apache2: bad user name Utilisateur1</code> ===
Un utilisateur Unix appelé dans la configuration n'existe pas. Il faut donc le créer :
<sourcesyntaxhighlight lang="bash">
useradd Utilisateur1
</syntaxhighlight>
</source>
 
 
=== <code>apache2: bad group name Groupe1</code> ===
Un groupe Unix appelé dans la configuration n'existe pas. Il faut donc le créer :
<sourcesyntaxhighlight lang="bash">
groupeadd Groupe1
</syntaxhighlight>
</source>
 
 
=== <code>No such file or directory:</code>... <code>Cannot access directory '/etc/apache2/logs/'</code>... <code>Configuration check failed</code> ===
Un répertoire Unix appelé dans la configuration n'existe pas. Il faut donc le créer :
<sourcesyntaxhighlight lang="bash">
mkdir /etc/apache2/logs
</syntaxhighlight>
</source>
 
 
=== <code>exit signal Segmentation fault (11)</code> ===
Cela peut survenir quand PHP rencontre une erreur. Pour la connaitre précisément, il faut lancer le .php en shell (sans Apache). Exemple :
<sourcesyntaxhighlight lang="bash">
su www-data
 
Ligne 101 :
chown Compte1 /home/Compte2
chown: modification du propriétaire de «/home/Compte2»: Opération non permise
</syntaxhighlight>
</source>
 
 
Ligne 140 :
==== {{rouge|SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificateKeyFile?}} ====
Il faut convertir le certificat SSL ainsi :
<sourcesyntaxhighlight lang=bash>
openssl x509 -inform der -in /etc/apache2/ssl/apache.crt -outform PEM -out /etc/apache2/ssl/apache.pem
vim /etc/apache2/sites-enabled/default-ssl.conf
# remplacement du .crt par le .pem
service apache2 restart
</syntaxhighlight>
</source>
 
Sinon il faut retirer les {{wt|BOM}} du certificat.
Ligne 153 :
==== {{rouge|Certificate and private key do not match}} ====
Le certificat doit être un fichier .pem et la clé .key. Il est possible de le vérifier avec la commande suivante<ref>http://stackoverflow.com/questions/23652680/postfix-cannot-get-rsa-private-key-from-file-etc-ssl-private-server-key-disabl</ref> :
<sourcesyntaxhighlight lang=bash>
$ (openssl x509 -noout -modulus -in /etc/ssl/certs/ssl-cert-snakeoil.pem | openssl md5 ;openssl rsa -noout -modulus -in /etc/ssl/private/ssl-cert-snakeoil.key | openssl md5) | uniq
(stdin)= 8cf9b840c3239f653be542149497f047
</syntaxhighlight>
</source>
 
Quand les deux certificats correspondent il n'y a qu'une seule ligne, comme ci-dessus. Il faut donc retrouver le bon ou régénérer la paire. Pour y voir plus clair, la commande <code>file</code> permet de les identifier :
 
<sourcesyntaxhighlight lang=bash>
$ file /etc/ssl/*
nomdedomaine.fr.crt: PEM certificate request
Ligne 172 :
apache.key: PEM RSA private key
apache.crt: PEM certificate
</syntaxhighlight>
</source>
 
==== {{rouge|AH01909: nomdedomaine.fr:443:0 server certificate does NOT include an ID which matches the server name}} ====
Ligne 183 :
=== Inopérant ===
Si le .htaccess ne produit aucune redirection, vérifier que le module Apache est bien activé :
<sourcesyntaxhighlight lang="bash">
a2enmod rewrite
</syntaxhighlight>
</source>
Et que la directive suivante figure au moins dans un répertoire parent du .htaccess :
AllowOverride All