请联系我 有广告合作意向的 请联系我

LNMP 自动安装脚本

本脚用来直接部署LNMP,方便快捷,有错误的地方,欢迎指出,及时更改
此脚本在CentOS 5.5/6.2 x86_64环境下通过
使用方法:保存脚本名为 install_lnmp.sh
执行./install_lnmp 参数名[db|nginx|php|memcached]
软件包下载到脚本当前目录的Packages 下

  1. drwxr-xr-x. 3 root root 4096 Aug 7 20:09 Config   
  2. -rwxr-xr-x. 1 root root 7879 Aug 7 19:58 install-lnmp.sh   
  3. drwxr-xr-x. 2 root root 4096 Aug 7 18:16 Packages  

脚本内容:

#! /bin/sh 
#------------------------------------------------------- 
# Link: http://blog.51bbo.com/  
# Version: V2.0 CentOS X86_64 5.5 6.2
# wget http://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2 
# wget http://acelnmp.googlecode.com/files/eaccelerator-0.9.6.1.tar.bz2 
# wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2 
# wget https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz 
# wget http://nchc.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz 
# wget http://memcached.googlecode.com/files/memcached-1.4.14.tar.gz 
# wget http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.23.tar.gz 
# wget http://pecl.php.net/get/memcache-2.2.5.tgz 
# wget http://nginx.org/download/nginx-1.2.1.tar.gz 
# wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz 
# wget http://cn.php.net/distributions/php-5.2.17.tar.gz 
#------------------------------------------------------- 
 
ServerName=01314.cn 
MyPath=`pwd` 
Packages=$MyPath/Packages 
Config=$MyPath/Config 
 
    echo "Starting install Package ..." 
    myyum=`cat /etc/yum.conf |grep exclude` 
    if [ `uname -i` = "x86_64" ] && [ -z "$myyum" ]; then  
        echo "exclude=*.i?86" >> /etc/yum.conf 
    fi 
    yum install -y gcc gcc-c++ autoconf cmake bison bison-devel patch mhash-devel pcre pcre-devel ncurses ncurses-devel libpng libpng-devel libjpeg libjpeg-devel libxml2 libxml2-devel zlib zlib-devel bzip2 bzip2-devel curl curl-devel openssl openssl-devel openldap openldap-devel gdbm-devel db4-devel freetype freetype-devel fontconfig fontconfig-devel gmp gmp-devel libtool-ltdl libtool-ltdl-devel gd 
    clear 
 
