栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

CentOS7 --详细配置Nginx支持PHP程序

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CentOS7 --详细配置Nginx支持PHP程序

为了弄好php和nginx,耗费了我不少时间,哎。整体来说过程不是很难,主要是中间出的问题让人头疼。

第一步:selinux和防火墙设置 (之前安装好nginx,启动成功后,仍旧访问不了页面。发现是防火墙和selinux的问题)
firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld.service
关闭selinux: /etc/selinux/config
修改配置文件:将selinux=enforcing改为disabled 
弄好后重启虚拟机,查看后出现disabledgetenforce #查看selinux状态
或者,
临时关闭(不用重启机器):setenforce 0
第二步:安装nginx

https://blog.csdn.net/m0_59127553/article/details/124343092?spm=1001.2014.3001.5501 https://blog.csdn.net/m0_59127553/article/details/124343092?spm=1001.2014.3001.5501https://blog.csdn.net/m0_59127553/article/details/124343092?spm=1001.2014.3001.5501%20https://blog.csdn.net/m0_59127553/article/details/124343092?spm=1001.2014.3001.5501之前我写过如何安装nginx,这里就不详述了。

1.创建站点

[root@localhost ~]# mkdir -p /www/web

2.配置Nginx文件

cd /usr/local/nginx/conf/vim nginx.conf

进去后在底部输入 /php 查找php配置部分

你会看到下图部分(当然,我这里是把注释去掉了,要和我一样把注释去掉,内容可以选择和我修改的一样,保存退出即可!) 

location~.php${
	root	html;
	fastcgi_pass  127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param SCRIPT_FIENAME      /www/web$fastcgi_script_name;
	#将/scripts 修改为nginx的发布目录
	include	fastcgi_params
}
第三步:安装PHP

安装和编译PHP有点麻烦而且时间会稍微比较长

在官网上下载好php: PHP: Downloads

版本根据自己选择:我选择的是PHP 7.4.29 (php-7.4.29.tar.gz)

1.下载好之后,上传到自己的虚拟机中

 tar -zxvf php-7.4.29.tar.gz -C /usr/local/ //解压到指定目录 

2.进入php文件进行配置

//安装依赖包
yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel epel-release

cd  php-7.4.29
//配置编译参数./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-fpm-user=www --with-fpm-group=www --with-curl --with-freetype-dir --enable-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip --enable-fpm

配置过程可能出现这样的问题:

问题1: 

解决方法:yum install gcc -y

问题2:

configure: error: Package requirements (sqlite3 > 3.7.4) were not met:No package 'sqlite3' found

解决方法:yum install sqlite-devel

问题3:

configure: error: Package requirements (oniguruma) were not met: No package ‘oniguruma’ found

 解决方法:如果下面代码wget报错则先执行:yum install wget -y

wget http://www6.atomicorp.com/channels/atomic/centos/7/x86_64/RPMS/oniguruma-5.9.5-3.el7.art.x86_64.rpm
yum localinstall oniguruma-5.9.5-3.el7.art.x86_64.rpmwget 

http://www6.atomicorp.com/channels/atomic/centos/7/x86_64/RPMS/oniguruma-devel-5.9.5-3.el7.art.x86_64.rpm
yum localinstall oniguruma-devel-5.9.5-3.el7.art.x86_64.rpm

 出现下面这张图表示成功

然后执行:编译时间比较长,要有耐心

make && make install

 做到这里你就已经成功一大半了!

第四步:添加index.php文件
[root@localhost ~]# cd /www/web
[root@localhost web]# touch index.php
[root@localhost web]#vi index.php
//输入

//保存退出

第五步:启动php-fpm

1. 备份php配置文件

首先进入PHP的配置文件目录/usr/local/php/etc

[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# cd php-fpm.d
[root@localhost php-fpm.d]# cp www.conf.default www.conf
[root@localhost php-fpm.d]# /usr/local/php/sbin/php-fpm -t
[29-Apr-2022 19:44:11] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful //会自动出现这样一句话

2.启动PHP并检查服务运行

[root@localhost web]# /usr/local/php/sbin/php-fpm 
[29-Apr-2022 20:03:48] ERROR: [pool www] cannot get uid for user 'www' //当出现这样的问题,我们可以这样处理

//处理方式
groupadd www
useradd -g www www

//重新启动
[root@localhost web]# /usr/local/php/sbin/php-fpm

//查看php运行
[root@localhost web]# ps aux|grep php

//出现下面的进程则表示已经启动运行
root       1753  1.0  0.6 226008  6460 ?        Ss   10:17   0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
www        1754  0.6  0.6 226008  5984 ?        S    10:17   0:00 php-fpm: pool www
www        1755  0.6  0.6 226008  5984 ?        S    10:17   0:00 php-fpm: pool www
root       1757  0.0  0.0 112824   988 pts/0    R+   10:17   0:00 grep --color=auto php


//顺便检查nginx是否启动相关语句:

/usr/local/nginx/sbin/nginx   开启
nginx/usr/local/nginx/sbin/nginx -s stop  关闭
nginx/usr/local/nginx/sbin/nginx -s reload 重启

nginxps -ef|grep nginx //查看nginx进程

//出现下面的进程则表示已经启动运行

[root@localhost web]# ps -ef|grep nginx

root       1764      1  0 10:18 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx      1765   1764  1 10:18 ?        00:00:00 nginx: worker process
root       1767   1724  0 10:18 pts/0    00:00:00 grep --color=auto nginx
 最后一步:检查是否成功

在浏览器输入:http://ip/index.php

出现下图表示成功!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/844903.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号