Laravel 6.0 部署方案
当一个项目完成开发并进入线上测试阶段时,我们就要知道如何部署一个 laravel 项目,这里我将介绍一套标准化的项目部署方案
本方案为 oneinsteak 纯命令行解决方案,我们坚信“命令行才是最浪漫”的原则(没错,就是在针对你,宝塔)
一、代码 push 准备
将可以在本地开发环境能完美运行的代码提交到云端 git 仓库中,这里我们必须使用腾讯云开发者平台进行代码管理,记下仓库的地址:
https://git.dev.tencent.com/yourname/laravel-test.git
二、部署准备工作
准备好部署工具:
名称 | 介绍 |
Termius | ssh 客户端 |
WinSCP | sftp 客户端 (备用) |
准备好服务器相关数据:
名称 | 介绍 |
云服务器 | 根据开发文档内标识的规格购买服务器 |
服务器 ssh 账号密码 | ssh 客户端访问服务器进行操作的通行证 |
HTTPS 证书 | 根据不同服务器申请不同类型的HTTPS证书 |
服务器环境 | 服务器使用 Linux + Nginx + MySQL + PHP 环境,使用 oneinsteak 进行一键配置 |
服务器安全组 | 给必要的服务开放对应的入站端口 |
备案过的域名 | 一级、二级均可,具体申请方式请查看各服务商的 document |
phpMyAdmin 账号密码 | 以便我们新建数据库 |
三、开始部署
首先我们进入 oneinsteak 文件夹并启动 ./vhost.sh ,根据屏幕提示进行操作

完成后就可以得到如下的结果
#######################################################################
# OneinStack for CentOS/RedHat 6+ Debian 8+ and Ubuntu 14+ #
# For more information please visit https://oneinstack.com #
#######################################################################
Your domain: test.wkarrow.top //站点域名
Virtualhost conf: /usr/local/nginx/conf/vhost/test.wkarrow.top.conf //站点的nginx配置文件
Directory of: /data/wwwroot/test.wkarrow.top //站点的根目录
Rewrite rule: /usr/local/nginx/conf/rewrite/laravel.conf
我们接下来就需要前往站点根目录将我们的代码从腾讯云开发者平添 clone 到服务器,oneinsteak 新建的虚拟站点均在 /data/wwwroot/ 下,我们 cd 过去并找到我们的项目
cd /data/wwwroot/test.wkarrow.top
进入 test.wkarrow.top 文件夹后,执行 git 指令将我们的代码 clone 到服务器
git clone https://git.dev.tencent.com/yourname/laravel-test.git .
注意后面的点,别忘了,原因吧,你可以试试不加什么效果,也没啥问题😀

届时代码就会从云端 git 仓库 clone 到服务器端,代码的部署工作到此告一段落
四、项目配置
当前仅将代码放在了服务器上,我们未进行任何配置,此时访问域名是无用的,我们开始接下来的配置
1.修改 nginx 配置文件
首先需要修改本项目的 nginx 文件,根据之前的提示,打开该文件
vim /usr/local/nginx/conf/vhost/test.wkarrow.top.conf

我们需要修改其中的这项
server {
listen 80;
server_name test.wkarrow.top;
access_log /data/wwwlogs/test.wkarrow.top_nginx.log combined;
index index.html index.htm index.php;
root /data/wwwroot/test.wkarrow.top/public; <---这里
include /usr/local/nginx/conf/rewrite/laravel.conf;
#error_page 404 /404.html;
#error_page 502 /502.html;
location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
location ~ /\.ht {
deny all;
}
}
加个public,至此我们方可通过访问域名来直接读取 public 文件下的入口文件并显示对应的页面
2.初始化 .env 文件
进入项目根目录,我们复制一下 .env.example 文件到本地
cp .env.example .env
届时会在当前目录下初始化一个 .env 文件,此时我们就可以根据实际将 .env 内的信息进行补充
3.新建数据库
我们进入 phpMyAdmin 中,新建一个数据库和用户,数据库名和用户账户密码均以 .env 文件为参考

4.项目初始化
4.1composer 安装
composer install
最好在composer之前将源换成国内镜像,这里我们推荐阿里云的源,换源操作如下:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
4.2生成 laravel key
生成 laravel key 并写入到 .env 中
php artisan key:generate
此时检查 .env 的APP_KEY 便可生成的 laravel key
4.3数据库迁移
之后在新建的数据库下生成我们设置好的数据表及其填充内容
php artisan migrate --seed
4.4修改项目文件夹权限
首先进入 wwwroot 文件夹下,执行如下操作
sudo chown -R www test.wkarrow.top
sudo chmod -R 777 test.wkarrow.top
至此,访问 test.wkarrow.top 便可看到项目全貌,大功告成!