一、挂载 yum本地源
ps: 因为是模拟内网服务器(很多时候有这种情况 / 当然 如果是云服务器直接 yum 安装即可)
1.准备一个同系统版本一样的镜像
比如 CentOS-7-x86_64-DVD-2009.iso
2.挂载一个跟服务器系统同一版本的centOS镜像
#上传 CentOS-7-x86_64-DVD-2009.iso 到 服务器的 /opt 目录下
#创建挂载目录:
mkdir /media/CentOS7
#挂载镜像文件
mount -o loop /opt/CentOS-7-x86_64-DVD-2009.iso /media/CentOS7/
#配置Yum源
# 将原有的源进行备份
mkdir /etc/yum.repos.back.d
cd /etc/yum.repos.d/
mv * /etc/yum.repos.back.d/
# 创建本地源配置文件
vim /etc/yum.repos.d/local.repo
#将此代码复制到 local.repo中 保存之后退出
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS7
gpgcheck=0
enabled=1
#清除yum缓存
yum clean all
#建立新的缓存
yum makecache
#测试是否生效
yum install telnet
3.安装gcc gcc-c++
yum install gcc
yum install gcc-c++
#查看gcc 版本
gcc -v
#查看gcc-c++版本
g++ -v
4.安装php依赖
yum -y install libxml2
yum -y install libxml2-devel
yum install sqlite-devel
yum install openssl-devel
5.下载php并上传到 /root 文件下
下载链接
www.php.net/downloads
6.解压php编译包
tar -zxvf php-7.4.30.tar.gz
cd php-7.4.30
7.编译php到/usr/local/nginx
# 仅仅开启了openssl扩展,其他的扩展如果需要可以查看 ·php安装扩展的文章·
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--bindir=/usr/local/php/bin \
--sbindir=/usr/local/php/sbin \
--includedir=/usr/local/php/include \
--libdir=/usr/local/php/lib \
--mandir=/usr/local/php/man \
--with-openssl \
--enable-fpm
8. make 编译 及 添加环境变量
make && make install
#添加环境变量
vim ~/.bash_profile
export PATH=$PATH:/usr/local/php/bin
export PATH=$PATH:/usr/local/php/sbin
#重新加载让环境变量生效
source ~/.bash_profile
#查看php版本
php -v
#查看php安装的扩展
php -m
#启动php-fpm
php-fpm
#查看php-fpm是否在运行
ps -ef|grep php-fpm
#重启php-fpm
# 1.INT, TERM 立刻终止
# 2.QUIT 平滑终止
# 3.USR1 重新打开日志文件
# 4.USR2 平滑重载所有worker进程并重新载入配置和二进制模块
kill -USR2 42891
也许会遇到的问题 phpinfo 中 php.ini 找不到
Loaded Configuration File (none) 表明没有载入php.ini文件
而/usr/local/php/etc/php.ini这个文件确实是存在的。
解决:
#用strace去跟踪一下
strace /usr/local/php7/sbin/php-fpm -i 2>1.log
它会去找 /usr/local/lib/php.ini ,但是编译的时候是有设置
--with-config-file-path=/usr/local/php/etc 。
已经找到具体路径了,到时候重新编译一下看看)