开放原子开发者工作坊 Apache服务【手工编译安装】

Apache服务【手工编译安装】

简介:ApacheHTTPServer是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux、Unix、Windows等多种平台。Apache的主要特点:1.开放源代码2.跨平台服务3.支持各种网页编程语言4.模块化设计5.运行非常稳定6.良好的安全性环境:RHEL...


简介:

Apache HTTP Server 是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux UnixWindows等多种平台。

 

Apache的主要特点:

1.开放源代码

2.跨平台服务

3.支持各种网页编程语言

4.模块化设计

5.运行非常稳定

6.良好的安全性

 

环境:RHEL6.2

一.Apache服务总览:

1.端口:80http) https443

2.主配置文件(/etc/httpd/)

3.主页存放路径为  /usr/local/apache/htdocs/index.html

准备工作:

关闭防火墙、SELinux,并能够和宿主机互联互通。



二、配置思路:

1.在宿主机创建文件夹,并把相关的压缩包放进去,进行共享;

2.使用tar进行解压缩;

3.将解压缩过的包,放入固定的目录中;

4.所需要的软件包:gcc 、 gcc-c++  、 make  、 、pcre-devel

5.使用手工编译安装;

6.修改主配置文件;

 

##关闭防火墙和SELinux,并测试与宿主机的连通性。

[root@server02 ~]# service iptables stop

iptables:清除防火墙规则:                                 [确定]

iptables:将链设置为政策 ACCEPTfilter                    [确定]

iptables:正在卸载模块:                                   [确定]

[root@server02 ~]# setenforce 0

[root@server02 ~]# ping 192.168.100.111

PING 192.168.100.111 (192.168.100.111) 56(84) bytes of data.

64 bytes from 192.168.100.111: icmp_seq=1 ttl=64 time=0.167 ms

64 bytes from 192.168.100.111: icmp_seq=2 ttl=64 time=0.321 ms

 

##在宿主机的桌面上创建文件夹LAMP,右击属性-单击共享,输入everyone,单击添加,给予权限读取、写入

wKioL1V-9kCiGD1kAAKneDs428E441.jpg


##右击属性,选择高级共享-权限-添加-输入everyone-检查名称-单击确定-给予完全控制权限,就OK 

wKiom1V-9JPSKAEWAAO75kz_z9U905.jpg


##运行secpol.msc,打开本地安装策略,用户权限分配-拒绝从网络访问这台计算机中-删除来宾用户。

##注:(在此之前要开启来宾用户)

wKioL1V-9kHDN2enAAQWxg234mI601.jpg


##在安全选择中,网络访问中,选择仅来宾。以上步骤完成后,就可以在Linux上进行访问了,

wKiom1V-9JTSg9XYAAVpylvf7Tg674.jpg


[root@server02 ~]# smbclient -L //192.168.100.111  ##Linux上查看Windows所共享的文件目录/LAMP

Enter root's password: 

session request to 192.168.100.111 failed (Called name not present)

Domain=[QIAN-PC] OS=[Windows 7 Ultimate 7601 Service Pack 1] Server=[Windows 7 Ultimate 6.1]

 

Sharename       Type      Comment

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

123             Disk      

ADMIN$          Disk      远程管理

C$              Disk      默认共享

D$              Disk      默认共享

E$              Disk      默认共享

F$              Disk      默认共享

G$              Disk      默认共享

IPC$            IPC       远程 IPC

LAMP            Disk      

 

Users           Disk      

session request to 192.168.100.111 failed (Called name not present)

session request to 192 failed (Called name not present)

session request to *SMBSERVER failed (Called name not present)

NetBIOS over TCP disabled -- no workgroup available

 

##创建一个空目录名为lamp ,将Windows所共享的目录挂载到lamp目录中

[root@server02 ~]# mkdir /lamp

[root@server02 ~]# mount.cifs //192.168.100.111/LAMP /lamp

Password: 

[root@server02 ~]# 

 

##切换到lamp目录下,可以看到安装Apache所必须的压缩包,

##注:(压缩包放在LAMP中一起共享出去的)

[root@server02 ~]# cd /lamp/

[root@server02 lamp]# ls

apr-1.4.6.tar.gz  apr-util-1.4.1.tar.gz  httpd-2.4.2.tar.gz

 

##使用命令tar进行解压缩,并指定解压后的路径为/opt

[root@server02 lamp]# tar zxvf apr-1.4.6.tar.gz -C /opt

[root@server02 lamp]# tar zxvf httpd-2.4.2.tar.gz -C /opt

[root@server02 lamp]# tar zxvf apr-util-1.4.1.tar.gz -C /opt

[root@server02 lamp]# cd /opt

[root@server02 opt]# ls

apr-1.4.6  apr-util-1.4.1  httpd-2.4.2

 

##aprapr-util以解压过后的文件拷贝到httpd-2.4.2/srclib/,在进行编译

[root@server02 opt]# cp -R apr-1.4.6/ /opt/httpd-2.4.2/srclib/apr

[root@server02 opt]# cp -R apr-util-1.4.1/ /opt/httpd-2.4.2/srclib/apr-util

[root@server02 opt]# 

 

##挂载光盘到mnt目录下,

[root@server02 opt]# mount /dev/sr0 /mnt  

mount: block device /dev/sr0 is write-protected, mounting read-only

##使用命令切换到yum.repo.d/下,编辑abc.repo ,

