CentOS 7 下编译安装lnmp之PHP篇详解

一、安装环境

宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64

二、PHP下载

官网 http://www.php.net/downloads.php 下载 php-7.3.0.tar.bz2 至 /usr/local/src 目录下

解压并移动至 /usr/local/下,重命名为php7

[root@bogon src]# tar -jxf php-7.3.0.tar.bz2 
[root@bogon src]# mv php-7.3.0 /usr/local/php7
[root@bogon src]# ls /usr/local/php7
acinclude.m4      genfiles         php.ini-development               run-tests.php
aclocal.m4        header           php.ini-production                sapi
appveyor          INSTALL          README.EXT_SKEL                   scripts
build             install-sh       README.GIT-RULES                  server-tests-config.php
buildconf         LICENSE          README.input_filter               server-tests.php
buildconf.bat     ltmain.sh        README.MAILINGLIST_RULES          snapshot
CODING_STANDARDS  main             README.md                         stamp-h.in
config.guess      makedist         README.NEW-OUTPUT-API             tests
config.sub        Makefile.frag    README.PARAMETER_PARSING_API      travis
configure         Makefile.gcov    README.REDIST.BINS                TSRM
configure.ac      Makefile.global  README.RELEASE_PROCESS            UPGRADING
CONTRIBUTING.md   missing          README.SELF-CONTAINED-EXTENSIONS  UPGRADING.INTERNALS
CREDITS           mkinstalldirs    README.STREAMS                    vcsclean
ext               NEWS             README.SUBMITTING_PATCH           win32
EXTENSIONS        pear             README.TESTING                    Zend
footer            php7.spec.in     README.UNIX-BUILD-SYSTEM
generated_lists   php.gif          README.WIN32-BUILD-SYSTEM

三、PHP7编译安装

1、安装依赖

[root@bogon src]# yum install gd zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel

2、配置参数

[root@bogon php7]# ./configure --prefix=/usr/local/php7 --with-gd --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --enable-mbstring --enable-fpm

     运行结果

Thank you for using PHP.

config.status: creating php7.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/www.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/phpdbg/phpdbg.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: main/php_config.h is unchanged
config.status: executing default commands

3、编译安装

[root@bogon php7]# make && make install

四、启动PHP7

1、测试启动PHP进程

[root@bogon php7]# ./sbin/php-fpm 
[24-Dec-2018 12:42:24] ERROR: failed to open configuration file '/usr/local/php7/etc/php-fpm.conf': No such file or directory (2)
[24-Dec-2018 12:42:24] ERROR: failed to load configuration file '/usr/local/php7/etc/php-fpm.conf'
[24-Dec-2018 12:42:24] ERROR: FPM initialization failed

大意是在 /usr/local/php7/etc/ 目录下找不到 php-fpm.conf,进入该目录查看

[root@bogon php7]# ls etc
pear.conf  php-fpm.conf.default  php-fpm.d

只有 php-fpm.conf.default文件,复制一份更名为 php-fpm.conf

[root@bogon php7]# cp etc/php-fpm.conf.default etc/php-fpm.conf
[root@bogon php7]# ls etc
pear.conf  php-fpm.conf  php-fpm.conf.default  php-fpm.d

     再次启动

[root@bogon php7]# ./sbin/php-fpm 
[24-Dec-2018 12:48:02] WARNING: Nothing matches the include pattern '/usr/local/php7/etc/php-fpm.d/*.conf' from /usr/local/php7/etc/php-fpm.conf at line 143.
[24-Dec-2018 12:48:02] ERROR: No pool defined. at least one pool section must be specified in config file
[24-Dec-2018 12:48:02] ERROR: failed to post process the configuration
[24-Dec-2018 12:48:02] ERROR: FPM initialization failed
去 /usr/local/php7/etc/php-fpm.conf 的143行查看
[root@bogon php7]# vi etc/php-fpm.conf

143 include=/usr/local/php7/etc/php-fpm.d/*.conf

查看 /usr/local/php7/etc/php-fpm.d 目录

[root@bogon php7]# ls etc/php-fpm.d
www.conf.default

只有www.conf.default,复制一份重命名为 www.conf

[root@bogon php7]# cp etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf
[root@bogon php7]# ls etc/php-fpm.d
www.conf  www.conf.default

再次启动 php-fpm

[root@bogon php7]# ./sbin/php-fpm 
[root@bogon php7]# ps aux | grep php
root     14280  0.0  0.5 181200  5620 ?        Ss   12:54   0:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nobody   14281  0.0  0.5 181200  5220 ?        S    12:54   0:00 php-fpm: pool www
nobody   14282  0.0  0.5 181200  5220 ?        S    12:54   0:00 php-fpm: pool www
root     14284  0.0  0.0 112704   960 pts/0    R+   12:54   0:00 grep --color=auto php

进程启动成功,查看php详细版本信息

[root@bogon php7]# ./bin/php -v
PHP 7.3.0 (cli) (built: Dec 24 2018 12:33:07) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies

2、设置开机启动

     2.1、在系统服务目录里创建php7.,service文件

[root@bogon php7]# vi /lib/systemd/system/php7.service

    2.2、添加如下内容

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php7/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php7/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target

    2.3、添加到开机启动

[root@bogon php7]# systemctl enable php7.service

    2.4、启动php7服务

[root@bogon php7]# pkill -9 php-fpm
[root@bogon php7]# systemctl start php7
[root@bogon php7]# systemctl status php7
● php7.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php7.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-12-24 13:09:56 CST; 7s ago
 Main PID: 14401 (php-fpm)
   CGroup: /system.slice/php7.service
           ├─14401 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
           ├─14402 php-fpm: pool www
           └─14403 php-fpm: pool www

Dec 24 13:09:56 bogon systemd[1]: Started The PHP FastCGI Process Manager.
Dec 24 13:09:56 bogon systemd[1]: Starting The PHP FastCGI Process Manager...

至此,php7编译安装完毕。

原文地址:https://www.cnblogs.com/splendid/p/10167811.html