标签:控制 vim 冲突 log test tmp bash network 80端口
在网络环境中,web 服务无疑是最为流行的应用系统。有了 web 站点,企业可以充分展示自己的作品,宣传企业形象。web 站点还为企业提供了与客户交流、电子商务交易平台等丰富的网络应用。接下来我们就可以来安装 httpd 服务了
准备工作:
为了避免发生端口冲突、程序冲突等现象,我们可以使用:
rpm -qa | grep httpd (查询系统中的httpd)
如果有的话 ,使用 :rpm -e httpd --nodeps (nodeps:不检测依赖关系)
Apache 的配置及运行需要几个软件包的支持,因此我们需要从系统光盘中预先安装这些软件及其开发包(devel) 以便提供相应的库和头文件。
依赖包都安装完毕后,我们将下载获得的 httpd 源码包解压并释放到 /usr/src 中,然后切换到源码目录中:
[root@localhost tmp]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/
#-C 指定解压到的位置
配置:
根据服务器的实际应用需要,可以灵活设置不同的定制选项(需要的话可以执行 “./configure --help 获取”)
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
--prefix:指定将 httpd 服务程序安装到那个目录下
--enable-so:启用动态加载模块支持
--enable-rewrite:启用网页地址重写功能
--enable-charset-lite:启动字符集支持
--enable-cgi:启用 CGI 脚本程序支持
接下来,编译及安装:
[root@localhost httpd-2.4.25]# make && make install
& make :进行编译,将源代码转换为可执行的程序
& make install :将编译完的 httpd 程序及相关目录、文件复制到预设的安装目录(--prefix 选项指定)
确认安装结果:[root@localhost /]# /usr/local/httpd/bin/apachectl start # 执行此命令启动服务
启动之后可以执行此命令查看 tcp 的80端口有没有启用:
[root@localhost /]# netstat -anpt | grep 80
tcp6 0 0 :::80 :::* LISTEN 20412/httpd
通过源码编译安装的 httpd 服务,程序路径并不在默认的搜索路径中,执行起来比较麻烦,为了使该服务使用时更加方便,可以为相关程序添加符号链接
[root@localhost httpd-2.4.25]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
[root@localhost httpd-2.4.25]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl
lrwxrwxrwx 1 root root 28 7月 27 17:08 /usr/local/bin/apachectl -> /usr/src/httpd/bin/apachectl
lrwxrwxrwx 1 root root 24 7月 27 17:08 /usr/local/bin/httpd -> /usr/src/httpd/bin/httpd
然后再执行的话就不用输入冗长的路径了,例如,当执行“httpd -v” 命令(查看程序版本)时,相当于执行“/usr/local/httpd/bin/httpd -v”
[root@localhost httpd-2.4.25]# httpd -v
Server version: Apache/2.4.25 (Unix)
Server built: Jul 27 2019 16:48:44
添加 httpd 为系统服务:
Centos 7 系统下,将编译安装的程序添加为系统服务有两种方式:
1、通过 chkconfig 命令添加,然后由 systemctl 进行管理;我们需要建立可控的服务脚本,例如,可将 apachectl 脚本复制为 /etc/init.d/httpd 并在文件开头添加 chkconfig 识别配置
[root@www /]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@www /]# vim /etc/init.d/httpd
#!/bin/bash // shell环境
#chkconfig: 35 85 21 //服务识别参数 在级别3、5中启动 启动和关闭的顺序分别是85、21
#description: Apache HTTP Server //服务描述信息
[root@www /]# chkconfig --add httpd // 将httpd添加为系统服务
2、在/lib/systemd/system/目录下,手动编写以.service结尾的单元 (unit)配置文件。内容如下:
[root@www /]# vim /lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=graphical.target
编写完 httpd.service 文件后,执行如下命令设置 httpd 开机启动:
[root@www /]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@www /]# systemctl is-enabled httpd.service
enabled
httpd.conf 是 httpd 服务的主配置文件。
若要向 Internet 中发布一个 web 站点,需要申请一个合法的 IP地址,并向 DNS服务器提供商注册一个完整的网站名称。
配置httpd服务:编辑主配置文件,查找配置项 ServerName,在附近添加内容,用于设置网站名称
[root@www /]# vim usr/local/httpd/conf/httpd.conf
……//省略部分内容
ServerName www.test.com
……//省略部分内容
修改完毕之后可以使用带“-t ” 选项的 apachectl 命令进行语法检测,显示如下表示正确
[root@www /]# apachectl -t
Syntax OK
部署网页文档:网站根目录位于 /usr/local/httpd/htdocs 下
[root@www /]# cat /usr/local/httpd/htdocs/index.html
<html><body><h1>It works!</h1></body></html>
若想通过域名访问httpd服务器,需要在客户机上指定DNS服务器地址或在hosts文件中增加 httpd服务器的 IP解析记录。
DNS参考文章:https://blog.51cto.com/14227204/2384462
httpd 服务器使用了两种类型的日志:访问日志和错误日志。这两种日志分别为 access_log 和 error_log ,均位于/usr/localhttpd/logs 目录下,通过查看访问日志,可以及时了解 web站点的访问情况。
[root@www /]# tail /usr/local/httpd/logs/access_log
192.168.1.123 - - [27/Jul/2019:18:00:13 +0800] "GET / HTTP/1.1" 200 45
192.168.1.123 - - [27/Jul/2019:18:00:13 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.1.123 - - [27/Jul/2019:18:00:17 +0800] "GET / HTTP/1.1" 304 -
192.168.1.123 - - [27/Jul/2019:18:00:17 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.1.123 - - [27/Jul/2019:18:00:18 +0800] "GET / HTTP/1.1" 304 -
httpd 各主配置项含义如下:
以上只是 httpd中比较主要的全局配置项,还有很多其他的,在此就不一一列举了
除了全局配置项以外,httpd.conf 文件中的大多数配置是包括在区域中的。区域配置项使用一对组合标记,限定了配置项的作用范围,例如,最常见的目录区域配置的形式如下:
在以上区域定义中,设置了一个根目录的区域配置,其中添加的访问控制相关配置只对根目录有效,而不会作用于全局或其他区域。(注意:这里的根目录是指httpd服务器 server root 指定的值,而不是Centos 7 系统的根目录)
标签:控制 vim 冲突 log test tmp bash network 80端口
原文地址:https://blog.51cto.com/14227204/2424170