in_nginx () 
{ 
    echo "Starting install Nginx-1.2.1..." 
    cd $Packages 
    tar zxf nginx-1.2.1.tar.gz 
    cd nginx-1.2.1 
    ./configure --with-http_stub_status_module --with-http_ssl_module 
    make && make install 
    mkdir -p /data/logs/nginx/ 
    if [ ! -d /usr/local/nginx/conf/vhost ]; then 
        mkdir -p /usr/local/nginx/conf/vhost 
    fi 
    cp $Config/nginx.conf /usr/local/nginx/conf 
    cp $Config/01314.conf /usr/local/nginx/conf/vhost/$ServerName.conf 
    sed -i "s/01314.cn/$ServerName/g" /usr/local/nginx/conf/vhost/$ServerName.conf 
    mkdir -p /data/website/$ServerName 
    cp $Config/info.php /data/website/$ServerName 
    echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local 
    /usr/local/nginx/sbin/nginx 
    echo -e "Nginx is running with PID: [33[1m33[32m`pidof nginx`33[0m]" 
} 
in_mysql () 
{ 
    echo "Starting install Mysql-5.5.23..." 
    cd $Packages 
    tar zxf mysql-5.5.23.tar.gz 
    cd mysql-5.5.23 
    useradd mysql 
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DINSTALL_DATADIR=/data/db/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_SSL=bundled -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 
    make && make install 
    cp $Config/my.cnf /etc/my.cnf  #/usr/local/mysql/support-files目录下有my.cnf文件供选择使用
    /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/db --user=mysql 
    cp support-files/mysql.server /etc/init.d/mysqld 
    chmod +x /etc/init.d/mysqld 
    mkdir -p /data/logs/mysql; chown mysql.mysql /data/logs/mysql; chmod 777 -R /data/logs/mysql 
    chkconfig mysqld on 
    /etc/init.d/mysqld start 
    echo -e "Mysql is running with PID: [33[1m33[32m`pidof mysqld`33[0m]" 
} 
in_libmcrypt () 
{ 
    cd $Packages 
    tar zxf libmcrypt-2.5.8.tar.gz 
    cd libmcrypt-2.5.8 
    ./configure  
    make && make install 
    /sbin/ldconfig 
    cd libltdl/ 
    ./configure --enable-ltdl-install 
    make && make install 
    ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la 
    ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so 
    ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 
    ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 
    ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config 
} 
in_mhash () 
{ 
    cd $Packages 
    tar jxf mhash-0.9.9.9.tar.bz2 
    cd mhash-0.9.9.9 
    ./configure 
    make && make install 
    ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a 
    ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la 
    ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so 
    ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 
    ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 
} 
in_mcrypt () 
{ 
    cd $Packages 
    tar zxf mcrypt-2.6.8.tar.gz 
    cd mcrypt-2.6.8 
    /sbin/ldconfig 
    ./configure  
    make && make install 
} 
in_php () 
{ 
    echo "Starting install php-5.2.17..." 
    mkdir -p /etc/php5.2/php.d 
    cd $Packages 
    if [ ! -d "php-5.2.17" ]; then 
        tar zxf php-5.2.17.tar.gz 
        gzip -cd php-5.2.17-fpm-0.5.14.diff.gz |patch -d php-5.2.17 -p1 
    fi 
    if [ `uname -i` = "x86_64" ]; then 
        ln -s /usr/lib64/libjpeg.so /usr/lib 
        ln -s /usr/lib64/libpng.so /usr/lib 
        ln -s /usr/lib64/libldap.so /usr/lib 
    fi 
    cd php-5.2.17 
    ln -s /usr/local/mysql/bin/mysql_config /usr/bin/mysql_config
    ./configure --prefix=/usr/local/php --with-config-file-path=/etc/php5.2 --with-config-file-scan-dir=/etc/php5.2/php.d --with-mysql-sock=/tmp/mysql.sock --with-mysql=shared,/usr/local/mysql --with-mysqli=shared,/usr/local/mysql/bin/mysql_config --with-iconv=shared --disable-debug --enable-pic --enable-shared --enable-inline-optimization --with-gettext=shared --with-gd=shared --with-curl=shared --with-curlwrappers --with-mcrypt=shared --with-jpeg-dir --with-png-dir --with-zlib=shared --with-libxml-dir=/usr --with-gdbm --with-openssl=shared --with-gmp --with-bz2=shared --with-freetype-dir --enable-fastcgi --enable-fpm --enable-mbstring=shared --enable-safe-mode --enable-sockets=shared --enable-sysvsem=shared --enable-sysvshm=shared --enable-xml --enable-session --enable-zip=shared --enable-pdo --with-pdo-mysql --with-pdo-sqlite --enable-dbase=shared --enable-wddx --enable-shmop=shared --enable-soap=shared --enable-calendar=shared --enable-bcmath=shared --enable-discard-path --with-ldap=shared --with-ldap-sasl --with-xmlrpc=shared 
    make && make install 
    if [ `uname -i` = "x86_64" ]; then 
        cp $Config/x86_64/ZendOptimizer.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ 
        chmod +x /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ZendOptimizer.so 
    else 
        cp $Config/ZendOptimizer.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ 
        chmod +x /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ZendOptimizer.so 
    fi 
    cp $Config/php-fpm.conf /usr/local/php/etc 
    echo "/usr/local/php/sbin/php-fpm start" >> /etc/rc.local 
    cp $Config/php.ini /etc/php5.2/ 
} 
in_eaccelerator () 
{ 
    cd $Packages 
    tar jxf eaccelerator-0.9.6.1.tar.bz2 
    cd eaccelerator-0.9.6.1 
    /usr/local/php/bin/phpize 
    ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config 
    make && make install 
    mkdir /dev/shm/eaccelerator 
    chmod 777 /dev/shm/eaccelerator 
    echo "mkdir /dev/shm/eaccelerator ; chmod 777 /dev/shm/eaccelerator" >> /etc/rc.local 
} 
in_memcache () 
{ 
    cd $Packages 
    tar zxf memcache-2.2.5.tgz 
    cd memcache-2.2.5 
    /usr/local/php/bin/phpize 
    ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config 
    make && make install 
} 
in_libevent () 
{ 
    cd $Packages 
    tar zxf libevent-2.0.19-stable.tar.gz  
    cd libevent-2.0.19-stable 
    ./configure --prefix=/usr/local/libevent 
    make && make install 
} 
in_memcached () 
{ 
    echo "Starting install memcached-1.4.14..." 
    cd $Packages 
    tar xzf memcached-1.4.14.tar.gz 
    cd memcached-1.4.14 
    ./configure --with-libevent=/usr/local/libevent --prefix=/usr/local/memcached 
    make && make install 
    echo "/usr/local/memcached/bin/memcached -d -m 1024 -u root -c 2048" >> /etc/rc.local 
} 
 
case $1 in  
    nginx) 
        in_nginx 
        ;;   
    db) 
        in_mysql 
        ;;   
    php) 
        in_libmcrypt 
        in_mhash 
        in_mcrypt 
        in_php 
        in_eaccelerator 
        in_memcache 
        /usr/local/php/sbin/php-fpm start 
        ;;   
    memcached) 
        in_libevent 
        in_memcached 
        ;; 
esac
2 Comments

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注