构建LAMP动态网站

news/2024/5/13 17:21:18/文章来源:https://blog.csdn.net/weixin_34272308/article/details/89905789

虽然关于LAMP架设的文章,51cto上已经有很多很多了,但我还是想写一篇这样的文章,来对自己的工作经验做个总结。我将把《构建LAMP动态网站》分两篇文章来进行讲解,第一篇首先是搭建一个LAMP的WEB框架,第二篇是在这个WEB框架上搭建一个电影网站。

--------------------------------------------------------------------

前言:

动态网站一般由http服务器、应用程序服务器以及数据库服务器几部分构成。从整个架构上看,通常称http服务器为前端、应用服务器为中间层、数据库为后端。

在网站运行初期,如果用户的访问量不大的话,可以考虑把3个组件安装到同一个物理服务器上,等用户量上来以后,再考虑把他们单独分开,每个组件占据一个服务器甚至多个物理服务器(负载均衡群集模式)。不管是一个物理服务器,还是多个物理服务器,Web与应用服务器一般都安装在同一个主机上。

LAMP即:Linux+Apache+MySQL+PHP(Perl),是目前国际上流行且成熟的Web网站架构,很多流行的商业应用都是采用这个架构,与Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,与微软的.NET架构相比,LAMP具有通用、跨平台、高性能、开源等优势。因此,LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。

--------------------------------------------------------------------

安装前的准备:

由于LAMP安装还是比较复杂,为保证安装顺利进行,首先要完成安装前的准备工作。

1.准备安装包。 
首先需要准备好下列安装包。

 
  1. httpd-2.2.9.tar.gz  
  2. mysql-5.0.41.tar.gz  
  3. php-5.2.6.tar.gz  
  4. phpMyAdmin-3.0.0-rc1-all-languages.tar.gz  
  5. libxml2-2.6.30.tar.gz  
  6. libmcrypt-2.5.8.tar.gz  
  7. zlib-1.2.3.tar.gz  
  8. gd-2.0.35.tar.gz  
  9. Autoconf-2.61.tar.gz  
  10. freetype-2.3.5.tar.gz  
  11. libpng-1.2.31.tar.gz  
  12. ZendOptimizer330a.tar.gz 

2.关闭iptables/Selinux 。 

 
  1. #service iptables stop  
  2. #chkconfig iptables off 
  3.  
  4. #vi /etc/selinux/config  

把SELINUX=enforcing注释掉:#SELINUX=enforcing 。 
然后新加一行为:SELINUX=disabled 。 
保存退出,重启系统。

3.检查编译工具 。 
在安装Linux系统时必须把GCC编译工具安装上,我们用下列命令检查编译工具是否存在。

 
  1. #gcc –-version 

4.卸载rpm方式安装的Apache、MySQL、PHP 。(--nodeps :忽略软件包依赖性) 
如果有安装,使用如下命令进行卸载:

 
  1. #rpm -e httpd httpd-manual webalizer subversion mod_python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common mysql dovecot --nodeps 

5.安装库文件。 
为了能让PHP支持更多的图片类型/格式(如:GIF、PNG和JPEG等),以及支持登录验证码显示一类的功能,需要先安装一些组件,如GD2等,然后在安装PHP。在安装GD2库之前还要先安装最新的zlib、libpng、freetype、jpegsrc及GD2等库文件。 
1)安装 libxml2 库文件 。 

 
  1. # ./configure --prefix=/usr/local/libxml2  
  2. # make && make install  
image image

2)安装 libmcrypt 库文件 。 

 
  1. # ./configure --prefix=/usr/local/libmcrypt  
  2. # make && make install 
image image

3)安装 zlib 库文件。 

 
  1. # ./configure --prefix=/usr/local/zlib  
  2. # make && make install  

image image

4)安装 libpng 库文件。 

 
  1. # ./configure --prefix=/usr/local/libpng  
  2. # make && make install  
image image

5)安装 jpeg6 库文件。 

 
  1. # tar zxf  jpegsrc.v7.tar.gz  
  2. # ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static  
  3. # make  && make install  
 image image

6)安装 freetype 库文件。

 
  1. # ./configure --prefix=/usr/local/freetype  
  2. # make && make install  
image image

7)安装 autoconf 库文件。

 
  1. # ./configure  
  2. # make && make install  
image image

8)安装GD库文件。 
这个过程稍微复杂一点,需要在正式安装前做头文件的链接操作,如果不进行这步,安装GD2时可能会出错。 
(1)链接头文件,其操作为: 

 
  1. # ln -s /usr/local/libpng/include/pngconf.h /usr/include/  
  2. # ln -s /usr/local/libpng/include/png.h /usr/include/  
