laravel+nginx项目部署

2020.3.21部署laravel项目至一个带有yum的centOS 7 服务器的一些总结

 

1.更新yum
yum -y update

2.yum安装git
2.1查看系统是否已经安装git
git --version
2.2安装git
yum install -y git

3.git下载项目

4.安装nginx
4.1 安装前准备(由于执行了1的更新,所以此步忽略)
yum install yum-utils
4.2 添加源(与判断添加源)
yum search nginx
4.3 安装Nginx
yum install nginx
4.4 查看是否安装成功
安装完后,rpm -qa | grep nginx 查看
启动nginx:systemctl start nginx
查看nginx的状态:systemctl status nginx


5.安装php
5.1 安装rpm包
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

5.2 查看
yum search php71w

5.3 安装php以及扩展
yum install php71w php71w-fpm php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath

5.4 开启服务
service php-fpm start
开机自启动设置
chkconfig php-fpm on
检查是否启动 
ps aux |grep php-fpm

5.5 往php-fpm.conf配置中加入错误日志及慢查询日志(慢查询日志配法写在https://blog.csdn.net/a26637896/article/details/105003317)

6.安装vue
6.1 安装node.js
6.1.1 创建并进入node目录
mkdir /usr/local/node
cd /usr/local/node
6.1.2 下载并解压
wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.xz
xz -d node-v8.11.2-linux-x64.tar.xz
tar -xvf node-v8.11.2-linux-x64.tar
6.1.3 创建软连接
ln -s /usr/local/node/node-v8.11.2-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node/node-v8.11.2-linux-x64/bin/npm /usr/local/bin/npm
6.1.4 验证是否安装成功
node -v
npm -v


7.配置php
7.1 配置php的env
7.2 安装composer
7.2.1 yum  -y install curl
7.2.2 通过curl下载安装composer(可能存在网络问题多试几次、还有要先下载安装php环境)
curl -sS https://getcomposer.org/installer | php
布置到全局
sudo mv composer.phar /usr/local/bin/composer

7.3 更换composer源

华为云
composer config -g repo.packagist composer https://mirrors.huaweicloud.com/repository/php/

Packagist / Composer 中国全量镜像

composer config -g repo.packagist composer https://packagist.phpcomposer.com

7.4 安装php扩展
7.4.1 查看php扩展
/usr/bin/php -m
7.4.2 安装我项目的composer update的前提扩展(不同项目前提扩展不一致)
yum install php71w-xml

7.5 composer install/update
(本人项目在这一步前要先安装php的xml扩展,而且还得先连接好有一定数据结构的数据库)

8 安装swoole
8.1 查看swoole是否已安装
php --ri swoole
8.2 安装swoole
sudo wget https://github.com/swoole/swoole-src/archive/v4.0.4.zip
sudo unzip v4.0.4.zip
*** 如果没有unzip,先安装    sudo yum install unzip   再  sudo  unzip v4.0.4.zip

cd swoole-src-4.0.4    (进入解压包)
sudo phpize
***如果没有phpize  先安装  sudo yum install php7.1-dev  再    sudo phpize

sudo ./configure
sudo make
sudo make install
8.3 安装后再php中加入
安装成功后,在php.ini中加入so
位置 XX/php.ini
添加配置   extension=swoole.so

8.4 验证是否成功安装且关联php
php --ri swoole

9.配置nginx的conf 及 放置 ssl文件(我这边ssl文件不要了)
9.1 配置laravels(看是否执行了8,没动到8的部分忽略此项)
在   nginx.conf  配置中添加
upstream laravels {
    # By IP:Port
    server 127.0.0.1:5200 weight=5 max_fails=3 fail_timeout=30s;
}
在service配置中添加
location @laravels {
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        proxy_pass http://laravels;
    }
9.2 配置php(laravel)项目相关的nginx配置(这一块不写了,每个nginx项目都应有自己的nginx配置文件)
9.3 放置ssl文件及带入
文件放入与配置文件一致的路径,然后这边的路径就好写了
在service配置中添加
ssl off;
ssl_certificate      XXX(路径及文件名).pem;
ssl_certificate_key  XXX(路径及文件名).key;

10.将nginx和php-fpm加入服务及开机自启动(可选)

11.laravel项目相关一些注意事项
11.1 如果是本地调试,要记得开debug模式,调试完关闭
11.2 storage文件夹给予开放权限(777)
11.3 个人项目细节(要加上一些文件,最好是用sh,然后部署时跑一下自己所有的sh(原则上是越少越好))

11.4 注意看有没有没写在配置里的外部链接(比如链接其他服务器的数据库、redis等),然后外部设置白名单导致新迁入的ip不在白名单中报错

11.5如果是做多服务器负载均衡,需要注意的是laravel有关于暂存信息(比如session、cache等)的存放conf都要改成redis或者其他能被共享的暂存区,千万不要放在本地file中,不然其他服务器会找不到,然后出现很有规律的异常,比如下图所示(我这边是三个服务器,可以发现每一组3个中只有1个token验证成功了):

laravel+nginx项目部署_第1张图片

12.数据库导入sql(因为mysql和redis是客户装在另一台服务器上,因此项目服务器便不重复安装了)

13.通过curl http://localhost调试本地是否正确,然后再去浏览器上访问并继续调试

你可能感兴趣的:(laravel,nginx,php)