新睿云

> 弹性云服务器ECS > 云服务器能否用于编程?(下)

云服务器能否用于编程?(下)

作者/来源:新睿云小编 发布时间:2020-04-13

一、Centos7云服务器学习PHP编程准备工作

为了避免发生端口冲突、程序冲突等现象,建议卸载使用RPM方式安装的httpd。

[root@localhost ~]# rpm -e httpd --nodeps

错误:未安装软件包 httpd

Apache的配置及运行需要apr、pcre等软件包的支持,因此应从系统光盘镜像中预先安装这些软件及其开发包(devel),以便提供相应的支持,确保Apache的安装顺利完成。

需要的rpm软件包有:

[root@localhost Packages]# rpm -ivh apr-1.4.8-3.el7.x86_64.rpm

[root@localhost Packages]# rpm -ivh apr-devel-1.4.8-3.el7.x86_64.rpm

[root@localhost Packages]# rpm -ivh cyrus-sasl-devel-2.1.26-20.el7_2.x86_64.rpm

[root@localhost Packages]# rpm -ivh expat-devel-2.1.0-8.el7.x86_64.rpm

[root@localhost Packages]# rpm -ivh libdb-devel-5.3.21-19.el7.x86_64.rpm

[root@localhost Packages]# rpm -ivh openldap-devel-2.4.40-13.el7.x86_64.rpm

