获取中...

-

Just a minute...

前提

Ubuntu18.04

将网络设置为nat模式,保证可以连接网络

目的

掌握ApacheWeb服务器的安装、基本配置

介绍

Apache HTTP服务器是世界上使用最广泛的Web服务器。它提供了许多强大的功能,包括可动态加载的模块,强大的媒体支持以及与其他流行软件的广泛集成

ApacheWeb服务器配置

设置静态ip

在编辑虚拟机设置里面的网络适配器类型改为NAT模式得到子网掩码和网关(子网掩码:255.255.255.0 网关:192.168.75.2)

使用ifconfig查看网卡名称和ip(网卡名称ens33,ip是192.168.75.131)

修改相关的配置文件(sudo vi /etc/network/interfaces)

安装Apache2

命令:sudo apt-get install apache2

查看是否安装成功

命令:apache2 -version

配置UFW防火墙

为了配置Apache,我们首先需要允许外部访问我们系统的某些Web端口,并在UFW防火墙上允许Apache。列出UFW应用程序配置文件为了配置防火墙。

命令:sudo ufw app list

在UFW上允许Apache并验证其状态,允许Apache将为网络流量打开端口80,同时为服务器提供最大的安全性。

命令:sudo ufw allow ‘Apache’

配置Apache

步骤1:

验证Apache服务是否正在运行

输入命令:sudo systemctl status apache2

状态:active(running)验证apache2服务是否正在运行

步骤2:

验证Apache是否正常运行并侦听IP地址

还可以通过从Apache服务器请求页面来验证Apache是否正在运行。 使用服务器的IP来访问Apache登录页面。

了解服务器的IP: hostname -I

然后在Web浏览器输入IP或者输入localhost

此时Apache配置成功

Apache 文件和目录

/var/www/html :实际的Web内容(默认情况下只包含之前看到的默认Apache页面)由/var/www/html目录提供。 这可以通过更改Apache配置文件来更改。

/etc/apache2 :Apache配置目录。 所有Apache配置文件驻留在此处。

/etc/apache2/apache2.conf的主配置文件。 这可以修改为对Apache全局配置进行更改。 该文件负责在配置目录中加载许多其他文件。

/etc/apache2/ports.conf :该文件指定Apache将监听的端口。 默认情况下,当启用提供SSL功能的模块时,Apache会监听端口80,并在端口443上进行监听。

/etc/apache2/sites-available/ :可以存储每个站点“虚拟主机”的目录。 Apache不会使用此目录中找到的配置文件,除非它们链接到sites-enabledsites-enabled目录(见下文)。 通常,所有服务器块配置都在此目录中完成,然后通过使用a2ensite命令链接到另一个目录来启用。

/etc/apache2/sites-enabled/ :存储启用了每个站点“虚拟主机”的目录。 通常,这些是通过链接到具有a2ensite的sites-available目录中找到的配置文件创建的。 Apache在启动或重新加载以编译完整配置时读取此目录中找到的配置文件和链接。

/etc/apache2/conf-available/ /etc/apache2/conf-enabled/ :这些目录与sites-availablesites-enabled目录具有相同的关系,但用于存储不属于虚拟主机 conf-available目录中的文件可以使用a2enconf命令启用,并使用a2enconf命令禁用。

/etc/apache2/mods-available/ /etc/apache2/mods-enabled/ :这些目录分别包含可用和启用的模块。 以.load结尾的文件包含加载特定模块的片段,而以.conf结尾的文件包含这些模块的配置。 可以使用a2enmoda2dismod命令启用和禁用模块。

/var/log/apache2/access.log :默认情况下,对Web服务器的每个请求都记录在此日志文件中,除非Apache被配置为执行其他操作。

var/log/apache2/error.log :默认情况下,所有错误都记录在此文件中。 Apache配置中的LogLevel指令指定错误日志将包含多少细节。

建立基于IP地址的虚拟主机

添加一块虚拟网卡

命令:ifconfig

查看当前网卡配置,打开配置文件/etc/network/interfaces

命令:cat /etc/network/interfaces

选择添加我们自己的网卡配置,第一个网卡(ens33)配置一定要是外网的,如果配置成内网的,系统不能上外网。

添加一个ip是192.168.75.135的虚拟网卡

命令:vi /etc/network/interfaces

添加:

1
2
3
auto ens33:1
iface ens33:1 inet static
address 192.168.75.135

重启之后生效,ifconfig命令查看

此时有两块网卡,ip分别是192.168.75.134和192.168.75.135

设置域名:

ysm1.com对应192.168.75.134

ysm2.com对应192.168.75.135

修改host文件,添加

1
2
192.168.75.134  ysm1.com
192.168.75.135 ysm2.com

命令:sudo vi /etc/hosts

默认情况下启用的服务器块能够提供来自 /var/www/html的文档。 但是,我们将在/var/www/创建一个目录,保留默认目录

建立两个虚拟主机的文档根目录及相应的测试页面

命令:

sudo mkdir -p /var/www/ysm1.com/html

sudo mkdir -p /var/www/ysm2.com/html

分配目录的所有权

命令:

sudo chown -R $USER:$USER /var/www/ysm1.com/html

sudo chown -R $USER:$USER /var/www/ysm2.com/html
sudo chmod -R 755 /var/www/ysm1.com

sudo chmod -R 755 /var/www/ysm2.com

然后创建一个索引页面,如果Apache运行我们的域名,我们以后可以访问它们进行测试。 通过编辑器或创建HTML文件

创建ysm1的页面

命令:

vi /var/www/ysm1.com/html/index.html

编辑ysm1 ip:192.168.75.134

创建ysm2的页面

命令:

vi /var/www/ysm2.com/html/index.html

编辑ysm2 ip:192.168.75.135

Apache需要一个虚拟主机文件来提供服务器的内容。 已经创建了用于此目的的默认配置文件,但我们将为自定义配置创建一个新配置文件

配置ysm1

命令:sudo vi /etc/apache2/sites-available/ysm1.com.conf

输入域名的以下自定义配置详细信息

1
2
3
4
5
6
7
8
<VirtualHost *:80>
ServerAdmin admin@ysm1.com
ServerName ysm1.com
ServerAlias www.ysm1.com
DocumentRoot /var/www/ysm1.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

配置ysm2

命令:sudo vi /etc/apache2/sites-available/ysm2.com.conf

输入域名的以下自定义配置详细信息

1
2
3
4
5
6
7
8
<VirtualHost *:80>
ServerAdmin admin@ysm2.com
ServerName ysm2.com
ServerAlias www.ysm2.com
DocumentRoot /var/www/ysm2.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

启用域配置文件

命令:

sudo a2ensite ysm1.com.conf

sudo a2ensite ysm2.com.conf

输出将建议激活新配置,但我们可以在运行以下禁用原始配置文件的命令后集体执行此操作

输入命令:sudo a2dissite 000-default.conf

最后输入命令:systemctl reload apache2

然后测试是否存在任何配置错误:

sudo apache2ctl configtest

报错AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message

输入以下命令以解决上述错误:

echo “ServerName ysm1.com” | sudo tee /etc/apache2/conf-available/servername.conf

sudo a2enconf servername

systemctl reload apache2

再次输入sudo apache2ctl configtest测试

这次只输出Syntax OK,成功

打开网页输入ip(192.168.75.134和192.168.75.135)以及域名(ysm1.com和ysm2.com)测试

如图所示,配置成功

建立基于名字的虚拟主机

思路:在同一主机上针对相同的ip地址和端口号建立基于不同域名的虚拟主机。

让m416.ysm.com和awm.ysm.com对应IP地址192.168.75.136

新建一个名为ens33:2,ip为192.168.75.136的虚拟网卡

命令:vi /etc/network/interfaces

添加:

1
2
3
auto ens33:2
iface ens33:2 inet static
address 192.168.75.136

重启生效

Ifconfig查看

在/etc/hosts文件中添加

1
2
192.168.75.136 m416.ysm.com
192.168.75.136 awm.ysm.com

命令:vi /etc/hosts

建立两个虚拟主机的文档根目录及相应的测试页面

命令:

sudo mkdir -p /var/www/m416/ysm.com/html

sudo mkdir -p /var/www/awm/ysm.com/html

分配目录的所有权

命令:

sudo chown -R $USER:$USER /var/www/m416/ysm.com/html

sudo chown -R $USER:$USER /var/www/awm/ysm.com/html
sudo chmod -R 755 /var/www/m416/ysm.com

sudo chmod -R 755 /var/www/awm/ysm.com

创建m416页面,编辑welcome to named_based m416.ysm.com

命令:

vi /var/www/m416/ysm.com/html/index.html

添加welcome to named_based m416.ysm.com

创建awm页面,welcome to named_based awm.ysm.com

vi /var/www/awm/ysm.com/html/index.html

添加welcome to named_based awm.ysm.com

Apache需要一个虚拟主机文件来提供服务器的内容。 已经创建了用于此目的的默认配置文件,但我们将为自定义配置创建一个新配置文件

配置m416.ysm.com

命令:sudo vi /etc/apache2/sites-available/m416.ysm.com.conf

添加:

1
2
3
4
5
6
7
8
<VirtualHost *:80>
ServerAdmin admin@m416.ysm.com
ServerName m416.ysm.com
ServerAlias m416.ysm.com
DocumentRoot /var/www/m416/ysm.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

配置awm.ysm.com

命令:sudo vi /etc/apache2/sites-available/awm.ysm.com.conf

添加:

1
2
3
4
5
6
7
8
<VirtualHost *:80>
ServerAdmin admin@awm.ysm.com
ServerName awm.ysm.com
ServerAlias awm.ysm.com
DocumentRoot /var/www/awm/ysm.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

启用域配置文件

命令:

sudo a2ensite m416.ysm.com.conf

sudo a2ensite awm.ysm.com.conf

输出将建议激活新配置,但我们可以在运行以下禁用原始配置文件的命令后集体执行此操作

输入命令:sudo a2dissite 000-default.conf

测试是否存在任何配置错误:

sudo apache2ctl configtest

Syntax OK说明配置成功

测试:

打开浏览器,分别输入m416.ysm.com和awm.ysm.com

建立基于别名的基于访问的虚拟主机

创建目录

mkdir /var/www/html/YSM*

开启证能,修改配置文件httpd.conf

命令:

vi /etc/httpd/httpd.conf

输入

1
2
3
4
5
<Directory "/var/www/html">
AllowOverride All // 默认是 none ,这里改为 all
Order allow,deny
Allow from all
</Directory>

给需要认证的目录添加配置,修改httpd.conf文件,添加如下内容

1
2
3
4
5
<Directory "/var/www/html/YSM">     //YSM就是我们要认证的目录
AllowOverride AuthConfig // 这里必须使用 AuthConfig
Order allow,deny
Allow from all
</Directory>

给测试目录设置用户名和密码

命令:

htpasswd -c /var/www/html/YSM/.htpasswd YSM

创建htaccess文件

命令:vim .htaccess

添加:

1
2
3
4
AuthUserFile /var/www/html/YSM/.htpasswd
AuthName "david"
AuthType Basic
require valid-user

测试成功

配置和管理MySQL数据库

安装mysql

命令:sudo apt-get install mysql-server

mysql数据库安全性配置

命令:sudo mysql_secure_installation

以下是我的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
root@yangshuming:/home/yangshuming# sudo mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: N
Please set the password for root here.

New password:

Re-enter new password:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : N

... skipping.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : N

... skipping.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.

All done!

检测

命令:systemctl status mysql.service

active(running)说明运行正常

登录mysql数据库

默认的MySQL安装之后根用户是没有密码的,命令执行后会让你设置root的密码,进入root后才能进行其他设置

命令:sudo mysql -uroot -p

在命令行下通过show databases;查看当前数据库的命令如下所示

选择数据库

要选择一个数据库使它成为所有事务的当前数据库,可使用如下命令:

use 数据库名称;

比如use YSM;

创建表

然后,可通过“desc student;”命令查看表结构

修改表

例如,在表student中添加一个字段class,类型为varchar(10),如下所示

在表student中修改原字段名depa为新字段class并将其字段类型更改为 char(10),如下所示:

配置php应用程序

安装php

apt install php

安装其他模块

命令:

sudo apt-get install libapache2-mod-php

sudo apt-get install php7.0-mysql

验证

Discuz论坛搭建

首先把之前的文件删除,避免影响以后的实验,此时hosts文件如下图所示

此时我的ip是192.168.75.134,对应ysm.com

安装Discuz

下载一个Discuz 压缩包:

命令:

wget ‘http://download.comsenz.com/DiscuzX/3.3/Discuz_X3.3_SC_UTF8.zip'

为了将压缩包解压,需要安装一个 unzip:

命令:

sudo apt-get install unzip

下载完成后,解压这个压缩包(解压完后,就能在 upload 文件夹里看到discuz的源码了):

命令:

sudo unzip Discuz_X3.3_SC_UTF8.zip

配置Discuz

由于 PHP 默认访问 /var/www/html/ 文件夹,所以我们需要把 upload 文件夹里的文件都复制到 /var/www/html/ 文件夹:

命令:

sudo mv upload/* /var/www/html

将目录切换到 php 访问的文件夹下:

命令:cd /var/www/html

修改一下 config、data、uc_server/data/、uc_client/data/cache 目录权限

命令:
sudo chmod -R 777 config/ data/ uc_server/data/ uc_client/data/cache/

将 apache 指定到 index.html

sudo mv /var/www/html/index.html /var/www/html/index~.html

重启 Apache 服务:

sudo /etc/init.d/apache2 restart

此时Discuz 论坛已经部署完成,可以通过浏览器访问论坛查看效果。

通过IP地址查看:http://192.168.75.134/install

通过域名查看:ysm.com

点击我同意

报错:xml_parser_create() 不支持 该函数需要 PHP 支持 XML。请联系空间商,确定开启了此项功能

安装php7.2-xml

命令:apt-get install -y php7.2-xml

报错:文件目录不可写不存在

给文件权限:chmod -R 777 /var/www/html

此时不再报错

点击下一步,设置运行环境为全新安装

点击下一步,输入密码,如果数据库密码不是root,自行修改

论坛已完成安装,点击访问

相关文章
评论
分享
  • 网络设备配置与管理

    Linux网络设备与管理大作业 下图为某企业网络拓扑图,接入层采用二层交换机2960,汇聚和核心层使用了一台三层交换机3560 24PS,局域网边缘采用一台路由器LanRouter用于连接到外部网络的Isp Router两台路由器...

    网络设备配置与管理
  • IPTABLES防火墙配置

    iptables的基本配置方法查看是否安装防火墙which iptables whereis iptables 如上图所示,iptables已经安装,如果没有安装,使用sudo apt-get install iptables安装...

    IPTABLES防火墙配置
  • 搭建email服务器

    安装Ubuntu 18.04附带了systemd-resolve,需要禁用它,因为它绑定到53端口,与Dnsmasq端口冲突。 运行以下命令以禁用已解析的服务: systemctl disable systemd-resolved s...

    搭建email服务器
Please check the parameter of comment in config.yml of hexo-theme-Annie!