为什么这个PHP框架显示目录索引而不是网页?
由于这是一个与完成的整个项目有关的问题,我不认为我将能够发布整个代码。如果需要任何附加信息,请询问我将对其进行编辑。为什么这个PHP框架显示目录索引而不是网页?
我有一个网站是为我的一个类使用这个PHP框架开发的:https://github.com/panique/mini。该网站适用于我从HostGator租用的服务器(它为我提供了LAMP堆栈),现在我正尝试将该网站移至AWS EC2实例。
我已经使用Amazon提供的文档和教程设置了AWS EC2,并且能够在安装LAMP堆栈之后成功托管我的实例中的网页。我使用的PHP框架需要PHP 5.3+,这是我的EC2实例。我也正确设置了MySql,并且能够使用MySql Workbench访问我的数据库。
我已将项目文件上载到网页所在的公共目录,即var/www/html/
。并使用我的MySql信息正确配置了config.php
文件(与我用于MySql Workbench的登录凭据完全相同)。
所以现在到了我遇到的问题。每当我浏览到mydomain.com/Project(假设该项目位于var/www/html/Project
),我就会得到目录索引,而不是我开发的Web应用程序。从我在Github自述文件中读到的内容来看,PHP框架应该在config/config.php
中配置MySql数据库信息后工作。我知道这是正确配置的,因为我可以调用数据库表。
有没有人有这个PHP框架的经验?这是我第一次在Amazon Linux中实际设置LAMP堆栈。我想知道是否有任何配置设置与我应该配置的Apache有关?
今天新的框架分开/public
目录的请求可访问。
你必须选项
1.指向你的Apache到/public
编辑FIE /etc/httpd/conf/httpd.conf
(依赖于分布)。 和更改
DocumentRoot "/var/www/html"
到
DocumentRoot "/var/www/html/myframework/public"
你也可以用虚拟主机或别名做到这一点。
2.在框架的根目录下使用.htaccess + mod_rewrite。
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L,QSA]
3的index.php文件添加到您的框架的根目录。
<?php
header('Location: public/');
// This option is not really fix the problem. it's just redirect user to `/public`. you will always have `/public` in your urls.
// It's only work for home page.
// You can use only relative path to your assets.
你有'index.php'吗?因为当你没有'index.php'时会发生这种情况。 –
@FranzGleichmann是的,'index.php'位于我使用的PHP框架内的'public'文件夹中。 – Ferrazeth
是啊...你必须在* main *文件夹中有一个。您目前获取目录索引的地方。 –