实现LAMP

1.LAMP工作原理

LAMP是一个强大的Web应用程序平台,其中L是指linux系统;A是指apache也就是http;M一般是mysql/mariadb数据库;P一般是php, perl, python其中之一。

工作过程:



1》当客户端请求的是静态资源时,web服务器会直接把静态资源返回客户端;

2》当客户端请求的是动态资源时,httpd的php模块会进行相应的动态资源运算,如果此过程还需要数据库的数据作为运算参数时,php会连接mysql取得数据然后进行运算,运算的结果转为静态资源并由web服务器返回到客户端。

2.使用yum安装实现LAMP

1)实现环境条件

1》需要两天主机,一台实现LAP,另一台实现M.

2》在两台主机上使用iptables -F关闭防火墙,使用setenforce 0来暂时设置selinux为permisive,或者配置/etc/selinux/config来设置selinux为disable或permisive。

2)所需安装的程序包

centos6需要:httpd、php、php-mysql、mysql、mysql-server、mysql-libs

centos7需要:httpd、php-fpm(or php)、php-mysql、mariadb、mariadb-server、mariadb-libs

3)centos6和7上实现

1>安装httpd并开启

centos6上配置为

  1. yum install httpd
  2. chkconfig httpd on
  3. chkconfig --list httpd
  4. service httpd start
  5. service httpd status

centos7上配置为

  1. yum install httpd
  2. systemctl enable httpd
  3. systemctl start httpd
  4. systemctl status httpd
2>安装mysql并开启

centos6上配置为

  1. yum install mysql mysql-server mysql-libs
  2. chkconfig mysqld on
  3. chkconfig --list mysqld
  4. service mysqld start
  5. service mysqld status
  6. /usr/bin/mysql_secure_installation
  7. mysql -uroot -pxm1234
  8. mysql>create user "shenxm"@'%' identified by 'xm1234';

centos7上配置为

  1. yum install mariadb mariadb-libs mariadb-server
  2. systemctl enable mariadb
  3. systemctl start mariadb
  4. systemctl status mariadb
  5. /usr/bin/mysql_secure_installation
  6. mysql -uroot -pxm1234
  7. MariaDB [(none)]>create user "shenxm"@'%' identified by 'xm1234';
3>安装php相关包

centos6上配置为

  1. yum install php php-mysql
  2. vim /etc/httpd/conf/httpd.conf
  3. 在文件尾部加两行
  4. AddType application/x-httpd-php .php
  5. AddType application/x-httpd-php-source .phps
  6. 修改或添加下面内容
  7. <IfModule dir_module>
  8. DirectoryIndex index.php index.html
  9. </IfModule>
  10. service httpd restart

centos7上配置为

  1. 下面模式二选一
  2. 1modules
  3. yum install php php-mysql
  4. vim /etc/httpd/conf/httpd.conf
  5. 在文件尾部加两行
  6. AddType application/x-httpd-php .php
  7. AddType application/x-httpd-php-source .phps
  8. 添加修改下面行
  9. <IfModule dir_module>
  10. DirectoryIndex index.php index.html
  11. </IfModule>
  12. systemctl restart httpd
  13. 2fastcgi
  14. yum install php-fpm php-mysql
  15. vim /etc/httpd/conf/httpd.conf
  16. 在文件尾部加四行
  17. AddType application/x-httpd-php .php
  18. AddType application/x-httpd-php-source .phps
  19. ProxyRequests Off
  20. ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
  21. 修改下面行
  22. <IfModule dir_module>
  23. DirectoryIndex index.php index.html
  24. </IfModule>
  25. systemctl restart httpd
  26. systemctl start php-fpm
4>测试配置的LAMP是否成功
  1. vim /var/www/html/index.php
  2. <html><body><h1>It works!</h1></body></html>
  3. <?php
  4. echo date("Y/m/d h:i:s");
  5. $mysqli=new mysqli("192.168.213.252","wpuser","xm1234");
  6. if(mysqli_connect_errno()){
  7. echo "连接数据库失败!";
  8. $mysqli=null;
  9. exit;
  10. }
  11. echo "连接数据库成功!";
  12. $mysqli->close();
  13. phpinfo();
  14. ?>

3.脚本实现源码编译安装LAMP

这是将编译安装实现LAMP的操作写成脚本,通过脚本来实现快速实现。

1)实现环境条件

1》因为这是一个脚本,所以用一台主机来直接实现LAMPM。当然,也可以把脚本分成几个模块,就如同分为centos6和7一样,可以把每个功能分别独立设立为模块,然后需要那个就调用那个应用来配合完成,这样修改或排错的时候更清晰。

