我刚刚安装了CentOS,Apache和PHP。当我访问我的网站http://example.com/myapp/时,它会说“禁止”。默认情况下,它不会加载index.php文件。
当我访问http://example.com/myapp/index.php时,它运行正常。
知道如何解决这个问题吗?
答案 0 :(得分:147)
Apache需要配置为将index.php识别为索引文件。
实现这一目标的最简单方法..
在您的网络根目录中创建.htaccess文件。
添加行...
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文件并更改索引。我觉得最好遵循这些步骤
转到您的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)
打开名为
的文件 C:\Apache24\conf
转到部分
httpd.conf
如下所示向其添加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
修正了问题。