search
HomeOperation and MaintenanceCentOSHow to compile and install php-fpm on centos

How to compile and install php-fpm in centos: first install the dependent software through "yum install wget vim"; then install the php dependencies; then copy "php.ini-production" to the configuration file directory specified during compilation; Finally check the PHP version.

How to compile and install php-fpm on centos

Recommended: "PHP Video Tutorial"

Compile and install PHP5.4.45 under CentOS7 and compile php -fpm

System environment

uname -a
Linux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
date
Fri Feb 2 22:12:58 CST 2018

Required files

Source code

PHP: http://sg2.php.net/distributions/ php-5.4.45.tar.gz

Compilation environment

gcc

Dependencies: cpp, glibc-devel, glibc-headers, kernel-headers, libmpc, mpfr

Companion upgrade: glibc, glibc-common, libgcc, libgomp

gcc-c

Dependency: libstdc -devel

Companion upgrade: libstdc

yum install gcc gcc-c

Dependent software

yum install wget vim

wget is used for downloading, vim is convenient for editing files

Compiling and installing header files that require corresponding functions, header files There are two ways to obtain it. One is to install the corresponding devel package through yum, which contains the files required during the compilation process; the other way is to download the required source code package, decompress it, and then specify the source in configure. The file location is sufficient.

Start the installation

Install php dependencies

Use yum to install here. Of course, you can also choose to use the source code package. When using source code, it is best to choose the version corresponding to yum, otherwise compatibility issues may occur.

Source code download location: http://vault.centos.org/centos/7/os/Source/SPackages/

yum install libxml2-devel    #2.9.1
yum install openssl openssl-devel   #1.0.2k
yum install bzip2 bzip2-devel   #1.0.6
yum install curl curl-devel   #7.29.0
yum install libjpeg libjpeg-devel   #libjpeg-turbo-1.2.90
yum install libpng libpng-devel  #1.5.13
yum install libxslt libxslt-devel  #1.1.28
yum install freetype freetype-devel   #2.4.11
yum install gmp gmp-devel   #6.0.0
yum install icu libicu-devel   #50.1.2
yum install -y epel-release && yum install -y libmcrypt libmcrypt-devel   #2.5.8该包CentOS默认源中没有,所以使用epel的源
yum install unixODBC unixODBC-devel #2.3.1

The following will depend on installation. If you are not sure, you can do it manually. Install once

gettext   #0.18.2.1
zlib   #1.2.7
pcre   #8.32
libpng   #1.5.13

If you use the source code method, to ensure functional integrity, you need to install the following packages:

yum install libxml2 openssl bzip2 curl libjpeg freetype gmp icu libicu libmcrypt unixODBC gettext zlib pcre libpng

Install php

php:

wget http://sg2.php.net/distributions/php-5.4.45.tar.gz
tar zxvf php-5.4.45.tar.gz
cd php-5.4.45
./configure \
--prefix=/opt/web_engine/php \
--with-config-file-path=/opt/web_engine/php/etc \
--with-gettext \
--with-gmp \
--with-mysql \
--with-openssl \
--with-pdo-mysql \
--with-bz2 \
--with-curl \
--with-mcrypt \
--with-mhash \
--with-freetype-dir \
--with-unixODBC=/usr/ \
--with-pdo-odbc=unixODBC,/usr/ \
--with-libxml-dir \
--with-zlib \
--with-pcre-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-xmlrpc \
--with-libxml-dir \
--with-xsl \
--enable-soap \
--enable-sysvmsg \
--enable-wddx \
--enable-zip \
--enable-exif \
--enable-intl \
--enable-bcmath \
--enable-calendar \
--enable-mbstring \
--enable-shmop \
--enable-fpm \
--enable-sockets
make && make install
Installing PHP CLI binary: /opt/web_engine/php/bin/
Installing PHP CLI man page: /opt/web_engine/php/php/man/man1/
Installing PHP FPM binary: /opt/web_engine/php/sbin/
Installing PHP FPM config: /opt/web_engine/php/etc/
Installing PHP FPM man page: /opt/web_engine/php/php/man/man8/
Installing PHP FPM status page: /opt/web_engine/php/php/fpm/
Installing PHP CGI binary: /opt/web_engine/php/bin/
Installing PHP CGI man page: /opt/web_engine/php/php/man/man1/
Installing build environment: /opt/web_engine/php/lib/php/build/
Installing header files: /opt/web_engine/php/include/php/
Installing helper programs: /opt/web_engine/php/bin/
program: phpize
program: php-config
Installing man pages: /opt/web_engine/php/php/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /opt/web_engine/php/lib/php/
[PEAR] Archive_Tar - installed: 1.3.12
[PEAR] Console_Getopt - installed: 1.3.1
[PEAR] Structures_Graph- installed: 1.0.4
[PEAR] XML_Util - installed: 1.2.3
[PEAR] PEAR - installed: 1.9.5
Wrote PEAR system config file at: /opt/web_engine/php/etc/pear.conf
You may want to add: /opt/web_engine/php/lib/php to your php.ini include_path
/root/php-5.4.45/build/shtool install -c ext/phar/phar.phar /opt/web_engine/php/bin
ln -s -f /opt/web_engine/php/bin/phar.phar /opt/web_engine/php/bin/phar
Installing PDO headers: /opt/web_engine/php/include/php/ext/pdo/

Follow-up Work

Copy php.ini-production in the source directory to the configuration file directory specified during compilation

cp /root/php-5.4.45/php.ini-production /opt/web_engine/php/etc
cd /opt/web_engine/php/etc && cp php.ini-production php.ini
cd /opt/web_engine/php/etc && cp php-fpm.conf.default php-fpm.conf

In addition, if there is a php extension defined, install the extension

Check PHP version

/opt/web_engine/php/bin/php -v
PHP 5.4.45 (cli) (built: Feb 2 2018 15:44:07)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

View details

/opt/web_engine/php/bin/php -i

...

systemd configuration

vim /usr/lib/systemd/system/php-fpm.service
 
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
 
[Service]
Type=simple
PIDFile=/opt/web_engine/php/var/run/php-fpm.pid
ExecStart=/opt/web_engine/php/sbin/php-fpm --nodaemonize --fpm-config /opt/web_engine/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPIDe
 
[Install]
WantedBy=multi-user.target

Log rotation

vim /etc/logrotate.d/php-fpm
/var/log/php-fpm/*.log {
    su root root
    daily
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    olddir /var/log/php-fpm/archive
    #create 640 nginx adm
    sharedscripts
    postrotate
        /bin/kill -SIGUSR1 `cat /opt/web_engine/php/var/run/php-fpm.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

The above is the detailed content of How to compile and install php-fpm on centos. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Comparing CentOS Replacements: Features and BenefitsComparing CentOS Replacements: Features and BenefitsMay 01, 2025 am 12:05 AM

Alternatives to CentOS include AlmaLinux, RockyLinux, and OracleLinux. 1.AlmaLinux provides RHEL compatibility and community-driven development. 2. RockyLinux emphasizes enterprise-level support and long-term maintenance. 3. OracleLinux provides Oracle-specific optimization and support. These alternatives have similar stability and compatibility to CentOS, and are suitable for users with different needs.

CentOS vs. Other Linux Distributions: A ComparisonCentOS vs. Other Linux Distributions: A ComparisonApr 30, 2025 am 12:07 AM

CentOS is suitable for enterprise and server environments due to its stability and long life cycle. 1.CentOS provides up to 10 years of support, suitable for scenarios that require stable operation. 2.Ubuntu is suitable for environments that require quick updates and user-friendly. 3.Debian is suitable for developers who need pure and free software. 4.Fedora is suitable for users who like to try the latest technologies.

CentOS's Departure: Choosing the Right AlternativeCentOS's Departure: Choosing the Right AlternativeApr 29, 2025 am 12:04 AM

Alternatives to CentOS include AlmaLinux, RockyLinux, and OracleLinux. 1.AlmaLinux and RockyLinux rebuild RHEL 1:1, providing high stability and compatibility, suitable for enterprise environments. 2. OracleLinux provides high performance through UEK, suitable for users who are familiar with the Oracle technology stack. 3. When choosing, stability, community support and package management should be considered.

CentOS's Replacement: Exploring the New OptionsCentOS's Replacement: Exploring the New OptionsApr 28, 2025 am 12:17 AM

CentOS alternatives include RockyLinux, AlmaLinux, and OracleLinux. 1. RockyLinux and AlmaLinux provide stable distributions compatible with RHEL, suitable for users who need long-term support. 2. CentOSStream is suitable for users who focus on new features and development cycles. 3. OracleLinux is suitable for users who need enterprise-level support.

Replacing CentOS: Identifying Suitable ReplacementsReplacing CentOS: Identifying Suitable ReplacementsApr 27, 2025 am 12:04 AM

CentOS needs alternatives because CentOSStream no longer provides long-term support. Alternative options include: 1. RockyLinux, which provides 10 years of life cycle support, suitable for users who need stability. 2.AlmaLinux also provides 10 years of support and has strong community support. 3. OracleLinux, provides RHEL-compatible version, and flexible life cycle management.

The End of CentOS: Evaluating the ImpactThe End of CentOS: Evaluating the ImpactApr 26, 2025 am 12:03 AM

The end of CentOS has had a significant impact on users, with users having the option of RHEL, AlmaLinux, Debian or Ubuntu as alternatives. 1. The migration cost is high, requiring time and money. 2. Community division affects open source projects. 3.RHEL provides commercial support, but it is costly. 4.AlmaLinux is similar to CentOS and has low migration costs. 5. Debian and Ubuntu need more time to adapt.

CentOS: An Explanation of the Decision-Making ProcessCentOS: An Explanation of the Decision-Making ProcessApr 25, 2025 am 12:03 AM

CentOS is suitable as an enterprise-class server operating system because it is stable, secure and free. 1) It is based on RHEL and provides high compatibility with RHEL. 2) Use yum for package management to ensure that the software is easy to install and update. 3) The community regularly releases security patches, with a support cycle of up to 10 years.

The Discontinuation of CentOS: Understanding the FactorsThe Discontinuation of CentOS: Understanding the FactorsApr 24, 2025 am 12:01 AM

The reason why CentOS stopped maintaining is RedHat's strategic change. User response strategies include: 1. Migrating to other distributions, such as UbuntuServer, Debian or RockyLinux; 2. Continue to use CentOS7 until June 2024; 3. Turning to CentOSStream; 4. Build solutions, such as custom distributions based on RHEL or using container technology.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.