安装web服务器软件
一.安装Apache
1.1从哪里安装?
1.1.1 官网
1.1.2 官网介绍:
英文介绍
-
The Number One HTTP Server On The Internet
-
The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.
-
The Apache HTTP Server ("httpd") was launched in 1995 and it has been the most popular web server on the Internet since April 1996. It has celebrated its 25th birthday as a project in February 2020.
-
The Apache HTTP Server is a project of The Apache Software Foundation.
中文翻译
-
互联网上排名第一的 HTTP 服务器
-
Apache HTTP 服务器项目致力于开发和维护一个适用于现代操作系统(包括 UNIX 和 Windows)的开源 HTTP 服务器。该项目的目标是提供一个安全、高效且可扩展的服务器,并提供与当前 HTTP 标准同步的 HTTP 服务。
-
Apache HTTP 服务器("httpd")于 1995 年启动,自 1996 年 4 月以来一直是互联网上最受欢迎的 Web 服务器。2020 年 2 月,它迎来了 25 周年纪念日。
-
Apache HTTP 服务器是 Apache 软件基金会的一个项目。
1.1.3 版本与包下载
-
稳定版本 2.4.65
-
The Apache HTTP Server Project is pleased to announce the release of version 2.4.65 of the Apache HTTP Server ("Apache" and "httpd").
-
为什么叫httpd and Apache
-
Apache → 项目名称或大家习惯叫法
httpd → 实际的软件包、二进制程序名
-
Unix/Linux 历史习惯 :所有服务程序都叫
xxx
+d
,如:sshd
→ SSH 服务ftpd
→ FTP 服务httpd
→ HTTP 服务(Apache 就是这个服务的实现)
-
Apache = 项目名/品牌名,httpd = 项目里运行的服务器程序名,官方同时提是为了明确指同一个东西。
-
-
下载包链接 具体可以看官网这里提供四个示例(示例来源官网)
-
- 这是 Apache HTTP Server 的源代码压缩包。
- 后缀
.tar.bz2
表示:tar
→ 把很多文件打包成一个文件(不压缩,只打包)bz2
→ 使用 bzip2 算法压缩
- 下载后,你可以:
- 解压后编译安装 Apache
- 或者查看源代码
-
-
PGP 是加密签名文件 (通常也叫
signature
)用途:验证下载的源代码 没有被篡改、来源可靠
使用方法:
- 官方提供了 PGP 公钥
- 你用公钥验证
.asc
签名 - 如果验证通过,就可以确定你的压缩包是官方发布的,没有被篡改
-
-
-
SHA256 校验文件
用途:验证文件完整性
使用方法:
- 你下载
.tar.bz2
- 计算本地文件的 SHA256 值
- 和
.sha256
里的值对比,如果一致 → 文件完整无损
- 你下载
-
-
-
SHA512 校验文件
和 SHA256 类似,只是算法更强,输出更长的哈希值
作用同样是 验证下载文件完整性
-
-
1.1.4 官网解读
1.1.4.1 下载文件
文件 | 说明 |
---|---|
httpd-2.4.65.tar.bz2 |
源代码压缩包(bzip2 格式) |
httpd-2.4.65.tar.gz |
源代码压缩包(gzip 格式) |
[PGP] |
PGP 签名文件,用于验证下载包是官方发布,没有被篡改 |
[SHA256] / [SHA512] |
文件完整性校验,用于防止下载过程中损坏或被修改 |
Windows 用户:官方提供的 Windows 发行版通常是可执行安装包,而不是源码,需要查看对应的 Win32 文件说明。
1.1.4.2 Apache 模块(Apache HTTP Server 的扩展功能)
Apache 的核心是 httpd
,模块就是给它加功能的插件,比如 FastCGI、FTP 等。
mod_fcgid(FastCGI 模块)
-
用途:让 Apache 支持 FastCGI 应用(比如 PHP、Python 的 Web 应用),提高性能
-
版本:2.3.9(安全版本)
-
文件格式
文件 | 说明 |
---|---|
mod_fcgid-2.3.9.tar.gz |
gzip 压缩源代码,LF 行尾 |
mod_fcgid-2.3.9.tar.bz2 |
bzip2 压缩源代码,LF 行尾 |
mod_fcgid-2.3.9-crlf.zip |
Windows/Netware/OS2 版本,行尾是 CR/LF |
[PGP] |
签名 |
[MD5] / [SHA1] |
校验文件,验证完整性 |
mod_ftp(FTP 模块)
- 用途:让 Apache 支持 FTP 协议(主要用于测试或特定需求)
- 版本:0.9.6-beta(测试版)
- 文件格式 (和 mod_fcgid 类似)
.tar.bz2
、.tar.gz
→ 源代码压缩,行尾 LF-crlf.zip
→ Windows/Netware/OS2 源码,行尾 CR/LF[PGP]
、[SHA1]
、[MD5]
→ 用于安全验证和完整性校验
1.1.4.3 行尾差异
- LF(Line Feed):Unix/Linux 系统默认行尾
- CR/LF(Carriage Return + Line Feed):Windows 系统默认行尾
下载源码给不同系统用,需要选择合适的行尾,否则可能编译或打开文件时出问题
行尾是什么?
行尾(Line Ending)就是文本文件里每一行结尾用来表示"这一行结束了"的特殊字符(或字符组合)。不同操作系统的约定不同,所以有几种常见类型:
行尾类型 | 代表字符 | 主要系统 | 说明 |
---|---|---|---|
LF (Line Feed) | \n |
Linux / macOS / Unix | 每行用一个换行符 \n 结束 |
CR (Carriage Return) | \r |
很老的 Mac 系统 | 很少用了 |
CRLF | \r\n |
Windows | 每行用两个字符结束:回车+换行 |
为什么重要?
- 编辑器显示
- 不同系统打开文件,如果行尾不匹配,可能显示成一整行或者奇怪符号
- 编译 / 执行
- 在 Linux 编译程序,如果行尾是 CRLF(Windows 风格),可能会报错或出现奇怪行为
- 版本控制(Git)
- 不同系统提交同一个文件时,如果行尾不统一,会产生大量"看似修改"的差异
怎么选择?
- Linux / macOS → 用 LF
- Windows → 用 CRLF
- 跨平台开发 → 一般推荐 LF,并让 Git 自动转换行尾
1.1.4.4 总结
- Apache HTTP Server 主程序 :就是
httpd
核心,负责处理 HTTP 请求 - 模块(mod_fcgid、mod_ftp):给 Apache 添加功能
- 压缩格式 :
.tar.gz
(gzip) /.tar.bz2
(bzip2) /.zip
(Windows) - 安全与完整性验证:PGP 签名 + SHA/MD5 校验
- 行尾:LF(Linux)/CRLF(Windows),根据操作系统选择
1.2 mac安装
在 macOS 系统 上安装 Apache 也有几种方式,但大体思路和 Unix/Linux 类似。区别主要在 系统自带的 Apache 和 Homebrew 或源码安装。
1.2.1 系统自带 Apache
macOS 自带了 Apache HTTP Server(通常是 2.4.x 版本),你可以直接启用:
bash
# 启动 Apache
sudo apachectl start
# 停止 Apache
sudo apachectl stop
# 重启 Apache
sudo apachectl restart
# 测试
http://localhost/
- 配置文件位置:
/etc/apache2/httpd.conf
- 文档根目录:
/Library/WebServer/Documents/
优点:快速、无需编译
缺点:版本可能不是最新,模块定制有限
1.2.2 使用 Homebrew 安装(推荐)
Homebrew 是 macOS 上最方便的软件包管理工具。
bash
# 安装 Apache 2.4
brew install httpd
# 启动 Apache
brew services start httpd
# 停止 Apache
brew services stop httpd
# 重启Apache
brew services restart httpd
# 配置文件位置:
/usr/local/etc/httpd/httpd.conf # Intel
/opt/homebrew/etc/httpd/httpd.conf # M1/M2
# 测试
http://localhost/
- 配置灵活,可以很容易添加模块
- 版本通常比系统自带更新
1.2.3 从源码编译
和 Unix/Linux 类似:
bash
# 下载并解压
tar xvf httpd-2.4.65.tar.gz
cd httpd-2.4.65
# 配置安装路径
./configure --prefix=/usr/local/apache2
# 编译
make
# 安装(可能需要 sudo)
sudo make install
# 启动
sudo /usr/local/apache2/bin/apachectl start
- 好处:可以定制模块、路径、编译选项
- 缺点:步骤多,依赖库(APR, PCRE 等)需要提前安装,因为make指令需要靠这些依赖
1.2.4 实操经验
这里我实操用了Homebrew,环境为mac m2,以下是实操中用到的一些技巧:
1.查看服务的端口号 mac
bash
sudo lsof -i :端口号
2.安装并使用 VS Code 命令行
如果你想用 VS Code,需要先在 VS Code 里安装命令行工具:
- 打开 VS Code → 按下
Cmd + Shift + P
→ 输入 Shell Command: Install 'code' command in PATH → 回车。 - 然后你就可以在终端用
code
命令了:
bash
code /usr/local/etc/httpd/httpd.conf (inter)
code /opt/homebrew/etc/httpd/httpd.conf (m2/m1)
3.或者使用访达
前往文件夹/opt/homebrew/etc/httpd 手动拖到vscode打开

