音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

LAMP&LNMP自动化安装脚本代码
日期:2013-09-23 15:09:13   来源:脚本之家

一、脚本的环境介绍
二、脚本的介绍
三、脚本的功能介绍


一、脚本的环境介绍

此脚本运行在RHEL 6.4版本上
运行此脚本需注意:
1)、主机需要能够上网,因为博主是搭建的搜狐的外网yum源,此yum源由两部分组成,一个是光盘里面的所有软件包,一个是epel源。
2)、需了解软件之间的相互依赖性。


二、脚本的介绍

脚本是由函数组成,每一个函数实现一个功能

复制代码 代码如下:

function  create_yum             #此函数是搭建sohu的yum仓库
function  download               #此函数是下载全部所需的软件包
function  install_apache         #此函数是安装apache软件包
function config_apache           #此函数是修改apache的服务脚本和开启
                                  apache服务    
function  install_nginx          #此函数是安装nginx软件包
function  install_mysql          #此函数是安装mysql软件包
function config_mysql            #此函数是初始化mysql和开启mysql的服务
function  install_php            #此函数是安装php软件包
function config_php              #此函数提供php的配置文件
function  install_php_fpm       #此函数是安装php-fpm软件包提供fastcgi服务
function config_php_fpm          #此函数是修改php-fpm的配置文件盒开启
                                 php-fpm的服务
function  install_xcache         #此函数是安装为php代码加速的软件包
function  install_memcache       #此函数是安装连接memcached的软件包
function  install_memcached      #此函数是安装memcached软件包
function  install_lamp        #此函数里面只包含了apache,mysql,php的函数
function config_lamp
function  install_lammp          #此函数里面只包含了apache,mysql,
                                 memcached,php的函数
function config_lammp
function  install_lnmp         #此函数里面只包含了nginx,mysql,php的函数
function config_lnmp
function  install_lnmmp          #此函数里面只包含了nginx,mysql,
                                 memcached,php的函数
function config_lnmmp

如果各位博友觉得配置文件的路径存放数据的路径与各位博友所要求的结果不一样,那请各位博友只需小小的自行修改一下

三、脚本的功能介绍

1)、支持某台机器单独安装某一个软件,如apache、nginx、mysql、php-fpm,memcached
2)、支持某台机器直接安装lamp、lnmp、lammp、lnmmp架构
3)、如果想一个一个的安装lamp(lnmp)架构,请注意安装顺序:apache(nginx)-->
mysql-->php
4)、php与php-fpm其实都是安装php源码软件包,但是提供的功能不一样
如果你的apache与php安装在不同的机器上,那么php的那台主机安装的是
php-fpm;
如果你的php与mysql安装在不同的机器上,那么php的那台主机也是安装
php-fpm;
php-fpm与memcached安装在不同的机器上,那么php-fpm的那台主机必须安装memcache,用于连接memcached。
5)、安装完每个脚本后,会把源码包生成的文件与系统能识别的头文件、库文件、二进制中
6)、会为服务提供system V 脚本文件
7)、会自行的把服务开启,并加入到开机自动启动的服务列表中


整个脚本

复制代码 代码如下:

