CentOS上编译PHP的详细步骤
在CentOS系统上,通过源代码编译安装PHP可以确保你使用的是最新版本,并且可以根据需要定制功能和优化性能,以下内容将详细介绍如何在CentOS 7和CentOS 8上编译并安装PHP,包括必要的依赖安装、配置选项、编译过程以及常见问题的解决方法。
准备工作
1、更新系统软件包:在开始之前,建议先更新系统的软件包,以确保安装的是最新的版本。
sudo yum update y # 对于CentOS 7 sudo dnf update y # 对于CentOS 8
2、安装编译工具和依赖:编译PHP需要一些基础的开发工具和库,以下是常用的依赖项:
sudo yum groupinstall 'Development Tools' y # 对于CentOS 7 sudo dnf groupinstall 'Development Tools' y # 对于CentOS 8
3、安装其他依赖包:根据你计划使用的PHP扩展,可能还需要安装额外的库。
sudo yum install y \ libxml2 libxml2devel \ openssl openssldevel \ bzip2 bzip2devel \ libcurl libcurldevel \ libjpeg libjpegdevel \ libpng libpngdevel \ freetype freetypedevel \ gmp gmpdevel \ libmcrypt libmcryptdevel \ readline readlinedevel \ libxslt libxsltdevel \ zlib zlibdevel \ glibc glibcdevel \ glib2 glib2devel \ ncurses ncursesdevel \ curl \ gdbmdevel \ db4devel \ libXpmdevel \ libX11devel \ gddevel \ gmpdevel \ expatdevel \ xmlrpcc xmlrpccdevel \ libicudevel \ libmcryptdevel \ libmemcacheddevel \ epelrelease
下载和解压PHP源码
1、下载PHP源码:从PHP官方网站下载你需要的版本,下载PHP 8.1.9:
wget https://www.php.net/distributions/php8.1.9.tar.gz
2、解压源码包:
tar zxvf php8.1.9.tar.gz cd php8.1.9
配置和编译PHP
1、配置编译选项:运行./configure
脚本来配置PHP,你可以使用help
选项查看所有可用的配置选项,以下是一些常用的配置选项:
./configure \ prefix=/usr/local/php \ withconfigfilepath=/etc \ withfpmuser=www \ withfpmgroup=www \ withcurl \ withfreetypedir \ enablegd \ withgettext \ withiconvdir \ withkerberos \ withlibdir=lib64 \ withlibxmldir \ withmysqli \ withopenssl \ withpcreregex \ withpdomysql \ withpdosqlite \ withpear \ withpngdir \ withjpegdir \ withxmlrpc \ withxsl \ withzlib \ withbz2 \ withmhash \ enablefpm \ enablebcmath \ enablelibxml \ enableinlineoptimization \ enablembregex \ enablembstring \ enableopcache \ enablepcntl \ enableshmop \ enablesoap \ enablesockets \ enablesysvsem \ enablesysvshm \ enablexml \ enablezip \ enablefpm
2、编译和安装:运行make
和make install
命令来编译和安装PHP。
make sudo make install
配置环境变量和启动FPM
1、配置环境变量:将PHP的可执行文件路径添加到系统的PATH环境变量中,编辑/etc/profile
文件,添加以下内容:
export PATH=$PATH:/usr/local/php/bin
然后运行以下命令使更改生效:
source /etc/profile
2、配置php.ini:将默认的配置文件复制到合适的位置,并进行必要的修改。
sudo cp /usr/local/php/php.iniproduction /etc/php.ini
3、启动FPM:如果你启用了FPM,可以通过以下命令启动它:
sudo /usr/local/php/sbin/phpfpm daemonize
常见问题及解决方法
1、缺少依赖库:在编译过程中,如果遇到缺少某个库的错误,可以根据错误提示安装相应的开发包,如果缺少libzip库,可以执行以下命令:
sudo yum remove y libzip # 先删除旧版本 wget https://nih.at/libzip/libzip1.2.0.tar.gz # 下载新版libzip源码 tar zxvf libzip1.2.0.tar.gz # 解压源码包 cd libzip1.2.0 # 进入目录 ./configure # 配置 make && make install # 编译安装
2、动态链接库问题:如果在编译时出现与动态链接库相关的问题,可以尝试更新/etc/ld.so.conf
文件,添加相关的路径,然后运行ldconfig
命令更新配置。
echo '/usr/local/lib64' | sudo tee a /etc/ld.so.conf echo '/usr/local/lib' | sudo tee a /etc/ld.so.conf sudo ldconfig v
FAQs(相关问答)
1、Q1: 如何确认PHP是否正确安装?:可以通过运行php v
命令来查看PHP的版本信息,如果显示出正确的版本号,则说明安装成功,还可以创建一个包含<?php phpinfo(); ?>
的PHP文件,并在浏览器中访问该文件,查看PHP的信息页面以确认安装情况。
2、Q2: 编译PHP时报错“checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11”如何解决?:这个错误表示系统中的libzip库版本过低,需要升级到至少0.11版本,首先删除旧版本的libzip库,然后下载、编译并安装新版本的libzip库,具体步骤如下:
sudo yum remove y libzip # 删除旧版本 wget https://nih.at/libzip/libzip1.2.0.tar.gz # 下载新版libzip源码 tar zxvf libzip1.2.0.tar.gz # 解压源码包 cd libzip1.2.0 # 进入目录 ./configure # 配置 make && make install # 编译安装