在CentOS上编译PHP是一个相对复杂的过程,涉及多个步骤和依赖项,下面我将详细描述如何在CentOS上编译PHP,并提供相关的FAQs。
准备工作
1.1 更新系统
确保你的CentOS系统是最新的,打开终端并运行以下命令:
sudo yum update y
1.2 安装必要的软件包
编译PHP需要一些开发工具和库,运行以下命令来安装它们:
sudo yum groupinstall "Development Tools" y sudo yum install openssldevel libxml2devel bzip2devel libjpegdevel libpngdevel freetypedevel libmcryptdevel libcurldevel libxsltdevel gddevel ldapdevel y
1.3 下载PHP源码
你可以从PHP官方网站下载PHP的源码,下载PHP 7.4.16版本:
cd /usr/src sudo wget https://www.php.net/distributions/php7.4.16.tar.gz sudo tar xzf php7.4.16.tar.gz cd php7.4.16
配置和编译PHP
2.1 配置PHP
在配置PHP之前,你需要决定要启用哪些扩展,你可以通过./configure
脚本的参数来指定这些选项。
./configure prefix=/usr/local/php \ withconfigfilepath=/usr/local/php \ enablembstring \ withcurl \ withopenssl \ withzlib \ enableftp \ withgd \ enablesession \ withmysqli \ withpdomysql \ withxml \ withxsl \ withbz2 \ withsodium=shared,/usr \ withgettext \ withiconvdir \ withfreetypedir=/usr/include/freetype2 \ withjpegdir \ withpngdir \ enableexif \ enablesoap \ enablesockets \ enablesysvsem \ enablesysvshm \ enableopcache \ withoutpear
2.2 编译和安装PHP
配置完成后,运行以下命令来编译和安装PHP:
make j$(nproc) sudo make install
配置PHP
3.1 复制配置文件模板
PHP安装完成后,复制默认的配置文件模板到合适的位置:
sudo cp /usr/local/php/php.iniproduction /usr/local/php/php.ini
3.2 更新环境变量
为了使系统能够找到PHP的可执行文件,需要更新环境变量,编辑/etc/profile
文件并添加以下行:
export PATH=/usr/local/php/bin:$PATH export PHP_INI_DIR=/usr/local/php/php.ini
然后运行以下命令使更改生效:
source /etc/profile
验证安装
验证PHP是否安装成功并正常工作:
php v
你应该会看到类似以下的输出,显示PHP的版本信息:
PHP 7.4.16 (cli) (built: Mar 19 2021 15:48:36) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.16, enabled
相关问答FAQs
Q1: 如何更改PHP的配置文件路径?
A1: 你可以通过修改php.ini
文件中的php_ini_scanned_files
设置来更改PHP配置文件的路径,如果你希望将配置文件放在/etc/php/php.ini
,你可以在php.ini
文件中找到以下行并进行修改:
; Directory in which the loadable extensions (modules) reside. ; http://php.net/extensiondir extension_dir = "/usr/local/php/lib/php/extensions/nodebugnonzts20190902"
将其改为:
; Directory in which the loadable extensions (modules) reside. ; http://php.net/extensiondir extension_dir = "/etc/php/extensions"
然后在/etc/php/php.ini
中添加以下内容:
[PHP] include_path = ".:/usr/local/php/share/pear"
确保新的配置文件路径被包含在环境变量中:
export PHP_INI_DIR=/etc/php/php.ini source /etc/profile
Q2: 如何添加新的PHP扩展?
A2: 添加新的PHP扩展通常涉及以下几个步骤:
1、下载扩展源码:从扩展的官方网站下载源码,下载redis
扩展:
cd /usr/src sudo wget https://pecl.php.net/get/redis sudo tar xzf redis cd redis5.3.4
2、编译和安装扩展:使用phpize
准备编译环境,然后运行./configure
和make
命令进行编译和安装。
sudo /usr/local/php/bin/phpize ./configure withphpconfig=/usr/local/php/bin/phpconfig make && sudo make install
3、启用扩展:在php.ini
文件中添加以下行以启用新安装的扩展:
extension=redis.so
4、重启Web服务器:如果你在使用Web服务器(如Apache或Nginx),请重启服务器以使更改生效,对于Apache:
sudo systemctl restart httpd
对于Nginx,通常不需要重启,因为PHPFPM会自动检测到新的扩展。