PHP编译安装系列大全

PHP编译安装系列

徐亮伟, 江湖人称标杆徐。多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型电商运维工作。
个人博客"徐亮伟架构师之路"累计受益数万人。
笔者Q:552408925、572891887
架构师群:471443208

PHP5.6编译安装

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y
yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y
yum -y install libmcrypt-devel mhash mcrypt

mkdir -p /soft/package/src
cd /soft/package/src
tar zxf php-5.6.23.tar.gz
cd php-5.6.23
./configure --prefix=/soft/php-fastcgi5.6.23 --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-jpeg-dir --with-png-dir --with-zlib --enable-xml  --with-libxml-dir --with-curl --enable-bcmath --enable-shmop --enable-sysvsem  --enable-inline-optimization --enable-mbregex --with-openssl --enable-mbstring --with-gd --enable-gd-native-ttf --with-freetype-dir=/usr/lib64 --with-gettext=/usr/lib64 --enable-sockets --with-xmlrpc --enable-zip --enable-soap --disable-debug --enable-opcache --enable-zip --with-config-file-path=/usr/local/php-fastcgi/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www
make && make install

内存小于一个G,在最后加上。
--disable-fileinfo

cd /application/tools/php/ext
/application/php/bin/phpize
./configure --with-php-config=/application/php/bin/php-config --with-pdo-mysql=/application/mysql
make && make install

PHP5.5编译安装

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y
yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y
yum -y install libmcrypt-devel mhash mcrypt

mkdir -p /soft/package/src
cd /soft/package/src
wget  http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
cd ../

cd /soft/package/src
tar xf php-5.5.38.tar.gz
cd php-5.5.38
./configure --prefix=/soft/php5.5.38 --with-mysql=mysql --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl  --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp --enable-opcache && make && make install

ln -s /soft/mysql/lib/libmysqlclient.so.18 /usr/lib64/
touch ext/phar/phar.phar
make && make install
ln -s /soft/php5.5.38/ /soft/php
cp /soft/src/php-5.5.38/php.ini-production  /soft/php/lib/php.ini
cp /soft/php/etc/php-fpm.conf.default  /soft/php/etc/php-fpm.conf
/soft/php/sbin/php-fpm

//如果需要将php与MySQL独立出来
--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd

PHP5.3编译安装

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y
yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y
yum -y install libmcrypt-devel mhash mcrypt

mkdir -p /soft/package/src
cd /soft/package/src
wget  http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
cd ../

cd /soft/package/src
tar xf php-5.3.27.tar.gz
cd php-5.3.27
./configure --prefix=/soft/php5.3.27 --with-mysql=/soft/mysql/ --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp
ln -s /soft/mysql/lib/libmysqlclient.so.18  /usr/lib64/
touch ext/phar/phar.phar
make && make install

ln -s /soft/php5.3.27/ /soft/php
cp /soft/package/src/php-5.3.27/php.ini-production  /soft/php/lib/php.ini
cp /soft/php/etc/php-fpm.conf.default   /soft/php/etc/php-fpm.conf
/soft/php/sbin/php-fpm

//PHP5.3编译参数详解

[[email protected] tools]# tar xf php-5.3.27.tar.gz解压压缩包
[[email protected] tools]# cd php-5.3.27 进入php安装目录
./configure 编译参数
--prefix=/soft/php5.3.27 指定php的安装路径为/soft/php5.3.27
--with-mysql=/soft/mysql/  需要指定mysql的安装路径,安装PHP需要的MySQL相关内容。
当然需要将MySQL独立安装建议使用--with-mysql=mysqlnd替代--with-mysql=/soft/mysql, 将php和mysql拆开.
--with-iconv-dir=/usr/local/libiconv    libiconv库,各种字符集间的转换
--with-freetype-dir 打开对freetype字体库支持
--with-jpeg-dir 打开对jpeg图片的支持
--with-png-dir 打开对png图片的支持
--with-zlib 打开zlib库的支持,用于http压缩传输
--with-libxml-dir=/usr 打开libxml2库的支持
--enable-xml
--disable-rpath 关闭额外的运行库文件
--enable-safe-mode 打开安全模式
--enable-bcmath 打开图片大小调整,用zabbix监控时会用到该模块
--enable-shmop
--enable-sysvsem 使用sysv信号机制,则打开此选项
--enable-inline-optimization 优化线程
--with-curl 打开curl浏览工具的支持
--with-curlwrappers 运维curl工具打开url流
--enable-mbregex
--enable-mbstring 支持mbstring
--with-mcrypt 编码函数库
--with-gd 打开gd库的支持
--enable-gd-native-ttf 支持TrueType字符串函数库
--with-openssl openssl的支持,加密传输时用到
--with-mhash mhash算法的扩展
--enable-pcntl freeTDS需要用到,可能是链接mssql
--enable-sockets 打开sockets支持
--with-xmlrpc 打开xml-rpc的c语言
--enable-zip 打开对zip的支持
--enable-soap soap模块的扩展
--enable-short-tags 开始和标记函数
--enable-zend-multibyte 支持zend的多字节
--enable-static 生成静态链接库
--with-xsl 打开XSLT文件支持,扩展libXML2库,需要libxslt软件
--enable-ftp    打开ftp的支持
--enable-fpm    表示激活PHP-FPM方式服务,即FactCGI方式运行PHP服务。
--with-fpm-user=www 指定PHP-FPM进程管理的用户为www,此处最好和Nginx服务用户统一。
--with-fpm-group=www    指定PHP-FPM进程管理用户组为www,此处最好和Nginx服务用户组统一。

