PHP 脚本在终端中以根身份运行,但不在浏览器中运行


PHP script running as root in terminal but not in browser

我已经将一些php脚本上传到了/php目录和子目录下的服务器。

在终端中使用我的 root 用户并运行php file.php时,它可以完美地执行它,但是当尝试通过浏览器访问同一文件时 - 没有任何反应......

我想这与权限有关。

我已经尝试过chmod 755 phpdirectory但它不起作用..

为了让浏览器用户能够运行PHP脚本,我还应该做什么?

更新我正在使用带有apache和Direct Admin的FreeBsd系统。有人可以指导我在哪里检查设置吗?

Commony 所有webb对文件的访问都是通过特定用户(例如www-data)完成的,以便通过Web www-data访问文件需要访问代码的权限。如何设置取决于服务器正在运行的系统。

此外,服务器document_root需要正确设置。执行此操作的位置还取决于您运行的服务器。

更新问题后编辑

在 apache 中,这通常是通过文件/etc/apache/sites-avalible/your_site 完成的。如果服务器只提供一个页面,你可以在 http.conf

你需要确保你的 PHP 脚本与你在 Apache 配置(CentOS 6.4 中的/etc/httpd/httpd.conf)中配置的用户和组相同。

# User/Group: The name (or #number) of the user/group to run httpd as.
User apache
Group apache

检查 PHP 目录和文件的所有者和组。在这种情况下,所有者和组(根/根)与 Apache 用户和组不同。

# ls -alh
total 516K
drwxr-xr-x.  5 root root 4.0K Aug 29 17:57 .
drwx------.  5 root root 4.0K Jun 24 12:06 ..
-rwxr--r--.  1 root root 356K Jul  7  2012 index.php

更改 PHP 目录的所有者和组。使用以下命令。

# chown -R apache:apache www