一、系统环境说明
本次实验基于CentOS6.8_x64 (6.x均可),编译安装php5.6.12 包含以下四个扩展模块(包):
libmcrypt-2.5.8.tar.gz ;php-redis.tar.gz;jpegsrc.v8d.tar.gz ;zendopcache-7.0.5.tar.gz
可自行到对应官方网站 下载最新软件包,本例软件包版本如上所列,如需要本例软件压缩包php5.6.12.tar.gz请到以下百度网盘地址中获取 ,压缩包中包含以上安装包,并附自动安装脚本和php-fpm56系统服务脚本;
链接:https://pan.baidu.com/s/1kUHaxDX 如打不开请留言联系我!
二、脚本及说明
代码如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | #!/bin/bash src=$( pwd ) #解压软件包进入目录,或自行下载所需要软件包存放位置 #安装依赖环境 yum install -y gcc gcc-c++ openssl openssl-devel libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel gd bzip2 bzip2 -devel curl curl-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel cd $src tar zxvf libmcrypt-2.5.8. tar .gz cd libmcrypt-2.5.8 . /configure make && make install cd $src tar zxvf jpegsrc.v8d. tar .gz cd jpeg-8d . /configure - enable -shared - enable -static make && make install clean cd $src tar xvf php-5.6.12. tar .gz cd php-5.6.12 . /configure --prefix= /usr/php5 .6 \ --with-libxml- dir = /usr/include/libxml2 \ --with-mysql --with-mysqli --with-gd \ -- enable -gd-native-ttf --with-zlib --with-mcrypt \ --with-pdo-mysql -- enable -shmop -- enable -sockets \ -- enable -zip -- enable -fpm -- enable -mbstring \ --with-zlib- dir --with-bz2 --with-curl --with-jpeg- dir = /usr/local \ --with-png- dir = /usr/local --with-freetype- dir = /usr/local/ \ --with-iconv -- enable -xml -- enable -bcmath -- enable -sysvsem \ --with-openssl \ -- enable -pcntl --with-gettext \ -- enable -session \ -- enable -exif make make install ###Configure php-fpm [ -d /data1/log/ ] || mkdir -pv data1 /log echo 'export PATH=/usr/php5.6/bin:$PATH' > /etc/profile .d /php5 .6.sh source /etc/profile .d /php5 .6.sh cd $src cd php-5.6.12 \ cp php.ini-production /usr/php5 .6 /etc/php .ini rm -rf /etc/php .ini ln -s /usr/php5 .6 /etc/php .ini /etc/php .ini ln -s /usr/php5 .6 /etc/php .ini /usr/php5 .6 /lib/php .ini \ cp /usr/php5 .6 /etc/php-fpm .conf.default /usr/php5 .6 /etc/php-fpm .conf sed -i "s/^;pid = run\/php-fpm.pid/pid = run\/php-fpm56.pid/g" /usr/php5 .6 /etc/php-fpm .conf if [ -u nginx ] then sed -i "s/^user = nobody/user = nginx/g" /usr/php5 .6 /etc/php-fpm .conf sed -i "s/^group = nobody/group = nginx/g" /usr/php5 .6 /etc/php-fpm .conf fi sed -i "s/^;error_log = log\/php-fpm.log/error_log = \/data1\/log\/php-fpm56.log/g" /usr/php5 .6 /etc/php-fpm .conf cp $src_tmp /php-fpm56 /etc/init .d /php-fpm56 chmod +x /etc/init .d /php-fpm56 chkconfig --add php-fpm56 chkconfig php-fpm56 on service php-fpm56 start #Add Zendopcache cd $src tar xvf zendopcache-7.0.5. tar .gz cd zendopcache-7.0.5 phpize . /configure make make install cd $src tar xvf php-redis. tar .gz cd php-redis-2.2.7 phpize . /configure make make install sed -i "716s:.*:extension_dir = \/usr\/php5.6\/lib\/php\/extensions\/no-debug-non-zts-20131226\/:g" /usr/php5 .6 /lib/php .ini sed -i "s/^;date.timezone =/date.timezone = Asia\/Shanghai/g" /usr/php5 .6 /lib/php .ini sed -i "s/^expose_php = On/expose_php = Off/g" /usr/php5 .6 /lib/php .ini sed -i "s/^display_errors = Off/display_errors = On/g" /usr/php5 .6 /lib/php .ini sed -i "s/^;error_log = php_errors.log/error_log = \/data1\/log\/php_errors.log/g" /usr/php5 .6 /lib/php .ini sed -i "s/^display_startup_errors = Off/display_startup_errors = On/g" /usr/php5 .6 /lib/php .ini echo 'zend_extension= /usr/php5 .6 /lib/php/extensions/no-debug-non-zts-20131226/opcache .so opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1'>> /usr/php5 .6 /lib/php .ini echo "extension=redis.so" >> /usr/php5 .6 /lib/php .ini |
说明 :脚本中定义编译安装到/usr/php5.6 如果需要安装到别的目录,请自行修改
三、安装过程
1、测试安装步骤
解压下载好的压缩包并进入解压后的软件包目录并运行一键安装脚本auto_install.sh
123 | #tar xvf php5.6.12.tar.gz #cd php5.6.12 #./auto_install.sh |
安装过程随机器性能需要等待一段时间;
2、验证
安装过程省略
安装完成后系统登出,再登录执行以下验证
#php -v
PHP 5.6.12 (cli) (built: Jun 29 2017 17:21:49)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
#service php-fpm56 status
php-fpm56 (pid 22970) is running...
四、安装扩展
php安装扩展包分为pecl安装,这个比较简单类似yum命令
pecl "安装的包"
编译安装扩展包
这种方法可以在php安装好后,在原编译安装包目录中执行
以下以安装ftp扩展为例:
php安装ftp扩展包
由于ftp扩展源码在php源码中有,所以直接到之前的目录中如下:
cd /tmp/php5 .6.12 /php5 .6.12 /php-5 .6.12 /ext/ftp phpize . /configure --with-php-config= /usr/php5 .6 /bin/php-config #指定php的环境变量配置 make && make install #编译并安装 Installing shared extensions: /usr/php5 .6 /lib/php/extensions/no-debug-non-zts-20131226/ #扩展库生成在此目录 #修改php.ini文件 #vim /usr/php5.6/lib/php.ini 添加 extension_dir = /usr/php5 .6 /lib/php/extensions/no-debug-non-zts-20131226/ extension= ftp .so |
如果php源码包被删除了 也没有 关系 直接下载需要的扩展包源码然后执行上面的步聚即可.
本实验仅供参考,如有不当之处欢迎指正!