编译安装php7.4和nginx1.17. php-fpm.sock监听

795 阅读4分钟

本文已参与新人创作礼活动,一起开启掘金创作指路。

编译安装php7.4和nginx1.17. php-fpm.sock监听

系统环境centos7 1.设置时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.下载wget工具

yum -y install wget

yum -y :-y代表全部输入y安装(否则安装时一步已输入y)

3.下载php74

wget https://www.php.net/distributions/php-7.4.0.tar.gz

emm这个过程...漫长的一匹,如图下载好了

4.装系统所需要的依赖(安装php扩展时需要用到这些依赖)注:需要什么安装什么

yum -y install gcc gcc-c++ \makelibxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libicu-devel sqlite-devel freetype-devel openldap-devel openldap openldap-devel

5.解压php

tar -zxvf php-7.4.0.tar.gz

6.进入解压后的文件目录

cd /php-7.4.0

7.接下来进入三板斧 配置(configure)、编译(make)、安装(make install)。

./configure --prefix=/usr/local/php \
   --with-config-file-scan-dir=/usr/local/php/etc/ \
   --with-mhash --with-pdo-mysql \
   --with-openssl --with-mysqli \
   --with-iconv --with-zlib \
   --enable-inline-optimization \
   --disable-debug --disable-rpath \
   --enable-shared --enable-xml \
   --enable-bcmath --enable-shmop \
   --enable-sysvsem --enable-sysvshm --enable-mbregex \
   --enable-ftp \
   --enable-pcntl --enable-sockets \
   --with-xmlrpc --enable-soap \
   --without-pear --with-gettext \
   --enable-session --with-curl \
   --enable-opcache --enable-fpm \
   --without-gdbm --enable-fast-install \
   --disable-fileinfo

-prefix=/usr/local/php 代表我的php安装目录在这里,第二行同理 如果中途出错,xxxx包缺失,可以yum安装一下系统依赖。有的php扩展需要系统有依赖才可安装

8.编译及安装

make && make install

9.把默认配置文件的移过来

cp ~/php-7.4.0/php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

10.修改配置文件php-fpm.conf 注:php.ini这里不做修改,需要的自行修改

vi /usr/local/php/etc/php-fpm.conf

修改的内容如下(不是全部)

; 去掉里分号,方便以后重启。建议修改
;Default Value: none
; 下面的值最终目录是/usr/local/php/var/run/php-fpm.pid
; 开启后可以平滑重启php-fpm
pid = run/php-fpm.pid
; 引入www.conf文件中的配置,可以默认值
include=/usr/local/php/etc/php-fpm.d/*.conf     

11.修改www.conf

vi /usr/local/php/etc/php-fpm.d/www.conf

修改的内容如下(不是全部)

	; 设置用户和用户组,默认都是nobody。可以默认值
user = www
group = www

; 设置PHP监听
; 下面是默认值,不建议使用。可以默认值,9000端口会被占用,而且使用nginx和php-fpm采用tcp通信相对较慢,使用sock本机同喜无需多余网络消耗
;listen = 127.0.0.1:9000
; 根据nginx.conf中的配置fastcgi_pass unix:/run/php-fpm/php-fpm.sock;这俩路径要一致,否则502
;代表php监听这个端口,nginx接收到webserver的php文件发送到这个端口
listen = /run/php-fpm/php-fpm.sock
;如果使用sock监听,下面三个选项要设置,否则php-fpm会以root启动,nginx访问不到。如果是root启动,需要chmod 666 /run/php-fpm/php-fpm.sock才可以,否则会502
listen.owner = www
listen.group = www
listen.mode = 0666

12.注:因上面设置了user和group用户组,所以需要给系统添加用户组

groupadd www \
useradd -g www www

php74安装完了

/usr/local/php/sbin/php-fpm -t        # php-fpm检测配置文件是否正确
/usr/local/php/sbin/php-fpm         # php-fpm启动
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`      # php-fpm关闭
pkill php-fpm #直接杀掉所有php
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`     #php-fpm平滑重启
php -v #查看php信息
php -m #查看php扩展

13.安装nginx

wget http://nginx.org/download/nginx-1.17.6.tar.gz

14.解压nginx

tar -zxvf nginx-1.17.6.tar.gz

15.进入解压后的目录

cd /nginx-1.17.6

16.三板斧,配置

./configure \
    --prefix=/usr/local/nginx \
    --with-http_stub_status_module  \
    --with-http_ssl_module \
    --with-http_realip_module \
    --with-http_sub_module \
    --with-http_gzip_static_module \
    --with-pcre

17.编译和安装

make && make install

18.配置nginx.conf

vi /usr/local/nginx/conf/nginx.conf

修改后如下,注:主要是include

#user  nobody;
worker_processes  1;

error_log  /www/logs/nginx/error.log;
error_log  /www/logs/nginx/error_notice.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
include       mime.types;
default_type  application/octet-stream;


sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#gzip  on;

#显示目录
#autoindex on;
#显示文件大小
#autoindex_exact_size on;
#显示文件时间
#autoindex_localtime on;

include /www/conf/vhosts/*.conf;
}

19.添加站点配置

vi /www/conf/vhosts/default.conf

全部内容如下

server{
listen 8088;
server_name 127.0.0.1;
root /www/web/default;
location / {
   #开启 url 美化
    if (!-e $request_filename){
        rewrite ^/(.*) /index.php last;
    }
    index index.html index.php;
}
location ~ \.php$ {
    include fastcgi.conf;
    fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
    try_files $uri = 404;
}
}

这里的fastcgi_pass unix:/run/php-fpm/php-fpm.sock;要和上面配置www.conf配置的一样。 我添加的站点和端口是127.0.0.1:8088

20.启动nginx

/usr/local/nginx/sbin/nginx -t          # 检测配置文件是否正确
/usr/local/nginx/sbin/nginx             # 启动
/usr/local/nginx/sbin/nginx -s stop     # 关闭
/usr/local/nginx/sbin/nginx -s reload   #平滑重启

default文件夹下就是放你代码的地方,我没放数据,如果测试可以在default下放一个index.html和index.php 然后访问127.0.0.1:8088/index.html或127.0.0.1:8088/index.php就可以看到结果了