我的laravel项目在@Html.ActionLink
推荐的localhost中工作得很好。
现在我正试图在网络主机上托管它。
我在artisan serve
下上传了我的项目并复制了public_html
文件夹中的所有文件,我还编辑了public
app.php
以显示错误。
我编辑index.php
'debug' => env('APP_DEBUG', true),
但它仍然会返回500内部服务器错误。
我也尝试另一种方式,
将我的项目上传到除require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
文件夹以外的根目录,并将public
文件夹上传到public
目录。
我将public_html
编辑为
index.php
我找不到我的代码有什么问题。 我如何将我的laravel 5.2项目部署到网络托管中。?
答案 0 :(得分:0)
否否。您需要通过一些改进来实现第二种选择。让我向你解释一下。 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这样的任何项目文件,这是一种不好的做法。