//软链接
[[email protected] php]# ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/ 

//创建php安装需要文件
[[email protected] php]# touch ext/phar/phar.phar

//make生成Makefile 最近进行编译安装
[[email protected] php]# make && make install

//软链接去版本(方便升级及后续维护)
[[email protected] php]# ln -s /soft/php5.3.27/ /soft/php

//拷贝php.ini需要配置文件
[[email protected] php]# cp /soft/src/php-5.3.27/php.ini-production  /soft/php/lib/php.ini

//拷贝php-fpm配置文件
[[email protected] php]# cp /soft/php/etc/php-fpm.conf.default  /soft/php/etc/php-fpm.conf 

//启动php-fpm
[[email protected] php]# /soft/php/sbin/php-fpm 

PHP7编译参数详解

    --prefix=/usr/local/php706              //指定php安装目录
    --enable-calendar                       //打开日历扩展功能
    --enable-sysvsem                        //使用sysv信号机制,则打开此选项
    --enable-sysvshm                        //启用系统V共享内存支持。
    --enable-sysvmsg                        //启用sysvmsg支持。
    --enable-bcmath                         //打开图片大小调整,用zabbix监控时会用到该模块
    --enable-exif                           //图片的元数据支持
    --enable-ftp                            //打开ftp的支持
    --enable-mbstring                       //支持mbstring
    --enable-shmop                          //启用shmop支持
    --enable-sockets                        //打开sockets支持
    --enable-dtrace                         //开启DTrace(动态跟踪)支持
    --enable-soap                           //soap模块的扩展
    --enable-zip                            //打开对zip的支持
    --enable-mbregex                        //多字节字符串 函数
    --enable-inline-optimization            /优化线程
    --enable-pcntl                          //freeTDS需要用到,可能是链接mssql
    --enable-pdo                            //兼容PHP接口的数据连接拓展。
    --enable-gd-native-ttf                  //支持TrueType字符串函数库
    --enable-opcache                        //开启 OPcache高速缓存。
    --enable-xml                            //
    --enable-maintainer-zts                 /启用线程安全 - 代码维护者使用
    --enable-fpm                            //表示激活PHP-FPM方式服务,即FactCGI方式运行PHP服务
    --with-iconv-dir=/usr/local/libiconv    //libiconv库,各种字符集间的转换
    --with-gettext                          //打开gnu的gettext 支持,编码库用到
    --with-libxml-dir                       //打开libxml2库的支持
    --with-zlib                             //打开zlib库的支持,用于http压缩传输
    --with-kerberos=/usr                    //Openssl包含kerberos支持
    --with-openssl                          //openssl的支持,加密传输时用到
    --with-mhash                            //mhash算法的扩展
    --with-mysql-sock=mysql_socket          //指定mysql的socket。如果未指定,按默认位置搜索
    --with-mysqli=mysqlnd                   //mysqli扩展
    --with-pdo-mysql=mysqlnd                //PDO:MySQL支持。DIR是MySQL的基本目录,如果没有值或mysqlnd作为DIR传递,则将使用MySQL本机驱动程序DIR是MySQL的基本目录,如果没有值或mysqlnd作为DIR传递,则将使用MySQL本机驱动程序
    --with-pdo-pgsql=pgsqlnd                //启用PostgreSQL支持并指定其软件根目录或者pg_config的路径(pgsql需使用)
    --with-curl                             //打开curl浏览工具的支持
    --with-gd                               //打开gd库的支持
    --with-xpm-dir                          //指定gd库libXpm的安装目录
    --with-jpeg-dir                         //打开对jpeg图片的支持
    --with-png-dir                          //打开对png图片的支持
    --with-freetype-dir                     //打开对freetype字体库支持
    --with-xmlrpc                           //打开xml-rpc的c语言
    --with-fpm-user=nobody                  //指定PHP-FPM进程管理的用户为www,此处最好和Nginx服务用户统一。
    --with-fpm-group=nobody                 //指定PHP-FPM进程管理用户组为www,最好和Nginx服务用户组统一。
    --with-fpm-acl                          //使用POSIX 访问控制列表,5.6.5版本起有效
    --with-mcrypt                           //编码函数库
    --with-tsrm-pthreads                    //使用 POSIX 线程(默认)。
    --disable-fileinfo                      //关闭一些运行中的进程如mysqld,httpd等等,以节约内存。
    --disable-rpath                         //关闭额外的运行库文件

    make ZEND_EXTRA_LIBS=‘-liconv -L/usr/local/libiconv/lib‘    //iconv函数库能够完成各种字符集间的转换,比如:实现utf-8和gb2312编码的转换
    make ZEND_EXTRA_LIBS=‘-liconv‘
    make install
    cp php.ini-production /usr/local/php7/etc/php.ini

    configure       它可以自动设定源程序以符合各种不同平台上Unix系统的特性,并根据系统叁数及环境产生合适的Makefile文件让源程序可以很方便地在不同的平台上被编译
    make            是用来编译的,它从Makefile中读取指令,然后编译。
    make install    将程序安装至系统中。如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。从Makefile中读取指令,安装到指定的位置。
    make clean      清除编译产生的可执行文件及目标文件(object file,*.o)。
    make distclean  除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉。

##PHP7可选参数
    --with-xsl=shared,/usr          //打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件
    --with-zlib-dir=/usr            //定义zlib安装所在的目录(压缩与归档)
    --with-snmp=shared,/usr         //包含SNMP支持。(SNMP简单的服务器监控系统)
    --with-tidy=shared,/usr         //包含tidy支持。(网页代码分析和纠错的工具,能够支持多种页面编码,并且支持xhtml输出)
    --with-recode=shared,/usr       //包含recode支持(Recode库可以在各种编码字符集和表面编码之间转换文件)
    --with-pspell=shared,/usr       //包含PSPELL支持GNU (实现拼写检查)
    --with-gmp=shared,/usr          //启用GNU MP支持
    --with-enchant=shared,/usr      //启用 enchant 支持.(各种拼写库的抽象层)
    --with-vpx-dir=shared,/usr      //GD: 指定libvpx的安装目录(VP8编码解码器)
    --with-system-tzdata            //程序执行函数
    --enable-intl                   //开启国际化支持(国际化与字符编码支持)
     --with-mssql=shared,/usr       //包含MSSQL-DB支持,并指定FreeTDS软件目录(php7已移除)
     --with-ldap=shared,/usr        //ldap扩展模块
    --with-ldap-sasl=/usr           //ldap扩展模块
    --with-unixODBC=shared,/usr     //包含unixODBC支持(通过ODBC链接 本地mysql)
   --disable-static                 //禁用静态库

##php7默认,可不增选项
    --disable-debug             /关闭详细的请求信息(默认为关闭)
    --build=x86_64-linux-gnu        //指定编译工具所在系统的系统类型BUILD
    --host=x86_64-linux-gnu         //指定Apache HTTP服务器将要进行交叉编译时运行的目标系统类型HOST
    --localstatedir=/var            //机器数据目录DIR (默认安装路径下的var)
    --mandir=/usr/share/man         //手册文档目录DIR (默认安装路径下的datarootdir下man目录)
    --disable-short-tags            默认禁用短形式的开始标签 <? 。
    --disable-libtool-lock          避免锁定(可能会破坏并行构建)
    --disable-all                   禁用默认情况下启用的所有扩展程序
    --enable-shared=PKGS            //默认启用构建共享库
    --enable-static=PKGS            //默认启用构建静态库
    --enable-fast-install = PKGS    //默认启用优化后快速安装
    --enable-ctype                  //ctype 扩展,从PHP4.2.0默认启用。通过--disable-ctype禁用
    --with-pear=/usr/share/php      //PEAR(实现了诸如析构函数,错误捕获功能)默认为 PREFIX/lib/php
    --with-apxs2=/usr/bin/apxs2     //apxs是以php module的模式加载PHP的。
    --with-pcre-regex=/usr          //PHP 4.2.0 开始这些函数是默认启用的。可以通过--without-pcre-regex //禁用 pcre 函数
    --with-layout=GNU               //显示安装文件的布局PHP或GNU(默认PHP)
    --with-regex=php                //正则表达式库类型(默认TYPE=PHP)
    --with-sqlite3=shared,/usr      //5.3 默认启动SQLite3 扩展。
    --with-mysql-sock=SOCKPATH      //mysql unix套接字指针位置。如果未指定,将搜索默认位置
    --with-odbcver=HEX              //强制支持通过的ODBC版本。 预期的十六进制数,默认为0x0300。
    --with-gnu-ld                   //假设C编译器使用GNU ld default = no
    --with-config-file-path=PATH    //设置 php.ini 的搜索路径。默认为 PREFIX/lib。
    --with-fpm-user=                //默认nobody用户
    --with-fpm-group=               //默认nobody用户组
    --with-tsrm-pthreads            //默认使用 POSIX 线程。
    --with-pic                      //尝试只使用PIC /非PIC对象,默认同时使用
    --with-apxs[=FILE]              //编译共享的 Apache 模块。FILE 是可选的 Apache apxs 工具的路径,默认指向 apxs。

原文地址:http://blog.51cto.com/liangweilinux/2074494

时间: 2024-10-23 19:56:59

PHP编译安装系列大全的相关文章

DNS系列- 2.dns服务搭建(bind编译安装)

DNS系列- 2.dns服务搭建(bind编译安装) 目录     一.安装bind         1.yum安装         2.编译安装     二.服务搭建         1.编辑DNS主配置文件         2.添加解析     三.测试         1.正向解析测试         2.反向解析测试 一.安装bind Bind(kerkeley Internet Name Deamon) 是现今互联网使用最广泛的DNS服务器软件,使用BIND作为服务器软件的DNS服务器

Spark入门实战系列--2.Spark编译与部署(下)--Spark编译安装

[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.编译Spark Spark可以通过SBT和Maven两种方式进行编译,再通过make-distribution.sh脚本生成部署包.SBT编译需要安装git工具,而Maven安装则需要maven工具,两种方式均需要在联网下进行,通过比较发现SBT编译速度较慢(原因有可能是1.时间不一样,SBT是白天编译,Maven是深夜进行的,获取依赖包速度不同 2.maven下载大文件是多线程进行,而SBT是

Linux命令:Mysql系列之二cmake编译安装使用mysqladmin管理工具

MySQL相关概念:MySQL是单进程多线程接收应用的请求. SQL/MySQL 1.事务,隔离,并发控制,锁 2.用户和权限 3.监控 STATUS 4.索引类型:查询 VARIABLES 5.备份和恢复 6.复制功能 7.集群 DML:数据操作语言 INSERT:插入 DELETE:删除 SELECT:挑选,选择,查询 UPDATE:更新,修改 DDL:数据定义语言 CREATE:创建 DROP:删除 ALTER:修改 DCL:数据控制语言 GRANT:授权 REVOKE:取消权限 MySQ

mysql系列之三MySQL编译安装

mysql 安装: 专用软件包管理器包 deb,rpm rpm: RHEL(Oracle Linux),CentOS SUSE 通用二进制格式包 gcc:x86,x64 源代码 5.5,5.6 cmake编译 选择GA版本 mysql-client提供客户端 mysql-devel开发组建 mysql-server服务器端 mysql-shared共享库 mysql-shared-compat兼容库 mysql-test 测试组件 最后一次读取的配置优先级最高 /etc/my.cnf /etc/

centos6.6编译安装lnmp系列之mysql

简介: 环境:虚拟机+centos6.6 Mysql版本:5.6.21 Mysql下载地址:http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.21.tar.gz Cmake下载地址:http://www.cmake.org/files/v3.0/cmake-3.0.2.tar.gz 1.安装前配置: vi /etc/sysconfig/iptables     开启防火墙端口 -A INPUT -m state --state NEW -m tc

CentOS 6.5下编译安装MySQL 5.6. 系列

http://mirrors.sohu.com/mysql/ 1. 查看是否安装旧版本 使用下面的命令检查是否安装有MySQL Server #rpm -qa | grep mysql 2. 卸载MySQL Server旧版本 #rpm -e mysql            //普通删除模式 #rpm -e --nodeps mysql    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 3. 安装库文件 安装编译代码需要的包 #yum -y

FFMPEG系列一:Mac下FFMPEG编译安装配置及使用例子

系统环境:10.13以前系统版本,没有升级到macOS High Sierra.正常情况是直接输入brew install ffmpeg即可安装ffmpeg,但是该过程还是有一些坑需要填. 一.mac命令行输入brew install ffmpeg 这时候会提示错误:-bash: brew: command not found 这是因为没有安装Homebrew,解决办法参照第二步 二.max下安装Homebrew max下安装Homebrew参照:mac终端 -bash: brew: comma

PHP系列 | Swoole 编译安装

1.官方地址:https://wiki.swoole.com/wiki/page/6.html 2.下载地址: https://github.com/swoole/swoole-src/releases http://pecl.php.net/package/swoole http://git.oschina.net/swoole/swoole 3.下载 wget https://github.com/swoole/swoole-src/archive/v4.4.14.tar.gz 4.解压 s

MySQL5.5.52编译安装

一.MySQL介绍MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL所使用的 SQL 语言