Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,24 @@ Supported System
* Ubuntu-12.04
* Ubuntu-14.04
* Ubuntu-16.04
* Ubuntu-18.04
* Ubuntu-19.04
* Debian-6
* Debian-7
* Debian-8
* Other Linux Distribution

Not Supportd System
==================
* Windows Subsystem for Linux

Supported Software
==================
* Nginx OpenResty Tengine
* Nginx Module: lua_nginx_module nginx_concat_module nginx_upload_module ngx_substitutions_filter_module
* Apache-2.2 Apache-2.4
* MySQL-5.1 MySQL-5.5 MySQL-5.6 MySQL-5.7
* PHP-5.2 PHP-5.3 PHP-5.4 PHP-5.5 PHP-5.6 PHP-7.1
* MySQL-5.1 MySQL-5.5 MySQL-5.6 MySQL-5.7 MySQL-8.0
* PHP-5.2 PHP-5.3 PHP-5.4 PHP-5.5 PHP-5.6 PHP-7.1 PHP-7.2 PHP-7.3
* PHP Module: ZendOptimizer ZendGuardLoader Xcache Eaccelerator Imagemagick IonCube Memcache Memcached Redis Mongo Xdebug Mssql
* Other Software: Memcached PureFtpd PhpMyAdmin Redis Mongodb PhpRedisAdmin MemAdmin RockMongo Jdk7 Jdk8 Tomcat7 Tomcat8

Expand Down
155 changes: 45 additions & 110 deletions function/config.sh

Large diffs are not rendered by default.

