如何在实际服务器上托管使用 laravel 5 制作的网站?
Posted
技术标签:
【中文标题】如何在实际服务器上托管使用 laravel 5 制作的网站?【英文标题】:How to host a site made with laravel 5 on a actual server? 【发布时间】:2016-01-27 01:31:33 【问题描述】:我使用 Laravel 5 框架创建了一个站点,但是我在本地服务器(localhost)上创建了站点。现在我想像我们托管的其他网站一样托管这个网站 在服务器上,但是当我将文件上传到服务器时,它不起作用,给我一个错误。
我已经在 Google 上进行了搜索,但没有找到任何完美的解决方案。我认为需要在 .env 文件或任何其他文件中进行一些更改。
谁能告诉我必须进行哪些更改才能像在本地服务器中一样完美地运行该站点? 还有一件事:我是否必须在托管服务器上安装 composer 和 laravel 才能运行文件?
【问题讨论】:
您遇到的具体错误是什么? 解析错误:语法错误,意外的 T_CLASS,在第 50 行的 /home/u105583023/public_html/connection/public/index.php 中需要 T_STRING 或 T_VARIABLE 或 '$' connection 是我放置所有文件的文件夹名称 第 50 行是这样的吗? Laravel 5.1:$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
您在服务器上运行的 PHP 版本是什么?如果我记得的话,你可以在控制台中输入php --version
。因为 Laravel 5.1 需要 PHP 5.5.9 或更高版本。
【参考方案1】:
1.- 在 localhost 中正确配置 Laravel 5 项目
2.- 仔细检查 PHP 5.4 的服务器配置(这是因为 .htaccess 文件上的每一个小改动都可能改变该配置)
3.- 在 public_html 的同一级别创建一个目录,并将项目放在该文件夹中。
4.- 将public(L5)的内容直接放在public_html上(注意不要误覆盖.htaccess文件)
现在...这是“棘手的部分”...结构
邮件
perl5
php
public_html
[框架文件夹]
ssl
在public_html
里面你可以看到Laravel 5公共目录的所有文件
转到 index.php 并编辑第 22 行
#From this
require __DIR__.'/../bootstrap/autoload.php';
#To this
require __DIR__.'/../[framework-folder]/bootstrap/autoload.php';
在第 36 行
#From this
$app = require_once __DIR__.'/../bootstrap/app.php';
#To this
$app = require_once __DIR__.'/../[framework-folder]/pulcro/bootstrap/app.php';
最后一步是编辑.htaccess
文件并添加一些行
RewriteEngine On
# Redirect Trailing Slashes...
RewriteCond %REQUEST_URI !^
RewriteRule ^(.*)$ /$1 [L]
【讨论】:
为我工作。老实说,有几种方法可以在共享主机上托管 Laravel 项目。 +1【参考方案2】:这可能是您的 PHP 在服务器上运行的错误版本,因为 Laravel 5.1 的要求是 PHP 5.5.9 或更高版本。
【讨论】:
不是“可能”,它绝对是。::class
是 PHP 5.5 的东西,称为类名解析 php.net/manual/en/migration55.new-features.php以上是关于如何在实际服务器上托管使用 laravel 5 制作的网站?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 google firebase 上托管我的 laravel 项目
在 000webhost 上托管时无法使用 jwt 连接到 laravel api
如何找出我的 Windows 域上托管 LDAP 的服务器?