Skip to content

Instantly share code, notes, and snippets.

@jk2K
Created July 14, 2019 16:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jk2K/c6dfd87f2eeaa5deb12e48edb0d7af65 to your computer and use it in GitHub Desktop.
Save jk2K/c6dfd87f2eeaa5deb12e48edb0d7af65 to your computer and use it in GitHub Desktop.
编译安装 php
#!/bin/bash
function get_filename_from_url() {
download_url=$1
file_with_query_params=$(echo "${download_url##*/}")
file=$(echo "${file_with_query_params%%\?*}")
echo ${file}
}
php_download_url='http://xx.com/php-7.3.7.tgz'
php_filename=$(get_filename_from_url ${php_download_url})
php_filename_no_ext=$(echo "${php_filename%.*}")
echo ${php_filename}
echo ${php_filename_no_ext}
# 依赖 zlib libjpeg freetype curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel gd-devel curl-devel libxslt libxslt-devel libzip rsync
function download_package()
{
software_name=$1
download_url=$2
filename=$3
# 可能不存在的变量得放最后
local_archive_path=$4
if [[ -z "${local_archive_path}" ]]; then
# 非本地安装
cd /export/servers
#download
curl ${download_url} --output ${filename}
if [[ $? -eq 0 ]]; then
echo -e "\033[42m ######Download ${software_name} Successful###### \033[0m"
else
echo -e "\033[31m ######Download ${software_name} Error,Pls Check!!!###### \033[0m"
exit
fi
else
# 本地安装
download_url=${local_archive_path}
filename=$(get_filename_from_url ${download_url})
filename_no_ext=$(echo "${filename%.*}")
cp ${local_archive_path} /export/servers
fi
}
function check_or_extract()
{
software_name=$1
download_url=$2
filename=$3
# 可能不存在的变量得放最后
local_archive_path=$4
ls /export/servers | grep ${software_name}
if [[ $? -eq 0 ]]; then
echo -e "\033[31m ######${software_name} Already Installed,Pls Check!!!###### \033[0m"
exit
else
echo -e "\033[42m ######${software_name} NOT Installed,Begin Install###### \033[0m"
fi
echo -e "\033[42m ######Start Download ${software_name}###### \033[0m"
cd /export/servers
#download python
download_package ${software_name} ${download_url} ${filename} ${local_archive_path}
#untar python
tar xzf ${filename};
if [[ $? -eq 0 ]]; then
echo -e "\033[42m ######unTar ${software_name} Successful###### \033[0m"
else
echo -e "\033[31m ######unTar ${software_name} Error,Pls Check!!!###### \033[0m"
exit
fi
}
install_php() {
software_name="php-7.3"
filename=${php_filename}
filename_no_ext=${php_filename_no_ext}
download_url=${php_download_url}
local_archive_path=""
install_prefix="/export/servers/${software_name}"
check_or_extract ${software_name} ${download_url} ${filename} ${local_archive_path}
#configure
cd "/export/servers/${filename_no_ext}"
./configure --prefix=${install_prefix} \
--with-fpm-user=admin \
--with-fpm-group=admin \
--enable-fpm \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-webp-dir \
--with-zlib \
--with-pdo-mysql \
--with-openssl \
--with-libdir=lib64 \
--enable-mbstring \
--enable-simplexml
#sudo make, 多核加速编译
sudo make -j nproc
#sudo make install
sudo make install
# copy php.ini
sudo cp php.ini-production ${install_prefix}/lib/php.ini
# copy php-fpm.conf
sudo cp ${install_prefix}/etc/php-fpm.conf.default ${install_prefix}/etc/php-fpm.conf
# copy php-fpm.d/www.conf
sudo cp ${install_prefix}/etc/php-fpm.d/www.conf.default ${install_prefix}/etc/php-fpm.d/www.conf
# change listen to unix socket, set permissions for unix socket
sed -i 's#listen = 127.0.0.1:9000#listen = /dev/shm/php-fcgi.sock#' ${install_prefix}/etc/php-fpm.d/www.conf
sed -i 's#;listen.owner = admin#listen.owner = admin#' ${install_prefix}/etc/php-fpm.d/www.conf
sed -i 's#;listen.group = admin#listen.group = admin#' ${install_prefix}/etc/php-fpm.d/www.conf
#Check git Version
sudo /export/servers/${software_name}/sbin/php-fpm
/export/servers/${software_name}/sbin/php-fpm -v
}
install_php
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment