通过apache与localhost争夺一个laravel项目

我刚刚安装了一个laravel项目到我的Home/public_html文件夹。 我给了它一个名字,为此我们称之为laravel 。 所以安装到Home/public_html/laravel的模板,然后我运行一个composer install 。 我有一个数据库密码错误。 我修好了,再跑一遍,一切顺利。 然后我创build了一个迁移,一个控制器和一个视图。 我尝试通过localhost / laravel / public / events (事件是我创build的视图)导航到它。我得到一个404.我记得我需要一个configuration文件在etc/apache2/sites-available我创build了这个结构的configuration文件:

 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /home/user/public_html/laravel/public/ <Directory /home/user/public_html/laravel/public/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/laravel-error.log CustomLog ${APACHE_LOG_DIR}/laravel-access.log combined </VirtualHost> 

然后,我创build了一个symlinksites-enabled文件夹。 这没有帮助。 然后我导航到localhost/laravel ,它只是给我的目录结构。

我错过了什么? 我做错了什么?

我在public_html里面有另外一个文件夹,它有自己的configuration文件,它完全可以工作(它指向home/user/public_html/ ,它也有一个符号链接,每个项目中有什么告诉项目使用哪个configuration?我的这方面的知识真的在这里停了下来,基本上我已经用尽了我所知道的,我错过了什么?

哦,我也重新启动了Apache。 – 通过我刚刚详述的步骤几次。

将Laravel安装暴露给Web服务器从来就不是一个好主意。 既然你可以访问laravel文件夹的文件列表,我相信你的文档根目录被设置为/home/user/public_html

解决这个问题的更好的方法如下。

  1. 将整个laravel安装在public_html目录之外。 我们假设在/home/user/development

  2. 您可能需要将以下内容添加到DocumentRoot下面的apache配置。

     Alias /laravel /home/user/development/laravel/public 
  3. 添加以下Directory配置

     <Directory /home/user/development/laravel/public/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> 
  4. /home/user/development/laravel/public/下面的RewriteEngine规则中添加如下的.htaccess文件。

      RewriteBase /laravel 

重启apache2服务器,你的站点应该在localhost / laravel上可用。 确保public_html文件夹中没有名为laravel的文件夹。