#!/usr/bin/env bash Export_PHP_Autoconf() { if [[ -s /usr/local/autoconf-2.13/bin/autoconf && -s /usr/local/autoconf-2.13/bin/autoheader ]]; then Echo_Green "Autconf 2.13...ok" else Install_Autoconf fi export PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf export PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader } Check_Curl() { if [ -s /usr/local/curl/bin/curl ]; then Echo_Green "Curl ...ok" else Install_Curl fi } PHP_with_curl() { Get_ARM if [[ "${DISTRO}" = "CentOS" && "${Is_ARM}" = "y" ]] || [ "${UseOldOpenssl}" = "y" ];then Check_Curl with_curl='--with-curl=/usr/local/curl' else with_curl='--with-curl' fi } PHP_with_openssl() { if openssl version | grep -Eqi "OpenSSL 1.1.*"; then if ( [ "${PHPSelect}" != "" ] && echo "${PHPSelect}" | grep -Eqi "^[1-5]$" ) || ( [ "${php_version}" != "" ] && echo "${php_version}" | grep -Eqi '^5.' ) || echo "${Php_Ver}" | grep -Eqi "php-5."; then UseOldOpenssl='y' fi fi if echo "${PHPSelect}" | grep -Eqi "^[1-2]$" || echo "${php_version}" | grep -Eqi '^5.[2,3].*' || echo "${Php_Ver}" | grep -Eqi "php-5.[2,3].*"; then UseOldOpenssl='y' fi if [ "${UseOldOpenssl}" = "y" ]; then Install_Openssl with_openssl='--with-openssl=/usr/local/openssl' else with_openssl='--with-openssl' fi } PHP_with_fileinfo() { if [ "${Enable_PHP_Fileinfo}" = "n" ];then if [ `free -m | grep Mem | awk '{print $2}'` -lt 1024 ]; then with_fileinfo='--disable-fileinfo' else with_fileinfo='' fi else with_fileinfo='' fi } Check_PHP_Option() { PHP_with_openssl PHP_with_curl PHP_with_fileinfo } Ln_PHP_Bin() { ln -sf /usr/local/php/bin/php /usr/bin/php ln -sf /usr/local/php/bin/phpize /usr/bin/phpize ln -sf /usr/local/php/bin/pear /usr/bin/pear ln -sf /usr/local/php/bin/pecl /usr/bin/pecl if [ "${Stack}" = "lnmp" ]; then ln -sf /usr/local/php/sbin/php-fpm /usr/bin/php-fpm fi rm -f /usr/local/php/conf.d/* } Pear_Pecl_Set() { pear config-set php_ini /usr/local/php/etc/php.ini pecl config-set php_ini /usr/local/php/etc/php.ini } Install_Composer() { if [ "${CheckMirror}" != "n" ]; then echo "Downloading Composer..." wget --prefer-family=IPv4 --no-check-certificate -T 120 -t3 ${Download_Mirror}/web/php/composer/composer.phar -O /usr/local/bin/composer if [ $? -eq 0 ]; then echo "Composer install successfully." chmod +x /usr/local/bin/composer else echo "Composer install failed, try to from composer official website..." curl -sS --connect-timeout 30 -m 60 https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer if [ $? -eq 0 ]; then echo "Composer install successfully." fi fi if [ "${country}" = "CN" ]; then composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ fi else echo "" fi } Install_PHP_52() { Echo_Blue "[+] Installing ${Php_Ver}..." Check_Curl Export_PHP_Autoconf cd ${cur_dir}/src && rm -rf ${Php_Ver} tar jxf ${Php_Ver}.tar.bz2 if [ "${Stack}" = "lnmp" ]; then gzip -cd ${Php_Ver}-fpm-0.5.14.diff.gz | patch -d ${Php_Ver} -p1 fi cd ${Php_Ver}/ patch -p1 < ${cur_dir}/src/patch/php-5.2.17-max-input-vars.patch patch -p0 < ${cur_dir}/src/patch/php-5.2.17-xml.patch patch -p1 < ${cur_dir}/src/patch/debian_patches_disable_SSLv2_for_openssl_1_0_0.patch patch -p1 < ${cur_dir}/src/patch/php-5.2-multipart-form-data.patch ./buildconf --force if [ "${Stack}" = "lnmp" ]; then ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --with-mysql=${MySQL_Dir} --with-mysqli=${MySQL_Config} --with-pdo-mysql=${MySQL_Dir} --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization ${with_curl} --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf ${with_openssl} --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --with-mime-magic ${PHP_Modules_Options} else ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=${MySQL_Dir} --with-mysqli=${MySQL_Config} --with-pdo-mysql=${MySQL_Dir} --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization ${with_curl} --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf ${with_openssl} --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --with-mime-magic ${PHP_Modules_Options} fi PHP_Make_Install mkdir -p /usr/local/php/{etc,conf.d} \cp php.ini-dist /usr/local/php/etc/php.ini cd ../ Ln_PHP_Bin # php extensions sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"\n#' /usr/local/php/etc/php.ini sed -i 's#output_buffering =.*#output_buffering = On#' /usr/local/php/etc/php.ini sed -i 's/post_max_size =.*/post_max_size = 50M/g' /usr/local/php/etc/php.ini sed -i 's/upload_max_filesize =.*/upload_max_filesize = 50M/g' /usr/local/php/etc/php.ini sed -i 's/;date.timezone =.*/date.timezone = PRC/g' /usr/local/php/etc/php.ini sed -i 's/short_open_tag =.*/short_open_tag = On/g' /usr/local/php/etc/php.ini sed -i 's/; cgi.fix_pathinfo=.*/cgi.fix_pathinfo=0/g' /usr/local/php/etc/php.ini sed -i 's/max_execution_time =.*/max_execution_time = 300/g' /usr/local/php/etc/php.ini sed -i 's/disable_functions =.*/disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket/g' /usr/local/php/etc/php.ini Pear_Pecl_Set cd ${cur_dir}/src if [ "${Is_64bit}" = "y" ] ; then Download_Files ${Download_Mirror}/web/zend/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz tar zxf ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz mkdir -p /usr/local/zend/ \cp ZendOptimizer-3.3.9-linux-glibc23-x86_64/data/5_2_x_comp/ZendOptimizer.so /usr/local/zend/ else Download_Files ${Download_Mirror}/web/zend/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz tar zxf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz mkdir -p /usr/local/zend/ \cp ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /usr/local/zend/ fi if [ "${Is_ARM}" != "y" ]; then cat >/usr/local/php/conf.d/002-zendoptimizer.ini</usr/local/php/conf.d/002-zendguardloader.ini</usr/local/php/etc/php-fpm.conf</usr/local/php/conf.d/002-zendguardloader.ini</usr/local/php/etc/php-fpm.conf</usr/local/php/conf.d/002-zendguardloader.ini</usr/local/php/etc/php-fpm.conf</usr/local/php/conf.d/002-zendguardloader.ini</usr/local/php/etc/php-fpm.conf</usr/local/php/etc/php-fpm.conf</usr/local/php/etc/php-fpm.conf</usr/local/php/etc/php-fpm.conf</usr/local/php/etc/php-fpm.conf</usr/local/php/etc/php-fpm.conf</usr/local/php/etc/php-fpm.conf<${Default_Website_Dir}/phpinfo.php< eof echo "Copy PHP Prober..." cd ${cur_dir}/src tar zxf p.tar.gz \cp p.php ${Default_Website_Dir}/p.php \cp ${cur_dir}/conf/index.html ${Default_Website_Dir}/index.html \cp ${cur_dir}/conf/lnmp.gif ${Default_Website_Dir}/lnmp.gif if [ ${PHPSelect} -ge 4 ]; then echo "Copy Opcache Control Panel..." \cp ${cur_dir}/conf/ocp.php ${Default_Website_Dir}/ocp.php fi echo "============================Install PHPMyAdmin=================================" [[ -d ${Default_Website_Dir}/phpmyadmin ]] && rm -rf ${Default_Website_Dir}/phpmyadmin tar Jxf ${PhpMyAdmin_Ver}.tar.xz mv ${PhpMyAdmin_Ver} ${Default_Website_Dir}/phpmyadmin \cp ${cur_dir}/conf/config.inc.php ${Default_Website_Dir}/phpmyadmin/config.inc.php sed -i 's/LNMPORG/LNMP.org_0'$RANDOM`date '+%s'`$RANDOM'9_VPSer.net/g' ${Default_Website_Dir}/phpmyadmin/config.inc.php mkdir ${Default_Website_Dir}/phpmyadmin/{upload,save} chmod 755 -R ${Default_Website_Dir}/phpmyadmin/ chown www:www -R ${Default_Website_Dir}/phpmyadmin/ echo "============================phpMyAdmin install completed=======================" }