php7.4安装
系統:?CentOS 7.2.1511
內核版本:?3.10.0-327.el7.x86_64
php版本: php7.4.25
可以根據情況先下載所需要的安裝包,如果沒下載,走的有的是國外的站點去下載的,會比較慢,不怕慢的可忽略
注意:這里php配置mysql.sock是/tmp/mysql.sock,如果mysql配置sock文件不一致了,可以改php配置,或者對mysql.sock文件做軟連接
執行該腳本可以直接部署php7.4.25,腳本信息如下
#!/usr/bin/env bash################################################################# # # 用途: 安裝php7.4.25 # # 日期: 2022-07-18 # # 作者: moyuanbo # ################################################################## 切換到執行腳本的目錄里 cd $(dirname $0) bash_dir=$(pwd)# ====================================== 變量修改信息 ====================================== # 執行日志存放路徑 [[ -d logs ]] || mkdir logs execute_log=${bash_dir}/logs/execute.log# php安裝包相關信息 php_tar_dir=php-7.4.25 php_tar_name=${php_tar_dir}.tar.gz# php啟動用戶和用戶組 default_php_user=nginx default_php_group=nginx# php啟動端口 default_php_port=9000# 軟件服務存放目錄 default_software_dir=/data/software# php安裝目錄 default_php_init_dir=${default_software_dir}/php74# 其他安裝包版本信息 # wget https://libzip.org/download/libzip-1.2.0.tar.gz --no-check-certificate libzip_tar_dir=libzip-1.2.0 libzip_tar_name=${libzip_tar_dir}.tar.gz# wget https://pecl.php.net/get/igbinary-3.2.7.tgz igbinary_tar_dir=igbinary-3.2.7 igbinary_tar_name=${igbinary_tar_dir}.tgz# wget https://pecl.php.net/get/protobuf-3.21.2.tgz protobuf_tar_dir=protobuf-3.21.2 protobuf_tar_name=${protobuf_tar_dir}.tgz# wget https://pecl.php.net/get/memcache-4.0.5.2.tgz memcache_tar_dir=memcache-4.0.5.2 memcache_tar_name=${memcache_tar_dir}.tgz# wget https://pecl.php.net/get/msgpack-2.1.2.tgz msgpack_tar_dir=msgpack-2.1.2 msgpack_tar_name=${msgpack_tar_dir}.tgz# wget https://pecl.php.net/get/hprose-1.8.0.tgz hprose_tar_dir=hprose-1.8.0 hprose_tar_name=${hprose_tar_dir}.tgz# wget https://pecl.php.net/get/swoole-4.8.11.tgz swoole_tar_dir=swoole-4.8.11 swoole_tar_name=${swoole_tar_dir}.tgz# wget https://pecl.php.net/get/redis-5.3.7.tgz redis_tar_dir=redis-5.3.7 redis_tar_name=${redis_tar_dir}.tgz# wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.7.1/rabbitmq-c-0.7.1.tar.gz librabbitmq_version=0.7.1 librabbitmq_tar_dir=rabbitmq-c-0.7.1 librabbitmq_tar_name=${librabbitmq_tar_dir}.tar.gz# librabbitmq安裝目錄 default_librabbitmq_init_dir=/data/apps/${librabbitmq_tar_dir}# wget https://pecl.php.net/get/amqp-1.11.0.tgz amqp_tar_dir=amqp-1.11.0 amqp_tar_name=${amqp_tar_dir}.tgz# php編譯安裝信息 function php_install_compile_info() {compile_info="""./configure --prefix=${php_init_dir} \--with-config-file-path=${php_init_dir}/etc/ \--with-fpm-user=${php_user} \--with-fpm-group=${php_group} \--with-curl \--enable-gd \--with-gettext \--with-iconv-dir \--with-kerberos \--with-libdir=lib64 \--with-mysqli \--with-openssl \--with-pdo-mysql \--with-pdo-sqlite \--enable-phar \--with-pear \--with-xmlrpc \--with-xsl \--with-zlib \--with-bz2 \--with-mhash \--enable-fpm \--enable-bcmath \--enable-inline-optimization \--enable-mbregex \--enable-mbstring \--enable-opcache \--enable-pcntl \--enable-shmop \--enable-soap \--enable-sockets \--enable-sysvsem \--enable-sysvshm \--enable-xml \--enable-fpm \--with-gnu-ld \--with-zip \--with-gmp \--enable-opcache \--enable-static""" }# ==========================================================================================function current_time() {date +"%Y%m%d %H:%M:%S" }function shell_lock() {[[ -d ${bash_dir}/tmp ]] || mkdir tmp[[ -f ${bash_dir}/tmp/shell.lock ]] && \echo_error "腳本正在運行,請刪除鎖文件(tmp/shell.lock)之后再執行該腳本,刪除前請確認是否只有本人在操作" && \exittouch ${bash_dir}/tmp/shell.lock }function shell_unlock() {[[ -f ${bash_dir}/tmp/shell.lock ]] && \rm -f ${bash_dir}/tmp/shell.lock }function error_log() {echo -e "\e[31;1m[$(current_time)] ${1}\e[0m" | tee -a ${2} }function echo_error() {echo -e "\e[31;1m[$(current_time)] ${1}\e[0m" }function succes_log() {echo -e "\e[32;1m[$(current_time)] ${1}\e[0m" | tee -a ${2} }function echo_succes() {echo -e "\e[32;1m[$(current_time)] ${1}\e[0m" }function echo_print() {echo -e "\e[33;1m[$(current_time)] ${1}\e[0m" }function echo_grey() {echo -e "\e[30;1m[$(current_time)] ${1}\e[0m" }function echo_blue() {echo -e "\e[34;1m[$(current_time)] ${1}\e[0m" }function echo_pink() {echo -e "\e[35;1m[$(current_time)] ${1}\e[0m" }function echo_purple() {echo -e "\e[36;1m[$(current_time)] ${1}\e[0m" }function echo_white() {echo -e "\e[37;1m[$(current_time)] ${1}\e[0m" }function error_exit() {echo_error "${1}"shell_unlockexit 1 }function executed() {echo_succes "${1}已執行"echo_print "如果確定要重新執行請刪掉文件(${2}),重新執行本腳本" }function execute_start() {grep "${1}執行完成" ${2} &> /dev/nullif [[ $? -eq 0 ]] ; thenexecuted ${1} ${2}return 0elsereturn 255fi }function execute_end() {echo "${1}執行完成" >> ${2} }function clear_execute() {[[ -s ${1} ]] && mv ${1} ${1}_$(date +"%Y%m%d_%H%M%S")find logs/ -type f -mtime +2 | xargs rm -f }function install_info_collection() {echo_print '以下信息按 確認鍵 使用默認值'[[ -s ${execute_log} ]] && \php_user=$(grep '^execute_php_user:' ${execute_log} | awk -F':' '{print $2}')if [[ -z ${php_user} ]] ; then echo -ne "\e[33;1m請輸入PHP啟動用戶,默認為:( \e[37;1m${default_php_user} \e[33;1m): \e[0m"read php_user[[ -n ${php_user} ]] && echo "execute_php_user:${php_user}" >> ${execute_log}elseecho_succes "PHP啟動用戶默認為:( \e[37;1m${php_user} \e[32;1m),如果需要更改,請刪除 ${execute_log} 文件"fi[[ -s ${execute_log} ]] && \php_group=$(grep '^execute_php_group:' ${execute_log} | awk -F':' '{print $2}')if [[ -z ${php_group} ]] ; thenecho -ne "\e[33;1m請輸入PHP啟動用戶組,默認為:( \e[37;1m${default_php_group} \e[33;1m): \e[0m"read php_group[[ -n ${php_group} ]] && echo "execute_php_group:${php_group}" >> ${execute_log}elseecho_succes "PHP啟動用戶組默認為:( \e[37;1m${php_group} \e[32;1m),如果需要更改,請刪除 ${execute_log} 文件"fi[[ -s ${execute_log} ]] && \software_dir=$(grep '^execute_software_dir:' ${execute_log} | awk -F':' '{print $2}')if [[ -z ${software_dir} ]] ; thenecho -ne "\e[33;1m請輸入軟件服務存放目錄,默認為:( \e[37;1m${default_software_dir} \e[33;1m): \e[0m"read software_dir[[ -n ${software_dir} ]] && echo "execute_software_dir:${software_dir}" >> ${execute_log}elseecho_succes "軟件服務存放目錄默認為:( \e[37;1m${software_dir} \e[32;1m),如果需要更改,請刪除 ${execute_log} 文件"fi[[ -s ${execute_log} ]] && \php_port=$(grep '^execute_php_port:' ${execute_log} | awk -F':' '{print $2}')if [[ -z ${php_port} ]] ; thenecho -ne "\e[33;1m請輸入PHP啟動端口,默認為:( \e[37;1m${default_php_port} \e[33;1m): \e[0m"read php_port[[ -n ${php_port} ]] && echo "execute_php_port:${php_port}" >> ${execute_log}elseecho_succes "PHP啟動端口默認為:( \e[37;1m${php_port} \e[32;1m),如果需要更改,請刪除 ${execute_log} 文件"fi[[ -s ${execute_log} ]] && \php_init_dir=$(grep '^execute_php_init_dir:' ${execute_log} | awk -F':' '{print $2}')if [[ -z ${php_init_dir} ]] ; thenecho -ne "\e[33;1m請輸入PHP部署目錄,默認為:( \e[37;1m${default_php_init_dir} \e[33;1m): \e[0m"read php_init_dir[[ -n ${php_init_dir} ]] && echo "execute_php_init_dir:${php_init_dir}" >> ${execute_log}elseecho_succes "PHP部署目錄默認為:( \e[37;1m${php_init_dir} \e[32;1m),如果需要更改,請刪除 ${execute_log} 文件"fi[[ -s ${execute_log} ]] && \librabbitmq_init_dir=$(grep '^execute_librabbitmq_init_dir:' ${execute_log} | awk -F':' '{print $2}')if [[ -z ${librabbitmq_init_dir} ]] ; thenecho -ne "\e[33;1m請輸入librabbitmq部署目錄,默認為:( \e[37;1m${default_librabbitmq_init_dir} \e[33;1m): \e[0m"read librabbitmq_init_dir[[ -n ${librabbitmq_init_dir} ]] && echo "execute_librabbitmq_init_dir:${librabbitmq_init_dir}" >> ${execute_log}elseecho_succes "librabbitmq部署目錄默認為:( \e[37;1m${librabbitmq_init_dir} \e[32;1m),如果需要更改,請刪除 ${execute_log} 文件"fi[[ -z ${php_user} ]] && php_user=${default_php_user}[[ -z ${php_group} ]] && php_group=${default_php_group}[[ -z ${software_dir} ]] && software_dir=${default_software_dir}[[ -z ${php_port} ]] && php_port=${default_php_port}[[ -z ${php_init_dir} ]] && php_init_dir=${default_php_init_dir}[[ -z ${librabbitmq_init_dir} ]] && librabbitmq_init_dir=${default_librabbitmq_init_dir}echo -e '\e[35;1m=======================================================================================\e[0m'echo -e "\e[33;1mPHP啟動用戶為: \e[37;1m${php_user}\e[0m"echo -e "\e[33;1mPHP啟動用戶組為: \e[37;1m${php_group}\e[0m"echo -e "\e[33;1m軟件服務存放目錄為: \e[37;1m${software_dir}\e[0m"echo -e "\e[33;1mPHP啟動端口為: \e[37;1m${php_port}\e[0m"echo -e "\e[33;1mPHP部署目錄為: \e[37;1m${php_init_dir}\e[0m"echo -e "\e[33;1mlibrabbitmq部署目錄為: \e[37;1m${librabbitmq_init_dir}\e[0m"echo -e '\e[35;1m=======================================================================================\e[0m'echo -ne "\e[33;1m請再次確認安裝信息,按確認鍵 繼續操作: \e[0m"read judge }function install_dependent_package() {cd ${bash_dir}execute_start "INSTALL_DEPENDENT_PACKAGE" ${execute_log} && returnyum -y install epel-release && yum clean all && yum makecache[[ $? -ne 0 ]] && error_exit "安裝epel源失敗"yum -y install libxml2-devel openssl-devel sqlite-devel libcurl-devel \libicu-devel gcc gcc-c++ oniguruma-devel \libxslt-devel libpng-devel libjpeg-devel freetype-devel \bzip2-devel libzstd-devel c-ares-devel wget \vim lrzsz bash-completion net-tools autoconf gmp-devel[[ $? -ne 0 ]] && error_exit "安裝依賴包失敗"echo_succes "安裝依賴包完成"execute_end "INSTALL_DEPENDENT_PACKAGE" ${execute_log} }function install_libzip() {cd ${bash_dir}export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"execute_start "INSTALL_LIBZIP" ${execute_log} && return[[ -d ${libzip_tar_dir} ]] && rm -rf ${libzip_tar_dir}[[ -s ${libzip_tar_name} ]] || wget https://libzip.org/download/${libzip_tar_name} --no-check-certificatetar zxf ${libzip_tar_name}[[ $? -ne 0 ]] && error_exit "libzip壓縮包解壓失敗"cd ${libzip_tar_dir} && ./configure && make && make install [[ $? -ne 0 ]] && error_exit "libzip安裝失敗"echo_succes "libzip安裝完成"execute_end "INSTALL_LIBZIP" ${execute_log} }function install_php() {cd ${bash_dir}execute_start "INSTALL_PHP" ${execute_log} && returnif [[ -d ${php_init_dir} ]] ; thenphp_init_dir_size=$(du -s ${php_init_dir} | awk '{print $1}')[[ ${php_init_dir_size} -gt 0 ]] && \error_exit "PHP部署目錄 (${php_init_dir}) 已存在著數據,確定要安裝,請清理目錄后再執行腳本"fi[[ -d ${php_tar_dir} ]] && rm -rf ${php_tar_dir}[[ -s ${php_tar_name} ]] || wget https://www.php.net/distributions/${php_tar_name}tar zxf ${php_tar_name}[[ $? -ne 0 ]] && error_exit "PHP壓縮包解壓失敗"cd ${php_tar_dir}[[ $? -ne 0 ]] && error_exit "進入PHP安裝包目錄失敗"${compile_info}[[ $? -ne 0 ]] && error_exit "PHP編譯失敗"#sed -i '/^EXTRA_LIBS/s/$/ -llber/' Makefile && \# sed -i '/^EXTRA_LIBS/s/$/ -liconv/' Makefilemake -j 2[[ $? -ne 0 ]] && error_exit "PHP_make失敗"make install[[ $? -ne 0 ]] && error_exit "PHP_make_install失敗"echo_succes "PHP部署完成"execute_end "INSTALL_PHP" ${execute_log} }function to_configure() {execute_start "TO_CONFIGURE" ${execute_log} && returncat > ${php_init_dir}/etc/php-fpm.conf <<EOF [global] process.max = 0 rlimit_files = 65535 events.mechanism = epoll pid = ${php_init_dir}/var/run/php-fpm.pid error_log = ${php_init_dir}/var/log/php-fpm.log log_level = notice [www] user = ${php_user} group = ${php_group} listen = 127.0.0.1:${php_port} listen.backlog = -1 listen.owner = ${php_user} listen.group = ${php_group} listen.mode = 0666 pm = dynamic pm.max_children = 256 pm.start_servers = 16 pm.min_spare_servers = 8 pm.max_spare_servers = 32 pm.max_requests = 1000 pm.status_path = /phpfpm74_status slowlog = ${php_init_dir}/var/log/\$pool.log.slow request_slowlog_timeout = 5 request_terminate_timeout = 30 security.limit_extensions=.php .php3 .php4 .php5 .html .js .css .jpg .jpeg .gif .png .htm EOF[[ $? -ne 0 ]] && error_exit "php-fpm.conf配置文件修改失敗"cat > ${php_init_dir}/etc/php.ini <<EOF [PHP] engine = On short_open_tag = On asp_tags = Off precision = 14 output_buffering = 4096 zlib.output_compression = Off implicit_flush = Off unserialize_callback_func = serialize_precision = 17 disable_functions = disable_classes = zend.enable_gc = On expose_php = Off max_execution_time = 30 max_input_time = 60 max_input_vars = 4096 memory_limit = 128M error_reporting = E_WARING & ERROR display_errors = Off display_startup_errors = Off log_errors = On log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = Off html_errors = On variables_order = "GPCS" request_order = "GP" register_argc_argv = Off auto_globals_jit = On post_max_size = 8M auto_prepend_file = auto_append_file = default_mimetype = "text/html" doc_root = user_dir = enable_dl = Off file_uploads = On upload_max_filesize = 2M max_file_uploads = 20 allow_url_fopen = On allow_url_include = Off default_socket_timeout = 60 zend_extension=opcache.so extension=memcache.so extension=protobuf.so extension=swoole.so extension=amqp.so extension=msgpack.so extension=hprose.so extension=igbinary.so extension=redis.so cgi.fix_pathinfo=1 [CLI Server] cli_server.color = On [Date] date.timezone = Asia/Shanghai [filter] [iconv] [intl] [sqlite] [sqlite3] [Pcre] [Pdo] [Pdo_mysql] pdo_mysql.cache_size = 2000 pdo_mysql.default_socket=/tmp/mysql.sock [Phar] phar.readonly = On [mail function] SMTP = localhost smtp_port = 25 mail.add_x_header = On [SQL] sql.safe_mode = Off [ODBC] odbc.allow_persistent = On odbc.check_persistent = On odbc.max_persistent = -1 odbc.max_links = -1 odbc.defaultlrl = 4096 odbc.defaultbinmode = 1 [Interbase] ibase.allow_persistent = 1 ibase.max_persistent = -1 ibase.max_links = -1 ibase.timestampformat = "%Y-%m-%d %H:%M:%S" ibase.dateformat = "%Y-%m-%d" ibase.timeformat = "%H:%M:%S" [MySQL] mysql.allow_local_infile = On mysql.allow_persistent = On mysql.cache_size = 2000 mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket =/tmp/mysql.sock mysql.default_host = mysql.default_user = mysql.default_password = mysql.connect_timeout = 60 mysql.trace_mode = Off [MySQLi] mysqli.max_persistent = -1 mysqli.allow_persistent = On mysqli.max_links = -1 mysqli.cache_size = 2000 mysqli.default_port = 3306 mysqli.default_socket =/tmp/mysql.sock mysqli.default_host = mysqli.default_user = mysqli.default_pw = mysqli.reconnect = Off [mysqlnd] mysqlnd.collect_statistics = On mysqlnd.collect_memory_statistics = Off [OCI8] [PostgreSQL] pgsql.allow_persistent = On pgsql.auto_reset_persistent = Off pgsql.max_persistent = -1 pgsql.max_links = -1 pgsql.ignore_notice = 0 pgsql.log_notice = 0 [Sybase-CT] sybct.allow_persistent = On sybct.max_persistent = -1 sybct.max_links = -1 sybct.min_server_severity = 10 sybct.min_client_severity = 10 [bcmath] bcmath.scale = 0 [browscap] session.save_handler = files session.use_strict_mode = 0 session.use_cookies = 1 session.use_only_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.cookie_httponly = session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 1000 session.gc_maxlifetime = 1440 session.referer_check = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0 session.hash_function = 0 session.hash_bits_per_character = 5 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" [MSSQL] mssql.allow_persistent = On mssql.max_persistent = -1 mssql.max_links = -1 mssql.min_error_severity = 10 mssql.min_message_severity = 10 mssql.compatibility_mode = Off mssql.secure_connection = Off [Assertion] [COM] [mbstring] [gd] [exif] [Tidy] tidy.clean_output = Off [soap] soap.wsdl_cache_enabled=1 soap.wsdl_cache_dir="/tmp" soap.wsdl_cache_ttl=86400 soap.wsdl_cache_limit = 5 [sysvshm] [ldap] ldap.max_links = -1 [mcrypt] [dba] [opcache] opcache.enable=1 opcache.enable_cli=0 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=2000 opcache.revalidate_freq=30 opcache.fast_shutdown=1 swoole.use_shortname = 'Off' EOF[[ $? -ne 0 ]] && error_exit "php.ini配置文件修改失敗"echo_succes "PHP配置文件修改完成"execute_end "TO_CONFIGURE" ${execute_log} && return }function install_igbinary() {cd ${bash_dir}execute_start "INSTALL_IGBINARY" ${execute_log} && return[[ -d ${igbinary_tar_dir} ]] && rm -rf ${igbinary_tar_dir}[[ -s ${igbinary_tar_name} ]] || wget https://pecl.php.net/get/${igbinary_tar_name}tar zxf ${igbinary_tar_name}[[ $? -ne 0 ]] && error_exit "igbinary壓縮包解壓失敗"cd ${igbinary_tar_dir} && ${php_init_dir}/bin/phpize && \./configure --with-php-config=${php_init_dir}/bin/php-config && \make && make install[[ $? -ne 0 ]] && error_exit "igbinary安裝失敗"echo_succes "igbinary安裝完成"execute_end "INSTALL_IGBINARY" ${execute_log} }function install_protobuf() {cd ${bash_dir}execute_start "INSTALL_PROTOBUF" ${execute_log} && return[[ -d ${protobuf_tar_dir} ]] && rm -rf ${protobuf_tar_dir}[[ -s ${protobuf_tar_name} ]] || wget https://pecl.php.net/get/${protobuf_tar_name}tar zxf ${protobuf_tar_name}[[ $? -ne 0 ]] && error_exit "protobuf壓縮包解壓失敗"cd ${protobuf_tar_dir} && ${php_init_dir}/bin/phpize && \./configure --with-php-config=${php_init_dir}/bin/php-config && \make && make install[[ $? -ne 0 ]] && error_exit "protobuf安裝失敗"echo_succes "protobuf安裝完成"execute_end "INSTALL_PROTOBUF" ${execute_log} }function install_memcache() {cd ${bash_dir}execute_start "INSTALL_MEMCACHE" ${execute_log} && return[[ -d ${memcache_tar_dir} ]] && rm -rf ${memcache_tar_dir}[[ -s ${memcache_tar_name} ]] || wget https://pecl.php.net/get/${memcache_tar_name}tar zxf ${memcache_tar_name}[[ $? -ne 0 ]] && error_exit "memcache壓縮包解壓失敗"cd ${memcache_tar_dir} && ${php_init_dir}/bin/phpize && \./configure --with-php-config=${php_init_dir}/bin/php-config && \make && make install[[ $? -ne 0 ]] && error_exit "memcache安裝失敗"echo_succes "memcache安裝完成"execute_end "INSTALL_MEMCACHE" ${execute_log} }function install_msgpack() {cd ${bash_dir}execute_start "INSTALL_MSGPACK" ${execute_log} && return[[ -d ${msgpack_tar_dir} ]] && rm -rf ${msgpack_tar_dir}[[ -s ${msgpack_tar_name} ]] || wget https://pecl.php.net/get/${msgpack_tar_name}tar zxf ${msgpack_tar_name}[[ $? -ne 0 ]] && error_exit "msgpack壓縮包解壓失敗"cd ${msgpack_tar_dir} && ${php_init_dir}/bin/phpize && \./configure --with-php-config=${php_init_dir}/bin/php-config && \make && make install[[ $? -ne 0 ]] && error_exit "msgpack安裝失敗"echo_succes "msgpack安裝完成"execute_end "INSTALL_MSGPACK" ${execute_log} }function install_hprose() {cd ${bash_dir}execute_start "INSTALL_HPROSE" ${execute_log} && return[[ -d ${hprose_tar_dir} ]] && rm -rf ${hprose_tar_dir}[[ -s ${hprose_tar_name} ]] || wget https://pecl.php.net/get/${hprose_tar_name}tar zxf ${hprose_tar_name}[[ $? -ne 0 ]] && error_exit "hprose壓縮包解壓失敗"cd ${hprose_tar_dir} && ${php_init_dir}/bin/phpize && \./configure --with-php-config=${php_init_dir}/bin/php-config && \make && make install[[ $? -ne 0 ]] && error_exit "hprose安裝失敗"echo_succes "hprose安裝完成"execute_end "INSTALL_HPROSE" ${execute_log} }function install_swoole() {cd ${bash_dir}execute_start "INSTALL_SWOOLE" ${execute_log} && return[[ -d ${swoole_tar_dir} ]] && rm -rf ${swoole_tar_dir}[[ -s ${swoole_tar_name} ]] || wget https://pecl.php.net/get/${swoole_tar_name}tar zxf ${swoole_tar_name}[[ $? -ne 0 ]] && error_exit "swoole壓縮包解壓失敗"cd ${swoole_tar_dir} && ${php_init_dir}/bin/phpize && \./configure --with-php-config=${php_init_dir}/bin/php-config \--enable-openssl && \make && make install[[ $? -ne 0 ]] && error_exit "swoole安裝失敗"echo_succes "swoole安裝完成"execute_end "INSTALL_SWOOLE" ${execute_log} }function install_redis() {cd ${bash_dir}execute_start "INSTALL_REDIS" ${execute_log} && return[[ -d ${redis_tar_dir} ]] && rm -rf ${redis_tar_dir}[[ -s ${redis_tar_name} ]] || wget https://pecl.php.net/get/${redis_tar_name}tar zxf ${redis_tar_name}[[ $? -ne 0 ]] && error_exit "redis壓縮包解壓失敗"cd ${redis_tar_dir} && ${php_init_dir}/bin/phpize && \./configure --with-php-config=${php_init_dir}/bin/php-config \--enable-redis-msgpack && \make && make install[[ $? -ne 0 ]] && error_exit "redis安裝失敗"echo_succes "redis安裝完成"execute_end "INSTALL_REDIS" ${execute_log} }function install_librabbitmq() {cd ${bash_dir}execute_start "INSTALL_LIBRABBITMQ" ${execute_log} && returnif [[ -d ${software_dir}/${librabbitmq_tar_dir} ]] ; thenecho -ne "\e[33;1mlibrabbitmq部署的軟件服務目錄已存在,是否刪除重新部署( yes|no ) \e[0m"read judgeif [[ "${judge}" == "yes" ]] ; then[[ -z ${software_dir} || -z ${librabbitmq_tar_dir} ]] && \echo "software_dir:${software_dir} librabbitmq_tar_dir:${librabbitmq_tar_dir}" && \error_exit "software_dir 或者 librabbitmq_tar_dir 變量為空,不用作刪除目錄處理"rm -rf ${software_dir}/${librabbitmq_tar_dir}elseexecute_end "INSTALL_LIBRABBITMQ" ${execute_log} && returnfifi[[ -s ${librabbitmq_tar_name} ]] || \wget https://github.com/alanxz/rabbitmq-c/releases/download/v${librabbitmq_version}/${librabbitmq_tar_name}tar zxf ${librabbitmq_tar_name} -C ${software_dir}[[ $? -ne 0 ]] && error_exit "librabbitmq壓縮包解壓失敗"cd ${software_dir}/${librabbitmq_tar_dir} && \./configure --prefix=${software_dir}/${librabbitmq_tar_dir} && \make && make install[[ $? -ne 0 ]] && error_exit "librabbitmq安裝失敗"echo_succes "librabbitmq安裝完成"execute_end "INSTALL_LIBRABBITMQ" ${execute_log} }function install_amqp() {cd ${bash_dir}execute_start "INSTALL_AMQP" ${execute_log} && return[[ -d ${amqp_tar_dir} ]] && rm -rf ${amqp_tar_dir}[[ -s ${amqp_tar_name} ]] || wget https://pecl.php.net/get/${amqp_tar_name}tar zxf ${amqp_tar_name}[[ $? -ne 0 ]] && error_exit "amqp壓縮包解壓失敗"cd ${amqp_tar_dir} && ${php_init_dir}/bin/phpize && \./configure --with-php-config=${php_init_dir}/bin/php-config \--with-amqp --with-librabbitmq-dir=${software_dir}/${librabbitmq_tar_dir} && \make && make install[[ $? -ne 0 ]] && error_exit "amqp安裝失敗"echo_succes "amqp安裝完成"execute_end "INSTALL_AMQP" ${execute_log} }function start_php_fpm () {cd ${bash_dir}execute_start "INSTALL_START_PHP_FPM" ${execute_log} && returnid ${php_user}[[ $? -ne 0 ]] && groupadd ${php_group} && useradd ${php_user} -r -s /sbin/nologin -g ${php_group}chown -R ${php_user}:${php_group} ${php_init_dir}/varcd ${php_tar_dir}[[ -s /etc/init.d/php-fpm74 ]] && mv /etc/init.d/php-fpm74 /etc/init.d/php-fpm74-$(date +"%Y%m%d-%H%M%S")\cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm74 && \chmod 755 /etc/init.d/php-fpm74 && \chkconfig --add php-fpm74 && \chkconfig --level 345 php-fpm74 on[[ $? -ne 0 ]] && error_exit "設置php-fpm開機自啟動失敗"service php-fpm74 start[[ $? -ne 0 ]] && error_exit "php-fpm啟動失敗"echo_succes "php-fpm啟動成功"execute_end "INSTALL_START_PHP_FPM" ${execute_log} && return } shell_lockinstall_info_collection php_install_compile_info install_dependent_package install_libzip install_php to_configure install_igbinary install_protobuf install_memcache install_msgpack install_hprose install_swoole install_redis install_librabbitmq install_amqp start_php_fpmshell_unlock總結
- 上一篇: 海瑞墓
- 下一篇: 电脑 耳机播放声音,左右耳朵不平衡解决方