HCRM博客

在CentOS系统上成功编译安装PHP教程

在CentOS系统上编译安装PHP,可以提供更高的自定义性和优化选项,以下是一个详细的步骤指南,包括环境准备、依赖包安装、PHP源码下载与解压、配置编译选项、编译与安装、环境变量配置以及常见问题解决等内容。

一、环境准备

1、更新系统和安装基础开发工具:确保系统软件包是最新的,并安装必要的编译工具。

在CentOS系统上成功编译安装PHP教程-图1
(图片来源网络,侵权删除)
   sudo yum update y
   sudo yum groupinstall 'Development Tools'

2、安装依赖包:PHP编译需要一些库和头文件,可以通过以下命令安装:

   sudo yum install libxml2devel openssldevel bzip2devel libcurldevel libjpegdevel libpngdevel freetypedevel gddevel libmcryptdevel readlinedevel libxsltdevel zlibdevel glibcdevel glib2devel ncursesdevel curldevel epelrelease

二、下载与解压PHP源码

1、创建目录并下载PHP源码:建议将源码放在/usr/local/src目录下。

   mkdir p /usr/local/src
   cd /usr/local/src
   wget https://www.php.net/distributions/php8.0.0.tar.gz
   tar zxvf php8.0.0.tar.gz
   cd php8.0.0

三、配置编译选项

1、配置编译选项:使用./configure命令配置PHP的编译选项,以下是一个示例配置,可以根据需要增减选项。

   ./configure \
       prefix=/usr/local/php \
       withconfigfilepath=/etc \
       withmysqli \
       withpdomysql \
       withgd \
       enablembstring \
       enablefpm \
       enableopcache \
       withcurl \
       withfreetypedir \
       withjpegdir \
       withpngdir \
       withzlibdir \
       withbz2 \
       withopenssl \
       withpcreregex \
       withreadline

四、编译与安装

1、编译并安装PHP:执行以下命令进行编译和安装。

   make && sudo make install

五、配置环境变量

1、设置PHP路径:将PHP的二进制目录添加到系统PATH中。

   echo "export PATH=\$PATH:/usr/local/php/bin" >> /etc/profile
   source /etc/profile

2、验证安装:检查PHP版本以确认安装成功。

在CentOS系统上成功编译安装PHP教程-图2
(图片来源网络,侵权删除)
   php v

六、配置PHPFPM

1、复制配置文件:将默认的PHPFPM配置文件复制到合适的位置,并进行必要的修改。

   cp sapi/phpfpm.conf.default /usr/local/php/etc/phpfpm.conf
   cp sapi/phpfpm.d/www.conf.default /usr/local/php/etc/phpfpm.d/www.conf

2、启动PHPFPM:使用以下命令启动PHPFPM服务。

   /usr/local/php/sbin/phpfpm fpmconfig /usr/local/php/etc/phpfpm.conf

3、设置开机自启动:为了在系统启动时自动运行PHPFPM,可以创建一个systemd服务文件。

   sudo vi /etc/systemd/system/phpfpm.service

添加以下内容:

   [Unit]
   Description=The PHP FastCGI Process Manager
   After=network.target
   [Service]
   Type=simple
   PIDFile=/usr/local/php/var/run/phpfpm.pid
   ExecStart=/usr/local/php/sbin/phpfpm nodaemonize
   Restart=always
   [Install]
   WantedBy=multiuser.target

保存并退出后,启用并启动服务:

   sudo systemctl enable phpfpm
   sudo systemctl start phpfpm

七、常见问题及解决

1、缺少libzip库:在编译PHP时可能会提示缺少libzip库,可以通过以下步骤解决。

在CentOS系统上成功编译安装PHP教程-图3
(图片来源网络,侵权删除)
   wget https://nih.at/libzip/libzip1.5.2.tar.gz
   tar zxvf libzip1.5.2.tar.gz
   cd libzip1.5.2
   ./configure
   make && sudo make install

2、off_t undefined错误:在64位系统上编译时,可能会出现off_t类型未定义的错误,解决方法如下:

   echo "/usr/local/lib64" > /etc/ld.so.conf.d/usr_local_lib.conf
   sudo ldconfig
步骤 命令 描述
环境准备sudo yum update y
sudo yum groupinstall 'Development Tools'
更新系统并安装基础开发工具
安装依赖包sudo yum install ... 安装PHP编译所需的依赖包
下载与解压PHP源码wget https://...
tar zxvf ...
下载并解压PHP源码
配置编译选项./configure ... 配置PHP编译选项
编译与安装make && sudo make install 编译并安装PHP
配置环境变量echo "export PATH=$PATH:... >> /etc/profile"
source /etc/profile
设置PHP路径
验证安装php v 检查PHP版本
配置PHPFPMcp ...
/usr/local/php/sbin/phpfpm fpmconfig ...
复制并配置PHPFPM,启动服务
设置开机自启动sudo vi /etc/systemd/system/phpfpm.service
sudo systemctl enable phpfpm
sudo systemctl start phpfpm
创建并启动PHPFPM的systemd服务
常见问题及解决wget https://...
echo "/usr/local/lib64" > ...
sudo ldconfig
解决libzip库缺失和off_t undefined错误

九、常见问题FAQs

Q1:如何解决“checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11”错误?

A1:这是由于系统自带的libzip版本过低导致的,解决方法是先删除旧版本的libzip,然后下载并编译安装新版本的libzip。

yum remove y libzip
wget https://nih.at/libzip/libzip1.2.0.tar.gz
tar zxvf libzip1.2.0.tar.gz
cd libzip1.2.0
./configure
make && make install

Q2:如何配置Nginx以支持PHPFPM?

A2:为了使Nginx支持PHPFPM,需要编辑Nginx配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf,添加以下配置:

server {
    listen 80;
    server_name your_domain_or_ip;
    root /path_to_your_website;
    index index.php index.html index.htm;
    location ~ \.php$ {
        include snippets/fastcgiphp.conf;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

fastcgi_pass应指向PHPFPM的监听地址和端口(默认为127.0.0.1:9000),还需确保PHPFPM正在运行。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/16493.html

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