如何设置别名或 VirtualHost 以在 Apache2 上运行 laravel 项目
Posted
技术标签:
【中文标题】如何设置别名或 VirtualHost 以在 Apache2 上运行 laravel 项目【英文标题】:How to set Aliases or VirtualHost to run a laravel project on Apache2 【发布时间】:2016-07-08 08:34:57 【问题描述】:我开始学习如何在 vps 上设置灯,我正在尝试运行一个 laravel 项目。
这是我的 000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Alias /laravelproject /var/www/laravelproject/public
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
我正在尝试使用 /laravelproject 访问它,因为我被重定向到登录页面 ip/laravelproject/login )。但我得到一个 404 文件未找到错误。不是一个设计精美的 laravel,而是一个原始且丑陋的服务器错误
找不到
在此服务器上找不到请求的 URL /laravelproject/login。
Apache/2.4.10 (Ubuntu) 服务器在 '' 端口 80
当然,我没有要设置的 laravelproject.com 域,我只想通过 my_server_ip/laravelproject 访问它。
如何设置虚拟主机或别名以在所有路由都正常运行的情况下运行它?
【问题讨论】:
如果有人仍在为此寻找答案。 sudo a2enmod rewrite 解决了我的问题,我花了几个小时寻找它。所以这可能是你的解决方案。 【参考方案1】:如果尚未启用,您也可以尝试启用 apache mod-rewrite。
sudo a2enmod rewrite
sudo systemctl restart apache2
【讨论】:
【参考方案2】:您需要确保将/var/www/laravelproject/public
目录设置为AllowOverride All
(我相信您已经通过将/var/www
设置为All 来解决此问题)。然后确保您的public
目录中的.htaccess
文件设置正确:https://github.com/laravel/laravel/blob/master/public/.htaccess
这是因为 Apache 正在寻找不是文件的/public/login/index.html
。 Laravel 的 .htaccess
会适当地重定向这些请求,但它必须在您的公用文件夹中,并且 Apache 必须允许覆盖
编辑:
<Directory /var/www/laravelproject/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
【讨论】:
.htaccess 与您发布的相同。问题正是你所说的。我尝试使用 index.php 在公共内部创建一个文件夹登录名,这就是它加载的内容 OK 查看编辑。显然公用文件夹不允许覆盖,因此将该代码放在 apache 配置中并明确允许该文件夹。 我试图编辑 /etc/apache2/apache2.conf 'service apache restart
我认为
当然。现在我不确定我是否编辑了正确的文件,或者我是否应该尝试在不同的 conf 文件上编写虚拟主机以上是关于如何设置别名或 VirtualHost 以在 Apache2 上运行 laravel 项目的主要内容,如果未能解决你的问题,请参考以下文章
如何让 bash 完成以在 Windows 10 bash 中使用别名?
emacs:我可以定义一个别名以在 minibuffer 中使用 find-file
如何分别创建多个 Flutter 版本别名以在 Windows PC 的命令提示符中使用 [关闭]