2016-12-22 5 views
1

J'ai deux sites sur une pile LAMP. One (Site1) utilise WordPress avec Wordfence, et cela fonctionne parfaitement bien. Le second site (Site2) ne fonctionne que d'un simple fichier index.php sur elle:Comment résoudre "PHP Erreur irrécupérable: Inconnu: Echec de l'ouverture requise"

<?php 
echo "Testing"; 
?> 

Cependant, il montre ERREUR HTTP 500 avec le journal des erreurs comme ci-dessous.

[Thu Dec 22 16:23:44.774993 2016] [:error] [pid 56607] [client xxx:27253] PHP Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0 
[Thu Dec 22 16:23:44.775042 2016] [:error] [pid 56607] [client xxx:27253] PHP Fatal error: Unknown: Failed opening required '/var/www/site1/public_html/public/wordfence-waf.php' (include_path='.:/usr/share/php') in Unknown on line 0 

Les sites 1 et 2 n'ont rien à voir l'un avec l'autre et se trouvent dans des dossiers distincts. Je ne suis pas sûr de ce qui se passe. S'il vous plaît donnez votre avis.

fichier .htaccess sur Site1

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

# Wordfence WAF 
<IfModule mod_php7.c> 
     php_value auto_prepend_file '/var/www/site1/public_html/public/wordfence-waf.php' 
</IfModule> 
<Files ".user.ini"> 
<IfModule mod_authz_core.c> 
     Require all denied 
</IfModule> 
<IfModule !mod_authz_core.c> 
     Order deny,allow 
     Deny from all 
</IfModule> 
</Files> 

# END Wordfence WAF 
+0

Le système utilise ce fichier .htaccess pour les deux sites. Le second site est-il un sous-domaine du premier (ou son dossier racine est-il quelque part dans le dossier racine du premier site)? –

+0

Bonjour @EdCottrell. Ils sont site séparé. La structure est la suivante: –

+0

/var/www/html/site1 et/var/www/html/site2 –

Répondre

0

Merci pour @EdCottrell. J'ai finalement trouvé une réponse pour ça.

D'abord, je DEBUG pour trouver où le php.ini SITUE créer par un info.php sur le site de travail.

<? php phpinfo(); ?> 

Ensuite, je trouve s'il y a une valeur sur auto_prepend_file =. Si oui, supprimez-le.

Puis-je ouvrir le fichier site1.conf et ajoutez le auto_prepend_file à la place ligne de celle de .htaccess

<Directory "/path/to/folder"> 
    php_value auto_prepend_file /absolute/path/to/apache-prepend.php 
</Directory> 

Après avoir redémarré le serveur Apache, tout fonctionne à nouveau!

sudo systemctl restart apache2