artisan serve
推荐我的laravel项目在localhost中运行良好。现在我正试着把它放在网络主机上。我在public_html
下上传我的项目,并从public
文件夹复制所有文件,我还编辑了app.php
'debug' => env('APP_DEBUG', true),
以显示错误。
我编辑index.php
require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
但它仍然返回500内部服务器错误。
我也尝试了另一种方式,将我的项目上传到除public
文件夹外的根目录,并将public
文件夹上传到public_html
目录。并且我将index.php
编辑为
require __DIR__.'/laravel/bootstrap/autoload.php';
$app = require_once __DIR__.'/laravel/bootstrap/app.php';
我找不到我的代码有什么问题。如何将我的laravel 5.2项目部署到网络主机中。?
否否否。您需要通过一些改进来实现第二个选项。让我向你解释一下。laravel应用程序看起来像:
app/
config/
public/
public/index.php
.env
composer.json
artisan
对吧?很好,现在网络主机的结构看起来像:
/home/user/
/home/user/public_html/
但是上面的结构不适合我们的需要,因为应该访问public/
文件夹而不是public_html/
。所以…第一步是上传你的项目,比如说,像这样:
/home/user/home/project/app/
/home/user/project/config/
/home/user/project/.env
/home/user/project/composer.json
/home/user/project/public/index.php
下一步是决定是将项目作为主域,还是作为子域。
如果您的laravel项目将作为主域,只需编辑apache的配置文件
httpd.conf
并设置以下规则:DocumentRoot"/home/user/project/public"…
如果您想将项目作为子域,只需编辑apache的配置文件
httpd.conf
并添加一个虚拟服务器,如下所示:Listen 80 <VirtualHost *:80> DocumentRoot "/home/user//project/public" ServerName my-project.example.com # Other directives here </VirtualHost>
通过这个指令,您将告诉apache
Hey! when people visits my-project.example.com show them the content of my site under /home/user/site/public
。如果你正在使用cpanel,只需创建一个子域并将其指向
/home/user/site/public
仅此而已,您不需要破解任何项目的文件,如index.php,这是一种糟糕的做法。