Php 默认不加载

我刚刚安装了 CentOS,Apache 和 PHP。当我访问我的网站 http://example.com/myapp/,它说“禁止”。默认情况下,它没有加载 index.php 文件。

When I visit http://example.com/myapp/index.php, it works fine.

有办法解决这个问题吗?

453165 次浏览

需要将 Apache 配置为将 index.php 识别为索引文件。

最简单的方法。

  1. 在你的 web 根目录中创建一个.htaccess 文件。

  2. 加上这条线。

DirectoryIndex index.php

这是关于这件事的资料。
Http://www.twsc.biz/twsc_hosting_htaccess.php

编辑: 我假设 apache 配置为允许。Htaccess 文件。如果不是,则必须修改 apache 的配置文件(httpd.conf)中的设置

尝试使用以下命令创建一个. htaccess 文件

DirectoryIndex index.php

Edit: Actually, isn't there a 'php-apache' package or something that you're supposed to install with both of them?

At a guess I'd say the directory index is set to index.html, or some variant, try:

DirectoryIndex index.html index.php

这将使 index.html 优先于 index.php (如果需要打开维护页面,这很方便)

在. htaccess 文件中添加‘ DirectoryIndex index.php’可能有效,

注意:

一般来说,不应该使用.htaccess 文件

这是从 http://httpd.apache.org/docs/1.3/howto/htaccess.html引用的
虽然这是指旧版本的 apache,但我相信这个原则仍然适用。

将以下内容添加到您的 Http://httpd.conf/(如果您可以访问它)被认为是更好的形式,可以减少服务器开销,并具有完全相同的效果:

<Directory /myapp>
DirectoryIndex index.php
</Directory>

编辑: At the time of edit, the v1.3 documentation is down. The V2.4文档 (current version at time of edit) has a similar stance:

一般来说,应尽可能避免使用 .htaccess文件。任何可以考虑放入 .htaccess文件的配置,都可以在主服务器配置文件的 <Directory>部分中有效地进行。

在阅读了所有这些并试图修复它之后,我在 ubuntu 论坛(https://help.ubuntu.com/community/ApacheMySQLPHP)上得到了一个简单的解决方案。问题出在 liBapache2-mod-php5模块上。这就是为什么浏览器下载 index.php 文件而不是显示网页。执行以下操作。如果 sudo a2enmod php5返回模块不存在,那么问题就出在 liBapache2-mod-php5上。使用命令 sudo apt-get —— Purge delete liBapache2-mod-php5清除删除模块,然后再次安装它

This might be helpful to somebody. 下面是来自 httpd.conf (Apache 2.2版窗口)的代码片段

# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php
</IfModule>

现在它将查找 index.html 文件,如果没有找到,它将查找 index.php。

我也有过类似的症状。在我的情况下,我的愚蠢是在无意中也有一个空的 index.html 文件在 web 根文件夹。当我没有明确请求 index.php 时,Apache 提供的是这个服务而不是 index.php,因为 DirectoryIndexmods-available/dir.conf中的配置如下:

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

也就是说,“ index.html”在优先级列表中出现在“ index.php”之前。从 web 根目录中删除 index.html 文件自然就解决了这个问题。噢!

这个帖子可能是旧的,但我只是张贴它,以防它帮助其他人,我不会建议创建一个。Htaccess 文件,并更改索引。我觉得还是按照步骤来比较好

  1. 转到你的 apache 文件夹的 conf 文件夹,我的是

    C:\Apache24\conf

  2. 打开名为

    httpd.conf

  3. 去那个区域

    <IfModule dir_module>
    DirectoryIndex index.html
    
    
    </IfModule>
    
  4. Add index.php to it as shown below

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

This way, it still picks index.html and index.php as the default index but giving priority to index.html because index.html came before *index.php. By this I mean in you have both index.html and index.php in the same directory, the index.html will be used as the default index except you write **index.php* before index.hml

I hope it helps someone... Happy Coding

This one works like a charm!

首先

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

然后从 开始

<Files ".ht*">
Require all denied
</Files>

 <Files ".ht*">
Require all granted
</Files>