22 changes: 21 additions & 1 deletion function/depends.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,16 @@ install_php_depends(){
create_lib_link "libiconv.so"
create_lib_link "libiconv.so.2"
create_lib_link "libssl.so"
#解决centos 6 libmcrypt和libmhash不在在的问题

if CentOSVerCheck 6;then
if is_64bit; then
#解决centos 6 libmcrypt和libmhash不在在的问题
rpm -i $cur_dir/conf/libmcrypt-2.5.7-1.2.el6.rf.x86_64.rpm
rpm -i $cur_dir/conf/libmcrypt-devel-2.5.7-1.2.el6.rf.x86_64.rpm
rpm -i $cur_dir/conf/mhash-0.9.9.9-3.el6.x86_64.rpm
rpm -i $cur_dir/conf/mhash-devel-0.9.9.9-3.el6.x86_64.rpm
else
#解决centos 6 libmcrypt和libmhash不在在的问题
rpm -i $cur_dir/conf/libmcrypt-2.5.7-1.2.el6.rf.i686.rpm
rpm -i $cur_dir/conf/libmcrypt-devel-2.5.7-1.2.el6.rf.i686.rpm
rpm -i $cur_dir/conf/mhash-0.9.9.9-3.el6.i686.rpm
Expand Down Expand Up @@ -64,6 +66,24 @@ install_php_depends(){

}

#安装 PHP-7.4 相关依赖
install_php_7_4_depends(){
export SQLITE_CFLAGS="/usr/local/sqlite"
export SQLITE_LIBS="/usr/local/sqlite"
export ICU_CFLAGS="/usr/local/icu4c"
export ICU_LIBS="/usr/local/icu4c"
export ONIG_CFLAGS="/usr/lib64"
export ONIG_LIBS="/usr/lib64"
export LIBZIP_CFLAGS="/opt/ezhttp/libzip-1.5.2"
export LIBZIP_LIBS="/opt/ezhttp/libzip-1.5.2"
export WEBP_CFLAGS="/opt/ezhttp/libwebp"
export WEBP_LIBS="/opt/ezhttp/libwebp"
export JPEG_CFLAGS="/opt/ezhttp/libjpeg"
export JPEG_LIBS="/opt/ezhttp/libjpeg"
export XPM_CFLAGS="/usr/lib64"
export XPM_LIBS="/usr/lib64"
}

#安装libevent
install_libevent(){
download_file "${libevent_filename}.tar.gz"
Expand Down
4 changes: 2 additions & 2 deletions function/mysql.sh
Original file line number Diff line number Diff line change
Expand Up @@ -116,14 +116,14 @@ if [ "$mysql" != "do_not_install" ];then
else
other_option="-DCURSES_LIBRARY=${depends_prefix}/${ncurses_filename}/lib/libncurses.a -DCURSES_INCLUDE_PATH=${depends_prefix}/${ncurses_filename}/include/"
fi
mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DWITH_BOOST=$cur_dir/soft/${boost_1_59_filename} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=${mysql_data_location}/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 $other_option"
mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DWITH_BOOST=$cur_dir/soft/${boost_1_59_filename} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=${mysql_data_location}/mysql.sock -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 $other_option"
elif [ "$mysql" == "${mysql8_0_filename}" ];then
if check_sys packageSupport;then
other_option=""
else
other_option="-DCURSES_LIBRARY=${depends_prefix}/${ncurses_filename}/lib/libncurses.a -DCURSES_INCLUDE_PATH=${depends_prefix}/${ncurses_filename}/include/"
fi
mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DWITH_BOOST=$cur_dir/soft/${boost_1_66_filename} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=${mysql_data_location}/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 $other_option"
mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DWITH_BOOST=$cur_dir/soft/${boost_1_66_filename} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=${mysql_data_location}/mysql.sock -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 $other_option"

fi

Expand Down
16 changes: 16 additions & 0 deletions function/php-modules.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ php_modules_preinstall_settings(){
php=${php7_2_filename}
elif [[ `get_php_version $phpConfig` == "7.3" ]]; then
php=${php7_3_filename}
elif [[ `get_php_version $phpConfig` == "7.4" ]]; then
php=${php7_4_filename}
else
echo "sorry,unsupported php version."
exit 1
Expand Down Expand Up @@ -123,6 +125,20 @@ php_modules_preinstall_settings(){
php_modules_arr=(${php_modules_arr[@]#${php_mongo_filename}})
php_modules_arr=(${php_modules_arr[@]#${xdebug_filename}})
php_modules_arr=(${php_modules_arr[@]#mssql})
elif [ "$php" == "${php7_4_filename}" ];then
#从数组中删除ZendOptimizer、eaccelerator、xcache ionCube_filename
php_modules_arr=(${php_modules_arr[@]#${ZendOptimizer_filename}})
php_modules_arr=(${php_modules_arr[@]#${eaccelerator_filename}})
php_modules_arr=(${php_modules_arr[@]#${xcache_filename}})
php_modules_arr=(${php_modules_arr[@]#${ZendGuardLoader_filename}})
php_modules_arr=(${php_modules_arr[@]#${ionCube_filename}})
php_modules_arr=(${php_modules_arr[@]#${php_imagemagick_filename}})
php_modules_arr=(${php_modules_arr[@]#${php_memcache_filename}})
php_modules_arr=(${php_modules_arr[@]#${php_memcached_filename}})
php_modules_arr=(${php_modules_arr[@]#${php_redis_filename}})
php_modules_arr=(${php_modules_arr[@]#${php_mongo_filename}})
php_modules_arr=(${php_modules_arr[@]#${xdebug_filename}})
php_modules_arr=(${php_modules_arr[@]#mssql})
fi
#显示菜单
display_menu_multi php_modules last
Expand Down
68 changes: 56 additions & 12 deletions function/php.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,56 +12,63 @@ php_preinstall_settings(){
php=$version
read -p "please input $php download url(must be tar.gz file format): " link
set_dl $version "$link"
custom_info="$custom_info\nphp5_2_filename=$version\n$(get_dl_valname $version)=$link)\n"
custom_info="$custom_info\nphp5_2_filename=$version\n$(get_dl_valname $version)=$link\n"
break
elif echo "$version" | grep -q -E '^php-5\.3\.[0-9]+$';then
php5_3_filename=$version
php=$version
read -p "please input $php download url(must be tar.gz file format): " link
set_dl $version "$link"
custom_info="$custom_info\nphp5_3_filename=$version\n$(get_dl_valname $version)=$link)\n"
custom_info="$custom_info\nphp5_3_filename=$version\n$(get_dl_valname $version)=$link\n"
break
elif echo "$version" | grep -q -E '^php-5\.4\.[0-9]+$';then
php5_4_filename=$version
php=$version
read -p "please input $php download url(must be tar.gz file format): " link
set_dl $version "$link"
custom_info="$custom_info\nphp5_4_filename=$version\n$(get_dl_valname $version)=$link)\n"
custom_info="$custom_info\nphp5_4_filename=$version\n$(get_dl_valname $version)=$link\n"
break
elif echo "$version" | grep -q -E '^php-5\.5\.[0-9]+$';then
php5_5_filename=$version
php=$version
read -p "please input $php download url(must be tar.gz file format): " link
set_dl $version "$link"
custom_info="$custom_info\nphp5_5_filename=$version\n$(get_dl_valname $version)=$link)\n"
custom_info="$custom_info\nphp5_5_filename=$version\n$(get_dl_valname $version)=$link\n"
break
elif echo "$version" | grep -q -E '^php-5\.6\.[0-9]+$';then
php5_6_filename=$version
php=$version
read -p "please input $php download url(must be tar.gz file format): " link
set_dl $version "$link"
custom_info="$custom_info\nphp5_6_filename=$version\n$(get_dl_valname $version)=$link)\n"
custom_info="$custom_info\nphp5_6_filename=$version\n$(get_dl_valname $version)=$link\n"
break
elif echo "$version" | grep -q -E '^php-7\.1\.[0-9]+$';then
php7_1_filename=$version
php=$version
read -p "please input $php download url(must be tar.gz file format): " link
set_dl $version "$link"
custom_info="$custom_info\nphp7_1_filename=$version\n$(get_dl_valname $version)=$link)\n"
custom_info="$custom_info\nphp7_1_filename=$version\n$(get_dl_valname $version)=$link\n"
break
elif echo "$version" | grep -q -E '^php-7\.2\.[0-9]+$';then
php7_2_filename=$version
php=$version
read -p "please input $php download url(must be tar.gz file format): " link
set_dl $version "$link"
custom_info="$custom_info\nphp7_2_filename=$version\n$(get_dl_valname $version)=$link)\n"
custom_info="$custom_info\nphp7_2_filename=$version\n$(get_dl_valname $version)=$link\n"
break
elif echo "$version" | grep -q -E '^php-7\.3\.[0-9]+$';then
php7_3_filename=$version
php=$version
read -p "please input $php download url(must be tar.gz file format): " link
set_dl $version "$link"
custom_info="$custom_info\nphp7_3_filename=$version\n$(get_dl_valname $version)=$link)\n"
custom_info="$custom_info\nphp7_3_filename=$version\n$(get_dl_valname $version)=$link\n"
break
elif echo "$version" | grep -q -E '^php-7\.4\.[0-9]+$';then
php7_4_filename=$version
php=$version
read -p "please input $php download url(must be tar.gz file format): " link
set_dl $version "$link"
custom_info="$custom_info\nphp7_4_filename=$version\n$(get_dl_valname $version)=$link\n"
break
else
echo "version invalid,please reinput."
Expand Down Expand Up @@ -142,7 +149,7 @@ php_preinstall_settings(){
#php编译参数
php_configure_args="--prefix=$php_location --with-config-file-path=${php_location}/etc ${php_run_php_mode} --with-gettext=shared --with-sqlite --with-pdo_sqlite --enable-bcmath=shared --enable-ftp=shared --enable-mbstring=shared --with-iconv --enable-sockets=shared --enable-zip --enable-soap=shared $other_option ${with_mysql} --without-pear $lib64"

elif [[ "$php" == "${php5_3_filename}" || "$php" == "${php5_4_filename}" || "$php" == "${php5_5_filename}" || "$php" == "${php5_6_filename}" || "$php" == "${php7_1_filename}" || "$php" == "${php7_2_filename}" || "$php" == "${php7_3_filename}" ]];then
elif [[ "$php" == "${php5_3_filename}" || "$php" == "${php5_4_filename}" || "$php" == "${php5_5_filename}" || "$php" == "${php5_6_filename}" || "$php" == "${php7_1_filename}" || "$php" == "${php7_2_filename}" || "$php" == "${php7_3_filename}" || "$php" == "${php7_4_filename}" ]];then

#判断php运行模式
if [ "$php_mode" == "with_apache" ];then
Expand All @@ -164,13 +171,13 @@ php_preinstall_settings(){
fi

# 5.5 5.6开启opcache
if [[ "$php" == "${php5_5_filename}" || "$php" == "${php5_6_filename}" || "$php" == "${php7_1_filename}" || "$php" == "${php7_2_filename}" || "$php" == "${php7_3_filename}" ]]; then
if [[ "$php" == "${php5_5_filename}" || "$php" == "${php5_6_filename}" || "$php" == "${php7_1_filename}" || "$php" == "${php7_2_filename}" || "$php" == "${php7_3_filename}" || "$php" == "${php7_4_filename}" ]]; then
other_option="${other_option} --enable-opcache"
fi

# >= PHP 5.6 在CentOS 6/7中重新编译libzip

if [[ "$php" == "${php5_6_filename}" || "$php" == "${php7_1_filename}" || "$php" == "${php7_2_filename}" || "$php" == "${php7_3_filename}" ]]; then
if [[ "$php" == "${php5_6_filename}" || "$php" == "${php7_1_filename}" || "$php" == "${php7_2_filename}" || "$php" == "${php7_3_filename}" || "$php" == "${php7_4_filename}" ]]; then

if check_sys packageManager yum; then
yum remove libzip
Expand Down Expand Up @@ -237,6 +244,7 @@ if check_sys packageManager apt; then
fi
}


#安装PHP
install_php(){
#安装php依赖
Expand Down Expand Up @@ -404,6 +412,23 @@ install_php(){
error_detect "parallel_make ZEND_EXTRA_LIBS='-liconv'"
error_detect "make install"

#配置php
mkdir -p ${php_location}/etc
\cp php.ini-production $php_location/etc/php.ini
[ "$php_mode" == "with_fastcgi" ] && \cp $php_location/etc/php-fpm.conf.default $php_location/etc/php-fpm.conf

elif [ "$php" == "${php7_4_filename}" ];then
download_file "${php7_4_filename}.tar.gz"
cd $cur_dir/soft/
tar xzvf ${php7_4_filename}.tar.gz
cd ${php7_4_filename}
fix_pkg_config
install_php_7_4_depends
make clean
error_detect "./configure ${php_configure_args}"
error_detect "parallel_make ZEND_EXTRA_LIBS='-liconv'"
error_detect "make install"

#配置php
mkdir -p ${php_location}/etc
\cp php.ini-production $php_location/etc/php.ini
Expand Down Expand Up @@ -519,11 +544,30 @@ if [ "$php_mode" == "with_fastcgi" ];then
sed -i 's#;slowlog = log/$pool.log.slow#slowlog = var/log/$pool.log.slow#' $php_location/etc/php-fpm.d/www.conf
sed -i 's/;request_slowlog_timeout = 0/request_slowlog_timeout = 5/' $php_location/etc/php-fpm.d/www.conf

elif [[ "$php" == "${php7_4_filename}" ]]; then
\cp $cur_dir/soft/${php}/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
\cp $php_location/etc/php-fpm.d/www.conf.default $php_location/etc/php-fpm.d/www.conf
sed -i 's/^user =.*/user = www/' $php_location/etc/php-fpm.d/www.conf
sed -i 's/^group =.*/group = www/' $php_location/etc/php-fpm.d/www.conf

set_php_variable disable_functions "dl,eval,assert,exec,popen,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open"
set_php_variable expose_php Off
set_php_variable error_log ${php_location}/var/log/php_errors.log
set_php_variable request_order "CGP"
set_php_variable cgi.fix_pathinfo 0
set_php_variable short_open_tag on
set_php_variable date.timezone Asia/Shanghai

#开启slow log
sed -i 's#;slowlog = log/$pool.log.slow#slowlog = var/log/$pool.log.slow#' $php_location/etc/php-fpm.d/www.conf
sed -i 's/;request_slowlog_timeout = 0/request_slowlog_timeout = 5/' $php_location/etc/php-fpm.d/www.conf

fi
# 设置php_errors目录权限
chown www ${php_location}/var/log/
# 启用opcache
if [[ "$php" == "${php5_5_filename}" || "$php" == "${php5_6_filename}" || "$php" == "${php7_1_filename}" || "$php" == "${php7_2_filename}" || "$php" == "${php7_3_filename}" ]];then
if [[ "$php" == "${php5_5_filename}" || "$php" == "${php5_6_filename}" || "$php" == "${php7_1_filename}" || "$php" == "${php7_2_filename}" || "$php" == "${php7_3_filename}" || "$php" == "${php7_4_filename}" ]];then
cat >> $php_location/etc/php.ini <<EOF
[opcache]
zend_extension=opcache.so
Expand Down
14 changes: 11 additions & 3 deletions start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -398,9 +398,17 @@ setup_by_cmdline(){
other_option="-DCURSES_LIBRARY=${depends_prefix}/${ncurses_filename}/lib/libncurses.a -DCURSES_INCLUDE_PATH=${depends_prefix}/${ncurses_filename}/include/"
fi
mysql=${mysql5_7_filename}
mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DWITH_BOOST=$cur_dir/soft/${boost_1_59_filename} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=${mysql_data_location}/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 $other_option"
fi

mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DWITH_BOOST=$cur_dir/soft/${boost_1_59_filename} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=${mysql_data_location}/mysql.sock -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 $other_option"
fi
elif if_in_array mysql8.0 "$package";then
if check_sys packageSupport;then
other_option=""
else
other_option="-DCURSES_LIBRARY=${depends_prefix}/${ncurses_filename}/lib/libncurses.a -DCURSES_INCLUDE_PATH=${depends_prefix}/${ncurses_filename}/include/"
fi
mysql=${mysql8_0_filename}
mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DWITH_BOOST=$cur_dir/soft/${boost_1_66_filename} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=${mysql_data_location}/mysql.sock -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 $other_option"
fi
else
mysql=do_not_install
fi
Expand Down