J'ai récemment mis à niveau mon système de Karmic à Lucid. Cela impliquait Apache et PHP en train d'être mis à jour, je crois.
Maintenant, mon serveur est incapable de gérer les fichiers PHP. Toute navigation vers ces fichiers déclenche le téléchargement plutôt que l'analyse.
Le module PHP est toujours chargé dans Apache activé pour les mods et j'ai AddType application/x-httpd-php .php
dans mon httpd.conf.
Il n'y a pas de message significatif dans l'accès Apache ni dans les journaux d'erreurs, donc je suis stumped.
Toute aide serait appréciée. Merci.
/var/log/Apache2/error.log
devrait afficher une ligne comme celle ci-dessous si PHP a été chargé avec succès:
[Mar Août 30 12:53:36 2011] [notice] Apache/2.2.14 (Ubuntu) PHP/5.3.2-1ubuntu4.9 avec Suhosin-Patch configuré - reprise des opérations normales
Faites attention à la date, si c'est quelque chose à partir de 2009, vous avez mal configuré quelque chose.
AddType
est inutile, vous devez utiliser:
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
Voir aussi le instructions d'installation sur php.net pour Apache 2.x .
Vous ne devriez pas avoir besoin d'ajouter que manuellement, le paquetage libapache2-mod-php5
installe /etc/Apache2/mods-available/php5.conf
contenant:
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>
</IfModule>
Comme il s'agit d'un fichier, il est possible qu'il ne soit pas installé avec la mise à niveau. Pour résoudre ce problème , purgez-le puis réinstallez-le:
Sudo apt-get purge libapache2-mod-php5
Sudo apt-get install libapache2-mod-php5
Pour activer PHP, vous devez exécuter:
Sudo a2enmod php5
Redémarrez le serveur Web après:
Sudo /etc/init.d/Apache2 restart
Autres choses à faire:
/etc/Apache2
.Sudo Apache2ctl configtest
pour vérifier les erreurs de syntaxe dans votre configuration.status
doit être chargé pour cela. Si vous utilisez un serveur distant, vous devez vous ajouter à la liste Allow from
dans /etc/Apache2/mods-enabled/status.conf
, puis redémarrer le serveur.Eh bien, après que rien d'autre ne fonctionnait et qu'Apache devienne très déroutant, j'ai finalement purgé tous les paquets Apache et les ai réinstallés.
Semble fonctionner bien maintenant, qui sait ce qui n'allait pas ...
EDIT
J'ai découvert ce qui n'allait pas lorsque j'ai reconfiguré mes paramètres de configuration Apache. [Cette entrée de blog] [1] l'explique.
Il s'avère que bien que le module userdir ne soit pas utilisé activement, les autres fichiers du site résident dans mon dossier ~/public_html et que php était désactivé pour tout ce qu'il contenait.
Je suppose que cela doit être un ajout récent au module php qui n'était pas présent dans mes paramètres karmiques.
le fichier php5.conf
dans /etc/Apache2/mods-enabled
a quelques lignes en bas qui empêchent php de s'exécuter dans un répertoire utilisateur. Par conséquent, en fonction de votre configuration, cela pourrait également être votre problème. Vous pouvez simplement commenter ces lignes et Apache2 recharger