• 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编译参数详解
    
    [root@lnmp01 tools]# tar xf php-5.3.27.tar.gz解压压缩包
    [root@lnmp01 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服务用户组统一。
    
    
    //软链接
    [root@lnmp01 php]# ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/ 
    
    //创建php安装需要文件
    [root@lnmp01 php]# touch ext/phar/phar.phar
    
    //make生成Makefile 最近进行编译安装
    [root@lnmp01 php]# make && make install
    
    //软链接去版本(方便升级及后续维护)
    [root@lnmp01 php]# ln -s /soft/php5.3.27/ /soft/php
    
    //拷贝php.ini需要配置文件
    [root@lnmp01 php]# cp /soft/src/php-5.3.27/php.ini-production  /soft/php/lib/php.ini
    
    //拷贝php-fpm配置文件
    [root@lnmp01 php]# cp /soft/php/etc/php-fpm.conf.default  /soft/php/etc/php-fpm.conf 
    
    //启动php-fpm
    [root@lnmp01 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。
    
  • 相关阅读:
    MD5 带salt 加密
    生成包含数字和大小写字母的随机码
    多读好代码助于提高
    Winform程序窗体间的跳转
    Sql Server 存储过程
    GDI+的学习
    管理人生的8个危机
    马云语录
    无边框窗体的拖动和拉伸
    安装oracle时遇到 环境变量path的值超过1023字符,无法设置该值
  • 原文地址:https://www.cnblogs.com/xuliangwei/p/8492790.html
Copyright © 2020-2023  润新知