2》在主机上使用iptables -F关闭防火墙,使用setenforce 0来暂时设置selinux为permisive,或者配置/etc/selinux/config来设置selinux为disable或permisive。

2)所需的软件包

软件包的版本可以根据需要来进行选择。且需要先创建个/app的目录,把所有软件包都放到这个目录下。

centos7

  1. apr-1.6.2.tar.gz
  2. httpd-2.4.27.tar.bz2
  3. php-7.1.10.tar.xz
  4. apr-util-1.6.0.tar.gz
  5. mariadb-10.2.8-linux-x86_64.tar.gz

centos6

  1. apr-1.6.2.tar.gz
  2. httpd-2.4.27.tar.bz2
  3. php-5.6.31.tar.xz
  4. xcache-3.2.0.tar.bz2
  5. apr-util-1.6.0.tar.gz
  6. mariadb-5.5.57-linux-x86_64.tar.gz

3)编写脚本

  1. #!/bin/bash
  2. #-------------------------------------------------
  3. #Filename:lamp-script.sh
  4. #Description:
  5. #Revision:2.0
  6. #Date:
  7. #-------------------------------------------------
  8. creat_lamp_on_centos6 ()
  9. {
  10. ####1.编译httpd2.4
  11. yum groupinstall "development tools" -y
  12. yum install openssl-devel pcre-devel expat-devel -y
  13. cd /app
  14. tar xvf apr-1.6.2.tar.gz
  15. tar xvf apr-util-1.6.0.tar.gz
  16. tar xvf httpd-2.4.27.tar.bz2
  17. cp -r /app/apr-1.6.2 /app/httpd-2.4.27/srclib/apr
  18. cp -r /app/apr-util-1.6.0 /app/httpd-2.4.27/srclib/apr-util
  19. cd httpd-2.4.27/
  20. ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
  21. make && make install
  22. cat > /etc/profile.d/lamp.sh <<eof
  23. PATH=/app/httpd24/bin/:$PATH
  24. eof
  25. bash /etc/profile.d/lamp.sh
  26. yum install httpd -y
  27. cp /etc/rc.d/init.d/httpd /etc/init.d/httpd24
  28. sed -i 's@apachectl=/usr/sbin/apachectl@apachectl=/app/httpd24/bin/apachectl@ ;s@httpd=${HTTPD-/usr/sbin/httpd}@httpd=${HTTPD-/app/httpd24/bin/httpd}@ ; s@pidfile=${PIDFILE-/var/run/httpd/httpd.pid}@pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}@ ; s@lockfile=${LOCKFILE-/var/lock/subsys/httpd}@lockfile=${LOCKFILE-/var/lock/subsys/httpd24}@' /etc/init.d/httpd
  29. chkconfig --add httpd24
  30. chkconfig httpd24 on
  31. service httpd24 start
  32. ####2.二进制安装mariadb
  33. ####可以在另台主机上进行安装,这里是在本地安装
  34. cd /app
  35. tar xvf /app/mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
  36. cd /usr/local/
  37. ln -s mariadb-5.5.57-linux-x86_64/ mysql
  38. useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql
  39. cd mysql/
  40. ./scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql
  41. mkdir /etc/mysql
  42. cp support-files/my-large.cnf /etc/mysql/my.cnf
  43. sed -i '27a\datadir = /app/mysqldb \ninnodb_file_per_table = ON \nskip_name_resolve = ON' /etc/mysql/my.cnf
  44. cp support-files/mysql.server /etc/init.d/mysqld
  45. chkconfig --add mysqld
  46. chkconfig mysqld on
  47. touch /var/log/mysqld.log
  48. chown mysql /var/log/mysqld.log
  49. service mysqld start
  50. cat >/etc/profile.d/lamp.sh <<end
  51. PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
  52. end
  53. bash /etc/profile.d/lamp.sh
  54. /usr/local/mysql/bin/mysqladmin -u root password 'xm1234'
  55. cat > /app/mysql-file.txt <<eof
  56. create database wpdb;
  57. grant all on wpdb.* to shenxm@'%' identified by 'xm1234';
  58. eof
  59. mysql -uroot -pxm1234< /app/mysql-file.txt
  60. ###3.源码编译php
  61. yum install libxml2-devel bzip2-devel libmcrypt-devel -y #(epel源)
  62. cd /app
  63. tar xvf php-5.6.31.tar.xz
  64. cd /app/php-5.6.31
  65. ./configure --prefix=/app/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-png-dir --with-jpeg-dir --with-freetype-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
  66. make && make install
  67. cat >/etc/profile.d/lamp.sh <<END
  68. PATH=/app/php/bin:/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
  69. END
  70. bash /etc/profile.d/lamp.sh
  71. cp php.ini-production /etc/php.ini
  72. sed -i '255s@DirectoryIndex index.html@DirectoryIndex index.php index.html@' /app/httpd24/conf/httpd.conf
  73. cat >>/app/httpd24/conf/httpd.conf <<DEF
  74. AddType application/x-httpd-php .php
  75. AddType application/x-httpd-php-source .phps
  76. DEF
  77. service httpd24 restart
  78. ###4.测试
  79. cat > /app/httpd24/htdocs/index.php <<EDD
  80. <html><body><h1>It works!</h1></body></html>
  81. <?php
  82. echo date("Y/m/d h:i:s");
  83. \$mysqli=new mysqli("localhost","shenxm","xm1234");
  84. if(mysqli_connect_errno()){
  85. echo "连接数据库失败!";
  86. \$mysqli=null;
  87. exit;
  88. }
  89. echo "连接数据库成功!";
  90. \$mysqli->close();
  91. \$conn = mysql_connect('localhost','root','centos');
  92. if ($conn)
  93. echo "OK";
  94. else
  95. echo "Failure";
  96. mysql_close();
  97. phpinfo();
  98. ?>
  99. EDD
  100. }
  101. creat_lamp_on_centos7 ()
  102. {
  103. ####1.源码编译安装Httpd2.4
  104. yum groupinstall "development tools" -y
  105. yum install openssl-devel expat-devel pcre-devel -y
  106. cd /app
  107. tar xvf apr-1.6.2.tar.gz
  108. tar xvf apr-util-1.6.0.tar.gz
  109. tar xvf httpd-2.4.27.tar.bz2
  110. cp -r apr-1.6.2 httpd-2.4.27/srclib/apr
  111. cp -r apr-util-1.6.0 httpd-2.4.27/srclib/apr-util
  112. cd httpd-2.4.27/
  113. ./configure --prefix=/app/httpd24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
  114. make && make install
  115. cat > /etc/profile.d/lamp.sh <<END
  116. PATH=/app/httpd24/bin/:$PATH
  117. END
  118. bash /etc/profile.d/lamp.sh
  119. apachectl
  120. ####2.二进制安装mariadb
  121. ####可以在另台主机上进行安装,这里是在本地安装
  122. cd /app
  123. tar xvf mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local/
  124. cd /usr/local
  125. ln -s mariadb-10.2.8-linux-x86_64/ mysql
  126. useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql
  127. cd mysql/
  128. scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql
  129. mkdir /etc/mysql
  130. cp support-files/my-large.cnf /etc/mysql/my.cnf
  131. sed -i '27a\datadir = /app/mysqldb \ninnodb_file_per_table = ON \nskip_name_resolve = ON' /etc/mysql/my.cnf
  132. cp support-files/mysql.server /etc/init.d/mysqld
  133. chkconfig --add mysqld
  134. mkdir /var/log/mariadb
  135. chown mysql /var/log/mariadb/
  136. systemctl start mysqld
  137. cat > /etc/profile.d/lamp.sh <<EOF
  138. PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
  139. EOF
  140. bash /etc/profile.d/lamp.sh
  141. /usr/local/mysql/bin/mysqladmin -u root password 'xm1234'
  142. cat > /app/mysql-file.txt <<eof
  143. create database wpdb;
  144. grant all on wpdb.* to shenxm@'%' identified by 'xm1234';
  145. eof
  146. mysql -uroot -pxm1234< /app/mysql-file.txt
  147. ####3.源码编译安装Php
  148. yum install libxml2-devel bzip2-devel libmcrypt-devel -y #(epel源)
  149. cd /app
  150. tar xvf php-7.1.10.tar.xz
  151. cd /app/php-7.1.10/
  152. ./configure --prefix=/app/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo
  153. make && make install
  154. cp php.ini-production /etc/php.ini
  155. cat >>/etc/httpd24/httpd.conf <<DEF
  156. <IfModule dir_module>
  157. DirectoryIndex index.php index.html
  158. </IfModule>
  159. AddType application/x-httpd-php .php
  160. AddType application/x-httpd-php-source .phps
  161. DEF
  162. apachectl restart
  163. ####4.测试
  164. cat > /app/httpd24/htdocs/index.php <<DDF
  165. <html><body><h1> LAMP</h1></body></html>
  166. <?php
  167. \$mysqli=new mysqli("localhost","shenxm","xm1234");
  168. if(mysqli_connect_errno()){
  169. echo "连接数据库失败!";
  170. \$mysqli=null;
  171. exit;
  172. }
  173. echo "连接数据库成功!";
  174. \$mysqli->close();
  175. phpinfo();
  176. ?>
  177. DDF
  178. }
  179. a=`cat /etc/centos-release|egrep -o "[0-9]"|head -1`
  180. if [ ${a} -eq 6 ] ;then
  181. creat_lamp_on_centos6
  182. elif [ ${a} -eq 7 ] ;then
  183. creat_lamp_on_centos7
  184. fi
  185. unset a

