安装nginx+php环境
由于项目需要,需要部署一个php开发环境,本文仅记录安装过程。
项目是用thinkphp5框架开发的,考虑到兼容性本次安装nginx1.24+php7.4。本次安装的操作系统是ubuntu20.4版本。
1 nginx安装
nginx选择已经编译好的版本,解压到/usr/local目录下。根据项目配置好nginx.conf文件,按照项目最佳实践,我们一般把通用配置放到nginx.conf,然后再新建一个vhost目录,里面再新建项目的配置文件,比如project.conf.在nginx.conf中include 这个project.conf。nginx安装有个需要注意的点,一般建议启动用户是不用root的,在nginx.conf中添加启动用户
user www www;
这里如果你的系统没有www用户则需要新建相应的用户和用户组
sudo groupadd www
sudo useradd -g www- -s /sbin/nologin -d /var/www www
nginx的安装比较简单。到这里就安装完成了
启动nginx
/usr/local/nginx/sbin/nginx
如果看到nginx进程,则表示启动成功了
vagrant@ubuntu-focal:~$ ps -ef|grep nginx
root 2346 1 0 Jul09 ? 00:00:00 nginx: master process ./nginx
root 51543 2346 0 05:43 ? 00:00:00 nginx: worker process
root 51544 2346 0 05:43 ? 00:00:00 nginx: worker process
vagrant 88105 88083 0 06:49 pts/1 00:00:00 grep --color=auto nginx
2 php安装
先设置好安装源
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
安装php7.4以及扩展
sudo apt-get install php7.4 php7.4-fpm php7.4-cli php7.4-common php7.4-mbstring php7.4-xml php7.4-zip php7.4-bcmath php7.4-curl php7.4-intl php7.4-gd php7.4-mysql
这里最重要的2个扩展是fpm以及mysql扩展。
安装完成以后,我们来看看php的相关配置文件
主要有2个配置文件,一个是/etc/php/7.4/fpm/php-fpm.conf
[global]
pid = /etc/php/7.4/var/run/php-fpm.pid
error_log = /var/log/php-fpm.log
log_level = notice[www]
listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 256
pm.start_servers = 30
pm.min_spare_servers = 30
pm.max_spare_servers = 60
pm.max_requests = 1024
pm.process_idle_timeout = 10s
request_terminate_timeout = 600
request_slowlog_timeout = 0
slowlog = var/log/slow.log
这里配置有几个点
1 pid:启动fpm的时候产生的系统进程pid的存储路径,要确保这个路径是存在的
2 error_log:fpm日志存放路径
3 log_level:日志级别,notice是默认的级别
4 listen:指定启动监听,我这里指定的是Unix Domain Socket类型,也可以指定ip和端口的模式
这里主要是在nginx的php项目转发配置中要配置成跟这里监听一致
另外指定了启动的user和group是www用户,因为php-fpm不允许是使用root启动
另一个是/etc/php/7.4/fpm/php.ini。这里主要是要配置使用的相关扩展,其它的一般就默认ok
我这里需要使用mysql,因此我们要打开mysql扩展,在php.ini里面搜索extension=pdo_mysql,
将前面的;注释去掉,保存。
我们可以尝试启动fpm服务了
systemctl start php7.4-fpm
如果能看到fpm进程,就说明启动成功了
如果启动不成功可以通过
journalctl -u php7.4-fpm.service -f
查看启动日志
到此php和nginx就安装好了。可以访问你的项目了