用nginx_php 自动安装LNMP第二版
2011-09-17 15:04
381 查看
本次脚本修正第一版存在的错误,并更新了软件包版本,php 增加suhosin等等,命令参数有了改变. sh nginx_php init|ins_nginx|ins_mysqlserver|ins_mysqlclient|ins_php52|ins_php52ext
#!/bin/bash # author:coralzd powered by www.freebsdsystem.org # written by coralzd 2010.11.05 # version 0.1.4 build 20110831 # description: nginx php mysql install shell nginx_dir="/usr/local/nginx" php52_dir="/usr/local/php52" mysql_dir="/usr/local/mysql" function init() { yum -y install wget gcc gcc-c++ autoconf bison flex re2c libmhash libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gd gd-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-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.1.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.58.tar.gz suhosin-patch-5.2.17-0.9.7.patch pcre-8.10.tar.gz autoconf-2.13.tar.gz eaccelerator-0.9.5.3.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 my.cnf 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 wget http://www.freebsdsystem.org/linux/nginx-php/nginxd wget http://www.freebsdsystem.org/linux/nginx-php/php-fpm mv nginxd /etc/init.d/ mv php-fpm /etc/init.d/ chmod 755 /etc/init.d/* chkconfig --add nginxd chkconfig --add php-fpm echo "create the eaccelerator directory to /data0/cache" mkdir /data0/cache echo "create the mysql data directory to /data0/mysql/data" mkdir -p /data0/mysql/data echo "PATH=/usr/local/mysql/bin/:$PATH" >> /etc/profile source /etc/profile 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!" cd packages/ tar zxf /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* ./configure make make install cd .. tar zxf pcre-8.10.tar.gz cd pcre-* ./configure make make install cd .. tar zxf nginx-1.0.1.tar.gz cd nginx-1.0.1 ./configure --prefix=${nginx_dir} --user=www --group=www --with-http_stub_status_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_mysqlserver() { cd packages/ tar zxf mysql-5.1.58.tar.gz cd mysql-5.1.58 CHOST="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O2 -pipe" CXXFLAGS="${CFLAGS}" ./configure --prefix=/usr/local/mysql --enable-assembler --with-server-suffix=-DZWWW --enable-thread-safe-client --enable-local-infile --enable-thread-safe-client --with-big-tables --with-charset=utf8 --with-client-ldflags=-all-static --with-collation=utf8_general_ci --with-extra-charsets=all --with-mysqld-ldflags=-all-static --with-mysqld-ldflags=-ltcmalloc --with-mysqld-user=mysql --with-plugins=partition,myisammrg --with-pthread --with-unix-socket-path=/tmp/mysql.sock --without-ndb-debug make && make install cp support-*/mysql.server /etc/init.d/mysqld cp my.cnf /etc/ chmod 744 /etc/init.d/mysqld cd /usr/local/mysql chown -R mysql:mysql . rm -rf sql-bench mysql-test mkdir -p /data0/mysql/relaylog/ mkdir -p /data0/mysql/binlog/ chown -R mysql.mysql /data0/mysql /usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data0/mysql/data echo "mysql server 5.1.58 installed successfully!" } function ins_mysqlclient() { cd packages/ tar zxf mysql-5.1.58.tar.gz cd mysql-5.1.58 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.58 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 autoconf-2.13.tar.gz cd autoconf-2.13 ./configuire --prefix=/usr 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/ patch -p1 -i ../suhosin-patch-5.2.17-0.9.7.patch ./buildconf --force ./configure --prefix=${php52_dir} --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=${php52_dir}/etc --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 --enable-suhosin --enable-ftp 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_php52ext() { 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.5.3.tar.bz2 cd eaccelerator-0.9.5.3 ${php52_dir}/bin/phpize ./configure --enable-eaccelerator=shared --with-eaccelerator-shared-memory --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_mysqlserver) ins_mysqlserver ;; ins_mysqlclient) ins_mysqlclient ;; ins_nginx) ins_nginx ;; ins_php52) ins_php52 ;; ins_php52ext) ins_php52ext ;; *) echo "Usage:`basename $0` {init|ins_mysqlserver|ins_mysqlclient|ins_php52|ins_php52ext}" ;; esac
相关文章推荐
- LNMP一键安装包-CentOS/Ubuntu/Debian自动安装Nginx,MySQL,PHP
- LNMP一键安装包-CentOS/Ubuntu/Debian自动安装Nginx,MySQL,PHP
- LNMP一键安装包-CentOS 5/6下自动编译安装Nginx,MySQL,PHP,memcached
- LNMP一键安装包-CentOS/Ubuntu/Debian自动安装Nginx,MySQL,PHP
- Debian 6.0.4安装配置lnmp(Nginx+MySQL+PHP)第二版
- debian系统安装最新lnmp编译最新php7.1.2及nginx1.10.3及mysql5.7及5.6
- CentOS全自动一键安装PHP,MySQL,phpmyadmin与Nginx
- LNMP(Linux+Nginx+Mysql+php)安装笔记
- LNMP架构的搭建(linux+nginx+mysql+php源码安装 )+Discuz论坛的搭建
- LNMP(linux+nginx+mysql+php)源码安装及协调配置测试笔记
- LNMP(linux+nginx+mysql+php)环境的编译安装
- CentOS-6 yum安装nginx php53 mysql55 lnmp环境
- lnmp安装(mysql、php、nginx)
- LNMP架构介绍,MySQL安装,PHP安装,Nginx介绍
- LNMP-(mysql 5.5.27&php 5.4.6&nginx1.2.3) 安装手记
- 经验回顾:在CentOS下用源码安装LNMP(nginx,mysql,php)
- 全新安装Mac OSX 开发者环境 同时使用homebrew搭建 PHP,Nginx ,MySQL,Redis,Memcache ... ... (LNMP开发环境)
- centos下lnmp一键安装(nginx,mysql,php环境)
- CentOS7 安装LNMP(Linux+Nginx+MySQL+PHP)