我刚刚安装了一个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了一个symlink
到sites-enabled
文件夹。 这没有帮助。 然后我导航到localhost/laravel
,它只是给我的目录结构。
我错过了什么? 我做错了什么?
我在public_html
里面有另外一个文件夹,它有自己的configuration文件,它完全可以工作(它指向home/user/public_html/
,它也有一个符号链接,每个项目中有什么告诉项目使用哪个configuration?我的这方面的知识真的在这里停了下来,基本上我已经用尽了我所知道的,我错过了什么?
哦,我也重新启动了Apache。 – 通过我刚刚详述的步骤几次。
将Laravel安装暴露给Web服务器从来就不是一个好主意。 既然你可以访问laravel
文件夹的文件列表,我相信你的文档根目录被设置为/home/user/public_html
。
解决这个问题的更好的方法如下。
将整个laravel安装在public_html
目录之外。 我们假设在/home/user/development
您可能需要将以下内容添加到DocumentRoot
下面的apache配置。
Alias /laravel /home/user/development/laravel/public
添加以下Directory
配置
<Directory /home/user/development/laravel/public/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
在/home/user/development/laravel/public/
下面的RewriteEngine
规则中添加如下的.htaccess
文件。
RewriteBase /laravel
重启apache2服务器,你的站点应该在localhost / laravel上可用。 确保public_html
文件夹中没有名为laravel
的文件夹。