跳转到内容
新建笔记

Apache HTTP Server

# 安装服务
httpd -k install -n apache
# 启动服务
net start apache
httpd -k start -n apache
# 关闭服务
net stop apache
httpd -k stop -n apache
# 重启服务
httpd -k restart -n apache
# 卸载服务
## 卸载服务时先停止
httpd -k stop -n apache
## 再卸载服务
httpd -k uninstall -n apache

httpd.exe -w -n "Apache2.4" -k start:后台运行

端口被用

netstat -ano|findstr 被占用端口号 例如 netstat -ano|findstr 80

80 端口号对应的PID为 14328 taskkill /t /f /im 被占用端口号对应的 PID 号 例如:taskkill /t /f /im 14328 执行这个相当于 Apache Service Monitor 点击了 stop

在 Windows 命令提示符(CMD)中,可以使用netstat命令来检查特定端口是否被占用。netstat是一个非常强大的网络工具,它可以显示网络连接、路由表、接口统计等信息。如果您想要检查特定端口(例如,端口 80)是否被占用,可以按照以下步骤操作:

  1. 打开命令提示符:点击开始菜单,然后在搜索框中输入cmd,接着点击出现的“命令提示符”以打开它。

  2. 使用netstat命令:在命令提示符窗口中,输入以下命令:

    netstat -aon | findstr :端口号

    替换端口号为您想要检查的端口,例如,如果您想要检查端口 80,命令将是:

    netstat -aon | findstr :80

netstat命令选项说明:

  • -a 显示所有连接和监听端口。
  • -o 显示归属进程 ID。
  • -n 以数字形式显示地址和端口号。

解读输出:

如果端口被占用,netstat命令将输出包含该端口号的行,显示状态为LISTENING或者ESTABLISHED等。输出中的最后一列显示的是占用该端口的进程 ID(PID)。

进一步操作:

如果您发现某个端口被占用,并想要知道是哪个程序占用了它,可以使用以下命令查找对应的进程名:

tasklist | findstr 进程ID

将进程ID替换为您从netstat输出中得到的 PID。这将显示占用该端口的程序名称。

通过这些步骤,您可以轻松地在 Windows 命令提示符中检查特定端口是否被占用,并找出占用该端口的程序。


从你提供的 Apache HTTP 服务器配置文件内容来看,你似乎需要了解如何启用特定的配置项,例如虚拟主机(Virtual Hosts),SSL 连接,以及可能的 IP 绑定。下面是一些基本指导:

虚拟主机配置

要配置虚拟主机,你需要取消注释(或添加)以下行以包含虚拟主机配置文件:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

然后,在conf/extra/httpd-vhosts.conf文件中,你可以定义你的虚拟主机,如下所示:

<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot "D:/Program Files/Apache24/htdocs/your-site"
ServerName www.your-site.com
ServerAlias your-site.com
ErrorLog "logs/your-site-error.log"
CustomLog "logs/your-site-access.log" common
</VirtualHost>

确保替换DocumentRoot和ServerName为你的网站目录和域名。

SSL 配置

若要启用 SSL(如果你计划使用 HTTPS),首先确保 SSL 模块已启用。在httpd.conf文件中,取消注释以下行以包含 SSL 配置文件:

# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

然后,确保mod_ssl模块已被加载。通常这在httpd.conf中已默认加载,但如果没有,你需要添加:

LoadModule ssl_module modules/mod_ssl.so

在conf/extra/httpd-ssl.conf中配置你的 SSL 证书和密钥路径。

监听特定 IP 地址

默认情况下,Apache 监听所有可用的网络接口上的 80 端口(对于 HTTP):

Listen 80

如果你想让 Apache 只绑定到特定 IP 地址,你可以将Listen指令更改为如下格式:

Listen 192.168.1.1:80

确保替换192.168.1.1为你服务器的实际 IP 地址。

应用更改

每次编辑 Apache 配置文件后,都需要重新启动 Apache 服务以应用更改。在 Windows 上,你可以通过服务管理器手动重启 Apache 服务,或者使用命令行:

终端窗口
httpd -k restart

确保在 Apache 安装目录的bin文件夹下运行此命令,或者将其添加到你的系统路径中。

注意

  • 在对配置文件进行更改时,确保备份原始文件,以便在出现问题时可以恢复。
  • 使用httpd -t命令检查配置文件的语法正确性,以避免启动时出错。
  • 确保你拥有域名的 DNS 记录指向服务器的 IP 地址。

SSL

要为你的网站启用 SSL/TLS 并使用 HTTPS,你需要一个 SSL 证书和一个私钥。SSL 证书由证书颁发机构(CA)颁发,而私钥是你在生成证书签名请求(CSR)时创建的。以下是获取 SSL 证书和私钥的一般步骤:

1. 生成私钥和 CSR(证书签名请求)

首先,你需要生成一个私钥和一个 CSR。CSR 包含你的域名信息和公钥,你将这个 CSR 提交给 CA 以申请证书。

在 Linux 或 Unix-like 系统上,你可以使用 OpenSSL 工具生成它们:

终端窗口
openssl req -new -newkey rsa:2048 -nodes -keyout jessi53.com.key -out jessi53.com.csr

这将创建一个名为jes.cn.key的私钥文件和一个名为jes.cn.csr的 CSR 文件。-nodes参数表示不对私钥加密,这样就不需要在 Apache 启动时输入密码。

** 2. 提交 CSR 到证书颁发机构(CA)**

将你的 CSR 文件提交给一个 CA(如 Let’s Encrypt、VeriSign、Comodo 等)。对于 Let’s Encrypt,他们提供了一个免费的自动化过程,通过客户端如 Certbot 可以自动完成验证和证书颁发过程。

3. 安装 SSL 证书

一旦你的证书请求被批准,CA 会向你提供至少两个文件:一个是你的域名证书(通常以.crt或.pem结尾),另一个是中间证书或 CA 证书链。下载这些文件到你的服务器。

4. 配置 Apache 使用 SSL 证书和私钥

在 Apache 配置文件中(例如,在httpd-ssl.conf或相应的虚拟主机文件中),指定证书和私钥的路径:

SSLEngine on
SSLCertificateFile "/path/to/jes.cn.crt"
SSLCertificateKeyFile "/path/to/jes.cn.key"
SSLCertificateChainFile "/path/to/ca_bundle.crt"
  • SSLCertificateFile应该指向你的域名证书文件。
  • SSLCertificateKeyFile应该指向你生成的私钥文件。
  • SSLCertificateChainFile(如果有的话)应该指向 CA 提供的中间证书文件。这一步是可选的,取决于你的 CA 是否要求安装中间证书。

5. 重启 Apache

配置完成后,重启 Apache 使更改生效:

终端窗口
sudo systemctl restart apache2

或者在 Windows 上:

终端窗口
httpd -k restart

注意:

  • 确保在 Apache 配置文件中使用的路径和文件名与你的证书文件和私钥文件的实际位置和名称相匹配。
  • 对于 Let’s Encrypt,Certbot 工具可以自动为你处理证书的生成、安装和续期过程,大大简化了使用 SSL 的复杂性。