#!/bin/bash
#discripte:frist,you linux server must be surf Internet because we use http://mirrors.sohu.com/  yum source and epel source
function create_yum {
dir=/etc/yum.repos.d/
mv $dir/*.repo /tmp
cat >> $dir/sohu.repo <<EOF
[centos]
name=sohu-centos
baseurl=http://mirrors.sohu.com/centos/\$releasever/os/\$basearch
gpgcheck=1
enable=0
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-6
[epel]
name=sohu-epel
baseurl=http://mirrors.sohu.com/fedora-epel/\$releasever/\$basearch/
enable=1
gpgcheck=0
EOF
yum clean all &>/dev/null
}
function download {
yum -y install wget
cd /root
echo -e "\033[32m=========download about web server source package==========\033[0m"
wget http://mirror.esocc.com/apache/apr/apr-1.4.6.tar.bz2
wget http://mirror.esocc.com/apache/apr/apr-util-1.5.2.tar.bz2
wget http://mirror.esocc.com/apache/httpd/httpd-2.4.6.tar.bz2
wget http://nginx.org/download/nginx-1.4.2.tar.gz
echo -e "\033[32m=========download about php or php-fpm soure package========\033[0m"
wget http://xcache.lighttpd.net/pub/Releases/3.0.3/xcache-3.0.3.tar.bz2
wget http://pecl.php.net/get/memcache-2.2.7.tgz
wget http://downloads.php.net/stas/php-5.4.19.tar.bz2
echo -e "\033[32m======download about memcached source package========\033[0m"
wget http://nchc.dl.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.21-stable.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
echo -e "\033[32m======download about mysql source package=========\033[0m"
wget http://mysql.llarian.net/Downloads/MySQL-5.5/mysql-5.5.33.tar.gz
}
function install_apache {
cd /root
yum -y install pcre-devel
tar xf apr-1.4.6.tar.bz2
tar xf apr-util-1.5.2.tar.bz2
tar xf httpd-2.4.6.tar.bz2
cd /root/apr-1.4.6
./configure --prefix=/usr/local/apr && make && make install
echo -e "\033[32m=========apr is ok========\033[0m"
cd /root/apr-util-1.5.2
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
echo -e "\033[32m=========apr-util is ok========\033[0m"
cd /root/httpd-2.4.6
./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib \
--with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most \
--enable-mpms-shared=all --with-mpm=event && make && make install
echo -e "\033[32m=========httpd is ok========\033[0m"
}
function config_apache {
echo -e "\033[32m frist,Associated system path \033[0m"
echo "PATH=/usr/local/apache/bin/:$PATH" >/etc/profile.d/httpd.sh
source /etc/profile.d/httpd.sh
ln -sv /usr/local/apache/include/  /usr/include/httpd
echo -e "\033[32m second,Modify configuration files and provided systemV scripts \033[0m"
IP=`ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk -F: '{print $2}' | cut -d' ' -f1`
cp /root/httpd-2.4.6/build/rpm/httpd.init  /etc/rc.d/init.d/httpd
sed -i '/httpd/s/usr\/sbin\/httpd/usr\/local\/apache\/bin\/httpd/g' /etc/rc.d/init.d/httpd
sed -i '/^httpd/a\prog=httpd' /etc/rc.d/init.d/httpd
sed -i '/^pidfile/s/var\/run/usr\/local\/apache\/logs/g' /etc/rc.d/init.d/httpd
sed -i 's/etc\/httpd\/conf\/httpd.conf/usr\/local\/apache\/conf\/httpd.conf/g' /etc/rc.d/init.d/httpd
sed -i '$a ServerName '$IP':80' /usr/local/apache/conf/httpd.conf
chkconfig --add httpd
chkconfig --level 35 httpd on
service httpd start
}
function install_nginx {
cd /root
yum -y install pcre-devel
tar xf nginx-1.4.2.tar.gz
groupadd nginx
useradd -r -g nginx nginx
cd /root/nginx-1.4.2
./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre && make && make install
echo -e "\033[32m=========nginx is ok========\033[0m"
}
function install_mysql {
cd /root
yum -y install cmake bison
useradd -r mysql
tar xf mysql-5.5.33.tar.gz
cd /root/mysql-5.5.33
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data  -DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0  -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make  && make install
echo -e "\033[32m=========mysqld is ok========\033[0m"
}
function config_mysql {
echo -e "\033[32m frist,Associated system path,and Initialization database \033[0m"
cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server  /etc/rc.d/init.d/mysqld
chown -R root.mysql /usr/local/mysql/
mkdir -pv /mydata/data
chown -R mysql:mysql /mydata/data/
sed -i '/thread_concurrency/a\ datadir = /mydata/data' /etc/my.cnf
sed -i '/datadir/a\ innodb_file_per_table = 1' /etc/my.cnf
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data/  --basedir=/usr/local/mysql
service mysqld start
echo "PATH=/usr/local/mysql/bin:$PATH" >/etc/profile.d/mysqld.sh
source /etc/profile.d/mysqld.sh
echo "/usr/local/mysql/lib" >/etc/ld.so.conf.d/mysqld.conf
ldconfig -v | grep mysql
ln -sv /usr/local/mysql/include/ /usr/include/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
}
function install_php {
yum -y install libxml2-devel bzip2-devel curl-devel  libmcrypt-devel  mhash-devel
tar xf php-5.4.19.tar.bz2
cd /root/php-5.4.19
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr \
--enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-curl \
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts
make && make install
echo -e "\033[32m=========php is ok========\033[0m"
}
function config_php {
cp /root/php-5.4.19/php.ini-production /etc/php.ini
}
function install_php_fpm {
yum -y install libxml2-devel bzip2-devel curl-devel  libmcrypt-devel  mhash-devel
tar xf php-5.4.19.tar.bz2
cd /root/php-5.4.19
./configure --prefix=/usr/local/php  --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd \
--with-openssl  --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir \
--with-zlib-dir --with-libxml-dir=/usr --enable-xml  --with-mhash --with-mcrypt  --with-config-file-path=/etc  \
--with-config-file-scan-dir=/etc/php.d --with-bz2 --with-curl --enable-maintainer-zts --enable-fpm && make && make install
echo -e "\033[32m=========php-fpm is ok========\033[0m"
}
function config_php_fpm {
echo -e "\033[32m frist,Associated system path \033[0m"
IP2=`ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk -F: '{print $2}' | cut -d' ' -f1`
cp /root/php-5.4.19/php.ini-production /etc/php.ini
echo "PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH" >/etc/profile.d/php-fpm.sh
source /etc/profile.d/php-fpm.sh
echo -e "\033[32m second,Modify configuration files and provided systemV scripts \033[0m"
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sed -i 's/127\.0\.0\.1/'$IP2'/g' /usr/local/php/etc/php-fpm.conf
cp /root/php-5.4.19/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
service php-fpm start
chkconfig --add php-fpm
chkconfig --level 35 php-fpm on
}
function install_xcache {
cd /root
tar xf xcache-3.0.3.tar.bz2
if [ -d /usr/local/php ];then
   cd /root/xcache-3.0.3
   /usr/local/php/bin/phpize
   ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
   make && make install
else
    install_php_fpm
   cd /root/xcache-3.0.3
   /usr/local/php/bin/phpize
   ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
   make && make install
   echo -e "\033[32m=========xcache is ok========\033[0m"
fi
}
function install_memcache {
cd /root
tar xf memcache-2.2.7.tgz
if [ -d /usr/local/php ];then
   cd /root/memcache-2.2.7
   /usr/local/php/bin/phpize
   ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache   && make && make install
else
    install_php_fpm
    cd /root/memcache-2.2.7
    /usr/local/php/bin/phpize
   ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache   && make && make install
   echo -e "\033[32m=========memcache is ok========\033[0m"
fi
}
function install_memcached {
cd /root
tar xf libevent-2.0.21-stable.tar.gz
tar xf memcached-1.4.15.tar.gz
cd /root/libevent-2.0.21-stable
./configure --prefix=/usr/local/libevent && make && make install
echo -e "\033[32m=========libevent is ok========\033[0m"
cd /usr/local/libevent/
echo "/usr/local/libevent/lib" >/etc/ld.so.conf.d/libevent.conf
ldconfig -v | grep libevent
ln -sv /usr/local/libevent/ /usr/include/libevent
cd /root/memcached-1.4.15
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
make && make install
echo -e "\033[32m=========memcached is ok========\033[0m"
}
function install_lamp {
install_apache
install_mysql
install_php
install_xcache
}
function config_lamp {
config_apache
config_mysql
config_php
}
function install_lnmp {
install_nginx
install_mysql
install_php
install_xcache
}
function config_lnmp {
config_mysql
config_php
}
function install_lammp {
install_apache
install_mysql
install_php
install_xcache
install_memcache
install_memcached
}
function config_lammp {
config_apache
config_mysql
config_php
config_php_fpm
}
function install_lnmmp {
install_nginx
install_mysql
install_php
install_xcache
install_memcache
install_memcached
}
function config_lnmmp {
config_mysql
config_php
config_php_fpm
}
echo -e "\033[32m====make sure yum is ok=========\033[0m"
#create_yum
echo -e "\033[32m====now,download all package====\033[0m"
#download
echo -e "\033[32m====install development packages====\033[0m"
#yum -y groupinstall "Development tools" "Server Platform Development"
 echo -e "\033[32m=========you can choice you need install package==========\033[0m"
cat <<EOF
apache|A)        install apache source package.
nginx|N)         install nginx source package.
mysql|M)         install mysql source package.
php|P)           install php source package.
php-fpm|PF)      install php-fpm source package.
xcache|X)         install xcahe source package.
memcache|ME)     install memcache source package.
memcached|MD)    install memcached source package.
lamp)            install lamp source package.
lammp)           install lammp source package.
lnmp)            install lnmp source package.
lnmmp)           install lnmmp source package.
q|Q)             quit
EOF
read -p "Please choose to install: " Choice
echo -e "\033[32m=====start install $Choice====\033[0m"
until [ $Choice == q -o $Choice == Q ];do
 case $Choice in
apache|A)    
   install_apache
   config_apache ;;
nginx|N)
   install_nginx ;;
mysql|M)      
   install_mysql
   config_mysql ;;
php|P)
   install_php
   config_php ;;
php-fpm|PF)
   install_php_fpm
   config_php_fpm ;;
xcache|X)      
   install_xcache ;;
memcache|ME)  
   install_memcache ;;
memcached|MD) 
   install_memcached ;;
lamp)
   install_lamp
   config_lamp ;;
lammp)        
   install_lammp
   config_lammp ;;
lnmp)         
   install_lnmp
   config_lnmp ;;
lnmmp)        
   install_lnmmp
   config_lnmmp ;;
q|Q)       
    break
esac
  read -p "Have any choice agin, if you no,q|Q is quit: " Choice
  done

这个脚本和nginx systemV,memcached system V的脚本以附件的形式上传了,点此下载

缺陷:

1)、没能为nginx提供自动化system V脚本,但是nginx的system V脚本我会以附件的方式上传,各位博友需要 vim /etc/rc.d/init.d/nginx 然后copy我提供的system V脚本然后添加权限,就可以service nginx start了
2)、也没能为memcached提供自动化system V脚本,但是memcached的system V脚本会以附件方式上传,各位博友需要 vim /etc/rc.d/init.d/memcached 然后copy我提供的system V脚本然后添加权限,就可以service memcached start了

本文出自 “技术之路---桀” 博客

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    WIN服务器linux服务器FTP服务器DNS服务器其他