PHP编译安装
php编译安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| yum install gcc-c++ libxml2 libxml2-devel openssl openssl-devel \ bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel \ libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt \ libmcrypt-devel readline readline-devel libxslt libxslt-devel ./configure \ --prefix=/usr/local/php/php71 \ --with-config-file-path=/etc/php/php71/ \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-soap \ --with-libxml-dir \ --with-xmlrpc \ --with-openssl \ --with-mcrypt \ --with-mhash \ --with-pcre-regex \ --with-sqlite3 \ --with-zlib \ --enable-bcmath \ --with-iconv \ --with-bz2 \ --enable-calendar \ --with-curl \ --with-cdb \ --enable-dom \ --enable-exif \ --enable-fileinfo \ --enable-filter \ --with-pcre-dir \ --enable-ftp \ --with-gd \ --with-openssl-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib-dir \ --with-freetype-dir \ --enable-gd-native-ttf \ --enable-gd-jis-conv \ --with-gettext \ --with-gmp \ --with-mhash \ --enable-json \ --enable-mbstring \ --enable-mbregex \ --enable-mbregex-backtrack \ --with-libmbfl \ --with-onig \ --enable-pdo \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-zlib-dir \ --with-pdo-sqlite \ --with-readline \ --enable-session \ --enable-shmop \ --enable-simplexml \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --with-libxml-dir \ --with-xsl \ --enable-zip \ --enable-mysqlnd-compression-support \ --with-pear \ --enable-opcache
cp php.ini-production /etc/php/php71/php.ini cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm-71 chmod +x /etc/init.d/php-fpm-71
|
指定 php 安装目录
指定php.ini位置
1
| --with-config-file-path=/usr/local/php/etc
|
mysql安装目录,对mysql的支持
1
| --with-mysql=/usr/local/mysql
|
mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。
1
| --with-mysqli=/usr/local/mysql/bin/mysql_config
|
整合 apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块
1
| --with-apxs2=/usr/local/apache/bin/apxs
|
选项指令 --with-iconv-dir
用于 PHP 编译时指定 iconv 在系统里的路径,否则会扫描默认路径。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| --with-iconv-dir=/usr/local
--with-freetype-dir #打开对freetype字体库的支持
--with-jpeg-dir #打开对jpeg图片的支持
--with-png-dir #打开对png图片的支持
--with-zlib-dir #打开zlib库的支持,用于http压缩传输
--with-libxml-dir #打开libxml2库的支持
--disable-rpath #关闭额外的运行库文件
--enable-bcmath #打开图片大小调整,用到zabbix监控的时候用到了这个模块
--enable-shmop --enable-sysvsem #这样就使得你的PHP系统可以处理相关的IPC函数了。
--enable-inline-optimization #优化线程
--with-curl #打开curl浏览工具的支持
--with-curlwrappers #运用curl工具打开url流
--enable-mbregex
--enable-fpm #打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序
--enable-mbstring #多字节,字符串的支持
--with-mcrypt #mcrypt算法扩展
--with-mhash #mhash算法扩展
--with-gd #打开gd库的支持
--enable-gd-native-ttf #支持TrueType字符串函数库
--with-openssl #openssl的支持,加密传输https时用到的
--enable-pcntl #freeTDS需要用到的,可能是链接mssql 才用到
--enable-sockets #打开 sockets 支持
--with-xmlrpc # 打开xml-rpc的c语言
--enable-zip #打开对zip的支持
--enable-ftp #打开ftp的支持
--with-bz2 # 打开对bz2文件的支持
--without-iconv #关闭iconv函数,字符集间的转换
--with-ttf #打开freetype1.*的支持,可以不加了
--with-xsl #打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件
--with-gettext #打开gnu 的gettext 支持,编码库用到
--with-pear #打开pear命令的支持,PHP扩展用的
--enable-calendar #打开日历扩展功能
--enable-exif #图片的元数据支持
--enable-magic-quotes #魔术引用的支持
--disable-debug #关闭调试模式
--with-mime-magic=/usr/share/file/magic.mime #魔术头文件位置
#CGI方式安装才用的参数
--enable-fastCGI #支持fastcgi方式启动PHP
--enable-force-CGI-redirect #重定向方式启动PHP
--with-ncurses #支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库
--with-gmp 应该是支持一种规范
--enable-dbase #建立DBA 作为共享模块
--with-pcre-dir=/usr/local/bin/pcre-config #perl的正则库案安装位置
--disable-dmalloc
--with-gdbm #dba的gdbm支持
--enable-sigchild
--enable-sysvshm
--enable-zend-multibyte #支持zend的多字节
--enable-wddx
--enable-soap
|
shell脚本
php编译安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| #!/bin/sh #php编译安装php ,Nginx+php使用 #定义函数,默认绿色输出 '#' 开头为红色 function echocolor() { [[ $1 = '#' ]] && echo -e "\033[31m $* \033[0m" || echo -e "\033[32m $* \033[0m" } #检测网络 ping baidu.com -c 2 &>/dev/null || ping qq.com -c 2 &>/dev/null || { echocolor '#' "网络异常!";exit; } #设置yum 安装包不删除 目录 /var/cache/yum/ #sed -i 's/keepcache=0/keepcache=1/g' /etc/yum.conf echocolor '#安装需要的库' yum install epel-release -y yum install gcc gcc-c++ bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel libjpeg-devel libpng-devel libicu-devel openldap-devel ftp -y echocolor "#设置目录" echocolor "#下载目录" read Ddir echocolor "#安装版本" read Sv Sdir="/usr/local/php/php$Sv" echocolor "#安装目录:" echocolor "$Sdir" [ -d $Ddir ] || mkdir -p $Ddir [ -d $Sdir/etc ] || mkdir -p $Sdir/etc #[ -d $Sdir/apache/bin/apxs ] || mkdir -p $Sdir/apache/bin/apxs # echocolor "#请输入下载链接" read Durl wget -c $Durl -O $Ddir/php.tar.gz echocolor "添加用户" useradd -s /sbin/nologin -M www id www echocolor "解压" [ -e $Ddir/php.tar.gz ] && { tar xzvf $Ddir/php*.tar.gz -C $Ddir/;cd $Ddir/php*; } || { echocolor '#' "$Ddir目录无php源码包";exit ; } # [ `uname -m` = "x86_64" ] && LIB=/usr/lib64 || LIB=/usr/lib64 # --with-apxs2=/usr/local/apache/bin/apxs make clean echocolor 编译 ./configure \ --prefix=$Sdir/ \ --with-config-file-path=$Sdir/etc \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-opcache \ --enable-fpm \ --with-fpm-user=www \ --with-fpm-group=www \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-gettext \ --enable-mbstring \ --with-iconv \ --with-mcrypt \ --with-mhash \ --with-openssl \ --enable-bcmath \ --enable-soap \ --with-libxml-dir \ --enable-pcntl \ --enable-shmop \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-sockets \ --with-curl \ --with-zlib \ --enable-zip \ --with-bz2 \ --enable-ftp \ --with-ldap-dir=/usr/lib \ --with-png-dir=/usr/lib \ --with-jpeg-dir=/usr/lib \ --with-readline [ $? = 0 ] || { echocolor '#' "编译出现问题 !";exit; } echo 编译安装 make -j4 make install make clean make clean all echo #配置PHP cp php.ini-production $Sdir/etc/php.ini cp $Sdir/etc/php-fpm.conf.default $Sdir/etc/php-fpm.conf cp sapi/fpm/init.d.php-fpm $Sdir/bin/php-fpm-$Sv cp $Sdir/etc/php-fpm.d/www.conf.default $Sdir/etc/php-fpm.d/www.conf chmod +x $Sdir/bin/php-fpm-$Sv ln -s $Sdir/bin/php-fpm-$Sv /etc/init.d/php-fpm-$Sv ln -s $Sdir/etc/php-fpm.conf /etc/php-fpm/php-fpm-$Sv.conf ln -s $Sdir/etc/php.ini /etc/php/php-$Sv.ini chkconfig --add php-fpm-$Sv chkconfig php-fpm-$Sv on chkconfig --list php-fpm-$Sv echocolor #显示版本 $Sdir/bin/php -v
|
mariadb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| #!/bin/sh #php编译安装php ,Nginx+php使用 #定义函数,默认绿色输出 '#' 开头为红色 function echocolor() { [[ $1 = '#' ]] && echo -e "\033[31m $* \033[0m" || echo -e "\033[32m $* \033[0m" } #检测网络 ping baidu.com -c 2 &>/dev/null || ping qq.com -c 2 &>/dev/null || { echocolor '#' "网络异常!";exit; } #设置yum 安装包不删除 目录 /var/cache/yum/ #sed -i 's/keepcache=0/keepcache=1/g' /etc/yum.conf echocolor '#安装需要的库' yum groupinstall -y Development Tools yum install -y ncurses-devel openssl-devel openssl
groupadd mysql useradd -s /sbin/nologin -g mysql -M mysql id mysql uid=500(mysql) gid=500(mysql) groups=500(mysql) echocolor "#创建数据库数据存放目录" mkdir /mydata/data -pv chown mysql:mysql /mydata/data/ -R echocolor "#设置目录" echocolor "#下载目录" read Ddir [ -d $Ddir ] || mkdir -p $Ddir wget -c http://ftp.utexas.edu/mariadb//mariadb-10.3.8/source/mariadb-10.3.8.tar.gz -O $Ddir/mariadb.tar.gz echocolor "解压" [ -e $Ddir/mariadb.tar.gz ] && { tar xzvf $Ddir/mariadb*.tar.gz -C $Ddir/;cd $Ddir/mariadb*; } || { echocolor '#' "$Ddir目录无mariadb源码包";exit ; }
|