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

摘要:
1、 安装环境主机=˃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@bogonsrc]#tar jx

一、安装环境

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

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

二、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编译安装完毕。

免责声明:文章转载自《CentOS 7 下编译安装lnmp之PHP篇详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇2018年全国职业院校技能大赛(中职组)网络空间安全赛题解析IOS笔记047-代理传值和block传值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

centos 7-8 安装 ms sql server 2019

https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-overview?view=sql-server-ver15 ###下载安装 sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com...

【12c】Oracle Restart中的SRVCTL命令详解

SRVCTL,服务控制实用工具(Service Control Utility),可用于对Oracle Restart和Oracle RAC的配置和管理,本篇主要介绍SRVCTL命令在Oracle Restart中的应用,其中,详细介绍config、status命令,并列出其它命令的用法。 1 srvctl命令语法 Usage: srvctl <co...

PyQt(Python+Qt)学习随笔:QTreeWidgetItem项下子项的指示符展示原则childIndicatorPolicy

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的QTreeWidgetItem项下可以有子项,如果存在子项,则父项的节点是否显示展开或折叠子项的提示符由属性childIndicatorPolicy控制。 childIndicatorPolicy属性的类型为枚举类型QT...

【Docker】Docker介绍安装和使用

一.docker简介: docker是容器技术的一个代表,而容器技术是将程序打包和隔离的一种技术,其实它并不是一个新技术,之前在linux内核中早已存在,真正被大众所用所了解是因为docker的出现。docker之所以流行起来,是因为解决了一些计算机领域的痛点,它解决了软件包装的问题,保证开发与运维及测试环境的一致。docker可以将任何应用以轻量级容器的...

centos使用yum下载至本地及使用本地缓存安装包

centos使用yum下载至本地及使用本地缓存安装包  yum install --downloadonly --downloaddir=/home/java java https://www.iteye.com/blog/mywaylife-2435856 https://blog.csdn.net/weixin_30861797/article/det...

OpenWRT UCI API的使用 (libuci库的使用)

摘自:http://www.openwrt.pro/post-37.html OpenWRT UCI API的使用 LUCI配置文件简介 LUCI的配置文件一般存储在 /etc/config目录下。比如网络配置文件则是 /etc/config/network 无线的配置文件是 /etc/config/wireless. 跟多配置文件的含义参考官方 WIKI...