image (2)安装GD2,其指令为:
 
  1. # ./configure  \     
  2.  
  3. > --prefix=/usr/local/gd2  \     
  4.  
  5. > --with-zlib=/usr/local/zlib  \     
  6.  
  7. > --with-jpeg=/usr/local/jpeg  \     
  8.  
  9. > --with-png=/usr/local/libpng  \     
  10.  
  11. > --with-freetype=/usr/local/freetype     
  12.  
  13. # make && make install   
image image

-----------------------------------------------------------------------

开始安装LAMP

总体来说,在Linux系统中源代码包的安装过程基本上都是一成不变的“四大步骤”:解包(tar)、配置(configure)、编译(make)、安装(make install)。需要安装的所有软件都要按照一定的顺序安装,如先安装Apache,再安装MySQL,最后安装PHP。但安装成功的关键在于安装的顺序和一些软件包的配置上。

1.安装 Apache 服务器。 
安装Apache,完全遵循通用的GNU软件安装习惯。如果不知道怎么从这步入手,可以在源代码解包后查看Install这个文件。如果没有特殊的要求或者为着学习的目的,按照Install文件的“Quick Start - UNIX”指引,很容易就可以完成安装操作。接下来,我们分步来完成安装操作。当然,这就是实际的应用场景了。 
当安装好以上这些库文件后,就可以正式安装Apache服务器了。 

 
  1. # tar zxf httpd-2.2.9.tar.gz -C /usr/src         //解包  
  2. # cd /usr/src/httpd-2.2.9/  
  3. # ./configure \                                    //配置  
  4. > --prefix=/usr/local/apache  \      //指定安装目录  
  5. > --sysconfdir=/etc/httpd  \          //指定配置文件存放的位置  
  6. > --with-z=/usr/local/zlib   \           //指定zlib库文件的位置  
  7. > --enable-so   \        //启用动态共享对象DSO(Dynamic Shared Object)机制。Apache的功能模块,分静态模块和动态模块。静态模块是功能模块与Apache本身结合在一起;而动态模块则是程序需要调用时,才加载的模块。  
  8. //静态模块查看:/usr/local/apache/bin/apachectl -l  
  9. //动态模块查看:ls /usr/local/apache/modules  
  10. //不过在没有整合Apache与应用服务(如PHP、Tomcat)之前,Apache模块目录里没有我们所期待的文件,只有整合完毕,才会有libPHP5.so这样的文件存在。  
  11. > --enable-rewrite          //启用网页地址重写功能,用于网站优化及目录迁移维护。  
  12. > --enable-charset-lite   //启动字符集支持,以便支持使用各种字符集编码的网页。  
  13. > --enable-cgi                  //启用CGI脚本程序支持,便于扩展网站的应用访问能力。  
  14. > --with-mpm=worker  //指定Apache的进程模型为worker。默认情况下,进程模型选择prefork。为什么要选择这个模型呢?主要的目的是为了改善Apache的性能。在未使用worker模式之前,我的Apache服务器经常过载,短信报警频繁,而改用worker模式后,Apache的进程数大大减少了,负载也大大降低,运行平稳。  
image
 
  1. # make && make install          //编译及安装  
image

2.确定Apache安装结果。 
首先需要检查的是:在安装过程中所指定的选项,是否都按照我们的意图完成了。下面我们 一 一 进行检验。 
1)检查安装目录。检查prefix选项指定的目录,看其是否存在。如果存在,再检查其包含的子目录及文件。 
image 
因为./configure配置中指定了--sysconfdir=/etc/httpd 配置文件存放的目录,所以我这里还要检查/etc/httpd目录下是否有Apache配置文件。 
image 
2)检查编译进来的模块,在前面的配置里,我指定了五个相关的选项  “--enable-so、--enable-rewirte、--enable-charset-lite、--enable-cgi、--with-mpm=worker,看是否都被正确的编译进来。在安装目录中,运行命令:

 
  1. # /usr/local/apache/bin/apachectl -l  
输出结果如下图所示:
image
从图中可以看出,我在配置时指定与模块相关的5个选项都在输出中出现了,这正是我们所期待的,有了这个输出,完全不必担忧因为选项少而影响功能,因为默认情况下,已经编译了很多模块。

注:当然,如果所需的模块不在这个输出列表中的话,可以在配置configure时显式指定相关选项。 
3)检查Apache是否能正常运行。一般情况下,只要检查Apache配置文件的语法是否正确就可以了。其方法为: 
执行命令 :

 
  1. # /usr/local/apache/bin/apachectl -t  
只要输出为“Systax OK”,一般都能正常启动Apache。
Apache的行为完全由配置文件httpd.conf所控制。配置文件httpd.conf非常复杂,以我这种方法安装后的配置文件,总行数达到409.对于初次接触Apache的人,其实只需要知道一个地方——根文档DocumentRoot的位置,把网站内容放在这个目录下,启动Apache服务后,就能展示整个站点。Apache的配置有一些技巧,掌握了这些技巧,就能避免修改配置文件时出现混乱。比如反复修改后,记不得到底修改了哪些内容。

经验:尽量少修改配置文件,打开“#Include conf/extra/httpd-host.conf”,大部分变更、增加、修改操作都在虚拟主机配置文件中完成。这样既有利于调试,也能大大降低风险。即使把虚拟主机文件修改的一团糟,只要将主配置文件中包含虚拟主机的那行注释掉,或者重新再撰写这个配置文件即可。

3.优化执行路径。 
通过源码编译安装的httpd服务,程序路径并不在默认的搜索路径中,为了使该服务在使用时更加方便,可以为相关程序添加符号链接。 
# ln -s /usr/local/apache/bin/* /usr/local/bin/ 
这样再执行相关命令时就不用输入冗长的路径了。例如,当执行“httpd -v”(用于查看程序版本)时,即相当于执行“/usr/local/apache/bin/httpd -v”.

 
  1. # httpd -v  
image

4.添加httpd系统服务 
若希望将httpd添加为系统服务,以便通过chkconfig进行管理,需要建立可控的服务脚本。例如,可将 apachectl 脚本复制为 /etc/init.d/httpd ,并在文件开头添加 chkconfig 识别配置,然后再将其添加为标准的Linux系统服务。

 
  1. # cp /usr/local/apache/bin/apachectl /etc/init.d/httpd  
  2. # vi /etc/init.d/httpd  
  3.    #!/bin/bash  
  4.   #chkconfig: 35 85 15            //服务识别参数,级别3、5中启动;启动和关闭的顺序分别为85、15  
  5.   #description: Startup script for the Apache HTTP Server         //服务描述信息  
  6. ……    //省略部分内容  
image image
 
  1. # chkconfig --add httpd    //将httpd添加为系统服务     
  2. # chkconfig --list httpd     //查看httpd服务的自启动状态   
image

注:成功执行上述操作以后,每次Linux系统进入运行级别3、5时,httpd服务将会自动运行。在日常维护过程中,可以直接使用apachectl工具来控制httpd服务,也可以使用/etc/init.d/httpd脚本。例如,当执行:

 
  1. # /etc/init.d/httpd start  
或者 
 
  1. # service httpd start    
命令时,等同于执行:
 
  1. # /usr/local/httpd/bin/apachectl start     
命令,都用来启动httpd服务器程序。

5.安装MySQL数据库。 

未完待续……

--------------------------------------------------------------










本文转自 jundong 51CTO博客,原文链接:http://blog.51cto.com/minitoo/863464,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_749168.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于大型网站技术演进的思考(八)--存储的瓶颈终篇(8)

在开始本篇主要内容前,我们一起看看下面的几张截图,首先是第一张图,如下图所示: 这是一家电商网站的首页,当我们第一次打开这个首页,网站会弹出一个强制性的对话框,让用户选择货物配送的地址&am…

构建高性能ASP.NET站点之一 剖析页面的处理过程(前端),徐汇区网站设计

导读:作者燕洋天写了一系列关于ASP.NET的文章。在对ASP.NET网站进行优化的时候,往往不是只是懂得ASP.NET就足够了的。在优化的过程中,一般先是找出问题可能存在的地方,然后证明找出的问题就是要解决的问题,确认之后&am…

先睹为快:Visual Studio 11测试版已于2.29在微软官方网站正式发布

在2011的下半年,Visual Studio 11就已经呼之欲出,在2012年的2月29日,微软官方网站正式发布了VS11的测试版。VS11中使用了Framework4.5,与Framework4.0相比,没有发生太大的改变,只是对功能进行了优化。 下载…

IIS建立网站后显示“403.1禁止访问”的解决方法

建立网站后,显示如下: 这是由于没有脚本访问权限导致的,解决方法: 这样设置后就可以了,呵呵 本文转自博客园张占岭(仓储大叔)的博客,原文链接:IIS建立网站后显示“403.1禁…

25个绿色网站设计灵感

绿色的颜色即我们通常与自然关联的,并且它是可见光谱的3原色之一。三基色红,绿,蓝。我已经共享的红色网站的集合,在这个集合中寻找灵感,你会发现25个绿色网站。 绿色也与环境,这些天我们都将努力挽救环境和…

转载-支持中英文多语言浏览的MVC网站实例

思路大概是这样的,将翻译成不同语言的词句以xml键值对的格式分别存在不同文件夹下,扩展MVC HtmlHelper, 在扩展方法里根据用户当前访问Action所在的路径以及当前所选的语言类型读取语言文件夹下的xml文件,再通过HtmlHelper传过来的key获取对应…

