Maison  >  Article  >  Opération et maintenance  >  Comment créer un script de lampe ?

Comment créer un script de lampe ?

零下一度
零下一度original
2017-06-25 10:06:371373parcourir

环境:Centos6.6        事先将需要的源码包打包放在lamp.tar.gz中,并解压到/root下

[root@zengqingfu ~]# cat /etc/centos-release 
CentOS release 6.6 (Final)
[root@zengqingfu ~]# uname -a
Linux zengqingfu 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

[root@zengqingfu ~]# ls
anaconda-ks.cfg      lamp.sh                 phpMyAdmin-4.2.5-all-languages.tar.gz                模板
avg_score.awk        lamp.tar.gz             pxe_kickstart.sh                                     视频
cmake-2.8.6.tar.gz   libmcrypt-2.5.8.tar.gz  rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm           图片
history.txt          lines                   sturecord.txt                                        文档
httpd-2.2.17.tar.gz  mcrypt-2.6.8.tar.gz     test                                                 下载
input.txt            mhash-0.9.9.9.tar.gz    var_of_shell.sh                                      音乐
install.log          mysql-5.5.22.tar.gz     ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz  桌面
install.log.syslog   php-5.3.28.tar.gz       公共的

执行步骤:每一步执行之后的输出过程省略了

[root@zengqingfu ~]# ./lamp.sh y   加载光盘搭建本地yum仓库(可选的,已经搭建好yum仓库的可以不执行,直接到下一步)

[root@zengqingfu ~]# ./lamp.sh a    安装Apache web服务

[root@zengqingfu ~]# ./lamp.sh m     安装mysql

[root@zengqingfu ~]# ./lamp.sh p     编译安装PHP


[root@zengqingfu ~]# ./lamp.sh P(大写的)      再次安装PHP,并修改httpd.conf以支持PHP解析
  

[root@zengqingfu ~]# ./lamp.sh o          测试PHP能否成功连接MySQL,http网页能否解析PHP

