引言
源码编译安装php3.8.0版本,建议使用普通用户来搭建,有些操作需要用sudo提权,如果提示没有权限
可以参考一下我的这篇文章:普通用户无法使用sudo
如果已经搭建过,有信心的,可以直接看这个,不用看下面啦
下面文件目录是我自己的目录,你们可以改成自己想要的
# 安装依赖
sudo yum -y install cmake gcc g++ ncurses-devel libtirpc-devel rpcgen libxml2-devel sqlite-devel libpng-devel epel-release oniguruma oniguruma-devel
# 下载安装包(v8.3.0)
wget https://www.php.net/distributions/php-8.3.0.tar.gz
# 解压
tar -xzvf php-8.3.0.tar.gz
# 进入目录
cd php-8.3.0
# 预编译
./configure \
--prefix=你的PHP安装目录 \
--with-config-file-path=你的PHP配置文件所在目录 \
--enable-fpm \
--with-gd \
--enable-gd-jis-conv \
--enable-mysqlnd \
--enable-mbstring \
--with-openssl \
--with-zlib \
--with-curl \
--with-pdo-mysql \
--with-fpm-user=Fast-cgi进程管理器的用户名 \
--with-fpm-group=Fast-cgi进程管理器的用户组名 \
--with-mysqli
# 编译
make
# 安装
make install
下载安装包
首先进入php的官网下载页面:点击跳转
进入之后,选择想要的版本后,右键该版本的.tar.gz
安装包,然后复制链接,我这里选择的是8.3.0版本
上传服务器
有两种选择
一、下载安装包在自己电脑,然后通过sftp等工具上传到服务器,具体可以参考一下这位大佬的文章:渔鸥篝火
二、直接在服务器用wget等工具安装
我这选择的是第二种,首先建议创建一个存放数据安装包的目录,创建并进入
mkdir /server/sourceCode && cd /server/sourceCode
然后使用wget命令下载安装包
wget https://www.php.net/distributions/php-8.3.0.tar.gz
然后使用命令解压
tar -zxvf php-8.3.0.tar.gz
查看目录文件,然后进入这个文件
编译安装
安装依赖
在安装之前,选把需要的依赖安装好,这里的依赖也包括了mysql需要的
sudo yum -y install cmake gcc g++ ncurses-devel libtirpc-devel rpcgen libxml2-devel sqlite-devel libpng-devel oniguruma-devel
预编译
预编译命令
./configure \
--prefix=你的PHP安装目录 \
--with-config-file-path=PHP配置文件所在目录 \
--enable-fpm \
--with-gd \
--enable-gd-jis-conv \
--enable-mysqlnd \
--enable-mbstring \
--with-openssl \
--with-curl \
--with-zlib \
--with-pdo-mysql \
--with-fpm-user=Fast-cgi进程管理器的用户名 \
--with-fpm-group=Fast-cgi进程管理器的用户组名 \
--with-mysqli
这里面有 FPM
作为进程管理器,图像处理 GD库
,还有连接 MySQL
的工具扩展 mysqli
如果你的服务器配置不是很好,建议先禁用infofile扩展,这个是禁用文件信息处理扩展,在后面加入这个命令就可以
--disable-infofile
然后在编译完成后在安装infofile扩展
预编译过程中遇到了这个错误
这个报错是说缺少openssl这个包,使用这个命令下载
sudo yum install openssl-devel
下载完成后,重新编译,如果过程中再遇到这种错误,重复这个操作安装缺少的包即可
看到这个,就说明预编译成功啦
如果提示configure: WARNING: unrecognized options: --with-gd
,输入这个重新编译一下gd就行
./configure \
--prefix=/server/php/8.3.0 \
--with-config-file-path=/server/php/8.3.0/etc \
--enable-fpm \
--enable-gd \
--enable-gd-jis-conv \
--enable-mysqlnd \
--enable-mbstring \
--with-openssl \
--with-curl \
--with-zlib \
--with-pdo-mysql \
--with-fpm-user=xunji \
--with-fpm-group=xunji \
--with-mysqli
编译
输入命令
make
如果在编译过程中,遇到错误,例如:
如果服务器性能差,建议重新预编译先禁用infofile扩展,解决问题后先清除上一次编译
make clean
然后再次输入make重新编译
看到这个就说明已经编译成功
测试及安装
测试这个可以弄也可以不弄,输入命令进行测试
make test
等会就可以看到结果了
输入命令进行安装
make install
配置文件
建立软连接,将php脚本文件,放到用户执行脚本下
sudo ln -s /server/php/8.3.0/bin/php /usr/local/bin/php
这样子在任何用户账号下,都可以正常访问 php
创建php配置文件-php.ini,在以后用到的所有设置信息、包括扩展和其他内容等,都需要从这个文件读取配置,在源码包有一个php.ini-production文件,如果你对这个配置文件没什么要求的话,可以直接把这个文件的内容拷贝过去
cp /server/sourceCode/php-8.3.0/php.ini-production /server/php/8.3.0/etc/php.ini
创建好文件后,可以使用脚本命令输出当前配置文件路径
php --ini
看到这个就说明配置成功了
启动测试
输入命令当前 php版本
php --version
如果你没有按上面的将php脚本文件,放到用户执行脚本下,你很可能找不到这个命令,可以输入这个查看
/server/php/8.3.0/bin/php --version
查看已安装的扩展
输入命令:
php -m
启动服务
使用 root权限进行启动
sudo /server/php/8.3.0/sbin/php-fpm
在启动时发现了错误
这个的意思是找不到文件,输入这两个命令即可
cp /server/php/8.3.0/etc/php-fpm.conf.default /server/php/8.3.0/etc/php-fpm.conf
cp /server/php/8.3.0/etc/php-fpm.d/www.conf.default /server/php/8.3.0/etc/php-fpm.d/www.conf
重新启动服务
看到这个说明你的服务已经起了
到这里已经安装好啦,Goodbye~
2 条评论
[...]引言首先,现在安装的typecho v1.2.1版本只适用于 php7及以上版本,但 php8暂不支持,如果需要高版本的支持,请下载最新开发版本其次,安装之前要先安装好php,数据库,nginx,如果没有安装,先移步到其他文章安装Linux源码编译安装phpLinux源码编译安装MySQLLinux源码编译安装Nginx也要准备好一个已经进行域名解析的域名、该域名的SSL证书,如果没有,请先移步到[...]
[...]引言它是一个依赖管理工具,用于 PHP 项目的依赖管理和包管理,不但会帮你下载这些依赖库,还自动管理它们的依赖关系,甚至可以创建项目在安装之前,请先确认php有没有安装php -v如果没有安装,可以先移步到我的另一篇文章安装:源码编译安装php下载执行下载命令curl -sS https://getcomposer.org/installer | php如果提示不存在curl的话,先执行命令安装s[...]