一个简洁的全自动安装LNMP服务器环境的Shell脚本分享

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

此脚本在生产服务器上使用了一年多,本脚本崇尚简单唯美,只需要一个脚本就可以在任何一台有网络的服务器上自动配置LNMP。

本脚本会在脚本执行目录下,建packages目录用于存放LNMP所需要的软件。大家安装完可以删除该目录。

使用方法:

1、把shell脚本的内容保存为nginx_php

2、root权限下运行:

复制代码

代码如下:

chmod u+x nginx_php; ./nginx_php init; ./nginx_php ins_mysql-server; ./nginx_php ins_mysql-client; ./nginx_php ins_php52; ./nginx_php ins_php52-ext; ./nginx_php ins_mysql

在脚本运行过程中需要输入一次y确认。

Shell脚本内容如下:

复制代码

代码如下:

#/bash

# author:coralzd powered by www.freebsdsystem.org

# written by coralzd 2011.05.05

# version 0.1.3 build 20110505

nginx_dir=”/usr/local/nginx”

php52_dir=”/usr/local/php52″

mysql_dir=”/usr/local/mysql”

function init()

{

LANG=C

yum -y install wget gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

read -p “Now,will download nginxphp software…Y|y:” nginxphp

case “$nginxphp” in

Y|y)

echo -n “starting download nginx_php …”

cat > list << “EOF” &&

nginx-1.0.0.tar.gz

php-5.2.17.tar.gz

php-5.2.17-fpm-0.5.14.diff.gz

libiconv-1.13.1.tar.gz

libmcrypt-2.5.8.tar.gz

mcrypt-2.6.8.tar.gz

memcache-2.2.5.tgz

mhash-0.9.9.9.tar.gz

mysql-5.1.52.tar.gz

pcre-8.10.tar.gz

eaccelerator-0.9.6.1.tar.bz2

PDO_MYSQL-1.0.2.tgz

libunwind-0.99.tar.gz

ImageMagick.tar.gz

imagick-2.3.0.tgz

google-perftools-1.6.tar.gz

fcgi.conf

php.ini

nginx.conf

php-fpm.conf

EOF

mkdir packages

for i in `cat list`

do

if [ -s packages/$i ]; then

echo “$i [found]”

else

echo “Error: $i not found!!!download now……”

wget http://www.freebsdsystem.org/linux/nginx-php/$i -P packages/

fi

done

;;

*)

echo -n “exit install script”

exit 0

;;

esac

groupadd www && useradd www -s /sbin/nologin -g www

groupadd mysql && useradd mysql -s /sbin/nologin -g mysql

echo “www and mysql user && group create!”

/bin/rm -rf list

echo -e “All of installed sucussful!”

}

function is_version()

{

if [ `uname -m` == “x86_64” ];then

tar zxf libunwind-0.99.tar.gz

tar zxvf libunwind-0.99.tar.gz

cd libunwind-0.99/

CFLAGS=-fPIC ./configure

make CFLAGS=-fPIC

make CFLAGS=-fPIC install

cd ../

else

echo “your system is 32bit ,not install libunwind lib!”

fi

}

function ins_nginx()

{

cd packages

is_version

tar zxf google-perftools-1.6.tar.gz

cd google-perftools-1.6

./configure

make

make install

cd ..

tar zxf pcre-8.10.tar.gz

cd pcre-*

./configure

make

make install

cd ..

tar zxf nginx-1.0.0.tar.gz

cd nginx-1.0.0

./configure –prefix=${nginx_dir} –with-google_perftools_module –user=www –group=www –with-http_stub_status_module –with-http_flv_module –with-http_ssl_module

make && make install

cd ..

rm -rf /usr/local/nginx/conf/nginx.conf

echo “/usr/local/lib” > /etc/ld.so.conf.d/usr_local_lib.conf

cp nginx.conf /usr/local/nginx/conf/

cp fcgi.conf /usr/local/nginx/conf/

echo “nginx installed sucussfully!”

}

function ins_mysql-server()

