mirror of
https://github.com/balloonwj/TeamTalk.git
synced 2026-10-18 22:32:12 +08:00
317 lines
5.2 KiB
Bash
317 lines
5.2 KiB
Bash
#!/bin/bash
|
|
# this is a setup scripts for php
|
|
# author: luoning
|
|
# date: 09/06/2014
|
|
|
|
# setup php
|
|
|
|
PHP=php-5.6.6
|
|
PHP_DOWNLOAD_PATH=http://cn2.php.net/distributions/$PHP.tar.gz
|
|
INSTALL_DIR=/usr/local/php5
|
|
|
|
PHP_FPM_CONF=php-fpm.conf
|
|
PHP_INI=php.ini
|
|
MAKE=make
|
|
CPU_NUM=`cat /proc/cpuinfo | grep processor | wc -l`
|
|
|
|
print_hello(){
|
|
echo "==========================================="
|
|
echo "$1 php for TeamTalk"
|
|
echo "==========================================="
|
|
}
|
|
|
|
check_user() {
|
|
if [ $(id -u) != "0" ]; then
|
|
echo "Error: You must be root to run this script, please use root to install php"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
check_os() {
|
|
OS_VERSION=$(less /etc/redhat-release)
|
|
OS_BIT=$(getconf LONG_BIT)
|
|
#echo "$OS_VERSION, $OS_BIT bit..."
|
|
if [[ $OS_VERSION =~ "CentOS" ]]; then
|
|
if [ $OS_BIT == 64 ]; then
|
|
return 0
|
|
else
|
|
echo "Error: OS must be CentOS 64bit to run this script."
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Error: OS must be CentOS 64bit to run this script."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
check_run() {
|
|
ps -ef | grep -v 'grep' | grep php-fpm
|
|
if [ $? -eq 0 ]; then
|
|
echo "Error: php-fpm is running."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
|
|
clean_yum() {
|
|
YUM_PID=/var/run/yum.pid
|
|
if [ -f "$YUM_PID" ]; then
|
|
set -x
|
|
rm -f YUM_PID
|
|
killall yum
|
|
set +x
|
|
fi
|
|
}
|
|
|
|
|
|
download() {
|
|
if [ -f "$1" ]; then
|
|
echo "$1 existed."
|
|
else
|
|
echo "$1 not existed, begin to download..."
|
|
wget $2
|
|
if [ $? -eq 0 ]; then
|
|
echo "download $1 successed";
|
|
else
|
|
echo "Error: download $1 failed";
|
|
return 1;
|
|
fi
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
# building php
|
|
build_php() {
|
|
gunzip -c $PHP.tar.gz | tar xf -
|
|
cd $PHP
|
|
./configure --prefix=$INSTALL_DIR \
|
|
--with-config-file-path=$INSTALL_DIR/etc \
|
|
--enable-fpm \
|
|
--enable-gd-native-ttf \
|
|
--with-mysql=mysqlnd \
|
|
--with-mysqli=mysqlnd \
|
|
--with-pdo-mysql=mysqlnd \
|
|
--with-curl \
|
|
#--with-apxs2 \
|
|
--with-zlib \
|
|
--with-zlib-dir \
|
|
--with-libxml-dir \
|
|
--with-freetype-dir \
|
|
--with-jpeg-dir \
|
|
--with-png-dir \
|
|
--with-gd
|
|
|
|
$MAKE -j $CPU_NUM
|
|
if [ $? -eq 0 ]; then
|
|
echo "make php successed";
|
|
else
|
|
echo "Error: make php failed";
|
|
return 1;
|
|
fi
|
|
$MAKE install
|
|
if [ $? -eq 0 ]; then
|
|
echo "install php successed";
|
|
else
|
|
echo "Error: install php failed";
|
|
return 1;
|
|
fi
|
|
cd ..
|
|
return 0
|
|
}
|
|
|
|
# modify and copy php.ini
|
|
modify_php() {
|
|
set -x
|
|
cp ./conf/$PHP_FPM_CONF $INSTALL_DIR/etc/$PHP_FPM_CONF
|
|
chmod 755 $INSTALL_DIR/etc/$PHP_FPM_CONF
|
|
cp ./conf/$PHP_INI $INSTALL_DIR/etc/$PHP_INI
|
|
chmod 755 $INSTALL_DIR/etc/$PHP_INI
|
|
|
|
killall php-fpm
|
|
$INSTALL_DIR/sbin/php-fpm
|
|
set +x
|
|
netstat -antpl
|
|
|
|
}
|
|
|
|
build_zlib() {
|
|
clean_yum
|
|
|
|
yum -y install zlib-devel
|
|
if [ $? -eq 0 ]; then
|
|
echo "yum install zlib-devel successed."
|
|
else
|
|
echo "Error: yum install zlib-devel failed."
|
|
return 1;
|
|
fi
|
|
}
|
|
|
|
build_jpeg() {
|
|
clean_yum
|
|
yum -y install libjpeg-devel
|
|
if [ $? -eq 0 ]; then
|
|
echo "yum install libjpeg-devel successed."
|
|
else
|
|
echo "Error: yum install libjpeg-devel failed."
|
|
return 1;
|
|
fi
|
|
}
|
|
|
|
build_freetype() {
|
|
clean_yum
|
|
yum -y install freetype-devel
|
|
if [ $? -eq 0 ]; then
|
|
echo "yum install freetype-devel successed."
|
|
else
|
|
echo "Error: yum install freetype-devel failed."
|
|
return 1;
|
|
fi
|
|
}
|
|
|
|
build_png() {
|
|
clean_yum
|
|
yum -y install libpng-devel
|
|
if [ $? -eq 0 ]; then
|
|
echo "yum install libpng-devel successed."
|
|
else
|
|
echo "Error: yum install libpng-devel failed."
|
|
return 1;
|
|
fi
|
|
}
|
|
|
|
|
|
build_gd() {
|
|
clean_yum
|
|
yum -y install php-gd
|
|
if [ $? -eq 0 ]; then
|
|
echo "yum install php-gd successed."
|
|
else
|
|
echo "Error: yum install php-gd failed."
|
|
return 1;
|
|
fi
|
|
}
|
|
|
|
build_xml() {
|
|
clean_yum
|
|
yum -y install libxml2-devel
|
|
if [ $? -eq 0 ]; then
|
|
echo "yum install libxml2-devel successed."
|
|
else
|
|
echo "Error: yum install libxml2-devel failed."
|
|
return 1;
|
|
fi
|
|
}
|
|
|
|
build_curl() {
|
|
clean_yum
|
|
yum -y install curl-devel
|
|
if [ $? -eq 0 ]; then
|
|
echo "yum install curl-devel successed."
|
|
else
|
|
echo "Error: yum install curl-devel failed."
|
|
return 1;
|
|
fi
|
|
}
|
|
|
|
build_all()
|
|
{
|
|
#yum -y install yum-fastestmirror
|
|
|
|
build_zlib
|
|
if [ $? -eq 0 ]; then
|
|
echo "build zlib successed."
|
|
else
|
|
echo "Error: build zlib failed."
|
|
exit 1
|
|
fi
|
|
|
|
build_jpeg
|
|
if [ $? -eq 0 ]; then
|
|
echo "build jpeg successed."
|
|
else
|
|
echo "Error: build jpeg failed."
|
|
exit 1
|
|
fi
|
|
|
|
build_freetype
|
|
if [ $? -eq 0 ]; then
|
|
echo "build freetype successed."
|
|
else
|
|
echo "Error: build freetype failed."
|
|
exit 1
|
|
fi
|
|
|
|
build_png
|
|
if [ $? -eq 0 ]; then
|
|
echo "build png successed."
|
|
else
|
|
echo "Error: build png failed."
|
|
exit 1
|
|
fi
|
|
|
|
build_gd
|
|
if [ $? -eq 0 ]; then
|
|
echo "build gd successed."
|
|
else
|
|
echo "Error: build gd failed."
|
|
exit 1
|
|
fi
|
|
|
|
build_xml
|
|
if [ $? -eq 0 ]; then
|
|
echo "build xml successed."
|
|
else
|
|
echo "Error: build xml failed."
|
|
exit 1
|
|
fi
|
|
|
|
build_curl
|
|
if [ $? -eq 0 ]; then
|
|
echo "build curl successed."
|
|
else
|
|
echo "Error: build curl failed."
|
|
exit 1
|
|
fi
|
|
|
|
download $PHP.tar.gz $PHP_DOWNLOAD_PATH
|
|
if [ $? -eq 1 ]; then
|
|
exit 1;
|
|
fi
|
|
|
|
mkdir -p $INSTALL_DIR
|
|
|
|
build_php
|
|
if [ $? -eq 1 ]; then
|
|
exit 1
|
|
fi
|
|
modify_php
|
|
}
|
|
|
|
print_help() {
|
|
echo "Usage: "
|
|
echo " $0 check --- check environment"
|
|
echo " $0 install --- check & run scripts to install"
|
|
}
|
|
|
|
case $1 in
|
|
check)
|
|
print_hello $1
|
|
check_user
|
|
check_os
|
|
check_run
|
|
;;
|
|
install)
|
|
print_hello $1
|
|
check_user
|
|
check_os
|
|
check_run
|
|
build_all
|
|
;;
|
|
*)
|
|
print_help
|
|
;;
|
|
esac
|
|
|
|
|
|
|