我刚刚安装了CentOS,Apache和PHP。当我访问我的网站http://example.com/myapp/时,它显示为“禁止访问”。默认情况下,它不会加载index.php文件。
当我访问http://example.com/myapp/index.php时,它可以正常工作。
任何想法如何解决该问题?
我刚刚安装了CentOS,Apache和PHP。当我访问我的网站http://example.com/myapp/时,它显示为“禁止访问”。默认情况下,它不会加载index.php文件。
当我访问http://example.com/myapp/index.php时,它可以正常工作。
任何想法如何解决该问题?
Answers:
Apache需要配置为将index.php识别为索引文件。
实现此目的的最简单方法
在您的Web根目录中创建一个.htaccess文件。
添加行...
DirectoryIndex index.php
这是有关此事的资源...
http://www.twsc.biz/twsc_hosting_htaccess.php
编辑:我假设apache配置为允许.htaccess文件。如果不是,则必须修改apache的配置文件(httpd.conf)中的设置。
虽然在.htaccess文件中添加“ DirectoryIndex index.php”可能有效,
注意:
通常,您永远不要使用.htaccess文件
引用自http://httpd.apache.org/docs/1.3/howto/htaccess.html
尽管这是指apache的较旧版本,但我认为该原则仍然适用。
将以下内容添加到httpd.conf中(如果可以访问它)被认为是更好的形式,它减少了服务器开销,并且具有完全相同的效果:
<Directory /myapp>
DirectoryIndex index.php
</Directory>
猜猜我会说目录索引设置为index.html或某些变体,请尝试:
DirectoryIndex index.html index.php
这样仍会给index.html优先于index.php的优先级(如果您需要抛出一个维护页面,则非常方便)
阅读完所有内容并尝试对其进行修复后,我在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
我有类似的症状。但就我而言,我的愚蠢行为是在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文件自然可以解决该问题。天哪!
有关Ubuntu 16.04.4 LTS和Apache / 2.4.18的逐步说明和完整说明
“ sudo -s
”
“ cd /etc/apache2/mods-enabled
”
“ vi dir.conf
”,然后将Directory.php移到DirectoryIndex之后,如下所示,然后保存文件,然后重新启动apache服务器。
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
“ service apache2 restart
”
如果您没有看到dir.conf,则需要加载它(有关如何操作,请使用Google)
做完了
这篇文章可能很旧,但我只是在发布它以防其他人使用,我不建议在您的Web根目录中创建.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.hml之前写** index.php *,否则 index.html将用作默认索引。
希望对您有所帮助...快乐编码