js实现倒计时 类似团购网站

一、demo与效果展示 为节约时间,我就直接套用了企鹅团的界面作为demo的背景。因为是倒计时,所以需要一个固定的时间,为了n年后,某位仁兄打开demo页面依然在倒计时,所以我把倒计时时间设成了2050年7月30日中午12点整&am…

阿里云+Ubuntu+LAMP+WordPress搭建个人博客网站

首发于个人网站http://139.196.86.184(域名备案中),转载注明作者与出处,谢谢。 搭个人网站一般有两种选择: GitHub Pages Hexo / jekyl服务器 WordPress / Typecho之前试过1,现在试试2,个人选…

python使用requests和beautifusoup模块爬取学校网站的就业中心信息,并发送至自己的邮箱...

2019独角兽企业重金招聘Python工程师标准>>> 最近有一件非常难过以及无限悲伤的事情发生了,那就是Firebug停止更新和维护了!! Firebug作为一款前端调试工具,同时也是我接触的第一款前端工具(虽然我仅使用它…

基于Vue+Vuex+iView的电子商城网站

MALL-VUE 这是一个基于VUE VUEX iView做的一个电商网站前端项目, 附带前后端分离实现版本(在forMallServer分支),欢迎fork或star项目地址: https://github.com/PowerDos/Mall-Vue 项目预览地址(demo): https://powerdos.github.io/Mall-Vue/index.html…

网站服务器2核4核怎么选,云服务器2核和4核的区别

云服务器2核和4核的区别 内容精选换一换云服务器创建完成后,数据盘需要初始化后才能使用。当使用弹性伸缩为伸缩组增加数量较多的云服务器时,您就需要逐一手动初始化数据盘,将会占用较长时间。本节为您介绍通过脚本自动化完成初始化磁盘的操作…

开通个人博客啦,附上Vultr+WordPress建站全面指南

历时一个月,终于搭起个人博客,并且将以前的文章都迁移到新的网站了,其中还经历了迁移wordpress的问题,网上虽然关于wordpress的问题解答有很多,但是有些不适用,也不全面,这里我将记录下建站的点…

打包Asp.Net 网站成为一个exe 方便快捷的进行客户演示

2019独角兽企业重金招聘Python工程师标准>>> 在Asp时代有一个NetBox 产品可以把整个Asp网站AllInOne的打包成一个exe,在没有IIS的情况下可以单独运行这个exe来开启整个网站。在Asp.Net 下一直没有类似的产品出现,可能是IIS已经非常的强大了&a…

你应该知道的关于SEO和Javascript的6个事实

你应该知道的关于SEO和Javascript的6个事实 了解JavaScript的基础知识已成为SEO专家的一项重要技能,尽管到目前为止,这两个学科之间的关系一直存在争议。 关于SEO和JavaScript的关键问题是发现搜索引擎机器人是否可以正确地感知网站内容并实际评估用户体…

加速,加速,再加速:来自Google的网站加速技巧大全

困扰许多网站所有者很久的一个问题是网站访问速度总是那么慢。想购买独立带宽,预算不允许,想购买CDN加速,价格又太贵。那有没有经济实惠的解决办法呢?从目前的大环境来分析,我们也只有通过技术手段来解决这个问题了。 …

28.分析采集美团网站信息-3

28.分析采集美团网站信息-3 今天又捋一下思路,在兼职,也没时间去坐下来仔细思考分析问题:1.首先获取分类,比如先获取美食,再划分其分类,分类里有火锅、蛋糕、小吃快餐等等后面都显示了共有多少个搜索结果。…

Asp.net压缩网站中的文件

为了说明自定义虚拟路径,这里弄个示例,仅仅用一个压缩包存放一个网站的多个文件。 这个东西是要需要通过实现3个抽象类来实现: System.Web.Hosting.VirtualPathProvider;System.Web.Hosting.VirtualDirectory;System.W…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

网站的SEO以及它和站长工具的之间秘密(转)

博客迁移没有注意 URL 地址的变化,导致百度和 google 这两只爬虫引擎短时间内找不到路。近段时间研究了下国内最大搜索引擎百度和国际最大搜索引擎google的站长工具,说下感受。 百度的站长工具地址:http://zhanzhang.baidu.com/dashboard/ind…

大型网站技术架构(八)网站的安全架构

2019独角兽企业重金招聘Python工程师标准>>> 从互联网诞生起,安全威胁就一直伴随着网站的发展,各种Web攻击和信息泄露也从未停止。常见的攻击手段有XSS攻击、SQL注入、CSRF、Session劫持等。 1、XSS攻击 XSS攻击即跨站点脚本攻击(…