小知识:linux服务器系统中手动配置lamp服务器的经验分享

lamp是linux、apache、mysql、php/perl/python的简称。它所组成的各组件都是开源软件,因此很方便自由的获取,导致这些组件的广泛使用,并不断完善发展,初步形成新的软件系统格局,并可能成为开源软件系统工程化的核心模式。

  要安装比较新的httpd我们就必须安装比较新的apr。红帽6上就不需要再指定安装apr了,因为它默认安装的版本比较新。但是我们这里使用的是红帽5.8的版本,它给我们安装的apr版本有点老,我们要安装新版本的apr,是不是老版本的apr就要卸载了呢?这不是的,老版本千万不能卸载,可能会有依赖;那升级呢?也是不行的,升级后老版本也是会没的。那有的朋友该问了,那两个版本在是不是该有冲突了。我们只能使用多版本并存的机制,只要把编译安装的新版本和老版本安装在不同的地方就可以了。

  rpm包安装: /bin, /sbin, /usr/bin, /usr/sbin ####二进制所在位置 /lib, /usr/lib ####库文件所在位置 /etc ####配置文件所在位置 /usr/share/{doc,man}####帮助文档/手册 编译安装: /usr/local/ ####定义安装第三方软件包 bin, sbin ####二进制所在位置 lib ####库文件所在位置 etc ####配置文件所在位置 share/{doc,man} ####帮助文档/手册

  我们这样安装,看上去还算工整,但是我们还要想到到时候要是想要卸载某个软件怎么办?还要一个一个的找吗?那不就变麻烦了。所以我们这样调整,就是定义安装第三方软件包依旧放在/usr/local/下,并且还要创建以软件名命名的目录(为了好找),然后把它有关的文件都放在这个目录下面。但是这样安装又出现了问题,它的二进制程序不在path环境里面,那就不能直接执行命令了,那就修改path变量;还要修改库文件搜索路径;还要修改man的配置文件等。

  例如: /usr/local/apr/

  bin, sbin, lib, includes, etc, share/man

  下面我们就开始手动配置apr及apr-util,并且如何安装httpd。(提示:这里要下载源程序包)

  第一步:安装开发环境

  第二步:安装apr源程序

  我们这里是在我们的服务器上下载的,大家要是做的话去官方网站(apr.apache.org)上下载源程序包,我们这里将它们放到了主目录下面。如果不想放到这里的话可以放到/usr/local/src下面,这里专门放源码的。下面我们就准备安装apr【提示:如果你系统的时间比下载源码包的时间还要早的话,这样是会出错的。如果时间不对的话可以用hwclock –s,这样将软件时间同步为硬件时间。】

  下面我们就要将软件进行解压后进行安装。安装完成后第一个包就装好了。

%小知识:linux服务器系统中手动配置lamp服务器的经验分享-猿站网-插图

  [root@localhost apr-1.4.6]# make [root@localhost apr-1.4.6]# make install

  第三步:安装apr-util

  安装apr-util和我们安装apr是一样的。不过它指定路径的时候还要指定apr装在什么地方,如果不指定的话,它会自动找老版本的(05行最后面的红色就是指定的apr安装路径)。

  [root@localhost ~]# tar xf apr-util-1.5.2.tar.bz2 [root@localhost ~]# cd apr-util-1.5.2 [root@localhost apr-util-1.5.2]# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr [root@localhost apr-util-1.5.2]# make [root@localhost apr-util-1.5.2]# make install

  第四步:安装httpd

  在安装httpd之前我们还要安装一个模块,这个模块是pcre。除了配置那些模块还有可能会用到–enable –deflate配置压缩模块的. –enable –expires过期首部控制。如果要以fastcgi模式工作的话必须启用—enable-proxy-fcgi。这里我们是以模块的方式工作,暂时不用启用。–enable-mpms-shared=all在版本2.2中是没有的,但是在版本2.4中就有了。apache是支持mpm(躲到处理模块)有三种形式,prefork,worker,event。支持哪一种在编译的时候已经确定了。在2.4的时候以模块化的方式使用mpm,也就是可以同时将这三种模块一并写进来用哪个可以切换哪个。听起来非常棒,但是php以模块化方式给mpm结合的时候,如果使用prefork,php很简单。但是你使用的是worker或event我们的php必须编译成zts格式,如果你想灵活使用的话,还要编辑两次php。在2.2默认mpm是prefork ,在2.4默认的mpm是event。–with-mpm=mpm 指定哪一个为默认。【提示:详细内容就在图中】

  [root@localhost ~]# tar xf httpd-2.4.4.tar.bz2 [root@localhost ~]# cd httpd-2.4.4 [root@localhost httpd-2.4.4]# yum -y install pcre-devel ####安装pcre模块

  [root@localhost httpd-2.4.4]# ./configure –prefix=/usr/local/apache –sysconfdir=/etc/httpd –enable-so –enable-rewirte –enable-ssl –enable-cgi –enable-cgid –enable-modules=most –enable-mods-shared=most –enable-mpms-shared=all –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util

