由于这是一个与完成的整个项目相关的问题,我认为我不能发布整个代码。如果需要任何其他信息,请询问,我将编辑此信息。
我有一个使用此PHP框架为我的某个类开发的网站:https://github.com/panique/mini。这个网站适用于我从HostGator租用的服务器(它为我提供了LAMP堆栈),我现在正试图将网站移动到AWS EC2实例。
我使用亚马逊提供的文档和教程设置了AWS EC2,并且能够在安装LAMP堆栈后成功托管我的实例中的网页。我使用的PHP框架需要PHP 5.3+,我在我的EC2实例上。我还正确设置了MySql,并且能够使用MySql Workbench访问我的数据库。
我已将项目文件上传到提供网页的公共目录public List<MyClass> GetResults(p1, out string message)
{
string message;
OperatorClass obj= new OperatorClass();
return obj.GetResults(p1,out message);
}
。并使用我的MySql信息正确配置了var/www/html/
文件(它与我用于MySql Workbench的登录凭据完全相同)。
现在谈谈我遇到的问题。每当我浏览到mydomain.com/Project(假设项目在config.php
)时,我得到的目录索引而不是我开发的Web应用程序。从我在Github自述文件中读到的内容,PHP框架应该在var/www/html/Project
中配置MySql数据库信息后工作。我知道这是正确配置的,因为我能够调用数据库表。
有没有人有过这个PHP框架的经验?这是我第一次在Amazon Linux中设置LAMP堆栈。我想知道是否有任何与Apache相关的配置设置我应该配置?
答案 0 :(得分:2)
今天的新框架将/public
目录分开,以便访问请求。
您可以选择
<强> 1。将您的apache指向/public
编辑fie /etc/httpd/conf/httpd.conf
(取决于分发)。
并改变
DocumentRoot "/var/www/html"
到
DocumentRoot "/var/www/html/myframework/public"
您也可以使用VirtualHost或Alias执行此操作。
<强> 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.