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
弄好后重启虚拟机,查看后出现Disabled
getenforce #查看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配置部分

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

afd66ee9862041b3b11d33ba8119089d.png

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

0af2a1c302a44eac8ded157268bddb6b.png

版本根据自己选择:我选择的是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: 

fedea46e272c47a9914c126df24b15fd.png

解决方法: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.rpm

wget 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

 出现下面这张图表示成功

0eb00d9f425d40d6b5b8f421c833b315.png

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

make && make install

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

第四步:添加index.php文件

[root@localhost ~]# cd /www/web
[root@localhost web]# touch index.php
[root@localhost web]#vi index.php
//输入
<?php 
phpinfo(); 
?>
//保存退出

第五步:启动php-fpm

1. 备份php配置文件

首先进入PHP的配置文件目录/usr/local/php/etc (其他情况:也有可能在/usr/local/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   开启
/usr/local/nginx/sbin/nginx -s stop  关闭
/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

265d10fe97db47c688696cc55a9adb5a.png

802f2994fe3643b19eaee724e2cc31d2.png

 最后一步:检查是否成功

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

出现下图表示成功!

6a2dd78573964bd5a99a7c1495cb9047.png

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值