php - 在 AWS EC2 Linux RHEL 上,所有 PHP 文件都在执行,index.php 除外

标签 php linux amazon-web-services amazon-ec2 rhel

我迷失在这个问题上。

我设置了一个 AWC EC2 RHEL 服务器,并安装了 php 和 apache。除了 index.php 文件不会执行之外,一切似乎都正常。如果我直接调用它们,所有其他 *.php 文件都可以工作。

index.php 包含:

<?php echo "test"; ?>

/etc/httpd/conf/httpd.conf 我有设置:

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

虽然如果我删除 index.php 仍然不起作用。

我对 index.php 的权限为 -rw-r--r-- ec2-user ec2-user

我不确定还有什么其他信息在这里有用,因为除了 index.php 之外所有其他 php 文件都可以工作。 (例如:如果我调用 /index.php 什么都不输出,如果我将 index.php 移动到 index2.php 并调用 /index2.php 输出 test)

关于为什么会发生这种情况有什么想法吗?

编辑

我现在意识到在调用 index.php 文件检查访问日志时出现 500 内部服务器错误。

"GET/index.php HTTP/1.1"500

也许这有助于指明正确的方向?我仍然不清楚如何解决这个问题。同样,将文件名更改为 index.php 以外的任何名称(例如:index2.php)将正确执行文件。

此外,启用错误报告后我收到此错误:

PHP 警告:未知:无法打开流:第 0 行未知中的权限被拒绝

PHP fatal error :未知:无法在未知中打开所需的 '/var/www/html/index.php' (include_path='.:/usr/share/pear:/usr/share/php')在第 0 行

我曾尝试更改对各种变体的权限,包括 777、755、655、644、664 等...甚至尝试将所有者更改为 apache。没有运气。

最佳答案

尝试将 selinux 配置为 permissive 或 disabled 模式。

我遇到了同样的问题。我试图安装 moodle 但失败了。我在上面遇到了同样的错误。

我将 selinux 配置为 permissive,看看这是否是根本原因,我确实能够安装。

我的问题是我以普通用户的身份在他的主目录下打开了 moodle 存档 (moodle...tar.gz),并将其移动到 apache 的 DocumentRoot。这导致 selinux 内容字段出错。

我已启用 selinux 并直接在 DocumentRoot (/var/www/html) 下打开 tar.gz 存档。这为文件提供了正确的内容属性 (httpd_sys_content_t)。我能够在启用 selinux 的情况下运行 moodle。

莫什

关于php - 在 AWS EC2 Linux RHEL 上,所有 PHP 文件都在执行,index.php 除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25313004/

相关文章:

PHP写入编辑的脚本文件内容导致额外的换行符

python - 跟踪 Linux 套接字调用?

linux - 使用本地 Linux 组对 SVN 用户进行身份验证?

java - 亚马逊云形成。如何编辑现有模板

amazon-web-services - 除弗吉尼亚州外的所有区域均出现 AWS Cloud Quest API 错误

php - Pycrc 和 PHP 代码的 CRC32 计算与预期结果不匹配

PHP:文件还是数据库?

java - 在 Android Studio 中将数据从 MySQL 显示到 TextView

linux - 为什么我的 awk 命令多打印一行?

amazon-web-services - 使用 CDK diff 来区分管道中包含的资源