【发布时间】:2015-06-14 21:49:26
【问题描述】:
我在我的开发机器上的 artisan 端口 8000 上运行 laravel 项目,现在我需要将它移动到在 apache 下配置的生产服务器(ubuntu),我现在想对我的项目进行更改,以便完美运行。
【问题讨论】:
我在我的开发机器上的 artisan 端口 8000 上运行 laravel 项目,现在我需要将它移动到在 apache 下配置的生产服务器(ubuntu),我现在想对我的项目进行更改,以便完美运行。
【问题讨论】:
您的项目不需要任何更改。您只需要设置正确的 apache2 虚拟主机
最重要的是确保将 DocumentRoot 设置为公用文件夹。
【讨论】:
这是我用于大多数项目的配置(但可以通过其他不同方式完成)
将您的 laravel 项目 dist 文件夹的 public 目录的内容放在 apache 的 public_html 或 www 目录中(/var/www/html/ 在 Ubuntu 14.04
将其余的 laravel 文件(除了 public 文件夹之外的所有文件)放在 public_html 之外(出于安全原因推荐 - 尤其是在生产中) - 在 Ubuntu 14.04 上,结构看起来像这样
- /var/www/
- laravel
app
bootstrap
...
- html
index.php
css
...
更改一些值:
index.php里面:改变
require __DIR__.'/../bootstrap/autoload.php'
到
require __DIR__.'/../laravel/bootstrap/autoload.php'
和
$app = require_once __DIR__.'/../laravel/bootstrap/app.php'; 到 $app = require_once __DIR__.'/../laravel/bootstrap/app.php';
在你的 laravel/bootstrap/paths.php 文件中:
'public' => __DIR__.'/../public'
到
'public' => __DIR__.'/../../html'
确保 .htaccess 文件存在,如果默认 .htaccess 文件导致问题,请将其内容替换为:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
并确保您对 laravel/app/storage 文件夹具有写入权限。
【讨论】: