世赛题目 apache2.note

noteId: CD7B5B1628884774A8525025A15B9D0F · 原始路径:/ALL/Linux - A模块/服务配置/Apache2/世赛题目 apache2.note · 图片:3 · 附件待处理:0

 
 
 
查找主机靠的是 ServerName 字段 和 ServerAlias(别名) 字段,这两个字段不能有重复
可以理解为:同那个 VirtualHost 定义范围,再在这个范围中通过 ServerName 精确定位
 
 
——————————————————————————————————
 
· 配置禁止通过ip访问,只允许通过域名访问
· 配置只允许通过https 进行访问,禁止 http
· 将 delix.com 重定向 到 www.delix.com
# apache2配置文件不允许有中文,注释的中文也不允许
 

<VirtualHost *:80>        //匹配 任意IP地址,80端口(http)

	ServerName www.delix.com    //匹配 任意IP地址,80端口 请求中的 www.delix.com

	<Location />

		Order Allow,Deny    //定义 拒绝与允许条目

		Deny from all       //拒绝所有访问(这里的效果是,拒绝所有来自 80端口 的 www.delix.com 域名请求)

	</Location>

</VirtualHost>

 
 
<VirtualHost *:80>        //匹配 任意IP地址,80端口(http)

	ServerName delix.com         //匹配 任意IP地址,80端口 请求中的 delix.com

	Redirect 301 / https://www.delix.com    //将 来自80端口的 delix.com 流量 301重定向 到 https://www.delix.com(不会管能不能重定向到目的地,只会无脑重定向,有匹配的流量就直接重定向)

</VirtualHost>

 
 
<VirtualHost *:443>        //匹配 任意IP地址,443端口(https)

	<Location />

		Order Allow,Deny        //定义允许或拒绝条目

		Deny from 192.168.1.5    //拒绝来自 192.168.1.5 的请求(禁止通过ip地址进行访问)

		Allow from all           //允许 所有请求

	</Location>

	Redirect 301 /delix.com https://www.delix.com    //将 来自于443端口的 /delix.com 的请求 301 重定向到 https://www.delix.com  (它与上面301重定向不同,上面的是重定向 http的请求,这个是重定向 https的请求)

	ServerAdmin webmaster@localhost            //不知道

	DocumentRoot /htdocs/html/
              //指定网站根目录(默认为:/var/www/html)若没有指定默认的根目录,则需要在 /etc/apache2/apache2.conf 配置文件中进行修改,具体修改查看另一篇笔记
	ServerName www.delix.com                // 定义 匹配 来自 www.delix.com 的流量(https)

	ErrorLog /var/log/webs/www.delix.com/error.log                //自定义客户端访问日志,(访问错误日志) 

	CustomLog /var/log/webs/www.delix.com/access.log combined    //自定义客户端访问日志(客户端ip,访问时间,访问资源)

	SSLEngine on
            //启用 SSL
	SSLCertificateFile      /etc/apache2/sites-available/web.pem    //自定义 SSL证书 公钥文件存放位置

	SSLCertificateKeyFile   /etc/apache2/sites-available/web.key    //自定义 SSL证书 私钥文件存放位置

 
	<FilesMatch "\. (cgi|shtml|phtml|php) $">

		SSLOptions +StdEnvVars

	</FilesMatch>

	<Directory /usr/lib/cgi-bin>

		SSLOptions +StdEnvVars

	</Directory>

		BrowserMatch "MSIE[2-6]"\

			nokeepalive ssl-unclean-shutdown \

			downgrade-1.0 force-response-1.0

		BrowserMatch "MSIE[17-9]"ssl-unclean-shutdown

</VirtualHost>




 
 
'''
# 注释是因为 与上面  <VirtualHost *:443> 字段定义的  Redirect 301 /delix.com https://www.delix.com 重复作用
# 这么写不会冲突,只是展示另一种写法

#<VirtualHost *:443>    //匹配 任意IP地址,443端口的流量

#	ServerName delix.com    //匹配来自 任意IP地址,443端口 delix.com 的流量

#	Redirect 301 / https://www.delix.com    //将来意 任意IP地址,443端口的 delix.com 的流量,重定向到 https://www.delix.com

#</VirtualHost>

'''
 
  

<VirtualHost *:443>    //匹配 任意IP地址,443端口的流量

	ServerName 192.168.1.5
    //匹配来自任意IP地址,443端口 192.168.1.5 的流量
	<Location />

		Order Allow,Deny    //定义 允许拒绝条目

		Deny from all       //拒绝所有

	</Location>

</VirtualHost>

 
 
a2dissite    001-www.delix.com.ssl.conf    //取消使用配置文件
a2ensite 001-www.delix.com.ssl.conf    //启用配置文件(是以 /etc/apache2/sites-available/ 作为相对路径)
systemctl restart apache2
 
 
要将 Apache Web 服务器默认的 `www-data` 用户更改为其他用户(例如 `webuser`),可以按照以下步骤进行操作:

 
1. 创建新的 webuser 用户:

   ```

   sudo adduser webuser

   ```

   按照提示输入密码和其他所需信息来创建新的用户。

 
2. 将 `/var/www/html` 目录的所有权更改为 webuser:

   ```

   sudo chown -R webuser:webuser /var/www/html

   ```

   这会将 `/var/www/html` 目录及其子目录的所有权和组都更改为 webuser。

 
3. 找到 Apache 配置文件并编辑:

   ```

   sudo nano /etc/apache2/envvars

   ```

 
4. 在打开的文件中,找到 `export APACHE_RUN_USER=www-data` 和 `export APACHE_RUN_GROUP=www-data` 行,并将 `www-data` 更改为 `webuser`:

   ```

   export APACHE_RUN_USER=webuser

   export APACHE_RUN_GROUP=webuser

   ```

 
5. 保存并关闭文件。

 
6. 重启 Apache 服务:

   ```

   sudo systemctl restart apache2

   ```

 
现在,Apache Web 服务器将以 `webuser` 用户的身份运行,并使用相应的权限来访问和操作网站文件。请确保 `webuser` 用户具有足够的权限以读取、写入和执行相关目录和文件。

 
请注意,在更改默认用户之前,请确保已将相应的权限正确设置并测试了您的网站,以确保一切正常运行。
 
· 使用以下命令查看是否配置成功:
ps -ef | grep apache2
 
________________________________________________________________
 
 
要将 Apache2 进程和用户组更改为 `webuser`,你可以按照以下步骤进行操作:

 
1. 使用管理员权限打开终端。

2. 编辑 Apache2 的配置文件 `apache2.conf`。在终端中输入以下命令:

   ```

   sudo nano /etc/apache2/apache2.conf

   ```

3. 在 `apache2.conf` 文件中,查找并定位以下两行:

   ```

   User ${APACHE_RUN_USER}

   Group ${APACHE_RUN_GROUP}

   ```

4. 分别替换这两行为:

   ```

   User webuser

   Group webuser

   ```

   这将指定 Apache2 进程以 `webuser` 用户和用户组运行。

5. 按下 `Ctrl + O` 保存文件,然后按下 `Ctrl + X` 关闭编辑器。

6. 重新启动 Apache2 服务,使更改生效。在终端中输入以下命令:

   ```

   sudo service apache2 restart

   ```

   或者使用以下命令:

   ```

   sudo systemctl restart apache2

   ```

 
现在,Apache2 进程将使用 `webuser` 用户和用户组来运行。确保已经创建了名为 `webuser` 的用户,并且该用户具有适当的权限来读取所需的文件和目录。
 
· 使用以下命令查看是否配置成功:
ps -ef | grep apache2
 
 
vim /etc/apache2/conf-enable/security.conf
将 ServerTokens 和 ServerSignature 字段改为:
ServerTokens Prod
ServerSignature Off
 
vim /etc/apache2/apache2.conf
添加以下行:
ServerTokens Prod
ServerSignature Off
 
apt install mariadb-server -y
 
apt isntall php php-mysql libapache2-mod-php
apt install phpmyadmin
安装 php-mysql 为了兼容 mysql
安装 libapache2-mod-php 是为了兼容 apache2
 
mysql_secure_installation    //加固安全性
# 接下来根据需求自己定义
 
# mysql 中的配置,代码都需要以 ; 分号结尾
mysql
CREATE DATABASE wordpress;
CREATE USER 'wordpressuser'@'%' IDENTIFIED BY 'Skills39';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'%';

FLUSH PRIVILEGES;

EXIT;
 
· 代码解释:
1、mysql    //进入 mysql 配置
 
 
2、CREATE DATABASE wordpress;    //创建一个名为 wordpress 的数据库
CREATE DATABASE 是一个 mysql 命令,用于创建一个新的数据库
 
 
3、CRTATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
· CRTATE USER 是一个 mysql命令,用于创建一个新的用户
· 'wordpressuser'@'localhost': wordpressuser 是用户名, localhost是主机名,表示该用户只能够通过从本机登陆,@ 符号用于指定主机部分
'username'@'localhost'    //只允许该用户从本地主机连接
'username'@'%'            //允许该用户能够从任何主机连接
'username'@'192.168.1.1'  //只允许该用户从 192.168.1.1 的IP地址进行登陆
'username'@'172.16.0.%'   //表示只允许该用户从 172.16.0.0/24 网段进行登陆(没有写错!)
如果不指定主机部分,则默认 localhost
· IDENTIFIED BY 是一个 mysql 语法,用于指定用户的 密码
 
 
4、GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'%';
GRANT 是一个 mysql 命令,用于授予用户特定的权限
ALL PRIVILEGES 表示授予该用户所有权限
ON wordpress.*   //ON 后面指定你要的数据库和表,wordpress.* 表示 wordpress 数据库下的所有表
TO 'wordpressuser'@'%'    //TO 后面指定将要授予权限的用户
 
 
5、FLUSH PRIVILEGES;
FLUSH PRIVILEGES 是一个 mysql 命令,用于刷新权限,使新的权限设置立即生效
 
6、EXIT;
用于退出 mysql 数据库
具有同样效果的有:exit   和   Ctrl + C
 
 
apt install wget -y
wget https://wordpress.org/latest.tar.gz
 
# 解压
gzip -d latest.tar.gz
tar -xvf latest.tar
 
 
 
`这个可能不行,看下方的那个方式
vim /etc/mysql/my.cnf    //打开mysql配置文件
 
# 找到  [mysqld-client] 这一行:
在该字段后添加:
bind-address=0.0.0.0
 
 
vim /etc/mysql/maridb.conf.d/50-server.cnf