阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

PHP编译选项 详述

434次阅读
没有评论

共计 4858 个字符,预计需要花费 13 分钟才能阅读完成。

PHP 安装

./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-mysql=/usr/local/mysql –with-mysqli=/usr/bin/mysql_config –with-iconv-dir=/usr/local –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-discard-path –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-fastcgi –enable-fpm –enable-force-cgi-redirect –enable-mbstring –with-mcrypt –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-ldap –with-ldap-sasl –with-xmlrpc –enable-zip –enable-soap –without-pear –with-zlib –enable-pdo –with-pdo-mysql –with-mysql
#mysqli 扩展技术不仅可以调用 MySQL 的存储过程、处理 MySQL 事务,而且还可以使访问数据库工作变得更加稳定。
make ZEND_EXTRA_LIBS=’-liconv’
make install 

–prefix=/usr/local/php

指定 php 安装目录

–with-apxs2=/usr/local/apache/bin/apxs

整合 apache,apxs 功能是使用 mod_so 中的 LoadModule 指令,加载指定模块到 apache,要求 apache 要打开 SO 模块

–with-config-file-path=/usr/local/php/etc             

指定 php.ini 位置

–with-MySQL=/usr/local/mysql

mysql 安装目录,对 mysql 的支持

–with-mysqli=/usr/local/mysql/bin/mysql_config           

mysqli 扩展技术不仅可以调用 MySQL 的存储过程、处理 MySQL 事务,而且还可以使访问数据库工作变得更加稳定。

–enable-safe-mode  打开安全模式

–enable-ftp  打开 ftp 的支持

–enable-zip  打开对 zip 的支持

–with-bz2    打开对 bz2 文件的支持       

–with-jpeg-dir  打开对 jpeg 图片的支持

–with-png-dir  打开对 png 图片的支持

–with-freetype-dir  打开对 freetype 字体库的支持

–without-iconv  关闭 iconv 函数,种字符集间的转换

–with-libXML-dir  打开 libxml2 库的支持

–with-XMLrpc    打开 xml-rpc 的 c 语言

–with-zlib-dir  打开 zlib 库的支持

–with-gd    打开 gd 库的支持

–enable-gd-native-ttf  支持 TrueType 字符串函数库

–with-curl    打开 curl 浏览工具的支持

–with-curlwrappers    运用 curl 工具打开 url 流

–with-ttf    打开 freetype1.* 的支持,可以不加了

–with-xsl    打开 XSLT 文件支持,扩展了 libXML2 库,需要 libxslt 软件

–with-gettext    打开 gnu 的 gettext 支持,编码库用到

–with-pear    打开 pear 命令的支持,PHP 扩展用的

–enable-calendar    打开日历扩展功能

–enable-mbstring    多字节,字符串的支持

–enable-bcmath    打开图片大小调整, 用到 zabbix 监控的时候用到了这个模块

–enable-sockets    打开 sockets 支持

–enable-exif    图片的元数据支持

–enable-magic-quotes    魔术引用的支持

–disable-rpath    关闭额外的运行库文件

–disable-debug    关闭调试模式

–with-mime-magic=/usr/share/file/magic.mime      魔术头文件位置

CGI 方式安装才用的参数

–enable-fpm                     

打上 PHP-fpm 补丁后才有这个参数,CGI 方式安装的启动程序

–enable-fastCGI                 

支持 fastcgi 方式启动 PHP

–enable-force-CGI-redirect       

重定向方式启动 PHP

–with-ncurses                   

支持 ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库

–enable-pcntl                    freeTDS 需要用到的,可能是链接 mssql 才用到

mhash 和 mcrypt 算法的扩展

–with-mcrypt                    算法

–with-mhash                      算法

以上函数库需要安装

–with-gmp  应该是支持一种规范

–enable-inline-optimization  优化线程

–with-openssl                    openssl 的支持,加密传输时用到的

–enable-dbase                    建立 DBA 作为共享模块

–with-pcre-dir=/usr/local/bin/pcre-config      perl 的正则库案安装位置

–disable-dmalloc

–with-gdbm                    dba 的 gdbm 支持

–enable-sigchild

–enable-sysvsem

–enable-sysvshm

–enable-zend-multibyte        支持 zend 的多字节

–enable-mbregex

–enable-wddx

–enable-shmop

–enable-soap

指定了 –with-apxs2=/usr/local/apache/bin/apxs 以后,就不要再激活 –enable-fpm 和 –enable-fastCGI,apxs 是以 php module 的模式加载 PHP 的。

Mysql 在编译了 Mysql 开发 library 以后,可以不用指定 mysql 的路径。

PHP 编译存在基础的依赖的关系,编译 PHP 首先需要安装 XML 扩展,因为 php5 核心默认打开了 XML 的支持,其他的基础库,相应需要:

GD -> zlib, Png, Jpg, 如果需要支持其他,仍需要根据实际情况编译扩展库,ttf 库需要 freetype 库的支持。

–enable-magic-quotes,是一个极其不推荐的参数,当然,如果你需要 PHP 为你做这些底下的工作,实际上他也没有很彻底的解决问题。

–with-openssl,需要 openssl 库。

mysqli 是 MySQL 团队提供的 MySQL 驱动,具有很多实用的功能和典型特征。不过他不是 MySQL 于 PHP 平台最好的选择,PDO 被证实,是一个简易、高并发性,而且易于创建和回收的标准接口。不过 PDO 也经历了 5.3 以前的内存溢出的问题,在 5.3 以后,在读取 Oracle 的 LOB 资源时,若不对内存进行限制,仍会内存溢出。

如果是产品模式,好像 pear、shmop、ftp 等,都不推荐使用,他们要做的事情,用 C /C++,用 Java,甚至其他脚本语言,都有很好很快速的选择,无需局限于使用 PHP 去实现。不熟悉的类库和不常用的库,也不推荐使用。magic-quote、session.auto_start、PHP 服务器信息、PHP 报错信息等在编译完成后,应该第一时间关闭,避免暴露服务器信息。

PHP 对应的 Web Server 模式,Module、fastcgi、fpm 只需要一种即可,服务器不是你的试验田。fastcgi 可以选择 Nginx 和 lighttpd,其实 Nginx 也是使用 lighttpd 的 spwan-fcgi 进行 fcgi 进程管理的。fpm 是使用 PHP 自身去管理多进程,有点类似一个后端代理。无论什么模式,在发布产品服务器,都应该做进程和线程调优,做足够多的压力测试,找出最好的进程数组合。

选好一种 PHP OPCode cache 的扩展,这个也是很重要的,linux 2.6 核心下,fcgi 下,xcache 有较好的实践经验,其他的在并发数增加以后,性能衰减严重。

如果真的想体验,宁可编译多几个 PHP 版本,也不要针对一个版本的 PHP 集合各种扩展,适应各种环境,这会让把你自己逼进窘境的。

编译扩展库:

/usr/local/php/bin/phpize

./configure  –with-php-config=/usr/local/php/bin/php-config

make

make install

ln -s ../ext/sockets/modules/sockets.so sockets.so 建立 so 动态链接库的软连接。

编译 php:

./configure –prefix=/usr/local/php –with-curl=/usr/local/curl –enable-mbstring –enable-shmop –enable-sysvsem –enable-sysvshm –enable-sysvmsg –with-mysql=/usr/local/mysql –with-mysqli=/usr/bin/mysql_config  –enable-sockets

make

make install

which php 确保 php 是最新的,可以建立软链接。

PHP 7,你值得拥有  http://www.linuxidc.com/Linux/2015-06/118847.htm

在 CentOS 7.x / Fedora 21 上面体验 PHP 7.0  http://www.linuxidc.com/Linux/2015-05/117960.htm

CentOS 6.3 安装 LNMP (PHP 5.4,MyySQL5.6) http://www.linuxidc.com/Linux/2013-04/82069.htm

在部署 LNMP 的时候遇到 Nginx 启动失败的 2 个问题 http://www.linuxidc.com/Linux/2013-03/81120.htm

Ubuntu 安装 Nginx php5-fpm MySQL(LNMP 环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm

《细说 PHP》高清扫描 PDF+ 光盘源码 + 全套教学视频 http://www.linuxidc.com/Linux/2014-03/97536.htm

CentOS 6 中配置 PHP 的 LNMP 的开发环境  http://www.linuxidc.com/Linux/2013-12/93869.htm

PHP 的详细介绍 :请点这里
PHP 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-08/121072.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计4858字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7960435
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...