我刚刚安装了 CentOS、Apache 和 PHP。当我访问我的网站 http://example.com/myapp/ 时,它显示“禁止”。默认情况下,它不会加载index.php 文件。
当我访问 http://example.com/myapp/index.php 时,它工作正常。
知道如何解决这个问题吗?
Apache 需要配置为将index.php 识别为索引文件。
实现这一点的最简单方法..
在您的网络根目录中创建一个 .htaccess 文件。
添加行...
目录索引index.php
这是有关此事的资源...
http://www.twsc.biz/twsc_hosting_htaccess.php
编辑:我假设 apache 配置为允许 .htaccess 文件。如果不是,你必须修改 apache 的配置文件 (httpd.conf) 中的设置
虽然将“DirectoryIndex index.php”添加到 .htaccess 文件可能有效,
注意:
一般来说,你不应该使用.htaccess文件
这引自http://httpd.apache.org/docs/1.3/howto/htaccess.html
虽然这是指旧版本的apache,但我相信这个原则仍然适用。
将以下内容添加到您的 httpd.conf(如果您有权访问它)被认为是更好的形式,会减少服务器开销并具有完全相同的效果:
<Directory /myapp>
DirectoryIndex index.php
</Directory>
编辑: 在编辑时,v1.3 文档已关闭。 v2.4 文档(编辑时的当前版本)具有类似的立场:
一般来说,应尽可能避免使用
文件。您考虑放入.htaccess
文件中的任何配置都可以在主服务器配置文件的.htaccess
部分中有效地进行。<Directory>
我猜测目录索引设置为index.html,或某些变体,请尝试:
DirectoryIndex index.html index.php
这仍然会让index.html优先于index.php(如果您需要抛出维护页面,这会很方便)
这可能对某人有帮助。 这是 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。
这篇文章可能很旧,但我只是发布它,以防它对其他人有帮助,我不建议在您的网络根目录中创建 .htaccess 文件并更改索引。我觉得还是按照步骤来比较好
转到你的apache文件夹的conf文件夹,我的是
C:\Apache24\conf
打开名为
的文件httpd.conf
转到该部分
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
添加index.php,如下所示
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
这样,它仍然选择index.html和index.php作为默认索引,但优先考虑index.html,因为index.html出现在*index.php之前。我的意思是,如果您在同一目录中同时拥有index.html和index.php,则index.html将用作默认索引,除非您在index.hml
之前编写**index.php*我希望它能帮助别人......快乐编码
尝试使用以下内容创建 .htaccess 文件
DirectoryIndex index.php
编辑:实际上,不是有一个“php-apache”包或者你应该与它们一起安装的东西吗?
我也有类似的症状。但就我而言,我的愚蠢之处在于无意中在 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文件自然就解决了这个问题。哦!
这个就像一个魅力!
第一
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php
</IfModule>
然后从
<Files ".ht*">
Require all denied
</Files>
到
<Files ".ht*">
Require all granted
</Files>
阅读完所有这些并尝试修复它后,我在 ubuntu 论坛上得到了一个简单的解决方案(https://help.ubuntu.com/community/ApacheMySQLPHP)。问题出在 libapache2-mod-php5 模块上。这就是浏览器下载index.php 文件而不是显示网页的原因。执行以下操作。如果 sudo a2enmod php5 返回模块不存在,则问题出在 libapache2-mod-php5 上。使用命令 sudo apt-get --purge remove libapache2-mod-php5 清除删除模块然后再次安装它 sudo apt-get install libapache2-mod-php5
我在 Ubuntu 22.04 上也遇到了类似的问题。
默认的 WordPress 安装执行到 /var/www/html
我补充:
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
DirectoryIndex index.php
</Directory>
到我的 /etc/apache2/apache2.conf 文件
这解决了我的问题。