index.php默认不加载

时间:2010-03-05 03:41:30

标签: php apache centos apache-config

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

当我访问http://example.com/myapp/index.php时,它运行正常。

知道如何解决这个问题吗?

13 个答案:

答案 0 :(得分:147)

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

实现这一目标的最简单方法..

  1. 在您的网络根目录中创建.htaccess文件。

  2. 添加行...

  3.   
        

    DirectoryIndex index.php

      

    这是关于此事的资源......
    http://www.twsc.biz/twsc_hosting_htaccess.php

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

答案 1 :(得分:96)

将“DirectoryIndex index.php”添加到.htaccess文件可能有效,

注意:

  

通常,您不应该使用.htaccess文件

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

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

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

答案 2 :(得分:40)

猜测我会说目录索引设置为index.html或某些变体,请尝试:

DirectoryIndex index.html index.php

这仍将使index.html优先于index.php(如果您需要抛出维护页面,则会很方便)

答案 3 :(得分:12)

这可能对某人有帮助。 这是httpd.conf(Apache 2.2版windows)的片段

# 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。

答案 4 :(得分:3)

尝试使用以下

创建.htaccess文件
DirectoryIndex index.php

编辑:实际上,是不是有'php-apache'软件包或者你应该用它们安装的东西?

答案 5 :(得分:3)

我在直接管理托管网站上的网站遇到了同样的问题。我添加了

DirectoryIndex index.php

作为自定义httd扩展(将代码添加到网站httpd文件),然后该网站默认运行index.php

答案 6 :(得分:1)

阅读完所有内容并尝试修复后,我在ubuntu论坛(https://help.ubuntu.com/community/ApacheMySQLPHP)上找到了一个简单的解决方案。问题在于libapache2-mod-php5模块。这就是浏览器下载index.php文件而不是显示网页的原因。请执行下列操作。如果sudo a2enmod php5返回模块不存在那么问题是libapache2-mod-php5。用命令sudo删除模块apt-get --purge删除libapache2-mod-php5然后再安装它sudo apt-get install libapache2-mod-php5

答案 7 :(得分:1)

有关信息:在某些Apache2 conf中,您必须在mods_enabled / dir.conf中添加DirectoryIndex命令 (它不在apache2.conf中)

答案 8 :(得分:1)

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

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

也就是说,'index.html'出现在优先级列表中的'index.php'之前。从Web根目录中删除index.html文件自然解决了问题。 D'哦!

答案 9 :(得分:1)

Ubuntu 16.04.4 LTS和Apache / 2.4.18的逐步完整说明

sudo -s

cd /etc/apache2/mods-enabled

vi dir.conf”并将index.php移到DirectoryIndex之后,如下所示,然后保存文件,然后重新启动apache服务器。

  

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

service apache2 restart

如果您没有看到dir.conf,那么您需要加载它(谷歌如何)

完成。

答案 10 :(得分:1)

此帖子可能很旧,但我只是在发布它以防其他人使用,我不建议在您的Web根目录中创建.htaccess文件并更改索引。我觉得最好遵循这些步骤

  1. 转到您的apache文件夹的conf文件夹

    import subprocess from openscoring import Openscoring import numpy as np p = subprocess.Popen('java -jar openscoring-server-executable-1.4.3.jar', shell=True) os = Openscoring("http://localhost:8080/openscoring") # Deploying a PMML document DecisionTreeIris.pmml as an Iris model: os.deployFile("Iris", "DecisionTreeIris.pmml") # Evaluating the Iris model with a data record: arguments = { "Sepal_Length" : 5.1, "Sepal_Width" : 3.5, "Petal_Length" : 1.4, "Petal_Width" : 0.2 } result = os.evaluate("Iris", arguments) print(result)

  2. 打开名为

    的文件

    C:\Apache24\conf

  3. 转到部分

    httpd.conf
  4. 如下所示向其添加index.php

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

通过这种方式,它仍然选择index.html和index.php作为默认索引,但是优先使用index.html,因为 index.html 在* index.php之前。我的意思是,您在同一目录中同时拥有index.html和index.php,除非您在 index.hml

我希望它可以帮助某人...快乐编码

答案 11 :(得分:1)

这件作品就像魅力!

第一

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

然后从

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

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

答案 12 :(得分:0)

对我来说同样的问题。我的解决方案是mod_dir未启用,并且在我的VirtualHost文件中读取指令时apache2没有发出错误:

DirectoryIndex index.html

使用命令:

sudo a2ensite dir
sudo sudo service apache2 restart

修正了问题。