包括 php 不起作用的 linux apache2


Include php not working linux apache2

美好的一天。也许,这是一个重复的,但我没有为我找到答案。我在本地服务器(Apache2.4,Windows(上开发了一个PHP站点,并且都在工作。包含文件在带有 apache2 的 Debian VPS 服务器上不起作用。什么会导致此问题?

<? include '/include/libs.php';?>

我猜
的三个原因第一:

您可能没有权限访问您尝试包含的文件的权限。
通常,这是失败的包含语句所涉及的错误。
尝试运行以下代码:
<?php var_dump(substr(sprintf('%o', fileperms('/include/libs.php')), -4)); ?> 如果输出的最后三位数字分别小于 7、5 和 5,那么您就遇到了文件权限问题。
您可以通过更改 bash
中的包含文件权限来解决此错误
sudo chmod -R 0755 /var/www/include/libs.php如果您的 apache 版本高于 2.4
,请改用 sudo chmod 0755 /var/www/html/include/libs.php请注意,您需要对 chmod 使用 -R 标志,以便所有封闭文件夹也被 chmodded。

第二:
您没有将 php 作为默认的 apache2 用户组运行,或者您的包含文件属于 root。
与前面的原因一样,这也是文件权限异常。
sudo chown "www-data" /var/www/include/libs.php sudo chgrp "www-data" /var/www/include/libs.php 后跟sudo service apache2 restart

第三:
您可能搞砸了 apache2/PHP 安装/配置设置。
sudo apt-get purge php5sudo apt-get install php5
请记住,他的 WILL 会烧录您所有的自定义php.ini设置,您可能需要从头开始配置。[ 我从:D艰难的方式学到了这一点 ]。

希望这有帮助...

更新:
在我读到没有显示错误后,
我突然想到你有默认的 php5 配置......
打开sudo gedit /etc/php5/apache2/php.ini
将行display_errors = Off更改为display_errors = On
这是我从头开始安装 php 时遇到的问题......