在 Windows Server 上部署 Nginx、PHP 和 MySQL,能让你搭建功能强大的 Web 服务器,运行各类 PHP 驱动的网站和应用程序。本文将手把手教你如何一步步搭建这个高效的服务器环境。
1. Nginx:高性能 Web 服务器的基石
Nginx 以其卓越的性能和稳定性而闻名,是 Web 服务器和反向代理的理想选择。
首先,你需要从 Nginx 官网下载适用于 Windows 的最新稳定版本。访问 https://nginx.org/en/download.html,找到并下载 nginx/Windows
的 ZIP 包。
下载完成后,将文件解压到一个你希望 Nginx 所在的目录,例如 C:\nginx
。为了验证 Nginx 是否正常工作,打开命令提示符,切换到 Nginx 目录 (cd C:\nginx
),然后运行 nginx.exe
。接着,在浏览器中访问 http://localhost/
。如果看到“Welcome to nginx!”的欢迎页面,那就说明 Nginx 已经成功启动了。
为了让 Nginx 随系统自动启动,我们推荐使用 NSSM(Non-Sucking Service Manager)将其设置为一个 Windows 服务。你可以从 https://nssm.cc/download 下载 NSSM,并将其可执行文件复制到 Nginx 目录或系统 PATH 路径中。然后,在命令提示符中运行 nssm install nginx
。在弹出的配置窗口中,Path 填写 C:\nginx\nginx.exe
,Startup directory 填写 C:\nginx
,最后点击“Install service”。这样,你就可以在 Windows 服务管理器中找到名为“nginx”的服务,并将其启动类型设置为“自动”。
2. PHP:动态网站的驱动力
PHP 是一种广泛应用于 Web 开发的脚本语言,是许多动态网站的后端核心。
要获取 PHP,你需要访问 PHP for Windows 官方下载页面 https://windows.php.net/download/。请务必选择**非线程安全(Non Thread Safe)**的 ZIP 包,并根据你的服务器架构(x64 或 x86)选择相应的版本,因为 Nginx 通常通过 FastCGI 模式与 PHP 协作。
将下载的 PHP 压缩包解压到你偏好的位置,比如 C:\php
。接下来是配置 PHP。在 C:\php
目录下,找到 php.ini-development
文件,复制一份并重命名为 php.ini
。用文本编辑器打开 php.ini
文件,进行以下关键修改:
-
extension_dir
: 找到并取消注释extension_dir = "ext"
,将其修改为指向你的 PHPext
文件夹的绝对路径,例如extension_dir = "C:\php\ext"
。 -
常用扩展: 取消注释(删除行首的
;
)你需要的 PHP 扩展,例如extension=curl
、extension=gd
、extension=mbstring
、extension=mysqli
、extension=openssl
和extension=pdo_mysql
。 -
cgi.force_redirect
: 确保此行设置为cgi.force_redirect = 0
。 -
fastcgi.impersonate
: 确保此行设置为fastcgi.impersonate = 1
。 -
date.timezone
: 设置你的时区,例如date.timezone = Asia/Shanghai
。
与 Nginx 类似,我们也可以将 PHP-CGI 设置为 Windows 服务,确保其始终运行。使用 NSSM,在命令提示符中运行 nssm install php-cgi
。在配置窗口中,Path 填写 C:\php\php-cgi.exe
,Startup directory 填写 C:\php
,并在 Arguments 字段中填写 -b 127.0.0.1:9000
。这将使 PHP-CGI 监听在 9000 端口,供 Nginx 调用。安装完成后,在服务管理器中将“php-cgi”服务的启动类型设置为“自动”。
3. MySQL:数据存储的支柱
MySQL 是最流行的开源关系型数据库管理系统之一,是动态网站不可或缺的数据存储层。
从 MySQL 官网 [可疑链接已删除] 下载 MySQL Installer for Windows。这个安装器会提供一个图形界面,方便你安装和配置 MySQL 服务器及相关工具。
运行下载的安装程序,通常选择 Developer Default 或 Server Only 安装类型。按照向导的指示进行安装,特别是在设置 MySQL Root 用户密码时,请务必牢记此密码,因为它将是你管理数据库的关键凭证。安装过程中,确保勾选了“Start MySQL Server at System Startup”和“Add MySQL bin directory to PATH”,这样 MySQL 会自动随系统启动,并且你可以在命令行中直接使用 MySQL 命令。
安装完成后,打开命令提示符,运行 mysql -u root -p
,然后输入你设置的 Root 密码。如果能成功进入 MySQL 命令行界面,恭喜你,MySQL 已经准备就绪。
4. Nginx 与 PHP 的完美融合
现在,我们需要配置 Nginx,让它知道如何处理 PHP 文件。
打开 Nginx 的配置文件 C:\nginx\conf\nginx.conf
。在 http
块内的 server
块中,找到并修改或添加以下配置:
server {
listen 80;
server_name localhost; # 替换为你的域名或IP地址
# 定义网站根目录,请根据你的实际情况修改
root C:/nginx/html;
# 将 index.php 添加到默认索引文件列表
index index.html index.htm index.php;
# Nginx 处理 PHP 文件的关键配置
location ~ \.php$ {
# 确保与 PHP-CGI 服务监听的地址和端口一致
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 禁止通过 Web 访问 .ht* 文件,提高安全性
location ~ /\.ht {
deny all;
}
}
重要提示:请将 root
指令指向你实际存放网站文件的目录,例如 C:\nginx\www
。
保存 nginx.conf
文件后,打开命令提示符,切换到 Nginx 目录,运行 nginx.exe -s reload
来重新加载配置。如果 Nginx 是作为服务运行的,你也可以在服务管理器中重启“nginx”服务。
5. 最终验证:您的服务器准备就绪了吗?
是时候验证你的 Nginx、PHP 和 MySQL 环境是否协同工作了。
在你在 Nginx 配置中设置的网站根目录(例如 C:\nginx\html
或 C:\nginx\www
)下,创建一个名为 info.php
的文件,并在其中写入以下内容:
<?php
phpinfo();
?>
保存文件后,打开浏览器,访问 http://localhost/info.php
。如果你能看到一个包含详细 PHP 版本、配置信息和已加载扩展的页面(包括 mysqli
或 pdo_mysql
),那么恭喜你,你的 Nginx + PHP + MySQL 服务器环境已经搭建成功!
现在,你可以将你的 PHP 网站文件放置到 Nginx 的网站根目录中,并通过浏览器访问它们。
额外建议:
-
防火墙设置: 确保 Windows 防火墙允许 80 端口(Nginx 默认端口)的入站连接。
-
安全性考量: 对于生产环境,还需要进一步进行安全配置,如限制文件上传大小、配置 SSL/TLS 证书等。
-
性能优化: 针对高流量网站,考虑对 Nginx、PHP-FPM 和 MySQL 进行更深入的性能调优。
如果在搭建过程中遇到任何问题,请不要灰心,仔细检查 Nginx、PHP 和 MySQL 的错误日志文件,它们会提供解决问题的宝贵线索。