原因不明的PHP错误(内部服务器错误500)

时间:2015-07-27 09:17:09

标签: php linux apache ftp chown

我最近将我的网站从共享的网络主机移到了VPS,并配置了apache2 / vsftpd和东西。

经过一天弄乱一切后,我终于完成了所有工作,但是,我遇到了在浏览器中加载PHP文件的问题。

PHP没有显示任何错误,当我点击Chrome中的meta_value = true时,我在加载说F12

时看到控制台日志闪烁

我认为这与我在文件中尝试做的事情有关,但是在表单所在的页面和jQuery调用它时,它工作得很好。

但是,由于我想返回特定的消息(以及那些消息),我希望它在一个空页面上,所以我可以回复它们。

所以,我创建了一个新页面,通过GET: [mydomain]/api/myfile.php 500 (Internal Server Error)上传并用我的浏览器打开它,因为我没有发布任何我希望它回应的内容#34;没有POST数据&#34 ;,正如我在vsftpd未设置时所做的那样,但只是一个空的白页。

我尝试将文件更改为 $_POST['userStatus']但是那也没有用。我得到了同样的错误。

我想也许<?php echo "Test"; ?>的权限可能无法访问它,

所以我做了www-data,并重新启动了apache2,但仍然没有运气。 它实际上不允许我的FTP用户继续上传,因此我必须chown -R www-data /home/myuser/mysite/public_html才能让它再次上传。

它可能是具有权限的东西吗?也许在apache中配置错误?

我的chown -R myuser /home/myuser/mysite/public_html文件由于上次正常工作而未被更改,因此我不太确定这是否是罪魁祸首。

如果它很重要:

我在Debian Wheezy上运行Apache2.2 我的php.ini文件设置为显示错误
我添加了.htaccesserror_reporting(E_ALL),但仍然没有错误 ini_set('display_errors', 1)返回php -l myfile.php
目前该文件只包含No syntax errors detected in myfile.php,但仍然没有 FTP用户具有上载,覆盖,删除文件和创建/删除目录的适当权限 我尝试删除文件/重新上传,重新启动apache,并尝试以root身份创建文件(使用<?php echo "Test"; ?>
我尝试过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

<小时/> 编辑:完全删除文件,并以root身份创建一个新文件(在浏览器中显示)。但是,我无法以FTP用户的身份覆盖/更改文件。

执行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给了我的ftp用户对该文件的所有权/权限。

网站上的所有其他文件/目录都归我的ftp用户所有,所以我不知道会发生这种情况。

1 个答案:

答案 0 :(得分:1)

看起来您需要将您的FTP用户添加到www-data组并使您的项目组可读/可写。