[root@server02 opt]# cd /etc/yum.repos.d/

[root@server02 yum.repos.d]# vi abc.repo

[abc]

name=test

baseurl=file:///mnt

enabled=1

gpgcheck=0

 

##完成后输入命令yum list,验证yum有没有安装成功,以下就是安装成功的模板,这字复制了一部分,仅供参考。

[root@server02 yum.repos.d]# yum list

Loaded plugins: product-id, refresh-packagekit, security, subscription-manager

Updating certificate-based repositories.

abc                                                                      | 4.0 kB     00:00 ... 

abc/primary_db                                                           | 3.1 MB     

00:00 ... 

 

##在手工编译之前,首先要安装gcc gcc-c++ 环境,这里安装需要依赖性关系,所以使用yum 进行安装

[root@server02 yum.repos.d]# yum install gcc -y

[root@server02 yum.repos.d]# yum install gcc-c++ -y

 

##安装make包,系统一般都带你安装好的,可以是rpm 进行查看,如果没有进行安装,你懂得。

[root@server02 yum.repos.d]# rpm -q make

make-3.81-19.el6.x86_64

##安装pcre-devel包,这个包是根据系统的,比如系统是64位的,就安装64位的包

[root@server02 yum.repos.d]# rpm -ivh /mnt/Packages/pcre-devel-7.8-3.1.el6.x86_64.rpm 

warning: /mnt/Packages/pcre-devel-7.8-3.1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Preparing...                ########################################### [100%]

   1:pcre-devel             ########################################### [100%]

[root@server02 yum.repos.d]# 

 

##切换到opt下的http-2.4.2/,使用./configure 进行配置

[root@server02 yum.repos.d]# cd /opt/httpd-2.4.2/

[root@server02 httpd-2.4.2]# ./configure \

> --prefix=/usr/local/apache \  ##指定将httpd服务程序安装到那个目录,如/usr/local/apache;

> --enable-so \   ##启用动态加载模块支持,使httpd具备进一步扩展功能的能力;

> --enable-rewrite \  ##启用网页地址重写功能,用于网站优化及目录迁移维护;

> --enable-mods-shared=most \  ## 明确指明要以DSO方式编译的模块,<MODULE-LIST>为空格分隔的模块名列表、all或者mostall表示包含所有模块most表示包含大部分模块

> --with-mpm=worker \  ##先择Apache多路处理模块,<MPM>={beos|event|worker|prefork|mpmt_os2}preforkUnix系统下默认处理模块,它将运行一个非线程型的、预派生的Web服务器,适合于没有线程安全库,需要避免线程兼容性问题的系统,它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。

> --disable-cgid \ 

> --disable-cgi  ##启用CGI脚本程序支持,便于扩展网站的应用访问能力。

 

## 完成配置后,执行“make”进行编译,将源代码转换为可执行的程序;然后执行“make install”完成最后的安装过程。(其中make的过程可能需要较长的时间)

[root@server02 httpd-2.4.2]# make

[root@server02 httpd-2.4.2]# make install

 

 

## 这里请注意一下!如果Linux服务器上默认安装了httpd的话(rpm -qa|grep httpd查看) 

## 会有 /etc/init.d/httpd 这个脚本文件的,所以你也可以用以下方法直接生成这个文件来覆盖它

## 那么下次就可以用 service httpd start 来启动了 

## 如果需要区分开来的话就使用下面的方式 
  ## 首先以apachectl脚本为模板生成httpd服务控制脚本:

[root@server02 httpd-2.4.2]# grep -v "#" /usr/local/apache/bin/apachectl > /etc/init.d/httpd 

  ## vi编辑Apache服务控制脚本/etc/init.d/httpd

[root@server02 httpd-2.4.2]# cd /etc/init.d/

[root@server02 init.d]# vi httpd 

 ## 在文件最前面插入下面的行,使其支持chkconfig命令: 

#!/bin/sh

    # chkconfig:2345 85 15

# description:Apache is a World Wide Web server.

 

 

## 保存后退出vi编辑器,执行下面的命令增加httpd服务控制脚本执行权限

[root@server02 init.d]# chmod +x /etc/init.d/httpd

## 执行下面的命令将http服务加入到系统服务:

[root@server02 init.d]# chkconfig --add httpd

 ##  执行下面的命令检查httpd服务的状态

[root@server02 init.d]# chkconfig --list httpd

httpd          0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭

## 执行下列命令将开启http35级别

[root@server02 init.d]# chkconfig --level 35 httpd on

[root@server02 init.d]# cd /usr/local/apache/conf/

[root@server02 conf]# vim httpd.conf 

 

Listen 192.168.100.20:80  ##设置服务器监听的IP和端口  

#Listen 80

 

ServerName server02.benet.com  ##设置服务器用于辨识自己的主机名和端口号(用IP代替)。 

ServerName server02.benet.com:80  [root@server02 conf]# service httpd start   ##启动httpd服务

 

 

##完成后在宿主机上进行访问:


wKioL1V-9kKAk3CPAAECCMuVXKs454.jpg

[root@server02 conf]# cat /usr/local/apache/htdocs/index.html  ##主页存放路径

<html><body><h1>It works!</h1></body></html>



   有脚本哦!

转载于:https://blog.51cto.com/duo1314/1662191

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐

  • 浏览量 79
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献13条内容