HCRM博客

如何在CentOS系统上编译PHP?

在CentOS上编译PHP是一个相对复杂的过程,涉及多个步骤和依赖项,下面我将详细描述如何在CentOS上编译PHP,并提供相关的FAQs。

准备工作

1.1 更新系统

如何在CentOS系统上编译PHP?-图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

如何在CentOS系统上编译PHP?-图2
(图片来源网络,侵权删除)

在配置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准备编译环境,然后运行./configuremake命令进行编译和安装。

   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会自动检测到新的扩展。

分享:
扫描分享到社交APP
上一篇
下一篇