下面看完整代码:

  1 [root@zengqingfu ~]# cat lamp.sh   2 #!/bin/bash  3 #Filename: lamp.sh  4 #Author: Zeng Qingfu  5 #####  6 if [ $# -ne 1 ];then  7     echo '''  8         Usage:input one option at a time;order to install lamp:first y,second a,third m,fourth p,fifth P,sixth o;  9         Options:y[install yum and stop iptables,selinux];a[install httpd];m[install mysql];p[install php];o[djust httpd.conf,test,install phpMyAdmin]; 10     ''' 11         exit 1 12 elif [ $# -eq 1 ];then 13     if [ $1 != "a" -a $1 != "m" -a $1 != "p" -a $1 != "o" -a $1 != "y" -a $1 != "P" -o $1 == "h" ];then 14          echo ''' 15              Usage:input one option at a time;order to install lamp:first y,second a,third m,fourth p,fifth o; 16              Options:y[install yum and stop iptables,selinux];a[install httpd];m[install mysql];p[install php];o[djust httpd.conf,test,install phpMyAdmin]; 17          ''' 18         exit 1 19     fi 20 fi 21  22 case $1 in 23  24 y) 25 ######stop  iptables and off selinux  and set yum repository################ 26 service iptables stop 27 chkconfig iptables off 28 setenforce 0 29 sed -i '7 s/enforcing/disabled/' /etc/selinux/config 30 umount /dev/cdrom 31 mkdir -p /media/cdrom 32 mount /dev/cdrom /media/cdrom 33 cd /etc/yum.r* 34 mkdir a 35 mv C* a/ 36 /bin/cp a/*M* ./ 37 sed -i '20 s/0/1/' C* 38 rpm --import /media/cdrom/*K* 39 yum -y clean all 40 yum makecache 41 ;; 42 ############################################################################# 43  44 a) 45 echo "installing httpd" 46 ##---------------install httpd------------------ 47     IP=$(hostname -I | awk '{print $1}') 48     echo "$IP www.zengqingfu.com" >> /etc/hosts 49     tar xf httpd-2.2.17.tar.gz -C /usr/src/ 50     rpm -qa make gcc gcc-c++ 51     if  [ $? -eq 0 ];then 
 52         cd /usr/src/httpd-2.2.17/ 53         ./configure --prefix=/usr/local/httpd  --enable-so --enable-rewrite --enable-charset-lite --enable-cgi &&make&&make install  &> /dev/null 54     else 55         yum -y install make gcc gcc-c++   &> /dev/null 56         ./configure --prefix=/usr/local/httpd  --enable-so --enable-rewrite --enable-charset-lite --enable-cgi &&make&&make install  &> /dev/null 57     fi 58     ln -s /usr/local/httpd/bin/*  /usr/local/bin/ 59     /bin/cp /usr/local/httpd/bin/apachectl  /etc/init.d/httpd 60     chmod +x /etc/init.d/httpd 61     sed -i '1a#chkconfig: 35 85 21\n#description: Startup script for the Apache HTTP Server' /etc/init.d/httpd 62     sed -n '1,3p' /etc/init.d/httpd 63     chkconfig --add httpd 64     chkconfig --list httpd 65     cd  /usr/local/httpd/conf/ 66     /bin/cp httpd.conf httpd.conf.origin 67     ROW=$(awk '/#ServerName/{print NR,$0}' httpd.conf | awk '{print $1}') 68     sed -i "$ROW s/#//;s/example/zengqingfu/" httpd.conf 69     apachectl -t 70     [ $? -eq 0 ] && /etc/init.d/httpd start 71     cat /usr/local/httpd/htdocs/index.html 72 ;; 73  74 m) 75 echo "installing mysql" 76 #########-------------------install mysql------------------- 77     cd /root 78     rpm -q mysql-server mysql 79     rpm -e mysql --nodeps 80     rpm -e mysql-server --nodeps 81     rpm -q ncurses-devel 82     [ $? -ne 0 ] && yum -y install ncurses-devel 83     cd /root 84     tar -xf cmake-2.8.6.tar.gz -C /usr/src/  
 85     cd /usr/src/cmake-2.8.6/ 86     ./configure && gmake && gmake install    &> /dev/null 87     groupadd mysql 88     useradd -M -s /sbin/nologin -g mysql mysql 89     cd /root 90     tar xf mysql-5.5.22.tar.gz -C /usr/src/ 91     cd /usr/src/mysql-5.5.22/ 92     cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc  && make && make install    &> /dev/null 93     chown -R mysql:mysql /usr/local/mysql/ 94     cat support-files/my-medium.cnf > /etc/my.cnf 95     /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/  --datadir=/usr/local/mysql/data/  --user=mysql        &> /dev/null 96     echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile 97     source /etc/profile 98     /bin/cp support-files/mysql.server /etc/init.d/mysqld 99     chmod +x /etc/init.d/mysqld100     chkconfig --add mysqld101     /etc/init.d/mysqld start102     netstat -anpt | grep mysqld103     mysqladmin -uroot password "123456"104     mysqladmin -uroot -p123456 password "zengqingfu";history -c105 ;;106 107 p)108 echo "installing php"109 #####---------------------install php----------------------110     rpm -q php && rpm -e php --nodeps111     rpm -q php-cli && rpm -e php-cli --nodeps112     rpm -q php-ldap && rpm -e php-ldap --nodeps113     rpm -q php-common && rpm -e php-common -nodeps114     rpm -q php-mysql  && rpm -e php-mysql --nodeps115     rpm -q zlib-devel libxml2-devel  
116     if [ $? -ne 0 ];then117         yum -y install zlib-devel libxml2-devel    
118     fi119     cd /root120     rpm -q libmcrypt || tar xf libmcrypt-2.5.8.tar.gz -C /usr/src/121     cd /usr/src/libmcrypt-2.5.8/122     ./configure &&make &&make install &> /dev/null123     ln -s /usr/local/lib/libmcrypt* /usr/lib124     cd /root125     rpm -q mhash ||  tar xf mhash-0.9.9.9.tar.gz -C /usr/src/126     cd /usr/src/mhash-0.9.9.9/127     ./configure &&make&&make install  &> /dev/null128     ln -s /usr/local/lib/libmhash.* /usr/lib/129     cd /root130     rpm -q mcrypt || tar xf mcrypt-2.6.8.tar.gz -C /usr/src/131     cd /usr/src/mcrypt-2.6.8/132     export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH133     ./configure &&make &&make install    &> /dev/null134     cd /root135     tar xf php-5.3.28.tar.gz -C /usr/src/136     cd /usr/src/php-5.3.28/137     ./configure --prefix=/usr/local/php5  --with-mcrypt  --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php5 --enable-mbstring && make && make install    &> /dev/null138     /bin/cp -f php.ini-development /usr/local/php5/php.ini139     cd /root140     ROW=$(awk '/^short_open_tag/{print NR,$0}' /usr/local/php5/php.ini | awk '{print $1}') 
141     sed -i "$ROW s/Off/On/" /usr/local/php5/php.ini142     ROW=$(awk '/default_charset/{print NR,$0}' /usr/local/php5/php.ini | awk '{if(NR==1)print $1}')143     sed -i "$ROW s/;//;s/iso-8859-1/utf-8/" /usr/local/php5/php.ini 
144     cd /root145     tar xf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/146     cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/147     cd php-5.3.x/148     /bin/cp ZendGuardLoader.so /usr/local/php5/lib/php/149     echo -e "zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so\nzend_loader.enable=1" >> /usr/local/php5/php.ini150     tail -2 /usr/local/php5/php.ini151 152 echo "adjust httpd.conf,test,install phpMyAdmin"153 #############--------------------adjust httpd.conf---------------154 ROW=$(awk '/LoadModule php5_module/{print NR,$0}' /usr/local/httpd/conf/httpd.conf | awk '{print $1}')155 sed -i "$ROW a AddType application/x-httpd-php .php" /usr/local/httpd/conf/httpd.conf156 sed -n "$(($ROW+1)) p" /usr/local/httpd/conf/httpd.conf157 ROW=$(awk '/DirectoryIndex/{print NR,$0}' /usr/local/httpd/conf/httpd.conf | awk '{if(NR==2)print $1}')158 sed -i "$ROW s/$/ index.php/" /usr/local/httpd/conf/httpd.conf159 sed -n "$ROW p" /usr/local/httpd/conf/httpd.conf160 httpd -t161 [ $? -eq 0 ] && /etc/init.d/httpd restart162 163 ;;164 165 P)166   cd /usr/src/php-5.3.28/167   make install168   /bin/cp -f php.ini-development /usr/local/php5/php.ini169   cd /root170   ROW=$(awk '/^short_open_tag/{print NR,$0}' /usr/local/php5/php.ini | awk '{print $1}') 
171   sed -i "$ROW s/Off/On/" /usr/local/php5/php.ini172   ROW=$(awk '/default_charset/{print NR,$0}' /usr/local/php5/php.ini | awk '{if(NR==1)print $1}')173   sed -i "$ROW s/;//;s/iso-8859-1/utf-8/" /usr/local/php5/php.ini 
174   cd /root175   tar xf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/176   cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/177   cd php-5.3.x/178   /bin/cp ZendGuardLoader.so /usr/local/php5/lib/php/179   echo -e "zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so\nzend_loader.enable=1" >> /usr/local/php5/php.ini180   tail -2 /usr/local/php5/php.ini181 182 ROW=$(awk '/LoadModule php5_module/{print NR,$0}' /usr/local/httpd/conf/httpd.conf | awk '{print $1}')183 sed -i "$ROW a AddType application/x-httpd-php .php" /usr/local/httpd/conf/httpd.conf184 sed -n "$(($ROW+1)) p" /usr/local/httpd/conf/httpd.conf185 ROW=$(awk '/DirectoryIndex/{print NR,$0}' /usr/local/httpd/conf/httpd.conf | awk '{if(NR==2)print $1}')186 sed -i "$ROW s/$/ index.php/" /usr/local/httpd/conf/httpd.conf187 sed -n "$ROW p" /usr/local/httpd/conf/httpd.conf188 httpd -t189 [ $? -eq 0 ] && /etc/init.d/httpd restart190 service httpd restart191 ;;192 193 o)194 ###########----------------------test---------------195 cd /usr/local/httpd/htdocs/196 echo -e "<?php\nphpinfo();\n?>" > test.php197 echo -e "<?php\n\$link=mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;zengqingfu&#39;);\nif(\$link) echo &#39;Successfully connected mysql&#39;;\nmysql_close();\n?>" > test1.php 
198 ##############------install phpMyAdmin----------------199 cd /root200 tar xf phpMyAdmin-4.2.5-all-languages.tar.gz201 mv phpMyAdmin-4.2.5-all-languages /usr/local/httpd/htdocs/phpMyAdmin202 cd /usr/local/httpd/htdocs/phpMyAdmin/203 /bin/cp config.sample.inc.php config.inc.php204 205 service httpd start206 ;;207 esac

 

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn