在工作中经常会遇到许多的测试要求,测试环境一般都要求有lamp环境,或者单独要求mysql,apache;最近因为工作需要对extmail进行测试,测试环境需要lamp结构,因而抽空修改了下之前的脚本,将脚本整合成lamp.sh,可以单独来安装apache或者mysql,也可以集成lamp环境!注意:使用该脚本编译php前需要先编译好apache和mysql,脚本包含在附件中…

[root@orcl ~]# sh lamp.sh
Usage:lamp.sh {parpare|apache|php|mysql|lamp}

一:准备环境

   
   
   
   
  1. [root@orcl ~]# sh lamp.sh parpare  
  2. parparing enviroment....  
  3. setenforce: SELinux is disabled  
  4. Loaded plugins: rhnplugin, security  
  5. Package flex-2.5.4a-41.fc6.i386 already installed and latest version  
  6. Package gcc-4.1.2-46.el5.i386 already installed and latest version  
  7. ………………………………………………………………输出省略………………………………………………………………………………………………  
  8. Package libusb-devel-0.1.12-5.1.i386 already installed and latest version  
  9. Package newt-devel-0.52.2-12.el5.i386 already installed and latest version  
  10. Package 1:libvorbis-devel-1.1.2-3.el5_3.3.i386 already installed and latest version  
  11. No packages in any requested group available to install or update  
  12. Loaded plugins: rhnplugin, security  
  13. This system is not registered with RHN.  
  14. RHN support will be disabled.  
  15. Setting up Install Process  
  16. Package 2:libpng-devel-1.2.10-7.1.el5_3.2.i386 already installed and latest version  
  17. Package libjpeg-devel-6b-37.i386 already installed and latest version  
  18. Package freetype-devel-2.2.1-21.el5_3.i386 already installed and latest version  
  19. Nothing to do  
  20. parparing enviroment successful... 

为了节约脚本运行时间,每次可以在运行parpare之后,将软件源码包上传到/usr/local/src/tarbag目录,避免脚本自动下载源码包

二:测试编译php

   
   
   
   
  1. [root@orcl ~]# sh lamp.sh php  
  2. Loaded plugins: rhnplugin, security  
  3. This system is not registered with RHN.  
  4. RHN support will be disabled.  
  5. Setting up Remove Process  
  6. No Match for argument: php  
  7. Package(s) php available, but not installed.  
  8. No Packages marked for removal  
  9. Download and compile php...  
  10. your must compile mysql-server first... 

三:测试编译apache

   
   
   
   
  1. [root@orcl ~]# sh lamp.sh  apache  
  2. Loaded plugins: rhnplugin, security  
  3. This system is not registered with RHN.  
  4. RHN support will be disabled.  
  5. Setting up Remove Process  
  6. No Match for argument: httpd  
  7. Package(s) httpd available, but not installed.  
  8. No Packages marked for removal  
  9. download and install apache_2.2.16.....  
  10. Download httpd...  
  11. --2011-09-05 09:34:23--  http://archive.apache.org/dist/httpd/httpd-2.2.16.tar.gz  
  12. Resolving archive.apache.org... 140.211.11.131  
  13. Connecting to archive.apache.org|140.211.11.131|:80... connected.  
  14. HTTP request sent, awaiting response... 200 OK  
  15. Length: 6369022 (6.1M) [application/x-gzip]  
  16. Saving to: `/usr/local/src/tarbag/httpd-2.2.16.tar.gz'  
  17.  
  18. 100%[========================================================================>] 6,369,022    193K/s   in 32s       
  19.  
  20. 2011-09-05 09:34:56 (193 KB/s) - `/usr/local/src/tarbag/httpd-2.2.16.tar.gz' saved [6369022/6369022]  
  21. apache install complete done ...  
  22. Configure apache...  
  23.  
  24. [root@orcl ~]# ls /usr/local/apache2.2.16/  
  25. bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules 

四:编译mysql

   
   
   
   
  1. [root@orcl ~]# sh lamp.sh  mysql  
  2. Setting Environment variables...  
  3. Creating data directory...  
  4. Download and install mysql...  
  5. ………………………输出省略…………………………………  
  6. Mysql install complete done...  
  7. Initialization mysql...  
  8. Modify mysql-server main parameter file...  
  9. Initialization mysql complete done...  
  10.  
  11. [root@orcl ~]# ls /usr/local/mysql/  
  12. bin  docs  include  lib  libexec  mysql-test  share  sql-bench  
  13. [root@orcl ~]# ls /mydata/  
  14. aclocal  mysql  mysql-bin.000001  mysql-bin.000002  mysql-bin.index  test  
  15. [root@orcl ~]# service mysqld restart  
  16. MySQL manager or server PID file could not be found![FAILED]  
  17. Starting MySQL.[  OK  ]  
  18.  
  19. [root@orcl ~]# /usr/local/mysql/bin/mysql  
  20. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  21. Your MySQL connection id is 1  
  22. Server version: 5.1.36-log Source distribution  
  23. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  24. mysql>  

五:正常编译php

   
   
   
   
  1. [root@orcl ~]# sh lamp.sh php  
  2. Loaded plugins: rhnplugin, security  
  3. This system is not registered with RHN.  
  4. RHN support will be disabled.  
  5. Setting up Remove Process  
  6. No Match for argument: php  
  7. Package(s) php available, but not installed.  
  8. No Packages marked for removal  
  9. Download and compile php...  
  10. ………………………输出省略…………………………………  
  11. php install complete done ...  
  12. Start Apache with php support OK...  
  13.  
  14. [root@orcl ~]# /usr/local/apache2.2.16/bin/apachectl -t -D DUMP_MODULES |grep php  
  15. Syntax OK  
  16.  php5_module (shared)  
  17. [root@orcl ~]# ls /usr/local/php5.2.13/  
  18. bin  etc  include  lib  man  
  19. [root@orcl ~]# /usr/local/php5.2.13/bin/php -i  |grep configure  
  20. Configure Command =>  './configure'  '--prefix=/usr/local/php5.2.13' '--with-config-file-path=/usr/local/php5.2.13/etc' '--with-apxs2=/usr/local/apache2.2.16/bin/apxs' '--with-bz2' '--with-curl' '--with-curlwrappers' '--enable-ftp' '--enable-sockets' '--disable-ipv6' '--with-gd' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr/local' '--with-freetype-dir=/usr/local' '--enable-gd-native-ttf' '--with-iconv-dir=/usr/local' '--enable-mbstring' '--enable-calendar' '--with-gettext' '--with-libxml-dir=/usr/local' '--with-zlib' '--enable-zend-multibyte' '--with-pdo-mysql=/usr/local/mysql' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-mysql=/usr/local/mysql' '--enable-dom' '--with-ldap' '--enable-xml'  
  21. [root@orcl ~]# netstat -ntpl |grep :80  
  22. tcp        0      0 :::80                       :::*                        LISTEN      20705/httpd