linux系统部署nginx+php-fpm

一、环境准备

  1、最小化安装linux操作系统:CentOS Linux release 7.9.2009 (Core)

  2、根据需求下载nginx和php源码包

  nginx:http://nginx.org/en/download.html

       php:https://www.php.net/releases/

  这里使用nginx-1.24.0.tar.gz和php-7.4.20.tar.gz版本

  3、安装依赖。因为系统是最小化安装,这里nginx和php只用了部分功能,如果需要其他功能则需要安装其他依赖。

yum -y install gcc pcre-devel openssl-devel zlib-devel libxml2-devel sqlite-devel

 

二、安装nginx

  1、解压并进入源码包目录。

tar zxf nginx-1.24.0.tar.gz
cd nginx-1.24.0

  2、配置、编译、安装。

./configure --prefix=/usr/local/nginx --with-pcre --with-stream --with-http_stub_status_module --with-http_ssl_module
make
make install

  根据需求增删相应配置,我这里只用了pcre、ssl和stream,分别是重写、ssl和4层转发模块。

  3、配置systemd管理

    vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=Nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx

[Install]
WantedBy=multi-user.target

  4、启动nginx

systemctl start nginx

 

三、安装php

  1、解压并进入源码包目录。

tar zxf  php-7.4.20.tar.gz
cd php-7.4.20

  2、配置、编译、安装。

./configure --prefix=/usr/local/php  --enable-fpm --with-mysqli --with-pdo-mysql
make
make install

  根据需求增删相应配置,我这里只启用了fpm和数据库驱动。

  3、复制配置文件

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

  4、配置systemd管理

    vim /usr/lib/systemd/system/php-fpm.service

[Unit]
Description=php-fpm
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf

[Install]
WantedBy=multi-user.target

  5、启动php-fpm

systemctl start php-fpm

 

四、配置nginx对于php的请求转发给php-fpm处理,并测试。

  1、在配置文件server模块中添加以下配置

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

  2、编写一个测试php代码文件。

vim /usr/local/nginx/html/index.php
    <?php
    phpinfo();
    ?>

  3、重新加载nginx配置,并访问index.php文件

/usr/local/nginx/sbin/nginx -s reload
http://xxx.xxx.xxx.xxx/index.php

  

五、部署php支持redis扩展

  1、下载phpredis驱动

wget https://github.com/phpredis/phpredis/archive/refs/tags/5.3.7.tar.gz

 

   2、解压,进入驱动目录

tar zxf 5.3.7.tar.gz
cd cd phpredis-5.3.7

 

  3、生成驱动配置脚本

/usr/local/php/bin/phpize

  运行报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.

  解决方法:yum -y install autoconf

 

  4、配置、编译、安装

./configure --with-php-config=/usr/local/php/bin/php-config
make && make

 

  5、新增php配置

#没有php.ini文件则新建一个
vi /usr/local/php/lib/php.ini
    #新增以下配置
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902"
extension=redis.so

 

  6、重启php-fpm

systemctl restart php-fpm

 

 

六、部署php支持SSL扩展

  1、进入php安装程序目录中的openssl中。

cd /usr/local/src/php-7.4.20/ext/openssl

 

  2、复制config.m4文件,不然在生成配置脚本时会报错:Cannot find config.m4.

cp config0.m4  config.m4

 

  3、生成配置脚本

/usr/local/php/bin/phpize

  运行报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.

  解决方法:yum -y install autoconf

 

  4、配置、编译、安装

./configure --with-php-config=/usr/local/php/bin/php-config
make && make

 

  5、新增php配置

#没有php.ini文件则新建一个
vi /usr/local/php/lib/php.ini
    #新增以下配置
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902"
extension=openssl.so

 

posted @ 2023-12-01 08:36  难止汗  阅读(356)  评论(0编辑  收藏  举报