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


上一篇 下一篇

猜你喜欢

热点阅读