Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.9.3 Merge #3

Merged
merged 5 commits into from
Sep 26, 2014
Merged
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
5 changes: 5 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
###版本`2.9.3`:`Release date:2014/09/26`
更新记录:
* 1、升级 MySQL 到版本 5.5.40, 5.6.21;
* 2、新增 memcached.sh 脚本,一键安装 memcached 及 memcached 的 PHP 扩展;

###版本`2.9.2`:`Release date:2014/09/25`
更新记录:

Expand Down
37 changes: 20 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,36 +8,38 @@
* 服务器必须配置好软件源和可连接外网
* 必须具有系统 Root 权限
* 建议使用干净系统全新安装
* 日期:2014年09月25日
* 日期:2014年09月26日

## 关于本脚本
* 支持 PHP 自带所有组件;
* 支持 MySQL ,MariaDB, SQLite 数据库;
* 支持 XCache ,Zend OPcache(可选安装);
* 支持 Zend Guard Loader (可选安装);
* 支持 OCI8 (可让 PHP 连接 Oracle 数据库,可选安装);
* 支持 ionCube PHP Loader (可选安装);
* 支持 pure-ftpd (可选安装);
* 支持 OCI8 (可选安装);
* 支持 memcached (可选安装);
* 支持 pure-ftpd (可选安装);
* 支持 ImageMagick (可选安装);
* 支持 GraphicsMagick (可选安装);
* 支持 Zend Guard Loader (可选安装);
* 支持 ionCube PHP Loader (可选安装);
* 支持 XCache ,Zend OPcache (可选安装);
* 命令行新增虚拟主机,操作简便;
* 自助升级 PHP,phpMyAdmin,MySQL 或 MariaDB 至最新版本;
* 支持创建 FTP 用户;
* 一键卸载。

## 将会安装
* 1、Apache 2.4.10
* 2、MySQL 5.6.20, MySQL 5.5.39, MariaDB 5.5.39, MariaDB 10.0.13 (四选一安装)
* 2、MySQL 5.6.21, MySQL 5.5.40, MariaDB 5.5.39, MariaDB 10.0.13 (四选一安装)
* 3、PHP 5.4.33, PHP 5.3.29, PHP 5.5.17 (三选一安装)
* 4、phpMyAdmin 4.2.9
* 5、xcache 3.2.0 (推荐安装)
* 6、OCI8 2.0.8 (可选安装)
* 7、pure-ftpd-1.0.36 (可选安装)
* 8、Zend Guard Loader 3.3( 可选安装)
* 9、ionCube PHP Loader 4.6.1 (可选安装)
* 5、OCI8 2.0.8 (可选安装)
* 6、xcache 3.2.0 (可选安装)
* 7 memcached-1.4.20 (可选安装)
* 8、pure-ftpd-1.0.36 (可选安装)
* 9、Zend OPcache 7.0.3 (可选安装)
* 10、ImageMagick-6.8.9-8 (可选安装)
* 11、GraphicsMagick-1.3.20 (可选安装)
* 12、Zend OPcache 7.0.3 (可选安装)
* 12、Zend Guard Loader 3.3 (可选安装)
* 13、ionCube PHP Loader 4.6.1 (可选安装)

## 如何安装
### 事前准备(安装screen、unzip,创建 screen 会话):
Expand All @@ -59,17 +61,18 @@

### 安装其它:

