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 php71w-xml
5.4 查看php扩展(有自己需要然后本文未提及的扩展自行补充)
/usr/bin/php -m
5.5 开启服务
service php-fpm start
检查是否启动
ps aux |grep php-fpm
5.6 往php-fpm.conf配置中加入错误日志及慢查询日志(慢查询日志配法写在关于php-fpm配置慢日志的问题_a26637896的博客-优快云博客)
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 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
如果出现如下所示错误
[root@localhost swoole-src-4.0.4]# ./configure
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for cc... no
checking for gcc... no
configure: error: in `/root/swoole-src-4.0.4':
configure: error: no acceptable C compiler found in $PATH
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
则需要额外安装
sudo yum install gcc
sudo yum install gcc-c++
之后继续
sudo make & 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 on;
ssl_certificate XXX(路径及文件名).pem;
ssl_certificate_key XXX(路径及文件名).key;
10.安装redis(非11.5的情况,自己搭建redis)(转载来自:CentOS7 linux下yum安装redis以及使用 - 程序员,贵在坚持 - 博客园)
10.1 安装redis数据库
yum install redis
10.2 下载fedora的epel仓库
yum install epel-release
10.3 启动redis服务
systemctl start redis
systemctl stop redis 停止服务
systemctl restart redis 重启服务
systemctl status redis 查看状态
ps -ef | grep redis 查看redis进程
netstat -lnp|grep 6379 查看端口(如果提示找不到命令,先执行命令 yum install net-tools 和 yum search ifconfig下载依赖插件)
10.4 开放端口号(如果没开启任何防火墙请忽略)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=6379/tcp --permanent
注意:80端口是必须要开放的
重启防火墙:systemctl restart firewalld
10.5 设置redis 远程连接和密码(需要的话)
输入命令vi /etc/redis.conf进入编辑模式
将“bind 127.0.0.1”注释掉,否则只有本机才能访问
保护模式修改为no(protected-mode no)
修改密码为 123456(requirepass 123456)
保存并退出编辑
之后重启redis:systemctl restart redis
10.6 进入redis
命令redis-cli -h 127.0.0.1 -p 6379
然后输入info,如果提示NOAUTH Authentication required,就输入用户名和密码(auth 123456),然后再输入info
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验证成功了):
12.数据库导入sql(因为mysql和redis是客户装在另一台服务器上,因此项目服务器便不重复安装了)
13.通过curl http://localhost调试本地是否正确,然后再去浏览器上访问并继续调试
14.将nginx和php-fpm加入服务及开机自启动(可选)
14.1 chkconfig
14.1.1 设置自启动:chkconfig XXX on
14.1.2 查看自启动列表:chkconfig
14.2 systemctl
14.2.1 设置自启动:systemctl enable XXX
14.2.2 查看自启动列表:systemctl list-unit-files|grep enabled