[root@localhost Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm

[root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm

[root@localhost Packages]# rpm -ivh pcre-devel-8.32-15.el7_2.1.x86_64.rpm

[root@localhost Packages]# rpm -ivh pcre-8.32-15.el7_2.1.x86_64.rpm

按照顺利安装完成。

二、源码编译安装

将下载好的源代码httpd-2.4.25.tar.gz上传到服务器本地,接下来开始编译安装。

1.解包

[root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src

[root@localhost ~]# cd /usr/src/httpd-2.4.25/

2.配置

根据服务器的实际应用需要,可以灵活设置不同的定制项,若要获知可用的各种配置选项及其含义,可以执行“ ./configure --help”命令,“/”表示当前目录,下面配置一些最常用的配置项:

 安装命令1

安装命令1

[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

上述配置命令中,各选项的含义:

CentOS 7 利用Apache搭建Web网站服务

3.编译及安装

完成配置后,执行“make”命令进行编译,将源代码转换为可执行的程序;然后执行“make install”命令完成最后的安装过程。

[root@localhost httpd-2.4.25]# make && make install

三、确认安装目录

由于指定的是安装目录为/usr/local/httpd,因此httpd服务的各种程序、模块、帮助文件都将复制到此目录下。

 安装命令2

安装命令2

[root@localhost httpd-2.4.25]# ls /usr/local/httpd

bin    cgi-bin  error   icons    logs  manual

build  conf     htdocs  include  man   modules

1.在安装后的/usr/local/httpd目录下,主要子目录的用途:

CentOS 7 利用Apache搭建Web网站服务

2.httpd服务的目录结构:

主要的目录和文件

服务目录:/usr/local/httpd/

主配置文件:/usr/local/httpd/conf/httpd.conf

网页目录:/usr/local/httpd/htdocs/

服务脚本:/usr/local/httpd/bin/apachectl

执行程序:/usr/local/httpd/bin/httpd

访问日志: /usr/local/httpd/log/access_log

错误日志: /usr/local/httpd/log/error_log

四、优化执行路径

通过源码安装的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 30 7月  13 19:20 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl

lrwxrwxrwx. 1 root root 26 7月  13 19:20 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd

这样在执行相关的命令就不需要输入冗长的路径了。比如:

[root@localhost httpd-2.4.25]# httpd -v                  //查看程序版本

Server version: Apache/2.4.25 (Unix)

Server built:   Jul 13 2019 18:49:20

五、添加httpd系统服务

1.CentOS 7系统下,将编译安装的程序添加为系统服务有两种方式:

1.1通过chkconfig命令添加为系统服务,然后由systemctl进行管理(注意,通过这种方式不能设置程序开机自启动);

1.2在/lib/systemd/system/目录下,手动编写以.service结尾的单元(unit)配置文件。

1.3使用chkconfig添加系统服务

若希望将httpd添加为系统服务,以便通过chkconfig进行管理,需要建立可控的服务器脚本。

[root@localhost ~]# cp /usr/local/httpd//bin/apachectl /etc/init.d/httpd

[root@localhost ~]# vim /etc/init.d/httpd             //添加如下内容

#!/bin/bash

# chkconfig: 35 85 21       

//服务识别参数,在级别3、5中启动;启动和关闭的顺序分别为85、21

#description: Startup script for the Apache HTTP Server

//服务描述信息,可以忽略

                                                        …………                //忽略部分内容

[root@localhost httpd-2.4.25]# chkconfig --add httpd

//添加httpd为系统服务

[root@localhost httpd-2.4.25]# systemctl start httpd

//启动httpd服务

[root@localhost httpd-2.4.25]# chkconfig --level 35 httpd on

//设置httpd服务为开机自启动

[root@localhost httpd-2.4.25]# systemctl is-enabled httpd

httpd.service is not a native service, redirecting to /sbin/chkconfig.

Executing /sbin/chkconfig httpd --level=5

enabled

//查看httpd服务是否为开机自启动,enabled为开机自启动

2.建立[service].service配置文件

/lib/systemd/system/目录下,建立一个以.service结尾的单元(unit)配置文件,用于控制httpd服务。配置内容分为三部分:

2.1控制单元(unit)的定义;

2.2服务[service]的定义;

2.3安装部分[install]。

具体内容,如下:

[root@localhost ~]# 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

配置文件的个配置项的作用,如图所示:

 安装命令3

安装命令3

CentOS 7 利用Apache搭建Web网站服务

httpd.service文件编写完成后,就可以设置开机自启动了

[root@localhost ~]# systemctl enable httpd                           //设置开机自启动

Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

[root@localhost ~]# systemctl is-enabled httpd                 //查看自启动服务状态

enabled

通过Apache搭建的httpd服务已经完成!客户端就已经可以访问了,但是我们来认识一些基本的配置:

六、配置并启动服务

1.配置httpd服务

编辑httpd服务的主配置文件httpd.conf,查找到配置项“ServerName”去除前面“#”号即可!(如果有合法的域名,建议修改成合法的域名,将来通过域名访问)

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf

                       …………             //省略部分内容

ServerName www.example.com:80

                       …………             //省略部分内容

修改完成后,建议使用带“-t”选项的apachectl命令对配置文件进行语法检查!

[root@localhost ~]# apachectl -t

Syntax OK

2.启动httpd服务

[root@localhost ~]# systemctl start httpd         //启动httpd服务

[root@localhost ~]# netstat -anpt | grep httpd           //查看监听端口

tcp6       0      0 :::80                   :::*                    LISTEN      59183/httpd        

七、部署网页文档

httpd服务器已提供了一个名为index.html的测试网页,做为访问网站的默认首页(可以自行编辑)!

[root@localhost ~]# cat /usr/local/httpd/htdocs/index.html

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

八、客户机访问

客户机通过IP访问

 客户机通过IP访问

客户机通过IP访问

CentOS 7 利用Apache搭建Web网站服务

如果需要使用https的方式访问,则需要:

[root@localhost yum.repos.d]# yum -y install mod_ssl

//安装所选的ssl模块

[root@localhost yum.repos.d]# systemctl restart httpd

//重新启动httpd服务

客户机访问测试:

 客户机访问测试

客户机访问测试

CentOS 7 利用Apache搭建Web网站服务

使用https访问,默认的首页时,将显示APache官网首页!

如果需要域名访问,需要搭建DNS服务,搭建DNS服务可以参考博文CentOS 7搭建DNS服务

八、查看Web站点的访问情况

httpd服务器使用两种类型的日志:访问日志和错误日志。

通过查看访问日志文件access_log,可以及时了解Web站点的访问情况。

访问日志中每行对应一条访问记录,记录了客户机的IP地址、访问服务器的日期和时间、请求的网页对象等信息。

[root@localhost ~]# tail /usr/local/httpd/logs/access_log

192.168.1.100 - - [13/Jul/2019:20:29:40 +0800] "GET / HTTP/1.1" 200 45

通过查看错误日志err_log,可以为排查服务器运行故障提供参考依据。

错误日志文件中每行对应一条错误记录,记录了发生错误的日期和时间、错误事件类型、错误时间的内容描述等。

上述过程是使用Apache搭建Web服务器的基本步骤,其中涉及httpd.conf配置文件的改动量非常少,要搭建一台简单的Web服务器还是非常简单的。

我们来认识httpd服务的主要配置文件及各项的含义:

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf

ServerRoot "/usr/local/httpd"

Listen 80

User daemon

Group daemon

ServerAdmin you@example.com

ServerName www.example.com:80

DocumentRoot "/usr/local/httpd/htdocs"

DirectoryIndex index.html

ErrorLog "logs/error_log"

LogLevel warn

CustomLog "logs/access_log" common

PidFile "logs/httpd.pid"

AddDefaultCharset UTF-8

Include conf/extra/httpd-default.conf

上述设置行中,各全局配置项的含义,如图:

 全局配置选项

全局配置选项

CentOS 7 利用Apache搭建Web网站服务

以上配置项是Httpd.conf文件中主要的全局配置项,还有很多其他的配置项,在此就不一一介绍了,如果有需要可以查看Apache服务器中的相关帮助手册。

CentOS系统云服务器宝塔面板安装以及微信小程序服务器搭建

centos系统防御DDoS,防御黑客攻击我们是认真的!


热门标签
new year
在线咨询
咨询热线 400-1515-720
投诉与建议
{{item.description}}

—您的烦恼我们已经收到—

我们会将处理结果发送至您的手机

请耐心等待