PHP环境部署(php7.0+nginx+redis)
2020-10-14 本文已影响0人
abelyu
服务器系统以centos 6.8为例(cat /etc/*release*查看linux系统版本)
一. 安装并启动php7.0
1.添加yum的php库(centos 6.8)
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
2.yum安装php7.0
yum install php70w-common php70w-fpm php70w-opcache php70w-gd php70w-mysqlnd php70w-mbstring php70w-pecl-redis php70w-pecl-memcached php70w-devel
3.php -v 查看php是否安装成功
4./usr/sbin/php-fpm -R启动php
netstat -lnt | grep 9000 查看php是否启动
二. 安装ngnix
1.添加yum的nginx包(centos 6.8一般木有nginx的yum包)
rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
2.yum安装nginx
yum -y install nginx
3.启动nginx
service nginx start
三. 安装redis
1.安装redis的yum源
yum install epel-release
2.安装redis
yum install redis 一路按y
3.启动redis
service redis start
四. 安装composer
1.下载composer
curl -sS https://getcomposer.org/installer | php
2.将composer.phar文件移动到bin目录以便全局使用composer命令
mv composer.phar /usr/local/bin/composer
3.切换国内源
composer config -g repo.packagist composer [<u>https://packagist.phpcomposer.com</u>](https://packagist.phpcomposer.com)
或composer config -g repo.packagist composer [<u>https://php.cnpkg.org/</u>](https://php.cnpkg.org/)
五. 安装git(目标服务器已安装)
六. 配置git用户及邮箱,生成sshkey
1.git config --global user.name "xxx"
2.git config --global user.email "xxx@xxx.com"
3.ssh-keygen -t rsa生成秘钥公钥,地址在~/.ssh/
公钥copy到gitlab
七. git拉取项目代码
1.进入项目目录
2.git clone xxxxx(git的ssh地址)
3.项目拉取后进入项目目录,
拷贝环境配置文件 cp ./.env.example ./.env(根据实际情况调整内容,包括域名,数据库地址等等)
使用composer update -vvv && composer install -vvv 更新拉取依赖的composer包
4.创建www-data用户及用户组(laravel默认使用用户)
创建用户组:groupadd -g 500 www-data
创建用户:useradd -d /home/www-data -m www-data -s /bin/bash -g www-data
5.给项目整个文件夹目录用户及用户组转移给www-data
chown -R www-data:www-data 项目目录xxx
进入 storages/framework 创建模板目录views
mkdir views
赋予storages读写权限 chmod -R 755 xxx
八. 配置nginx
进入/etc/nginx/
编辑nginx.conf 配置好nginx 及access等错误日志路径
保存后nginx -t测试 service nginx start启动 nginx -s reload 重启
九. 测试运行
修改php进程所属用户(安装php时默认给了apache用户,转移给项目所属用户(在php-fpm.conf 里面可以改,改完重启php),nginx也一样(在nginx.conf里可以修改,改完重启nginx),保证同一用户方便管理)
如果报错php session写入不了
进入/var/lib/php(没有就创建)赋予777权限
十. 监听队列任务
1.安装supervisor (守护进程)
yum install python-setuptools
easy_install supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
(1)修改配置 supervisorord.conf最后位置
[include]
files = /etc/supervisor/conf.d/*.conf
(2)创建conf.d/laravel-worker.conf
内容为
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /data/website/itsm/artisan queue:work --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=www-data #*注意用户改为已存在项目用户
numprocs=3
redirect_stderr=true
stdout_logfile=/data/website/itsmlog/worker.log
(3)开启laravel-worker
sudo supervisord -c /etc/supervisord.conf
sudo supervisorctl -c /etc/supervisor/supervisord.conf
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
(4)可使用supervisorctl stop all停止
supervisorctl reload 重启(若再碰到磁盘写满等问题导致进程挂了执行此命令)
supervisorctl status 查看守护的进程
十一. 编辑定时任务crond
#crontab -e
添加内容
* * * * * php /项目路径/artisan schedule:run >> /dev/null 2>&1
(此处php为可执行php命令,否则切换到php执行文件目录入/usr/bin/php)
保存完会自动更新定时任务
十二. 服务器上保存的文件及图片
1.可进入服务器根目录创建/backup/itsm/public/upload
2.给项目public/upload创建软链接到1指定位置
十三. 查看各进程运行状态
1.查看nginx
#ps aux|grep nginx
2.查看php
使用如下命令,查看是否9000端口被php-fpm占用:
#netstat -tunpl | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1108/php-fpm
3.查看redis
使用如下命令,查看是否6379端口被redis-server占用:
#netstat -tunpl | grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 22121/redis-server
4.查看crontab定时任务是否启动
#service crond status
crond (pid 27301) is running...
5.查看supervisor是否正常运行
#supervisorctl status
laravel-worker:laravel-worker_00 RUNNING pid 24721, uptime 17:00:54
laravel-worker:laravel-worker_01 RUNNING pid 24722, uptime 17:00:54
laravel-worker:laravel-worker_02 RUNNING pid 24723, uptime 17:00:54
laravel-worker:laravel-worker_03 RUNNING pid 24724, uptime 17:00:54
laravel-worker:laravel-worker_04 RUNNING pid 24725, uptime 17:00:54
laravel-worker:laravel-worker_05 RUNNING pid 24726, uptime 17:00:54
laravel-worker:laravel-worker_06 RUNNING pid 24727, uptime 17:00:54
laravel-worker:laravel-worker_07 RUNNING pid 24728, uptime 17:00:54