PHP8、FPM及部分扩展编译安装 - 简书


本站和网页 https://www.jianshu.com/p/ec5b225a92b0 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

PHP8、FPM及部分扩展编译安装 - 简书登录注册写文章首页下载APP会员IT技术PHP8、FPM及部分扩展编译安装Saopanda关注赞赏支持PHP8、FPM及部分扩展编译安装前言
本着能懒则懒的原则,之前我都是宝塔、lnmp脚本等“一键”
再不济也得来个 apt/yum install php
什么?源码 make install? 编译参数一言难尽,劝退劝退...我只是想要个开发环境而已
没关系!我来整理一下常用模块以及参数!环境为 ubuntu/debian
为啥不用docker?
开发环境有时候想跑一跑代码,还得先进入到容器里,里面通常又没有宿主机的一些工具(有的容器甚至连ping都没有),来回切换感觉很麻烦
总结
源码压缩包要检查 sha256
快速安装 只看 1、2、4、5
3 为模块对应的参数表
开始
1. 准备源码
检查压缩包的完整性,与官网 sha256比较
wget https://www.php.net/distributions/php-8.1.2.tar.gz
sha256sum php-8.1.2.tar.gz
tar zxvf php-8.1.2.tar.gz
2. 准备编译环境
安装以下包
// debian/ubuntu
apt install gcc make pkg-config libxml2-dev libsqlite3-dev libonig-dev libcurl4-openssl-dev libssl-dev libzip-dev
# GD
apt install zlib1g-dev libpng-dev
3. 编译参数
官方的拓展分类
根据需要的模块添加其后对应的参数
./configure 各种参数
模块
参数
作用
备注
--prefix=
安装目录前缀
核心配置项
--with-pear
安装pear
--with-config-file-path
指定 php.ini的位置
FPM
--enable-fpm
详细配置
FPM
--with-fpm-user
运行者
FPM
--with-fpm-group
运行组
FPM
--with-fpm-systemd
使用systemd运行管理
GD
--enable-gd
使用推荐版本GD
详细配置
mbstring
--enable-mbstring
多字节字符串
CURL
--with-curl
PDO_MYSQL
--with-pdo-mysql
默认使用的是 Mysqlnd
OpenSSL
--with-openssl
Zip
--with-zip
sockets
--enable-sockets
4. 编译命令
包含常用模块,可以直接使用
./configure --prefix=/usr/local --with-pear --enable-fpm --with-fpm-systemd --enable-gd --enable-mbstring --with-curl --with-pdo-mysql --with-openssl --with-zip
5. 编译&安装
编译并安装后
复制 php.ini 到默认目录/usr/local/lib/
编译的时候可指定
make && make install
cp php.ini-development /usr/local/lib/php.ini
检查 php安装是否正确
$ php -v
PHP 8.1.2 (cli) (built: Feb 18 2022 08:17:32) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
$ php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/lib
Loaded Configuration File => /usr/local/lib/php.ini
复制 fpm 配置文件、运行服务文件
www.conf php-fpm.conf php-fpm.service
cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm.service /etc/systemd/system/
修改 fpm 用户和组,默认为nobody
编译的时候可指定
user = www-data
group = www-data
/usr/local/etc/php-fpm.d/www.conf
修改服务文件,取消只读 不然日志不能读写无法启动
ProtectSystem=false
/etc/systemd/system/php-fpm.service
设置自启动并运行
systemctl enable php-fpm
service php-fpm start
service php-fpm status
* php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/etc/systemd/system/php-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-02-18 09:46:29 UTC; 5s ago
Main PID: 397784 (php-fpm)
本地起服务测试
php -S 0.0.0.0:8080
[附]编译错误
No package 'libxml-2.0' found
apt install libxml2-dev
No package ‘sqlite3‘ found
apt install libsqlite3-dev
configure: WARNING: unrecognized options: –with-gd
--with-gd becomes --enable-gd
No package 'zlib' found
apt install zlib1g-dev
No package 'libpng' found
apt install libpng-dev
No package 'oniguruma' found
apt install libonig-dev
No package 'libcurl' found
apt install libcurl4-openssl-dev
No package 'libsystemd' found
apt install libsystemd-dev
No package 'openssl' found
apt install libssl-dev
No package 'libzip' found
apt install libzip-dev
推荐阅读更多精彩内容CentOS7下PHP的编译安装说明 在windows平台上直接执行下载的安装包一路点击下一步很容易安装这里不多介绍.由于作者大多数情况都是在Ce...破与立阅读 173评论 0赞 1ubuntu16.04下编译安装php5.4的方法及部分可能出现的错误前言 一般而言,除非对编译安装十分熟练或是有特殊要求,直接从系统支持的源中安装是linux下最有效率的方法,不幸的...EVANIMARIA阅读 1,598评论 0赞 0PHP7.4源码编译安装之生产篇1centos 版本至少是8.0 才能按照下面的方式安装 (主要是扩展包兼容性问题) 1、下载 PHP 7.4.14...我爱张智容阅读 772评论 0赞 0PHP 常用扩展模块php 扩展主要分为两类: php模块扩展和zend模块扩展。 php模块扩展 bz2 用于透明地读写 bzip...Jaxh阅读 2,615评论 0赞 2CentOS7安装php7.1遇到不支持MySQL扩展问题简单安装(yum方式) 安装软件源 添加epel源 [root@opstrip.com opt]# rpm --i...yichen_china阅读 4,405评论 0赞 0PHP7.4编译一、下载php7安装包放至选定目录 cd /usr/local/src wget https://www.php....Luckly_L阅读 1,505评论 0赞 0Centos7.4 编译安装php7.2.31 apache篇:尽量少yum安装。 假定已经安装好了httpd,如果没有就yum install httpd,注意还要安装yum...justlinkin阅读 745评论 0赞 02019-08-21yum安装 添加remi源。 搜索安装包和扩展包。# PHP7.2yum list install "php*" ...Jason5354阅读 710评论 0赞 50php多进程单线程之php-cgi、php-fpmphp多进程单线程之php-cgi、php-fpm php从代码级别的执行上是单线程的, 但是由php-fpm进程...lhz_programArt阅读 1,738评论 1赞 4php+mysql+apache+centos 编译安装php+mysql+apache+centos 编译安装 领导要求先保证php环境稳定,然后再去考虑其他,例如性能...dnaEMx阅读 1,879评论 1赞 16Centos8 编译安装 PHP 8.1.0安装工具包 下载安装 oniguruma 下载安装 php 8.1.0 启动和后续配件可以参考这里Centos7 ...___n阅读 1,954评论 2赞 0了解PHP-FPM在服务器上,当我们查看php进程时,全都是php-fpm进程,大家都知道这个就是php的运行环境,那么,它到底是个...ZyBlog阅读 128评论 0赞 0PHP 长连接的猜测和验证一、什么是长连接,长连接的意义 php 作为 server 对外提供服务, 每次处理新的请求都会重头运行一次代码 ...马六甲的笔记阅读 506评论 1赞 0centos7.4下安装配置PHP服务(源码安装)并配置nginx支持phpcentos7.4下安装配置PHP服务(源码安装)并配置nginx支持php 一、检查php是否已经安装,使用ph...Anwar_ec28阅读 1,502评论 0赞 4PHP-FPM的知识深度详解一、需要搞清楚几个名词概念 CGI(Common Gateway Interface,CGI)通用网关接口, 是W...你在忙什么_b哥阅读 728评论 0赞 2生活不曾给人希望,却常常让人失望 我印象里,身边的老人们,总喜欢把一句话挂在嘴边:“生活不如意事,十之八九!人嘛,总得,自己学会适应生活!”...cf96731e55b0阅读 1,502评论 0赞 42021-3-8晨间日记今天是第三周周一,三八女神节祝自己每天开心一点,工作顺心顺意 起床:4:25 就寝:23:56 天气:雨天 心情:...QXCLZ阅读 997评论 1赞 3💎【利平成长日记】第641天张利平2021.3.6「学习《情绪按钮》第20天收获: [太阳]今天学习内容: 第七章《情绪的来源》(五)情绪的来...张利平专注国学教育139876阅读 4,744评论 1赞 3追梦记2 .0这周的作文题目是:假设你现在在火车上,对面坐着一个漂亮的异性,去构思一段故事,想想接下来会发生什么。那么接下来我的...2077516阅读 2,443评论 3赞 0Study 4 Zechariah 7-撒迦利亚书-研经日课参引言。撒迦利亚对来自伯特利之代表团的答复分为四部分,每一部分都以「耶和华的话临到我」为开端。他的答复的头两部分在...biddon阅读 1,037评论 1赞 1评论0赞22赞3赞赞赏更多好文