Centos8 下安装和配置 PHP 8.1.1环境

说明:因为本环境需要用于后面搭建Wordpress,刚开始选用的是最新的PHP8.1.1,在后面安装Wordpress5.8.3的时候,出现Fatal error: Uncaught mysqli_sql_exception: Table 'wordpress.wp_options' doesn't exist……的错误,通过大量排查,推测应该是该版本的PHP问题(因个人能力原因,具体错误原因未能找到,若有大咖找到具体原因和排错方法,请不吝赐教,具体错误见下图)。

 后面换成较旧的php-7.3.5版本后,问题得以排除。

若安装php-7.3.5,可直接从第4步安装php开始,配置选项可直接采用以下几个:

./configure --prefix=/usr/local/php/7.3.5 \
--enable-fpm \
--with-mysqli \
--with-curl \
--with-pdo_mysql \
--with-pdo_sqlite \
--enable-mysqlnd \
--enable-mbstring \
--with-gd

后面的过程相同。

附:PHP-7.3.5包的下载地址:https://museum.php.net/php7/php-7.3.5.tar.gz

一、安装环境:

[root@red3212 ~]# cat /etc/redhat-release 
CentOS Linux release 8.3.2011
[root@red3212 ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.18.188  netmask 255.255.255.0  broadcast 192.168.18.255
        inet6 fe80::f111:5242:40bc:7744  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:80:10:f3  txqueuelen 1000  (Ethernet)
        RX packets 743288  bytes 1100903837 (1.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 220212  bytes 17136089 (16.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

二、安装过程:

第1步:安装工具包

(1)先安装以下工具包

[root@red3212 ~]# dnf -y install libtool automake libzip-devel epel-release libxml2 libxml2-devel openssl openssl-devel curl-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel uuid libuuid-devel bzip2 bzip2-devel gmp-devel  readline-devel libxslt-devel autoconf bison gcc gcc-c++ sqlite-devel cmake

(2)再安装加密算法扩展库libmcrypt和libmcrypt-devel工具包

[root@red3212 ~]# dnf -y install libmcrypt libmcrypt-devel

 第2步:下载并安装oniguruma

oniguruma是一个处理正则表达式的库,在安装php8.1.1的过程中,mbstring的正则表达式处理功能对这个包有依赖性。

[root@red3212 ~]# wget -c https://github.com/kkos/oniguruma/archive/refs/tags/v6.9.7.1.tar.gz
[root@red3212 ~]# tar -zxvf v6.9.7.1.tar.gz
[root@red3212 ~]# cd oniguruma-6.9.7.1
[root@red3212 oniguruma-6.9.7.1]# ./autogen.sh && ./configure --prefix=/usr
[root@red3212 oniguruma-6.9.7.1]# make && make install
[root@red3212 oniguruma-6.9.7.1]# cd ..

第3步:下载并安装icu4c

[root@red3212 ~]# wget https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz
[root@red3212 ~]# tar -xf icu4c-65_1-src.tgz
[root@red3212 ~]# cd icu/source
[root@red3212 ~]# ./configure --prefix=/usr
[root@red3212 ~]# make && make install

第4步:下载并安装php8.1.1

可以在Windows下通过迅雷快速下载,然后利用secureCRT等工具上传到服务器。

[root@red3212 ~]# wget https://www.php.net/distributions/php-8.1.1.tar.gz
[root@red3212 ~]# tar -xzvf php-8.1.1.tar.gz
[root@red3212 ~]# cd php-8.1.1

[root@red3212 php-8.1.1]# ./configure \
--prefix=/usr/local/php/8.1.1/ \
--with-config-file-path=/usr/local/php/8.1.1/etc \
--with-config-file-scan-dir=/usr/local/php/8.1.1/etc/conf.d \
--enable-fpm \
--enable-intl \
--enable-soap \
--with-openssl \
--with-openssl-dir \
--with-zlib \
--with-iconv \
--with-bz2 \
--enable-gd \
--with-jpeg \
--with-freetype \
--with-curl \
--enable-dom \
--with-zip \
--enable-mbstring \
--enable-pdo \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-xsl \
--enable-mysqlnd \
--with-mysqli \
--without-pear \
--disable-short-tags \
--with-pdo_mysql \
--with-pdo_sqlite \
--enable-gd \
--disable-fileinfo

如果没有报错,则进行下一步安装

[root@red3212 php-8.1.1]# make && make install

等待10分钟左右,编译并安装完成。

第5步:创建用户账号

[root@red3212 php-8.1.1]# groupadd -g 1001 nginx
[root@red3212 php-8.1.1]# useradd -u 900 nginx -g nginx -s /sbin/nologin
[root@red3212 php-8.1.1]# tail -1 /etc/passwd
nginx:x:900:1001::/home/nginx:/sbin/nologin

第6步:配置PHP环境

(1)复制文件并重命名

[root@red3212 php-8.1.1]# cp php.ini-production /etc/php.ini
[root@red3212 php-8.1.1]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@red3212 php-8.1.1]# cp /usr/local/php/8.1.1/etc/php-fpm.conf.default /usr/local/php/8.1.1/etc/php-fpm.conf
[root@red3212 php-8.1.1]# cp /usr/local/php/8.1.1/etc/php-fpm.d/www.conf.default /usr/local/php/8.1.1/etc/php-fpm.d/www.conf

(2)赋予文件执行权限

[root@red3212 php-8.1.1]# chmod +x /etc/init.d/php-fpm 

(3)设置开机自启动php-fpm服务

[root@red3212 php-8.1.1]# ln -s /usr/local/php/8.1.1/sbin/php-fpm /usr/local/sbin/
[root@red3212 php-8.1.1]# php-fpm -t
[06-Jan-2022 16:28:31] NOTICE: configuration file /usr/local/php/8.1.1/etc/php-fpm.conf test is successful

[root@red3212 php-8.1.1]# systemctl enable php-fpm
php-fpm.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable php-fpm

(4)修改PHP的主配置文件php-fpm.conf

[root@red3212 php-8.1.1]# vim /usr/local/php/8.1.1/etc/php-fpm.conf
[root@red3212 php-8.1.1]# grep -n "^"[a-Z] /usr/local/php/8.1.1/etc/php-fpm.conf
17:pid = run/php-fpm.pid
143:include=/usr/local/php/8.1.1/etc/php-fpm.d/*.conf
[root@red3212 php-8.1.1]# vim /usr/local/php/8.1.1/etc/php-fpm.d/www.conf
[root@red3212 php-8.1.1]# grep -n "^"[a-Z] /usr/local/php/8.1.1/etc/php-fpm.d/www.conf 
23:user = nginx
24:group = nginx
36:listen = 192.168.18.188:9000
105:pm = dynamic
116:pm.max_children = 50
121:pm.start_servers = 5 
126:pm.min_spare_servers = 5
131:pm.max_spare_servers = 35

第7步 启动php服务并检查监听端口

[root@red3212 php-8.1.1]# systemctl restart php-fpm.service 
[root@red3212 php-8.1.1]# netstat -ntlp | grep 9000
tcp        0      0 192.168.18.188:9000      0.0.0.0:*      LISTEN     167080/php-fpm: mas

如果看到9000端口已启动,则说明PHP环境安装完毕。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值