MENU

Laravel部署到生产环境CentOS+宝塔面板过程整理

June 11, 2019 • Read: 2573 • Laravel阅读设置

系统

本人使用的是 CentOS,具体安装过程就不在本文体现了

宝塔面板安装

安装命令
$ yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

准备工作

Git 升级

查看当前版本

$ git --version
git version 1.8.1

当前版本过低

安装依赖软件

$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
$ yum install  gcc perl-ExtUtils-MakeMaker

卸载系统自带的低版本 Git

$ yum remove git

编译安装最新的 Git 版本

$ cd /usr/local/src/
$ wget https://www.kernel.org/pub/software/scm/git/git-2.22.0.tar.xz
$ tar -vxf git-2.22.0.tar.xz
$ cd git-2.22.0
$ make prefix=/usr/local/git all
$ make prefix=/usr/local/git install
$ echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile
$ source /etc/profile

检查 Git 版本

$ git --version
git version 2.22.0

生成 Git 秘钥

配置 Git

$ git config --global user.name "Your Name"
$ git config --global user.email your@example.com

查看是否有密钥文件

ls -al ~/.ssh/

添加密钥

ssh-keygen -t rsa -C "your_email@example.com"

一路回车确认 yes
再次查看秘钥文件是否创建

ls -al ~/.ssh

可以看到以下两个文件:

  • id_rsa —— SSH 秘钥的 私钥 (Private Key)
  • id_rsa.pub —— SSH 秘钥的 公钥 (Public Key)

开始部署

初次部署

创建站点
WX20190621-130731.png

cd 到网站目录,克隆你的项目

git clone git@你的Git项目地址.git

记得把克隆的项目从项目文件夹剪切到网站根目录

修改运行目录
WX20190621-141323.png

克隆完成后需要安装项目需求的包裹

composer install

提示如下错误:

意思是 composer 版本太低,请提示升级 composer

composer selfupdate

再次执行仍然报错,提示如下错误:

意思是没有启用 PHP 的 fileinfo 扩展,我们来启用一下

再次执行仍然报错,提示如下错误:
WX20190621-111714.png

意思是我们禁用了proc_open函数,我们取消一下禁用
WX20190621-112330.png

再次执行composer install没问题了,如图所示
WX20190621-112718.png

创建创建.env 环境文件

cp .env.example .env

设置为 nginx/Apache 的实际的用户组,宝塔的是 www

chown -R www:www *

设置权限

chmod -R 755 *
chmod -R 777 storage

生成新的 app key

php artisan key:generate

修改数据库信息

[...]
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
[...]

数据库迁移

php artisan migrate

如果有种子文件(seeder)的话,继续运行

php artisan db:seed

以上两个命令可以合并

php artisan migrate --seed

如果你用了 Laravel Mix 来编译前端文件,那么你还需要

yarn install
npm run dev

更新部署

先自己手动备份数据库的全部内容,可以用 MySQL 的 Dump

停掉网站

php artisan down

更新代码及数据库

git pull
php artisan migrate

各种清空缓存和重建缓存

php artisan clear-compiled
php artisan cache:clear
php artisan config:cache
composer dump-autoload --optimize
php artisan serve

关闭维护状态,更新完毕

php artisan up