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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构