centos如何编译安装php-fpm

发布时间 - 2020-08-31 00:00:00    点击率:
centos编译安装php-fpm的方法:首先通过“yum install wget vim”安装依赖软件;然后安装php依赖;接着拷贝“php.ini-production”到编译时指定的配置文件目录;最后检查PHP版本即可。

推荐:《PHP视频教程》

CentOS7下编译安装PHP5.4.45并编译php-fpm

系统环境

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

所需文件

源码

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

编译环境

gcc

依赖:cpp、glibc-devel、glibc-headers、kernel-headers、libmpc、mpfr

伴随升级:glibc、glibc-common、libgcc、libgomp

gcc-c++

依赖:libstdc++-devel

伴随升级:libstdc++

yum install gcc gcc-c++

依赖软件

yum install wget vim

wget用于下载,vim方便编辑文件

编译安装需要对应功能的头文件,头文件的获得方式有两个方式,一个是通过yum安装对应的devel包,里面就包含了编译过程中所需要文件;另外一种方式就是下载需要的源码包,并且解压缩,然后在configue中指定源文件位置即可。

开始安装

安装php依赖

这里使用yum进行安装,当然,也可以选择使用源码包。使用源码时,最好选择与yum相对应的版本,否则可能会不现兼容性问题。

源码下载位置: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

下面这些会依赖安装,如不确定也可手动再安装一次

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

若使用源码方式,为保证功能完整性,需安装以下包:

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

安装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/

后续工作

拷贝源码目录下的php.ini-production到编译时指定的配置文件目录

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

另外,若有知定义php扩展,则安装扩展

检查PHP版本

/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

查看详细信息

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

...

systemd配置

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

日志轮换

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
}


# centos  # php  # .net  # vim  # http  # 配置文件  # 头文件  # 所需  # 也可  # 若有  # 可以选择  # 解压缩  # 所需要  # 如不  # 相对应 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何获取上海专业网站定制建站电话?  Swift中switch语句区间和元组模式匹配  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何自定义建站之星网站的导航菜单样式?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  怎么用AI帮你设计一套个性化的手机App图标?  如何在宝塔面板中创建新站点?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  iOS验证手机号的正则表达式  Laravel如何使用Telescope进行调试?(安装和使用教程)  如何快速登录WAP自助建站平台?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  如何在IIS中配置站点IP、端口及主机头?  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  PHP正则匹配日期和时间(时间戳转换)的实例代码  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  详解CentOS6.5 安装 MySQL5.1.71的方法  黑客入侵网站服务器的常见手法有哪些?  网站建设保证美观性,需要考虑的几点问题!  javascript中对象的定义、使用以及对象和原型链操作小结  昵图网官方站入口 昵图网素材图库官网入口  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  C#如何调用原生C++ COM对象详解  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  手机网站制作与建设方案,手机网站如何建设?  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  教你用AI润色文章,让你的文字表达更专业  Android Socket接口实现即时通讯实例代码  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  详解jQuery中基本的动画方法  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何用已有域名快速搭建网站?  利用python获取某年中每个月的第一天和最后一天  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何获取PHP WAP自助建站系统源码?  怎么用AI帮你为初创公司进行市场定位分析?  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  EditPlus中的正则表达式实战(6)