%小知识:linux服务器系统中手动配置lamp服务器的经验分享-1猿站网-插图

  第五步:关闭selinux

  之所以将这一项作为一大步来说是因为关闭selinux,不关闭的话,你的服务器启动不了。默认基本上是开启的,我们要把它给关掉。

  1、暂时性的关闭

%小知识:linux服务器系统中手动配置lamp服务器的经验分享-2猿站网-插图

  2、永久性关闭

  [root@localhost httpd-2.4.4]# vim /etc/selinux/config

%小知识:linux服务器系统中手动配置lamp服务器的经验分享-3猿站网-插图

  第六步:启动web服务器

  在/usr/local/paache下面有一个脚本可以启动服务,脚本名称为bin/apachectl。

%小知识:linux服务器系统中手动配置lamp服务器的经验分享-4猿站网-插图

  这里给大家说一下/usr/local/apache里面的内容,顺便把网页的内容添加hello apache,这时候我们查看一下。

%小知识:linux服务器系统中手动配置lamp服务器的经验分享-5猿站网-插图

%小知识:linux服务器系统中手动配置lamp服务器的经验分享-6猿站网-插图

  第七步:将.pid文件放到/var/run下

  我们一般都是将生成的.pid文件放到/var/run下面的,但是这里的.pid文件都放到了/usr/local/apache/logs下面,但是我们的/logs/下面都是放日志的,放这些.pid文件显然是不合适的,我们这里编辑配置文件(/etc/httpd/httpd.conf)将它的.pid文件都生成到/var/run下面。我们在配置文件中添加的内容是:pidfile “/var/run/httpd.pid”。【提示:我们还可以验证,当你没有输入这些内容的时候,关闭服务器(bin/apachectl stop)我们再用netstat –tnlp查看一下80端口,已经不再处于监听状态,我们在查看一下logs下面已经没有了.pid文件。这时候在配置文件中添加pidfile “/var/run/httpd.pid”,我们发现.pid文件已经放到了/var/run/下面了,并且名字为httpd.pid。】

%小知识:linux服务器系统中手动配置lamp服务器的经验分享-7猿站网-插图

%小知识:linux服务器系统中手动配置lamp服务器的经验分享-8猿站网-插图

  第八步:启动方便

  我们这时候虽然能启动起来但是启动总是那么的不方便,这时候我们就要写脚本来让它方便起来了。将文件放在/etc/init.d/httpd里面,编辑完成后给它权限就行了,直接启动就行了。接下来我们让它开机后自动启动起来。

  [root@localhost apache]# vim /etc/init.d/httpd [root@localhost apache]# chmod x /etc/init.d/httpd

  #!/bin/bash # # httpd startup script for the apache http server # # chkconfig: – 85 15 # description: apache is a world wide web server. it is used to serve \ # html files and cgi. # processname: httpd # config: /etc/httpd/conf/httpd.conf # config: /etc/sysconfig/httpd # pidfile: /var/run/httpd.pid # source function library. . /etc/rc.d/init.d/functions if [ -f /etc/sysconfig/httpd ]; then . /etc/sysconfig/httpd fi # start httpd in the c locale by default. httpd_lang=${httpd_lang-“c”} # this will prevent initlog from swallowing up a pass-phrase prompt if # mod_ssl needs a pass-phrase from the user. initlog_args=”” # set httpd=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server # with the thread-based “worker” mpm; be warned that some modules may not # work correctly with a thread-based mpm; notably php will refuse to start. # path to the apachectl script, server binary, and short-form for messages. apachectl=/usr/local/apache/bin/apachectl httpd=${httpd-/usr/local/apache/bin/httpd} prog=httpd pidfile=${pidfile-/var/run/httpd.pid} lockfile=${lockfile-/var/lock/subsys/httpd} retval=0 start() { echo -n $”starting $prog: ” lang=$httpd_lang daemon –pidfile=${pidfile} $httpd $options retval=$? echo [ $retval = 0 ]

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Kubernetes 应用问题的通用排查思路

2023-3-17 18:14:42

建站知识

小知识:Apache Request-URI Too Large错误解决方法

2023-3-17 18:29:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索