web-dev-qa-db-fra.com

Apache ne charge pas les fichiers .php

Tout d'abord, désolé pour mon anglais et demander quelque chose qu'il est tout à fait répondu sur le web. J'ai lu beaucoup d'articles sur ce problème mais je ne trouve toujours pas la solution.

Je suis un développeur Web qui a récemment migré de Windows 7 vers Ubuntu. J'ai fait créer un site Web (en ligne et fonctionnel) et j'ai configuré LAMP pour qu'il continue à fonctionner. J'ai fait un fichier test.php avec: <?php phpinfo(); ?> et le mets dans le répertoire /var/www/html, il affiche toutes les informations sur le php et j'étais vraiment heureux: "Ok, tout est fait, demain je vais travailler dur"

Mais j'ai placé tout mon contenu Web dans /var/www/html, pas dans un dossier, l'index.php est dans /var/www/html mais devinez quoi: ne charge aucun de mes fichiers .php, le navigateur ne cesse de penser.

Ce que j'ai fait:

  1. J'ai redémarré Apache: /etc/init.d/Apache2 restart
  2. J'ai essayé à nouveau avec le fichier test.php et cela fonctionne bien
  3. J'ai mis dans /var/www/html un fichier .html et fonctionne très bien.
  4. J'ai cherché /etc/Apache2/sites-enable/000-default.conf et il est écrit: DocumentRoot /var/www/html

  5. J'ai cherché /etc/Apache2/mods-enabled/dir.conf et il est écrit: DirectoryIndex index.html index.cgi index.pl index.php ...

Modifier*

Je pense que c'est quelque chose lié à phpmyadmin, comme si je ne pouvais pas me connecter à la base de données. Mais je n'ai rien à l'écran lorsque j'essaie de charger la page alors ... je ne suis pas sûr.

Je peux accéder à l'URL localhost/phpmyadmin et j'ai édité le fichier connection.php comme ceci:

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_rakstadconnection = "localhost";
$database_rakstadconnection = "rakstadclandb";
$username_rakstadconnection = "root";
$password_rakstadconnection = "admin";
$rakstadconnection = mysql_connect($hostname_rakstadconnection, $username_rakstadconnection, $password_rakstadconnection) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_query("SET NAMES 'utf8'"); 
?>

Le nom de la base de données est correct, comme l'utilisateur et le mot de passe.

http://i89.photobucket.com/albums/k220/Haddex/Capturadepantallade2014-06-09112609_zpsc45ddb72.png

http://i89.photobucket.com/albums/k220/Haddex/Capturadepantallade2014-06-0911212020_zps0b9e15f7.png

* Edit2: cela pourrait-il être parce que c'est un site Web que j'ai amené de Linux à Linux? J'ai utilisé Dreamweaver.

Edit3: J'ai changé le # en/* /, rien. Le fichier error.log dit:

[Mon Jun 09 17:08:13.627881 2014] [:error] [pid 1517] [client 127.0.0.1:46663] PHP Warning:  require_once(/var/www/html/Connections/rakstadconnection.php): failed to open stream: Permission denied in /var/www/html/index.php on line 1
[Mon Jun 09 17:08:13.627933 2014] [:error] [pid 1517] [client 127.0.0.1:46663] PHP Fatal error:  require_once(): Failed opening required 'Connections/rakstadconnection.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/index.php on line 1

Je lis le journal des erreurs, mais ... devrais-je ajouter un chemin Linux dans mon fichier index.php? Ne crois pas.

Merci.

4
Haddex

Il peut y avoir un problème avec la permission des fichiers. Si Apache (ou www-data) n'a pas de permission de lecture, les pages ne s'afficheront pas.

cette erreur semble indiquer que:

`[Mon Jun 09 17:08:13.627881 2014] [:error] [pid 1517] [client 127.0.0.1:46663] PHP Warning:  require_once(/var/www/html/Connections/rakstadconnection.php): failed to open stream: Permission denied in /var/www/html/index.php on line 1`

Faites de www-data le propriétaire du répertoire et de tout ce qu'il contient. Sudo chown -R www-data:www-data /var/www/html/<siteFolder>.

Définissez ensuite les privilèges pour donner au propriétaire et au groupe des privilèges de lecture, d’écriture et d’exécution, et à tous les autres de lire les privilèges Sudo chmod -R 774 /var/www/html/<siteFolder>.


3
Dan