找到这个文件就可以配置修改服务端口号了

文件端口号配置如图:

4.文件默认挂载目录
配置如下:

bash
/opt/homebrew/var/www

所以如果有想测试的页面可以直接丢到这个目录下 然后启动http:localhost:8080(默认端口号 可以自己配置然后替换成对应的端口号)
5.启动成功界面

6.通过活动监视器查看httpd服务进程

7.httpd.conf 的基本配置
1.端口号 (前面讲过不再赘述)

2.域名
注意:如果您的主机没有注册的 DNS 名称,请在此处输入其 IP 地址。
注意:凡是涉及到Apache配置文件的修改,需要重新启动Apache web服务才能生效
bash
brew services restart httpd
这里我改成了 localhost 启动Apache后,浏览器打开如图所示:

3.DNS 本地缓存文件
bash
/etc/hosts

二.安装PHP
2.1官网
2.2 Mac m2 安装
官网非常贴心做成了互动式的 直接根据你的环境选择对应的安装方式如下:
Mac

命令
bash
brew install php@8.2
Window

linux

如何查看是否安装成功?
bash
php -v
查看php位置在哪?
bash
brew info php
php包目录每个功能是什么?
swift
/opt/homebrew/Cellar/php/8.4.12 ← 实际文件
├─ bin/ ← 命令行工具
├─ lib/ ← 库文件、扩展、Apache模块
├─ sbin/ ← php-fpm
└─ include/ ← 头文件
/opt/homebrew/opt/php ← 不随版本号变化的符号链接
└─ lib/httpd/modules/libphp.so ← Apache模块
/opt/homebrew/etc/php/8.4/ ← 配置文件
├─ php.ini
└─ php-fpm.ini
/opt/homebrew/bin/php ← 终端执行用的 php命令
/opt/homebrew/bin/php-fpm ← 终端执行用的 php-fpm
Apache 相关模块:/opt/homebrew/opt/php/lib/httpd/modules/libphp.so
-
这是 PHP 的 Apache 模块,如果你想在 Apache 上运行 PHP,需要在
httpd.conf
里配置:LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>
LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so
- 作用:告诉 Apache "加载 PHP 模块"。
php_module
→ 模块名(Apache 内部用来识别模块)/opt/homebrew/opt/php/lib/httpd/modules/libphp.so
→ 模块文件位置(PHP 安装后自带的动态库)- 换句话说,这行就是让 Apache 能够识别和处理 PHP 脚本。
<FilesMatch \.php$>
... </FilesMatch>
- 作用:指定哪些文件需要使用 PHP 处理。
\.php$
→ 匹配所有以.php
结尾的文件。SetHandler application/x-httpd-php
→ 告诉 Apache 遇到匹配的文件时,用 PHP 模块来处理,而不是当作普通文本返回给浏览器。
三.安装MySQL
3.1 官网
根据环境选择合适的下载链接
https://www.oracle.com/mysql/technologies/mysql-enterprise-edition-downloads.html#windows

