2021年3月12日,
历经千辛万苦,多次快照回退,
数次打算放弃,解决无数报错,
终于啊,我也有PHP了,哈哈哈哈哈~
目录
如果还没有CentOS8虚拟机环境,请参看 零基础VMware 安装 Centos8(或Centos7) https://blog.csdn.net/have_a_cat/article/details/115180450
一、重要的前提
PHP 需要在root用户下安装。
再重复三遍以示重要:PHP 需要在root用户下安装;PHP 需要在root用户下安装;PHP 需要在root用户下安装。
二、PHP下载
官网下载速度比较慢,花费了我一早上的时间,大家可以从CSDN这里免费下载PHP7.4(https://download.csdn.net/download/have_a_cat/15802184)
(官网下载地址:https://www.php.net/downloads)
(安装包地址: https://www.php.net/distributions/php-7.4.16.tar.gz)
三、查看当前PHP信息
方法一:在命令行中执行
php -r 'phpinfo();'
方法二:在命令行中执行
php -i
可以看到,当前CentOS8自带PHP 7.2.,以及一些PHP的配置信息。
(如果只想用PHP7.2的小伙伴,看到此,就可以回去继续开发了)
回去的专机在此🚁
=================================================================================================================================================
下面我们来安装PHP7.4
四、安装PHP
1、准备好安装包
将下载好的php-7.4.16.tar.gz,放置于CentOS虚拟机主目录下。
2、进入主目录并解压
ls
#查看主目录,将看到php-7.4.16.tar.gz安装包。
tar -zxvf php-7.4.16.tar.gz
#解压php-7.4.16.tar.gz
解压后主目录下就有了php-7.4.16文件夹
3、配置PHP
cd php-7.4.16
#进入php-7.4.16文件夹
这里↘注意复制全了,这条命令非常长!
./configure --prefix=/usr/local/php --with-mysql-sock=/usr/local/mysql/mysql.sock --with-mysqli --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo --enable-tokenizer --enable-zip --enable-fpm
#配置PHP
#这里注意复制全了,这条命令非常长。
报错解决(1)
执行命令./configure \...(命令省略)时报
configure: error: in `/root/php-7.4.16':
configure: error: no acceptable C compiler found in $PATH
解决:执行命令
yum install gcc -y
报错解决(2)
执行命令./configure \...(命令省略)时报
configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met:
Package 'libxml-2.0', required by 'virtual:world', not found
解决:执行命令
yum install libxml2-devel
报错解决(3)
执行命令./configure \...(命令省略)时报
configure: error: Package requirements (openssl >= 1.0.1) were not met:
Package 'openssl', required by 'virtual:world', not found
解决:执行命令
yum install openssl-devel
报错解决(4)
执行命令./configure \...(命令省略)时报
configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
Package 'sqlite3', required by 'virtual:world', not found
解决:执行命令
yum install sqlite-devel
报错解决(5)
执行命令./configure \...(命令省略)时报
configure: error: Package requirements (libcurl >= 7.15.5) were not met:
Package 'libcurl', required by 'virtual:world', not found
解决:执行命令
yum install libcurl-devel
报错解决(6)
执行命令./configure \...(命令省略)时报
configure: error: Package requirements (oniguruma) were not met:
Package 'oniguruma', required by 'virtual:world', not found
解决:需安装安装 oniguruma 和 oniguruma-devel
(1)下载
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz
(2)解压
tar -zxvf oniguruma-6.9.4.tar.gz
cd oniguruma-6.9.4/
(3)安装autoreconf
yum install autoconf automake libtool
(4)配置与安装
./autogen.sh && ./configure --prefix=/usr
make && make install
至此configure成功!🎉
4、编译和安装
make
# 编译
make install
#编译并且安装
5、拷贝配置文件php.ini
cp php.ini-development /usr/local/php/lib/php.ini
#把 php.ini-development拷贝到/usr/local/php/lib/php.ini文件目录里面
6、修改php.ini
打开/usr/local/php/lib/php.ini文件,修改以下内容
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai
7、验证安装的模块
/usr/local/php/bin/php -m
8、拷贝PHP扩展包,使全局可用
(1)拷贝ext文件,由/root/php-7.4.16到/usr/local/php
cp -r /root/php-7.4.16/ext /usr/local/php/
(2)修改php.ini文件中扩展地址为:/usr/local/php/ext
9、将PHP加入环境变量
(1)打开/etc/profile文件
(2)在文件末尾加上如下两行
PATH=$PATH:/usr/local/php/bin
export PATH
(3)在终端执行
source /etc/profile #使profile文件中的修改生效
(export PATH=$PATH:/usr/local/php/bin #上述没生效的话,备用办法为每次打开终端执行这条命令)
(4)检查PATH是否添加成功
echo $PATH
(5)切换默认版本
rm -f /usr/bin/php
ln -sf usr/local/php/bin/php /usr/bin/php
(6)重启服务器/虚拟机
10、验证版本号
(1)开启新终端
(2)停止PHP服务
pkill php-fpm
(3)开启php-fpm服务
service php-fpm start
(4)查看PHP安装情况
rpm -qa|grep -i php
(5)查看PHP进程
ps -ef |grep php
(6)查看PHP版本号
php -v
报错解决(7)
执行命令service php-fpm start时报
Unit php-fpm.service not found
解决:依次执行以下命令
find / -name init.d.php-fpm
cp /root/php-7.4.16/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod a+x /etc/init.d/php-fpm
报错解决(8)
执行命令service php-fpm start时报
ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
解决:依次执行以下命令
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
报错解决(9)
执行命令service php-fpm start时报
WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/*.conf' from /usr/local/php/etc/php-fpm.conf at line 143.
[15-Mar-2021 16:24:56] ERROR: No pool defined. at least one pool section must be specified in config file
[15-Mar-2021 16:24:56] ERROR: failed to post process the configuration
[15-Mar-2021 16:24:56] ERROR: FPM initialization failed
解决:依次执行以下命令
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
/usr/local/php/sbin/php-fpm -t
报错解决(10)
虚拟机中有多个版本的PHP,默认PHP不是想要的。
(比如图中,直接”php -v”查到版本是7.2.24;用安装路径“/usr/local/php/bin/php -v”版本是7.4.16)
不用质疑,安装正确,是你没切换版本。依次执行以下命令。
rm -f /usr/bin/php
ln -sf usr/local/php/bin/php /usr/bin/php
报错解决(11)
$PATH 在/etc/profile中设置后不生效
解决:可能是权限不够,给/etc目录赋权限后重新加载
chmod a+x /etc
source /etc/profile