【问题标题】:Include php not working linux apache2 [closed]包括 php 不工作 linux apache2 [关闭]
【发布时间】:2014-12-16 17:46:11
【问题描述】:

美好的一天。也许,它是重复的,但我没有找到适合我的答案。我在本地服务器(Apache2.4,Windows)上开发了一个 PHP 站点,并且一切正常。包含文件在 Debian VPS 服务器上无法使用 apache2。什么会导致这个问题?

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

【问题讨论】:

  • 您是否启用了短开始标签?否则使用这个:&lt;?php include '/include/libs.php';?&gt;
  • 我敢打赌,根目录中没有目录 include ;) 检查您的包含路径或更好的方法,使用绝对路径包含/要求
  • 您遇到的错误是什么?
  • 还要检查文件权限。
  • 我全部设置为 777 - 现在是 500 错误

标签: php linux apache2 debian


【解决方案1】:

我猜的三个原因
第一:

您可能没有权限访问您尝试包含的文件。
通常,这正是失败的包含语句所涉及的错误。
尝试运行此代码:
<?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 标志,以便您的所有封闭文件夹也都被 chmod。

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

第三:
您可能搞砸了 apache2/PHP 安装/配置设置。
在 bash 中点击 sudo apt-get purge php5sudo apt-get install php5
请记住,他将销毁您所有的自定义 php.ini 设置,您可能需要从头开始配置。 [我很难学到这一点:D]。

希望这可以帮助 ...

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

【讨论】:

  • 非常感谢!现在可以看到错误。我来解决
  • @DankaBobyor:欢迎您...乐于提供帮助 :)
  • 我有一个问题... 包含不起作用,因为我的站点位于 /var/www 中,但它在根目录中找到。如何设置 PHP 查找相对于 /var/www 的文件路径?
  • 问题是你在'/include/libs.php'前面添加了一个'/'(斜杠)。去掉前面的斜线,你就可以了:) [只需使用'include/libs.php']
猜你喜欢
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
  • 2017-05-10
  • 2013-07-31
  • 2011-12-01
  • 2018-09-13
  • 1970-01-01
相关资源
最近更新 更多