CentOS8+PHP8踩雷记录

1、CentOS8安装的时候语言要选英语,选择中文有中文的报错,但实际上并不适合Google纠错。

2、快速安装remi源。

dnf install dnf-utils
dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

3、CentOS8采用了dnf取代yum,其中module功能可快捷的切换软件源。

dnf [OPTIONS] module [COMMAND] [MODULE-SPEC]

OPTIONS:
详情查询 dnf(8) 的 man 帮助文档

COMMAND:
enable 启用模块
info 查询模块信息
remove 卸载模块
provides 查询模块的提供软件库信息
list 查询模块的详细信息
update 更新模块
install 安装模块
reset 重置模块
disable 禁用模块

MODULE-SPEC:
Name[:Stream[/Profiles]] 模块名称[:流[/配置]]
例如
dnf module list php                //查询php的可用module
dnf reset php                      //重置php的module(有可能需要添加--allowerasing)(必要,若直接install可能报错)
dnf module install php:remi-8.0/common    //安装新的php的module
dnf install php-{common,mysql,xml,xmlrpc,curl,gd,imagick,cli,fpm,mbstring,opcache,zip}

4、一定要关闭SELinux,否则php-fpm无法修改文件,即使是文件拥有者也不行!!!

setenforce 0    //临时关闭
vim /etc/selinux/config

SELINUX=enforcing改为SELINUX=disabled   //永久关闭
reboot

5、记得打开防火墙的80端口。

systemctl配置脚本

vim /usr/lib/systemd/system/nginx.service
chmod +x /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start nginx.service

CentOS更新PHP

(现在CentOS8推荐使用dnf的module方式进行升级,具体见链接。)

1、卸载旧PHP

yum remove php*

2、安装EPEL

yum install epel-release
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

3、查看PHP

yum search php74

4、安装php

yum install php74-php-gd  php74-php-pdo php74-php-mbstring php74-php-cli php74-php-fpm php74-php-mysqlnd

5、启动fpm

service php74-php-fpm start