Laravel 6.0 部署方案

当一个项目完成开发并进入线上测试阶段时,我们就要知道如何部署一个 laravel 项目,这里我将介绍一套标准化的项目部署方案

本方案为 oneinsteak 纯命令行解决方案,我们坚信“命令行才是最浪漫”的原则

一、代码 push 准备

将可以在本地开发环境能完美运行的代码提交到云端 git 仓库中,这里我们必须使用腾讯云开发者平台进行代码管理,记下仓库的地址:

https://git.dev.tencent.com/yourname/laravel-test.git

二、部署准备工作

准备好部署工具:

名称介绍
Termiusssh 客户端
WinSCPsftp 客户端

准备好服务器相关数据:

名称介绍
云服务器根据开发文档内标识的规格购买服务器
服务器 ssh 账号密码ssh 客户端访问服务器进行操作的通行证
HTTPS 证书根据不同服务器申请不同类型的HTTPS证书
服务器环境 服务器使用 Linux + Nginx + MySQL + PHP 环境,使用 oneinsteak 进行一键配置
服务器安全组给必要的服务开放对应的入站端口
备案过的域名一级、二级均可,具体申请方式请查看各服务商的 document
phpMyAdmin 账号密码以便我们新建数据库

三、开始部署

首先我们进入 oneinsteak 文件夹(默认在系统根目录下)并启动 ./vhost.sh ,根据屏幕提示进行操作

非https项目的虚拟站点操作流程

其中

#######################################################################
#       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 .
代码实际部署情况展示

届时代码就会出现到服务器端,代码的部署工作到此告一段落

四、项目配置

当前仅将代码放在了服务器上,我们未进行任何配置,此时访问域名是无用的,我们开始接下来的配置

1.修改 nginx 配置文件

首先需要修改本项目的 nginx 文件,根据之前的提示,打开该文件

vim /usr/local/nginx/conf/vhost/test.wkarrow.top.conf
这是 oneinsteak 为你生成的默认配置文件

我们需要修改其中的这项

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 文件下的入口文件并显示对应的页面

2.初始化 .env 文件

进入项目根目录,我们复制一下 .env.example 文件到本地

cp .env.example .env

届时会在当前目录下初始化一个 .env 文件,此时我们就可以根据实际将 .env 内的信息进行补充

3.新建数据库

我们进入 phpMyAdmin 中,新建一个数据库和用户,数据库名和用户账户密码均以 .env 文件为参考

数据库名、数据库用户账号密码示例

4.项目初始化

4.1.composer 安装

composer install

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 便可看到项目全貌,大功告成!

NightingaleWK

曾经我是一名冒险家,直到我的膝盖中了一箭。

相关推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

Laravel 6.0 部署方案
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close