php - 如何配置 apache web 服务器部署 laravel 5

标签 php apache

我想在我的本地 apache 网络服务器上提供我的 Laravel 应用程序。但是,我遇到了问题。

为了测试我制作的应用程序是否可以在 apache 服务器上运行,我创建了一个非常简单的新应用程序,其中包含两个路由。

Route::group(['middleware' => 'web'], function() {
    Route::get('/', function() { return view('myview'); });
    Route::get('/link', function() { return view('myotherview'); });
});

当我从浏览器进入我的 public 目录时,它工作正常,它连接到 / 路由。但是,当我给出另一条路线的链接 (/link),并尝试输入该路线时,它会显示 404 not found 错误。这是我在 myview View 中提供的到达 /link 路线的链接:

<a href="{{ url('/link') }}">Go</a>

当我显示页面的源代码时,上面的行呈现为 localhost/mylaravelapp/public/link

我已经在互联网上研究了这个问题,并且有一些关于启用 apache mod_rewrite 的建议。我还通过键入 a2enmod mod_rewrite 完成了该操作。然而,这似乎没有用,得到了相同的结果。我该如何解决这个问题?

我的 laravel 版本是 5.2,apache 2.4.7,我使用的是 xubuntu 14.04。

最佳答案

这是对我有用的常用配置(与您拥有相同的操作系统、Apache 和 Laravel 版本)。 编辑 apache2 配置文件(它应该在 /etc/apache2/sites-available/000-default.conf 下),添加:

Alias /yourdir /var/www/html/yourdir/public/
<Directory "/var/www/html/yourdir/public">
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>

其中“yourdir”显然是您在/var/www/html 路径下的文件夹。修改配置文件后重启服务器

sudo service apache2 restart

现在你的 public/.htaccess 应该是这样的:

RewriteEngine On
RewriteBase /yourdir/

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Authorization Headers
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

关于php - 如何配置 apache web 服务器部署 laravel 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35501041/

相关文章:

PHP 聊天室。不显示用户名,仅显示消息

apache - 如何在 Windows 中运行 Apache 基准负载测试?

php - 打卡/打卡 使用 mysql 或 php 数组函数将多个用户的进入时间合并起来

php - 如何在 laravel 的链接按钮中隐藏 URL

php - POST 问题

java - Apache FOP : multiple page PDF from xml array list iteration

apache - 在单个 tomcat 实例上混合使用 https 和 http

php - 如何更改/隐藏服务器目录名称?

php - 通过 accessRules 将 bizRule 参数传递给 RBAC?

php - 解析字符串以获取数组元素