[英]Unexplained PHP error (Internal Server Error 500)
最近,我将站点从共享的Web主机移到了VPS,并配置了apache2 / vsftpd和其他内容。
经过一整天的混乱,我终于可以正常工作了,但是,在浏览器中加载PHP文件时遇到了问题。
PHP未显示任何错误,当我在Chrome浏览器中按F12
时,加载加载消息时看到控制台日志闪烁GET: [mydomain]/api/myfile.php 500 (Internal Server Error)
我以为这与我要在文件中尝试执行的操作有关,但是当在表单所在的页面中并且jQuery调用它时,它可以完美地工作。
但是,由于我想返回特定的消息(以及仅这些消息),因此我希望将其放在空白页上,以便可以将它们回显。
因此,我创建了一个新页面,通过vsftpd
载了该页面,并在浏览器中打开了它,因为我没有发布任何东西,所以我希望它回显“无POST数据”,就像我在$_POST['userStatus']
未设置,但只有一个空白页。
我试图将文件更改为<?php echo "Test"; ?>
<?php echo "Test"; ?>
但这也不起作用。 我遇到了同样的错误。
我以为可能是www-data
的权限无法访问它,
所以我做了chown -R www-data /home/myuser/mysite/public_html
,并重新启动了apache2,但是还是没有运气。 实际上,它禁止我的FTP用户继续上传,因此我不得不使用chown -R myuser /home/myuser/mysite/public_html
使其重新工作。
有权限吗? 也许在Apache中配置错误?
自上次正常运行以来,我的.htaccess
文件没有更改,因此我不太确定这是否是罪魁祸首。
如果很重要:
我在Debian Wheezy上运行Apache2.2
我的php.ini文件设置为显示错误
我添加了error_reporting(E_ALL)
和ini_set('display_errors', 1)
但仍然没有错误
php -l myfile.php
返回No syntax errors detected in myfile.php
当前文件只包含<?php echo "Test"; ?>
<?php echo "Test"; ?>
还是什么都没有。
FTP用户具有上载,覆盖,删除文件以及创建/删除目录的适当权限
我尝试删除文件/重新上传,重新启动apache,并尝试以root身份创建文件(使用vim
)
我已经尝试过Empty Cache and Hard Reload
以确保它不只是加载页面的缓存版本
该网站的其余部分和子域均可正常运行。
/var/log/apache2/error.log
文件:
[Mon Jul 27 05:16:45 2015] [error] [client] PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 [Mon Jul 27 05:16:45 2015] [error] [client] PHP Fatal error: Unknown: Failed opening required '/path/to/dir/api/myfile.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0
我的.htaccess
文件:
RewriteEngine On Options -Indexes ErrorDocument 404 https://my-main-site/404 ErrorDocument 403 https://my-main-site/404 ErrorDocument 500 https://my-main-site/500.shtml RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^u/(.*)$ /profile.php?user=$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^u/(.*)/friends$ /profile.php?user=$1&friends [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^404$ /x/includes/errors/404.php [L]
执行chown www-data myFile.php
和/或chown myftpuser myFile.php
都使文件无法再次加载。
我只是再次对myftpuser myFile.php进行了chown,使我的ftp用户拥有了对该文件的所有权/权限。
该站点上的所有其他文件/目录均归我的ftp用户所有,因此我看不到会如何发生。
看起来您需要将FTP用户添加到www-data组,并使您的项目组可读/写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.