{

cd packages/

tar zxf mysql-5.1.52.tar.gz

cd mysql-5.1.52

CHOST=”x86_64-pc-linux-gnu”

CFLAGS=”-march=nocona -O2 -pipe”

CXXFLAGS=”${CFLAGS}”

./configure “–prefix=${mysql_dir}” “–with-server-suffix=-DZWWW” “–with-mysqld-user=mysql” “–without-debug” “–with-charset=utf8” “–with-extra-charsets=all” “–with-pthread” “–with-big-tables” “–enable-thread-safe-client” “–enable-assembler” “–with-readline” “–with-ssl” “–enable-local-infile” “–with-plugins=partition,myisammrg” “–without-ndb-debug”

make && make install

cp support-*/mysql.server /etc/init.d/mysqld

cd /usr/local/mysql

chown -R mysql:mysql .

rm -rf sql-bench mysql-test

echo “mysql server 5.1.52 installed successfully!”

}

function ins_mysql-client()

{

cd packages/

tar zxf mysql-5.1.52.tar.gz

cd mysql-5.1.52

CHOST=”x86_64-pc-linux-gnu”

CFLAGS=”-march=nocona -O2 -pipe”

CXXFLAGS=”${CFLAGS}”

./configure “–prefix=${mysql_dir}” “–with-mysqld-user=mysql” “–without-debug” “–with-charset=utf8” “–with-extra-charsets=all” “–with-pthread” “–with-big-tables” “–enable-thread-safe-client” “–enable-assembler” “–with-readline” “–with-ssl” “–enable-local-infile” “–without-server”

make && make install

cd /usr/local/mysql

chown -R mysql:mysql .

rm -rf sql-bench mysql-test

echo “mysql client 5.1.52 installed successfully!”

}

function ins_php52()

{

cd packages/

tar zxf libiconv-1.13.1.tar.gz

cd libiconv-1.13.1/

./configure –prefix=/usr/local

make

make install

cd ../

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

cd ../../

tar zxf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9/

./configure

make

make install

cd ../

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/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

ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

tar zxf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8/

/sbin/ldconfig

./configure

make

make install

cd ../

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

cd php-5.2.17/

./configure –prefix=${php52_dir} –with-config-file-path=${php52_dir}/etc –with-mysql=${mysql_dir} –with-mysqli=${mysql_dir}/bin/mysql_config –with-iconv-dir=/usr/local –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-discard-path –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-fastcgi –enable-fpm –enable-force-cgi-redirect –enable-mbstring –with-mcrypt –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-ldap –with-ldap-sasl –with-xmlrpc –enable-zip –enable-soap

make ZEND_EXTRA_LIBS=-liconv

make install

cd ..

cp php.ini /usr/local/php52/etc/

cp php-fpm.conf /usr/local/php52/etc/

echo “/usr/local/mysql/lib/mysql” >> /etc/ld.so.conf.d/mysql_lib.conf

/sbin/ldconfig

echo “php52 installed successfully!”

}

function ins_php52-ext()

{

cd packages/

tar zxf memcache-2.2.5.tgz

cd memcache-2.2.5/

${php52_dir}/bin/phpize

./configure –with-php-config=${php52_dir}/bin/php-config

make

make install

cd ../

tar jxf eaccelerator-0.9.6.1.tar.bz2

cd eaccelerator-0.9.6.1/

${php52_dir}/bin/phpize

./configure –enable-eaccelerator=shared –with-php-config=${php52_dir}/bin/php-config

make

make install

cd ../

tar zxf PDO_MYSQL-1.0.2.tgz

cd PDO_MYSQL-1.0.2/

${php52_dir}/bin/phpize

./configure –with-php-config=${php52_dir}/bin/php-config –with-pdo-mysql=${mysql_dir}

make

make install

cd ../

tar zxf ImageMagick.tar.gz

cd ImageMagick-6.5.1-2/

./configure

make

make install

cd ../

tar zxf imagick-2.3.0.tgz

cd imagick-2.3.0/

${php52_dir}/bin/phpize

./configure –with-php-config=${php52_dir}/bin/php-config

make

make install

cd ../

echo “php52 extension installed successfully!”

}

case $1 in

init)

init

;;

ins_mysql-server)

ins_mysql-server

;;

ins_mysql-client)

ins_mysql-client

;;

ins_nginx)

ins_nginx

;;

ins_php52)

ins_php52

;;

ins_php52-ext)

ins_php52-ext

;;

*)

echo “Usage:`basename $0` {init|ins_mysql-server|ins_mysql-client|ins_php52|ins_php52-ext|ins_mysql}”

;;

esac

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容