* 1、(推荐安装)执行脚本 xcache.sh 安装 xcache 。(命令:./xcache.sh)
* 1、(可选安装)执行脚本 xcache.sh 安装 xcache 。(命令:./xcache.sh)
* 2、(可选安装)执行脚本 oci8_oracle11g.sh 安装 OCI8 扩展以及 oracle-instantclient11.2(命令:./oci8_oracle11g.sh)
* 3、(可选安装)执行脚本 pureftpd.sh 安装 pure-ftpd-1.0.36。(命令:./pureftpd.sh)
* 4、(可选安装)执行脚本 ZendGuardLoader.sh 安装 Zend Guard Loader。(命令:./ZendGuardLoader.sh)
* 5、(可选安装)执行脚本 ioncube.sh 安装 ionCube PHP Loader。(命令:./ioncube.sh)
* 6、(可选安装)执行脚本 ImageMagick.sh 安装 imagick 的 PHP 扩展。(命令:./ImageMagick.sh)
* 7、(可选安装)执行脚本 GraphicsMagick.sh 安装 gmagick 的 PHP 扩展。(命令:./GraphicsMagick.sh)
* 8、(可选安装)执行脚本 opcache.sh 安装 Zend OPcache 的 PHP 扩展。(命令:./opcache.sh)
* 9、(升级脚本)执行脚本 upgrade_php.sh 将会升级 PHP 和 phpMyAdmin 至最新版本。(命令:./upgrade_php.sh | tee upgrade_php.log)
* 10、(升级脚本)执行脚本 upgrade_mysql.sh 将会升级 MySQL 至已安装版本的最新版本。(命令:./upgrade_mysql.sh | tee upgrade_mysql.log)
* 11、(升级脚本)执行脚本 upgrade_mariadb.sh 将会升级 MariaDB 至已安装版本的最新版本。(命令:./upgrade_mariadb.sh | tee upgrade_mariadb.log)
* 9、(可选安装)执行脚本 memcached.sh 安装 memcached 及 memcached 的 PHP 扩展。(命令:./memcached.sh)
* 10、(升级脚本)执行脚本 upgrade_php.sh 将会升级 PHP 和 phpMyAdmin 至最新版本。(命令:./upgrade_php.sh | tee upgrade_php.log)
* 11、(升级脚本)执行脚本 upgrade_mysql.sh 将会升级 MySQL 至已安装版本的最新版本。(命令:./upgrade_mysql.sh | tee upgrade_mysql.log)
* 12、(升级脚本)执行脚本 upgrade_mariadb.sh 将会升级 MariaDB 至已安装版本的最新版本。(命令:./upgrade_mariadb.sh | tee upgrade_mariadb.log)

### 关于 upgrade_php.sh

Expand Down
81 changes: 81 additions & 0 deletions conf/memcached
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#!/bin/sh
#
# chkconfig: - 55 45
# description: The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached

# Source function library.
. /etc/rc.d/init.d/functions

PORT=11211
USER=memcached
MAXCONN=1024
CACHESIZE=64
OPTIONS=""

if [ -f /etc/sysconfig/memcached ];then
. /etc/sysconfig/memcached
fi

# Check that networking is up.
if [ "$NETWORKING" = "no" ]
then
exit 0
fi

RETVAL=0
prog="memcached"

start () {
echo -n $"Starting $prog: "
# insure that /var/run/memcached has proper permissions
mkdir -p /var/run/memcached
if [ "`stat -c %U /var/run/memcached`" != "$USER" ]; then
chown $USER /var/run/memcached
fi
daemon memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
}
stop () {
echo -n $"Stopping $prog: "
killproc memcached
RETVAL=$?
echo
if [ $RETVAL -eq 0 ] ; then
rm -f /var/lock/subsys/memcached
rm -f /var/run/memcached/memcached.pid
fi
}

restart () {
stop
start
}


# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status memcached
;;
restart|reload)
restart
;;
condrestart)
[ -f /var/lock/subsys/memcached ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
exit 1
esac

exit $?
4 changes: 2 additions & 2 deletions lamp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ echo ""
StartDate=''
StartDateSecond=''
# Software Version
MySQLVersion='mysql-5.6.20'
MySQLVersion2='mysql-5.5.39'
MySQLVersion='mysql-5.6.21'
MySQLVersion2='mysql-5.5.40'
MariaDBVersion='mariadb-5.5.39'
MariaDBVersion2='mariadb-10.0.13'
PHPVersion='php-5.4.33'
Expand Down
182 changes: 182 additions & 0 deletions memcached.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#===============================================================================
# SYSTEM REQUIRED: CentOS / RedHat / Fedora
# DESCRIPTION: memcached for LAMP
# AUTHOR: Teddysun <[email protected]>
# VISIT: http://teddysun.com/lamp
#===============================================================================

cur_dir=`pwd`
cd $cur_dir

PHP_PREFIX='/usr/local/php'
memcached_install_dir='/usr/local/memcached'
libevent_ver='libevent-2.0.21-stable'
memcached_ver='memcached-1.4.20'
memcached_ext_ver='memcached-2.2.0'
memcache_ext_ver='memcache-3.0.8'
libmemcached_ver='libmemcached-1.0.18'

# get PHP version
PHP_VER=$(php -r 'echo PHP_VERSION;' 2>/dev/null | awk -F. '{print $1$2}')
if [ $? -ne 0 -o -z $PHP_VER ]; then
echo "Error:PHP looks like not installed, please check it and try again."
exit 1
fi

# get PHP extensions date
if [ $PHP_VER -eq 53 ]; then
extDate='20090626'
elif [ $PHP_VER -eq 54 ]; then
extDate='20100525'
elif [ $PHP_VER -eq 55 ]; then
extDate='20121212'
fi

# Make sure only root can run our script
function rootness(){
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
}

# Download files
function download_files(){
if [ -s $1 ]; then
echo "$1 [found]"
else
echo "$1 not found!!!download now......"
if ! wget --tries=3 http://lamp.teddysun.com/files/$1; then
echo "Failed to download $1, please download it to "$cur_dir" directory manually and try again."
exit 1
fi
fi
}

# Install libevent
function install_libevent(){
echo "libevent install start..."
cd $cur_dir/untar/$libevent_ver
./configure
make && make install
if [ `getconf WORD_BIT` == 32 ] && [ `getconf LONG_BIT` == 64 ]; then
if [ ! -L /usr/lib64/libevent-2.0.so.5 ]; then
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
fi
else
if [ ! -L /usr/lib64/libevent-2.0.so.5 ]; then
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
fi
fi
echo "libevent install completed..."
}

# Install memcached software
function install_memcached_soft(){
echo "memcached install start..."
useradd -M -s /sbin/nologin memcached
cd $cur_dir/untar/$memcached_ver
./configure --prefix=$memcached_install_dir
make && make install
if [ -d "$memcached_install_dir" ];then
echo "memcached install successfully!"
ln -s $memcached_install_dir/bin/memcached /usr/bin/memcached
cp -f $cur_dir/conf/memcached /etc/init.d/memcached
chmod +x /etc/init.d/memcached
chkconfig --add memcached
chkconfig memcached on
/etc/init.d/memcached start
echo "memcached install completed..."
else
echo "memcached install failed, Please check it and try again."
exit 1
fi
}

# Install memcache extension
function install_memcache_ext(){
echo "memcache extension install start..."
cd $cur_dir/untar/$memcache_ext_ver
$PHP_PREFIX/bin/phpize
./configure --with-php-config=$PHP_PREFIX/bin/php-config
make && make install
if [ ! -f $PHP_PREFIX/php.d/memcache.ini ]; then
echo "memcache configuration not found, create it!"
cat > $PHP_PREFIX/php.d/memcache.ini<<-EOF
[gmagick]
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-${extDate}/memcache.so
EOF
fi
echo "memcache extension install completed..."
}

# Install libmemcached
function install_libmemcached(){
echo "libmemcached install start..."
yum -y install cyrus-sasl-devel
cd $cur_dir/untar/$libmemcached_ver
./configure --with-memcached=$memcached_install_dir
make && make install
echo "libmemcached install completed..."
}

# Install memcached extension
function install_memcached_ext(){
echo "memcached extension install start..."
cd $cur_dir/untar/$memcached_ext_ver
$PHP_PREFIX/bin/phpize
./configure --with-php-config=$PHP_PREFIX/bin/php-config
make && make install
if [ ! -f $PHP_PREFIX/php.d/memcached.ini ]; then
echo "memcached configuration not found, create it!"
cat > $PHP_PREFIX/php.d/memcached.ini<<-EOF
[gmagick]
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-${extDate}/memcached.so
EOF
fi
# Clean up
cd $cur_dir
rm -rf $cur_dir/untar/
/etc/init.d/httpd restart
echo "memcached extension install completed..."
}

# Install memcached
function install_memcached(){
rootness
download_files "${libevent_ver}.tar.gz"
download_files "${memcached_ver}.tar.gz"
download_files "${libmemcached_ver}.tar.gz"
download_files "${memcached_ext_ver}.tgz"
download_files "${memcache_ext_ver}.tgz"
if [ -d $cur_dir/untar/ ]; then
rm -rf $cur_dir/untar/
mkdir -p $cur_dir/untar/
else
mkdir -p $cur_dir/untar/
fi
tar xzf $libevent_ver.tar.gz -C $cur_dir/untar/
tar xzf $memcached_ver.tar.gz -C $cur_dir/untar/
tar xzf $libmemcached_ver.tar.gz -C $cur_dir/untar/
tar xzf $memcached_ext_ver.tgz -C $cur_dir/untar/
tar xzf $memcache_ext_ver.tgz -C $cur_dir/untar/
install_libevent
install_memcached_soft
install_memcache_ext
install_libmemcached
install_memcached_ext
}

action=$1
[ -z $1 ] && action=install
case "$action" in
install)
install_memcached
;;
*)
echo "Usage: `basename $0` {install}"
;;
esac