thinkphp 项目部署流程

一 , 安装 git

1
yum install git

二 , 安装 php

  1. 清理安装好的 php – 可能你已经使用了系统的版本安装
1
2
# 这里找打的都要删除
yum list installed | grep php
  1. 升级源 这样升级的特点就是快
1
2
3
4
5
sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php80
sudo yum install php

  1. 安装 php
1
2
yum search php8
yum install php8
  1. 关注一下 php-fpm 不然配置 nginx 之后运行不起来
1
2
3
4
5
yum install php-fpm
## 启动服务
sudo service php-fpm start

### 启动后 默认占用端口9000 php
  1. 下载 composer composer 官网国内
1
2
3
4
5
6
7
8
# 下载安装脚本 - composer-setup.php - 到当前目录
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
# 执行安装过程。
php composer-setup.php
# 删除安装脚本
php -r "unlink('composer-setup.php');"
# 全局指令化 -- 不安全 但是测试环境 我底盘我做主 擦了就擦了
sudo mv composer.phar /usr/local/bin/composer

安装 mysql (正式环境一般不用搞这个事情)

1
2
3
4
5
6
7
8
9
## 这里的地址可能有问题, 但是可以去官网找一下
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum-config-manager --enable mysql80-community
sudo yum install mysql-community-server
## 配置开机启动 和 启动mysql
sudo systemctl start mysqld
sudo systemctl enable mysqld


  1. 查看 mysql 默认密码
  2. 修改 mysql 密码
  3. 配置远程登录
1
2
3
4
5
6
7
8
9
10
11
12
13
# 启动服务
systemctl start mysqld
# 开启启动 这个个人觉得还是比较重要的
systemctl enable mysqld
# 查看密码 邪恶了 很重要哦
grep 'temporary password' /var/log/mysqld.log
# 设置密码
set password for root@localhost = password('新密码');
# 更新数据库
FLUSH PRIVILEGES;
# 容许root 用户远程访问 通过使用root 外加地址的方式进行访问 , 这个在没有世界业务 测试环境下可以这样设置 , 但真实环境下是不容许有这样的设置的, 为了安全起见 我们一般使用固定地址或者白名单
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
# 使用完命令之后注意数据库同步生效

安装 nginx

  1. 方案一
1
yum install nginx
  1. 方案二 编译方式安装 nginx

    1. nginx 包下载地址: http://nginx.org/en/download.html
      nginx 选择

    2. 复制地址
      Alt text

    3. 下载

    1
    wget http://nginx.org/download/nginx-1.22.1.tar.gz
    1. 解压
    1
    2
    3
    4
    5
    6
    tar xf nginx-1.22.1.tar.gz
    cd nginx-1.22.1
    make && make install
    # 指定安装路径
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre

    1. 配置软件链接 – 很多指令会用这个
    1
    ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
    1. 测试
      Alt text

      1
      2
      3
      4
      nginx -v

      nginx -t

      Alt text

thinkphp 项目部署

我这里配置了一个 gogs 方便自己代码上传 , 同时可以配置 钩子指令, 自动发版

1
2
3
4
5
mkdir /var/www/server
cd /var/www/server
git clone xxxx@xxx thinkphp
cd thinkphp
composer update

配置 nginx

1
2
cd /usr/local/nginx/config
vim nginx.config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server {
listen 80;
server_name api.xxx.com;
root /var/www/server/thinkphp/public;
index index.php index.html index.htm;
# 添加上 解决路由地址一直不正确的问题 : 解决这个问题也花了不少时间 , 网上其他版本可能有误
location /{
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}

location ~ \.php$ {
### 很重要 php 后期版本 不再是 php-fpm.scok 了
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

测试效果

Alt text


谢谢观赏