编译安装php+nginx详细步骤

编译安装php+nginx

服务器: 阿里云centos7

安装php

下载: wget https://www.php.net/distributions/php-7.3.19.tar.gz

我的下载目录: /disk2/soft_pack/

解压:tar -zxvf php-7.3.19.tar.gz

进入解压目录:cd ./php-7.3.19/

提前先把安装依赖,避免一会儿反复编译安装

yum -y install gcc
yum -y install libxml2-devel
yum -y install openssl-devel
yum -y install bzip2 bzip2-devel
yum -y install libpng libpng-devel
yum -y install libzip

开始编译php
注意: 没有configure的先使用phpize命令生成

./configure --prefix=/usr/local/php73 --with-config-file-path=/usr/local/php/etc/php73--with-curl --with-bz2 --enable-libxml --with-openssl --enable-bcmath --enable-pcntl --enable-sockets --enable-zip --enable-soap --with-gettext --with-zlib --enable-xml --enable-fpm --with-gd 

在编译时发现libzip版本过低,重新安装libzip(没有提示libzip的版本问题时可忽略)

#先删除旧版本
yum remove -y libzip
#下载编译安装
wget https://nih.at/libzip/libzip-1.2.0.tar.gz
#解压
tar -zxvf libzip-1.2.0.tar.gz
#进入解压目录
cd libzip-1.2.0
#编译安装
./configure
make && make install

编译报错: /usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or dire

#解决
cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h

编译完成后安装:
make && make install

查看php版本
/usr/local/php73/bin/php -v

使用ln -s /usr/local/php73/bin/php /usr/local/bin/php后,直接使用php -v查看

成功获取版本信息,安装成功

PHP 7.3.19 (cli) (built: Jul  4 2020 17:35:16) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies

配置php-fpm:

#进入之前解压的安装包目录
cd /disk2/soft_pack/php-7.3.19/
#在编译包里面把php.ini-production拷贝到php安装目录
cp ./php.ini-production /usr/local/php73/php.ini
#复制启动脚本
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#添加执行权限
chmod +x /etc/init.d/php-fpm 
#添加php-fpm配置文件
cp /usr/local/php73/etc/php-fpm.conf.default /usr/local/php73/etc/php-fpm.conf
cp /usr/local/php73/etc/php-fpm.d/www.conf.default /usr/local/php73/etc/php-fpm.d/www.conf

查看是否安装完成:ps -ef|grep php-fpm

php-fpm命令(开启/重启/停止):
/etc/init.d/php-fpm start/restart/stop

添加开机启动
chkconfig --add php-fpm
查看是否添加成功
chkconfig | grep php-fpm

如图:
编译安装php+nginx详细步骤

2,3,4,5登录为开启状态,表示添加成功,如果为关闭状态可以用chkconfig php-fpm on开启

安装nginx

下载:wget http://nginx.org/download/nginx-1.18.0.tar.gz

我的下载目录:
/disk2/soft_pack/

进入下载目录解压

cd /disk2/soft_pack/
tar -zxvf nginx-1.18.0.tar.gz 

进入解压目录
cd ./cd nginx-1.18.0

编译

./configure --prefix=/usr/local/nginx --with-stream --with-stream_ssl_module --with-http_ssl_module --with-http_v2_module --with-threads

安装
make && make install

添加全局命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx

查看nginx信息: nginx -V

nginx命令:

nginx 启动
nginx -s stop 是快速关闭,不管有没有正在处理的请求。
nginx -s quit 是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求。
nginx -s reload 重载配置

启动ngxin后通过ip访问:

编译安装php+nginx详细步骤

nginx安装成功

nginx开机自启动
设置自启动我们只需要创建/etc/init.d/ngxin文件,把官方提供的代码放进去修改执行程序和配置文件的目录,然后加入chkconfig管理列表,利用chkconfig命令添加自启动即可
这里有官方提供的一个脚本:https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/
详细步骤如下:
创建并编辑文件: vim /etc/init.d/nginx

将官方提供的脚本放入/etc/init.d/nginx

脚本中这两项修改成自己的路径

nginx="/usr/local/nginx/sbin/nginx"	# 执行程序
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"	#配置文件

如图:

编译安装php+nginx详细步骤

添加执行权限
chmod +x /etc/init.d/nginx

添加chkconfig管理列表
chkconfig --add /etc/init.d/nginx

设置开启启动
chkconfig nginx on

查看是否设置成功
chkconfig | grep nginxchkconfig --list

如图:
编译安装php+nginx详细步骤

配置nginx识别php文件
添加配置
vim /usr/local/nginx/conf/nginx.conf

        location ~ \.php$ {
                root /usr/local/nginx/html;     #网站目录
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

现在去创个php文件试试

echo "<?php phpinfo();?>">>/usr/local/nginx/html/phpinfo.php

浏览器访问xxx.xxx.xxx.xxx/index.php:

编译安装php+nginx详细步骤

到这里php和nginx都安装完成了

编译安装php+nginx详细步骤

上一篇:phpunit 报错 ErrorException: Declaration of Illuminate\Foundation\Testing\Assert::assertArraySubset($subset, $array, bool $checkForObjectIdentity = false, string $message = ''):


下一篇:Js中的new原理及其实现