上述若有那些错误,欢迎观看的各位提出,谢谢~

实现LAMP的更多相关文章

  1. Linux安装LAMP开发环境及配置文件管理

    Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...

  2. Web应用之LAMP源码环境部署

    一.LAMP环境的介绍 1.LAMP环境的重要性 思索许久,最终还是决定写一篇详细的LAMP的源码编译安装的实验文档,一来是为了给自己一个交代,把技术进行系统的归纳,将技术以极致的形式呈现出来,做为一 ...

  3. 【笔记】LAMP 环境无脑安装配置 Centos 6.3

    p.p1 { margin: 0.0px 0.0px 5.0px 0.0px; font: 12.0px Times; color: #ff2500 } p.p2 { margin: 0.0px 0. ...

  4. LAMP坏境和LNMP环境安装Nagios4.1.1和基本配置

    ----------------------------------------以下内容为笔者生产环境的监控,安装都是经过一步步测试的-------------------------------- ...

  5. 1-web应用之LAMP源码环境搭建

    目录 一.LAMP环境的介绍     1.LAMP环境的重要性     2.LAMP组件介绍 二.Apache源码安装     1.下载Apache以及相关依赖包     2.安装Apache以及相关 ...

  6. CentOS7 配置LAMP

    这两天要带新同事.没办法,只有现学现卖,又回到Linux的怀抱了.今晚想配置一下LAMP环境,但是之前用的6.6,今晚想闷声做大死,用一次7试试.网上找了很多教程,但是好像转载的都不负责任,有些到下一 ...

  7. Ubuntu 16.04 LAMP server 指南 - 配置 Apache2.4,PHP7,和MariaDB(而不是MySQL)

    翻译自:https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-16-04-lamp/ 昨天在虚 ...

  8. LAMP(1) 在VirtualBox里安装Ubuntu Server

    问题0.虚拟机中安装lamp环境 问题解决: 来自百度经验 问题1. 用putty远程登陆linux系统,显示network error connection refused 问题解决 问题2. my ...

  9. ubuntu10.04编译安装LAMP

    ubuntu10.04编译安装LAMP以及简单wordpress的使用 : http://linuxme.blog.51cto.com/1850814/971631 一.源码安装LAMP 网上有一堆关 ...

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

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

随机推荐

  1. NOPI读xls文件写到txt中(NPOI系列二)

    private void button2_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); //找 ...

  2. 关于SVM数学细节逻辑的个人理解(一)

    网上,书上有很多的关于SVM的资料,但是我觉得一些细节的地方并没有讲的太清楚,下面是我对SVM的整个数学原理的推导过程,其中我理解的地方力求每一步都是有理有据,希望和大家讨论分享. 首先说明,目前我的 ...

  3. JavaScript配合button.onclick()使用总结

    Html加载顺序是从上往下加载,如果script中含有引用js脚本,则应该将此script放在head标签里面,这样可是保证此页面都可以引用js脚本内容.如果想在script中设置button.onc ...

  4. mybatis-java代码调用部分

    只需要加入 mybatis-2.2.jar  和数据库驱动包即可 java代码实现的步骤 package com.yangwei.shop.test; import java.io.IOExcepti ...

  5. session get和load方法对比

    get测试代码如下: public class Test { public static void main(String[] args) { // TODO Auto-generated metho ...

  6. global,local,static的区别

    1.在函数内部使用global关键字定义的变量可以成为全局变量,如果该变量已经被定义了,那么他的值就是原来的值,否则就是一个新的全局变量(一句话:已存在就不再创建): <?php $a=1; f ...

  7. firefly rk3288 内核模块编译

    在驱动开发的过程中,常常需要对代码进行返回的调试,如果返回的编译再烧写内核,势必会浪费开发人员大量的时间和心力,加班加点那是时常的事.为此linux提供了编译内核模块的方式,无需返回烧写内核,只需in ...

  8. Linux学习——Shell基础

    1 shell概述 Shell 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至编写一些程序. Shell 还是一 ...

  9. bzoj1036 [ZJOI2008]树的统计

    一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从 ...

  10. JQ判断浏览器以及版本

    JQuery 使用jQuery.browser 来判断浏览器,返回值可以为: safari(safari) opera(Opera) msie(IE) mozilla(Firefox). if($.b ...