windows 下载:
mysql-enterprise-9.4.0_winx64_bundle.zip
3.2 Mac(M2 / Homebrew)下安装 MySQL
1.安装 MySQL
使用 Homebrew 安装:
bash
brew install mysql
安装完成后,可以查看 MySQL 信息:
bash
#1.
brew info mysql
#2.
mysql -V
##如果安装返回
mysql Ver 9.4.0 for macos13.7 on arm64 (Homebrew)
2. 启动 / 停止 MySQL
bash
# 启动 MySQL 并设置开机自启
brew services start mysql
# 停止 MySQL
brew services stop mysql
# 重启 MySQL
brew services restart mysql
3.查看 MySQL 状态
bash
brew services list
或者:
bash
mysqladmin -u root -p status
4.初次登录 MySQL
MySQL 默认 root 用户没有密码,你可以这样登录:
bash
mysql -u root ---Homebrew 默认安装时是空密码。
#登录承购后
SHOW DATABASES; -- 查看所有数据库
CREATE DATABASE test; -- 创建一个名为 test 的数据库
USE test; -- 选择数据库
quit; --退出数据库
exit; --退出数据库
SHOW DATABASES; 如下:

exit;如下:

第一次登录建议设置密码:
bash
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
5.配置文件位置
Homebrew 安装 MySQL 的默认配置文件:
bash
/opt/homebrew/etc/my.cnf
数据存放目录:
bash
/opt/homebrew/var/mysql
日志文件:
bash
/opt/homebrew/var/mysql/主机名.err
6.设置开机自启
bash
brew services start mysql
之后每次开机就会自动启动 MySQL。
7.查看 MySQL 版本
bash
mysql --version
3.3 安装的目录结构
3.3.1mysql目录结构
swift
/opt/homebrew/Cellar/mysql/9.4.0_3/
├── bin/ ← 可执行文件(客户端和服务端命令)
│ ├── mysql ← MySQL 客户端命令
│ ├── mysqladmin ← 管理命令
│ ├── mysqld ← MySQL 服务端
│ ├── mysqld_safe ← 安全启动脚本
│ ├── mysql_config
│ └── ...
├── include/ ← C 语言开发头文件
├── lib/ ← MySQL 库文件(libmysqlclient 等)
├── support-files/ ← 配置模板文件
│ ├── my-default.cnf
│ └── ...
├── share/ ← 文档、字符集、SQL 脚本、国际化文件
├── var/ ← 数据库存放目录(如果你按 Homebrew 默认方式初始化)/opt/homebrew/var/mysql/ (m2)
│ └── mysql/ ← 实际数据文件
└── etc/ ← 配置文件目录
├── my.cnf ← MySQL 配置文件 /opt/homebrew/etc/mysql/ (m2)
其中bin中重要可执行文件如下:
程序 | 用途 |
---|---|
mysql |
命令行连接 MySQL 服务器,执行 SQL 语句 |
mysqladmin |
管理 MySQL 服务器(启动、关闭、状态查看等) |
mysqldump |
导出数据库或表 |
mysqlimport |
导入数据 |
mysql_secure_installation |
安全设置,例如设置 root 密码 |
3.3.2 目录结构和路径整理
swift
/opt/homebrew/
├─ etc/httpd/ # Apache 配置
├─ var/www/ # 网站根目录
├─ etc/php/ # PHP 配置
├─ var/mysql/ # MySQL 数据
├─ bin/ # 命令行工具 (php, mysql, apachectl)
3.4 软件设计结构
3.4.1 C/S & B/S
- Clinet 客户端 / Sereve 服务端 用户需要安装客户端产品才能访问服务器,而且只能访问一种软件(当前自己)
- Browser 浏览器端/Server 服务端 ,用户只需要安装浏览器,就可以访问所有服务器(B/S架构服务)
- mysql 属于C/S 架构的软件,需要通过客户端来访问服务器