A goal is a dream with a deadline. Much effort, much prosperity.

环境:CentOS release 6.5  2.6.32-431.el6.x86_64

  1. #!/bin/bash
  2. #--
  3. #下为软件版本号、安装路径、数据存放路径、密码、URL等,如有不同、则自行修改变量即可
  4. #释:ylb为依赖包1/
  5. #释:path为路径1/
  6. #释:mysqlcatalog为MySQL的安装路径
  7. #释:mysqldata为MySQL的数据存放位置
  8. #释:environment为PHP的环境1为开发版样例文件2为生产版样例文件
  9. http='httpd-2.2.31'
  10. mysql='mysql-5.7.2-m12'
  11. php='php-5.3.28'
  12. libmcrypt='libmcrypt-2.5.8'
  13. mhash='mhash-0.9.9.9'
  14. mcrypt='mcrypt-2.6.8'
  15. cmake='cmake-2.8.12'
  16. ZendGuardLoader='ZendGuardLoader-php-5.3-linux-glibc23-x86_64'
  17. ylb1='zlib-devel libxml2-devel ncurses-devel'
  18. ylb2='php php-cli php-ldap php-common php-mysql httpd mysql-server'
  19. path1='/usr/src'
  20. path2='/usr/local'
  21. mysqlcatalog='/usr/local/mysql/'
  22. mysqldata='/usr/local/mysql/data'
  23. mysqlrootpasswd='
  24. environment1='php.ini-development'
  25. environment2='php.ini-production'
  26. epel='https://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm'
  27. repo='http://mirrors.aliyun.com/repo/Centos-6.repo'
  28.  
  29. aliyum() {
  30. -i -t www.baidu.com
  31. ]
  32. then
  33. mv /etc/yum.repos.d/* /tmp
  34. wget $epel
  35. yum -y localinstall epel*.rpm
  36. wget -O /etc/yum.repos.d/CentOS-Base.repo $repo
  37. yum clean all
  38. yum makecache
  39. else
  40. echo "Network is not connected"
  41. fi
  42. }
  43. #Install depend
  44. rpm -q $ylb2 | awk '{print $1}' > b.txt
  45. sed -i '/^package/d' b.txt
  46. for i in $(cat b.txt)
  47. do
  48. rpm -e $i --nodeps > /dev/null
  49. done
  50.  
  51. yum -y install $ylb1 > /dev/null
  52. if [ ! $? -eq 0 ]
  53. then
  54. aliyum
  55. yum -y install $ylb1 > /dev/null
  56. fi
  57. #Install httpd
  58. tar xf $http.tar.gz -C $path1
  59. cd $path1/$http
  60. ./configure --prefix=$path2/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi && make && make install
  61. echo $? >> /root/debug.txt
  62. echo "install apache time" >> /root/debug.txt
  63. cd ~
  64. ln -s $path2/httpd/bin/* /usr/local/bin/
  65. cp $path2/httpd/bin/apachectl /etc/init.d/httpd
  66. sed -i '1a# chkconfig:35 20 80\n# description:web' /etc/init.d/httpd
  67. chkconfig --add httpd
  68. chkconfig httpd on
  69. chkconfig --list httpd
  70. sed -i '98aServerName www.wjl.com:80' $path2/httpd/conf/httpd.conf
  71. service httpd start
  72. netstat -anpt | grep :80 >> /root/debug.txt
  73. #Install MySql
  74. tar xf $cmake.tar.gz -C $path1
  75. cd $path1/$cmake
  76. ./configure && gmake && gmake install
  77. groupadd mysql
  78. useradd -M -s /sbin/nologin -g mysql mysql
  79. cd ~
  80. tar xf $mysql.tar.gz -C $path1
  81. cd $path1/$mysql
  82. cmake -DCMAKE_INSTALL_PREFIX=$path2/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install
  83. echo $? >> /root/debug.txt
  84. echo "install mysql time" >> /root/debug.txt
  85. cp support-files/my-default.cnf /etc/my.cnf
  86. cp support-files/mysql.server /etc/init.d/mysqld
  87. chmod +x /etc/init.d/mysqld
  88. chkconfig --add mysqld
  89. chkconfig --list mysqld
  90. echo "PATH=$PATH:$path2/mysql/bin" >> /etc/profile
  91. source /etc/profile
  92. chown -R mysql:mysql $path2/mysql/
  93. $path2/mysql/scripts/mysql_install_db --basedir=$mysqlcatalog --datadir=$mysqldata --user=mysql
  94. service mysqld start
  95. netstat -anpt | grep :3306 >> /root/debug.txt
  96. cd ~
  97. mysqladmin -u root password $mysqlrootpasswd
  98. #Install PHP
  99. tar xf $libmcrypt.tar.gz -C $path1
  100. cd $path1/$libmcrypt
  101. ./configure
  102. make && make install
  103. ln -s $path2/lib/libmcrypt.* /usr/lib/
  104. cd ~
  105. tar xf $mhash.tar.gz -C $path1
  106. cd $path1/$mhash
  107. ./configure
  108. make && make install
  109. ln -s $path2/lib/libmhash* /usr/lib/
  110. cd ~
  111. tar xf $mcrypt.tar.gz -C $path1
  112. cd $path1/$mcrypt
  113. export LD_LIBRARY_PATH=$path2/lib:$ LD_LIBRARY_PATH
  114. ./configure
  115. make && make install
  116. cd ~
  117. tar xf $php.tar.gz -C $path1
  118. cd $path1/$php
  119. ./configure --prefix=$path2/php5 --with-mcrypt --with-apxs2=$path2/httpd/bin/apxs --with-mysql=$path2/mysql --with-config-file-path=$path2/php5 --enable-mbstring && make && make install
  120. if [ ! $? -eq 0 ]
  121. then
  122. yum -y install libtool*
  123. ./configure --prefix=$path2/php5 --with-mcrypt --with-apxs2=$path2/httpd/bin/apxs --with-mysql=$path2/mysql --with-config-file-path=$path2/php5 --enable-mbstring && make && make install
  124. fi
  125. echo $? >> /root/debug.txt
  126. echo "install php time" >> /root/debug.txt
  127. cp $path1/$php/$environment1 $path2/php5/php.ini
  128. grep -v "^;" /usr/local/php5/php.ini | grep -v "^$"
  129. sed -i "/default_charset/s#.*\(default_charset\).*#\1 = "utf-8"#g" $path2/php5/php.ini
  130. sed -i "/file_uploads/s#\(file_uploads\).*#\1 = On#g" $path2/php5/php.ini
  131. sed -i "/upload_max_filesize/s#.*\(upload_max_filesize\).*#\1 = 2M#g" $path2/php5/php.ini
  132. sed -i "/max_file_uploads/s#\(max_file_uploads\).*#\1 = 20#g" $path2/php5/php.ini
  133. sed -i "/post_max_size/s#.*\(post_max_size\).*#\1 = 8M#g" $path2/php5/php.ini
  134. sed -i "/short_open_tag/s#.*\(short_open_tag\).*#\1 = On#g" $path2/php5/php.ini
  135. cd ~
  136. tar xf $ZendGuardLoader.tar.gz -C $path1
  137. cd $path1/$ZendGuardLoader/php-5.3.x/
  138. cp ZendGuardLoader.so $path2/php5/lib/php/
  139. sed -i "1azend_extension=${path2}/php5/lib/php/ZendGuardLoader.so\nzend_loader.enable=1" $path2/php5/php.ini
  140. sed -i "/LoadModule php5_module/s#.*\(LoadModule php5_module\).*#\1 modules\/libphp5.so#g" $path2/httpd/conf/httpd.conf
  141. sed -i "55a AddType application\/x-httpd-php \.php \.phtml" $path2/httpd/conf/httpd.conf
  142. sed -i "/DirectoryIndex/s#.*\(DirectoryIndex\).*#\1 index.php index.html index.htm#g" $path2/httpd/conf/httpd.conf
  143. cat << END >> $path2/httpd/htdocs/test1.php
  144. <?php
  145. phpinfo ();
  146. ?>
  147. END
  148. cat << END >> $path2/httpd/htdocs/test2.php
  149. <?php
  150. \$link=mysql_connect('localhost','root','$mysqlrootpasswd')
  151. ;
  152. if(\$link) echo "Connect Successfully!";
  153. else echo "Connect Faild!";
  154. mysql_close();
  155. ?>
  156. END
  157. echo "已执行完毕、成功与否请查看/root/debug.txt内容,非0为安装失败"
  158. echo "1、检查软件版本号是否相同"
  159. echo "2、查看为非0的下的提示报错位置进行修改"
  160. echo "测试PHP是否正常工作:http://localhost/test1"
  161. echo "测试PHP能否连接MySQL:http://localhost/test2"

LAMP脚本的更多相关文章

  1. 一键部署lamp 脚本

    一键部署lamp 脚本 如下: #!/bin/bash systemctl stop firewalld systemctl disable firewalld setenforce 0 #----- ...

  2. CentOS自动化安装LAMP脚本

    #!/bin/bash #-- #blog:lizhenliang.blog.51cto.com ########## function ########## depend_pkg () { yum ...

  3. 一键部署lamp脚本

    #!/bin/bash systemctl stop firewalld systemctl disable firewalld setenforce 0 #-------Apache------ # ...

  4. 转:CentOS/Debian/Ubuntu一键安装LAMP(Apache/MySQL/PHP)环境

    CentOS/Debian/Ubuntu一键安装LAMP(Apache/MySQL/PHP) 今天遇到一个网友提到需要在Linux VPS服务器中安装LAMP(Apache/MySQL/PHP)网站环 ...

  5. LAMP一键安装包-CentOS 5/6下自动编译安装Apache,MySQL,PHP

    http://www.centos.bz/lamp/ 此安装包已经不再维护,请使用新版http://www.centos.bz/ezhttp/. 适用环境: 系统支持:CentOS-5 (32bit/ ...

  6. Vultr VPS建站攻略 – 一键安装宝塔面板架设LNMP/LAMP Web环境

    我们选择VULTR VPS建站的还是比较多的,其主要原因在于商家的稳定,毕竟我们用来建站选择服务器价格考虑的不是主要的(当然VULTR价格也是比较便宜),最为主要的是因为VULTR商家比较稳定,而且多 ...

  7. Apache下安装配置mod_pagespeed模块,轻松完成网站提速

    mod_pagespeed是一个开源的Apache module,它由谷歌开发,通过优化你的网页来减少响应延迟和带宽占用.作用参考ngx_pagespeed功能:http://blog.linuxey ...

  8. liunx 系统 一键安装

    本文转自:http://hi.baidu.com/iamcyh/item/e777eb81ba90ed5a26ebd9b0 linux VPS环境(MySQL/Apache/PHP/Nginx)一键安 ...

  9. shell学习及脚步编写

    目录: shell基础变量逻辑运算符 scp基础用法脚本 while+for+case基础用法脚本 内核优化脚本 自动修改本机ip脚本 for+case 查询日志脚本 一键yum安装lamp脚本 源码 ...

随机推荐

  1. JavaScript------日期和时间戳的相互转换

    var date = new Date(); 日期转时间戳 Number(date)或者date.getTime(); //只是转换成了纯数字的时间戳,例如:1498144203861需要转换才能使用 ...

  2. 《基础知识》hashCode与equals的区别与联系

    一.equals方法的作用 1.默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一 ...

  3. [USACO5.5]隐藏口令Hidden Password

    题目链接:传送门 题目大意:给你一个长度 N 的字符串,5<=N<=5,000,000,将首尾合并成环,断环成链并满足字典序最小,输出此时首字母在原串中的位置-1: 题目思路:最小表示法 ...

  4. rabbitmq 3.6.11 centos 7 安装

    http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm http://www.rabbitmq.co ...

  5. fis3 部署手册

    为什么使用FIS3 项目上线一段时间后如果更新JS或CSS文件,而客户端已经对该文件缓存过了,那就有可能会无法及时更新而继续采用旧的JS或CSS文件,无法达到想要的效果. 处理类似情况最有效的解决方案 ...

  6. zookeeper Java API 简单操作示例

    本文主要介绍如何在java IDE中如何应用使用客户端与zookeeper服务器通信. 首先搭建maven环境,并在pom文件中加入zookeeper引用包: <!-- https://mvnr ...

  7. VMware虚拟机Bridged(桥接模式)

    转载于:https://www.linuxidc.com/Linux/2016-09/135521.htm   vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT ...

  8. Android自定义上拉控件SpringView

    Demo 先看一下SpringView的效果图: 1.拖动灰色部分可拖动下方视图,点击jump按钮可让下方视图自行滑动. 使用方法 布局文件: <com.zql.android.springvi ...

  9. Java 常用工具类之 String 类

    String 类的特点: 字符串对象一旦被初始化就不会被改变. //以下代码的区别: String s = "abc"; // 在常量池中创建一个字符串对象, 池中没有就建立, 池 ...

  10. 微信js分享朋友圈(一)

    1.绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 备注:登录后可在“开发者中心”查看对应的接口权限. 2.引入js文件 <script type=&q ...