当前位置:首页 > Nginx > 正文内容

PHP编译安装

5年前 (2019-08-31)Nginx639

PHP5.6编译安装


配置yum源并安装依赖

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编译安装


配置yum源并安装依赖

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编译安装


配置yum源并安装依赖

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。


“PHP编译安装” 的相关文章

Nginx匹配规则和优先级

1.Server优先级Nginx多个相同Server_name优先级1.1、环境准备[root@nginx ~]# mkdir /soft/code{1..3} -p [root@nginx ~]# for i i...

Nginx实现七层负载均衡

Nginx实现七层负载均衡

Nginx负载均衡当我们的Web服务器直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,使用多台Web服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到后端服务器集群中,实现负载的分发。那么会大大提升系统的吞吐率、请求性能、高容灾所以说当海量用户请求过来以后,它同样是请求调度节点,...

Nginx作为缓存WEB服务

Nginx作为缓存WEB服务

通常情况下缓存是用来减少后端压力, 将压力尽可能的往前推, 减少后端压力,提高网站并发延时1.缓存常见类型服务端缓存代理缓存, 获取服务端内容进行缓存客户端浏览器缓存Nginx代理缓存原理2.缓存配置语法proxy_cache配置语法Syntax: proxy_cache zon...

Nginx实现动静分离

Nginx实现动静分离

Nginx动静分离基本概述动静分离,通过中间件将动静分离和静态请求进行分离;通过中间件将动态请求和静态请求分离,可以建上不必要的请求消耗,同事能减少请求的延时。通过中间件将动态请求和静态请求分离,逻辑图如下:动静分离好处:动静分离后,即使动态服务不可用,但静态资源不会受到影响。Nginx动静分离场景...

Nginx实现Rewrite重写(url重写跳转)及各种案例

Nginx实现Rewrite重写(url重写跳转)及各种案例

Rewrite基本概述Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程。Rewrite使用场景1、地址跳转,用户访问www.drz.com这个URL是,将其定向至一个新的域名mobile.drz.com2、协议跳转,用户通过http协议请求网站时,将其...