2014-08-14 16:25 阅读 97

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

I am lost on this one.

I have setup an AWC EC2 RHEL server, and installed php and apache. Everything seems to work except for the fact that the index.php file will not execute. All other *.php files will work if I call them directly.

index.php contains:

<?php echo "test"; ?>

in /etc/httpd/conf/httpd.conf I have the settings:

<IfModule dir_module>
    DirectoryIndex index.html index.php

Although if I remove the index.php still does not work.

I have the permissions on index.php as -rw-r--r-- ec2-user ec2-user

I am not sure what other information would be useful here seeing as all other php files work except for the index.php. (eg: if I call /index.php outputs nothing, if I move index.php to index2.php and call /index2.php outpus test)

Any thoughts as to why this may be happening?


I am now realizing there is a 500 internal server error when the index.php file is called checking the access logs.

"GET /index.php HTTP/1.1" 500

Maybe that will help point in the right direction? I am still unclear how to solve this issue. Again, changing the name of the file to anything other than index.php (eg: index2.php) will execute the file correctly.

Also, after enabling error reporting I am getting this error:

PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0

PHP Fatal error: Unknown: Failed opening required '/var/www/html/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0

I have tried changing permissions to all sorts of variants including 777, 755, 655, 644, 664, etc... even tried changing owner to apache. no luck.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    dsklfsdlkf1232 dsklfsdlkf1232 2016-10-14 07:57

    Try to configure selinux in permissive or disabled mode.

    I had the same problem. I was trying to install moodle and failed. I got the same error above.

    I configured selinux to permissive to see if this is the root cause and indeed I was able to install.

    My problem was that I have opened moodle archive (moodle...tar.gz) as a regular user under his home directory and moved it to apache's DocumentRoot. This got the selinux content field to be wrong.

    I have enable selinux and opened the tar.gz archive directly under DocumentRoot (/var/www/html). This gave the right content attribute to the files (httpd_sys_content_t). I was able to run moodle with selinux enabled.


    点赞 评论 复制链接分享
  • dregvw1801 dregvw1801 2014-08-16 06:14

    Permissions needs to be set to read by Apache users. Current permissions doesn't allows it to read the file as Apache User.

    Also it would be good to check what error you are getting in Apache Logs, it should be "403 Forbidden" if I am not wrong.

    点赞 评论 复制链接分享
  • dongshanxun6479 dongshanxun6479 2014-10-21 06:29

    AWS EC2 RedHat Web Server inner links are not working. Solution

    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    # Note that "MultiViews" must be named explicitly --- "Options All"
    # doesn't give it to you.
    # The Options directive is both complicated and important.  Please see
    # for more information.
    Options Indexes FollowSymLinks
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    AllowOverride none 

    new value should change to AllowOverride all

    点赞 评论 复制链接分享