中文
当前位置: 国外主机测评 » 资源资讯 » Linux » 正文

WNMP:轻量·稳定·可复制的WebDav+Nginx+Mariadb+PHP一键包

一条命令安装 Nginx、PHP、MariaDB(内置Mroonga搜索引擎),并自动完成内核/网络调优、WebDAV 与证书配置。为中小站点、边缘节点与私有化项目提供即开即用的生产环境基座。

WNMP:轻量·稳定·可复制的WebDav+Nginx+Mariadb+PHP一键包

核心特性

即装即用的 Web 运行环境

编译安装 Nginx 1.28.0(含 dav-ext / http2 / stream 等模块),可选 PHP 8.2–8.5 与 MariaDB 10.6 / 10.11,提供合理的默认参数。

内核/网络调优

开启 BBR/FQ,合理的 somaxconn/文件句柄,关闭 THP;自动写入 sysctl 与 limits,适配 WSL 环境安全降级。

证书自动化

集成 acme.sh;优先使用 CloudFlare DNS-01,失败时自动回落 webroot;证书安装与 Nginx reload 自动化。

多站点与 WebDAV

一键创建 vhost,内置phpMyAdmin保护与WebDAV账号管理;支持为不同域名生成独立密码文件。

可维护的配置结构

统一目录规范,默认站点与 SSL 目录一目了然。

/usr/local/nginx /usr/local/php /home/wwwroot

安全默认值

禁用隐蔽目录与敏感脚本后缀、合理的超时与缓存配置、默认关闭不必要的 PHP 选项。

轻量·稳定·可复制的 WNMP 一键包

一条命令安装 Nginx、PHP、MariaDB(内置Mroonga搜索引擎),并自动完成内核/网络调优、WebDAV 与证书配置。为中小站点、边缘节点与私有化项目提供即开即用的生产环境基座。

Debain13、Debian12、Ubuntu22.xx、Ubuntu24.xx、Ubuntu25.xx
Nginx 1.28.0、PHP 8.2–8.5、MariaDB 10.6 / 10.11BBR / FQ · 关闭 THPacme.sh证书一键WebDAV网盘拒绝FTPSSH密钥登录
安装
apt install -y curl
curl -fL https://wnmp.org/zh/wnmp.sh -o wnmp.sh
chmod +x wnmp.sh
bash wnmp.sh

脚本开源协议:GPLv3。请使用root账号执行命令。

WNMP = WebDav+Nginx+Mariadb+PHP

核心特性

即装即用的 Web 运行环境

编译安装 Nginx 1.28.0(含 dav-ext / http2 / stream 等模块),可选 PHP 8.2–8.5 与 MariaDB 10.6 / 10.11,提供合理的默认参数。

内核/网络调优

开启 BBR/FQ,合理的 somaxconn/文件句柄,关闭 THP;自动写入 sysctl 与 limits,适配 WSL 环境安全降级。

证书自动化

集成 acme.sh;优先使用 Cloudflare DNS-01,失败时自动回落 webroot;证书安装与 Nginx reload 自动化。

多站点与 WebDAV

一键创建 vhost,内置phpMyAdmin保护与WebDAV账号管理;支持为不同域名生成独立密码文件。

可维护的配置结构

统一目录规范,默认站点与 SSL 目录一目了然。

/usr/local/nginx /usr/local/php /home/wwwroot

安全默认值

禁用隐蔽目录与敏感脚本后缀、合理的超时与缓存配置、默认关闭不必要的 PHP 选项。

常用命令

正常安装

bash wnmp.sh

查看状态

bash wnmp.sh status

ssh密钥登录

bash wnmp.sh sshkey

添加webdav账号

bash wnmp.sh webdav

默认站点域名与证书

bash wnmp.sh default

创建虚拟主机(含证书)

bash wnmp.sh vhost

仅做内核/网络调优

bash wnmp.sh tool

重启服务

bash wnmp.sh restart

一键清理

bash wnmp.sh remove # 全部清理
bash wnmp.sh renginx # 仅清理
Nginx
bash wnmp.sh rephp # 仅清理
PHP
bash wnmp.sh remariadb # 仅清理 MariaDB

站点底部标识(可选)

将以下 HTML 放入你的网站页脚:

本服务器由 wnmp.org 一键包构建

常见问题

是否开源?可以用于商业项目吗?

脚本以 GPLv3 开源,允许商业使用与再发布,但需要保留相同协议开源衍生作品。请遵循第三方依赖的各自许可。

支持哪些系统?

主要面向 Debian 12/13 与类 Debian 系统。已在Debian13, Debian12, Ubuntu22.04,Ubuntu24.04,Ubuntu25.10 安装验证通过。 对WSL(推荐Debian)做了安全降级处理。

生产环境首选Debian 13,WNMP脚本没有计划兼容其他非类Debian 系统,也不保证兼容官方已停止维护的类Debian老旧系统版本,请谅解!

最低支持什么硬件配置安装?

如果你不安装Mariadb,在Debian系统下,最低支持512M内存安装,Debian系统本身占用200M内存空间;在Ubuntu系统下,最低支持768内存安装,Ubuntu系统本身占用500M内存空间!

如果安装Mariadb数据库,最低要求1GB内存才能正常安装!

支持哪些PHP版本?

只支持PHP8.2-PHP8.5

WNMP脚本没有计划兼容官方已停止维护的老旧版本号,请谅解!

如何自行安装PHP扩展?

pecl install xxx

安装完成后,需要手动编辑/usr/local/php/php.ini extension=xxx.so

php -m 验证

bash wnmp.sh restart 或 systemclt restart php-fpm 重载PHP让php-fpm启用扩展

Nginx,PHP,Mariadb,Phpmyadmin安装包下载地址是什么?

WNMP所有软件都调用的官方下载地址。不会采用任何第三方下载地址

如果你的下载速度非常慢,请尝试切换系统更新源,或挂载代理安装。为了保证安全性,请坚持使用官方下载源!

为什么采用编译安装Nginx,PHP,Mariadb,而不采用二进制安装或 apt 官方源安装?

由于各自软件的官方更新策略问题,第一时间会发布在官网或github开源库中,Debian或Ubuntu官方源中的软件并不是最新版本。并且二进制安装无法自定义可选扩展。

比如NGINX要支持WebDav协议,必须单独编译nginx-dav-ext-module

比如Swoole官方已在github发布了php8.5版本,但官网和apt并没有更新,因此,你如果采用WNMP一键部署环境后可直接在PHP8.5版本下使用Swoole,而其他途径目前为止还不支持PHP8.5

WNMP安装了哪些PHP扩展,为什么没有设置可选配置?

WNMP安装的PHP会默认编译安装启用swoole,apcu,inotify,redis

由于WNMP作者就是LOWPHP 开发者,因此WNMP会保证LOWPHP环境的运行为前提。但WNMP并不影响传统PHP-FPM项目源码正常执行,所以请放心生成环境直接使用WNMP部署你的WEB环境使用

其中apcu是PHP官方内置的可选扩展,单进程下性能比redis更优秀的缓存插件。但PHP-FPM进程管理器是及时销毁重建进程的机制,所以PHP-FPM传统项目无法正常使用apcu缓存。但不影响你源代码正常执行

inotify扩展同样是官方内置的可选扩展,其作用为实时监控指定目录的所有文件变化。

因此LOWPHP常驻内存运行方式可以充分利用原生扩展C语言性能,提供缓存和热更新功能。LOWPHP暂未发布,敬请期待。

LOWPHP类似GO语言开发的FrankenPHP,但LOWPHP是PHP原生架构,单核心常驻内存后,支持多站点执行。让开发程序员无需关心底层原理,编写代码与传统PHP-FPM一致,无需关心更新,同步,协程,异步等问题,同时LOWPHP也是一个开发框架,规范开发流程,让任何传统PHP程序员能开发出高性能项目,同时多站点部署方式与传统PHP-FPM无异!

证书如何签发?

若需DNS-01安装证书,请执行wnmp.sh脚本编译安装nginx后,第一时间到cloudflare-个人简介-API令牌-创建令牌,选择 编辑区域 DNS 生成token后,在已安装nginx的服务器控制台执行 :

echo “SAVED_CF_Token='token字符串'” >> ~/.acme.sh/account.conf

若检测到有效的 Cloudflare 凭据与 dns_cf.sh,优先 DNS-01;否则回落到 webroot。安装后自动写入证书路径并重载 Nginx。

推荐使用DNS-01为站点域名申请证书,如若采用webroot签发证书,域名开启cdn后,续签无法识别正常DNS IP,有可能续签失败

为什么不使用FTP而使用WebDav?

FTP是一个老旧的明文传输协议,即使可以配置证书也是非常麻烦的,由于大多数FTP服务端软件默认参数就是明文21端口,导致中间人可以轻松获取你的FTP账号密码,所以请立即停用FTP。即使你采用其他脚本安装的服务器环境,也应该立即卸载FTP服务端软件

WebDav是基于 HTTP/1.1 的扩展协议,只要正常申请SSL证书后,WebDav走443端口就能和网页一样受到证书加密保护。

在Windows系统下,你可以使用WinScp客户端采用与FTP一样的文件传输方式,或使用RaiDrive 映射为本地网盘操作文件。在其他Linux系统下,你可以使用Rclone挂载为本地网盘使用

WebDav支持一个站点多个账号配置,请重复执行bash wnmp.sh webdav 为同一个站点配置多个WebDav账号。所有密码文件路径在/home/passwd/目录下

客户端配置连接时,WinSCP 选择webdav协议连接,请在HOST:[domain]/webdav 加密方式选择:TLS/SSL隐式加密,端口必须保证为443端口,才能获得SSL证书加密保护!

其他客户端webdav协议下直接填写:https://[domain]/webdav

请使用真实域名替换[domain]

WNMP是否可以只开启WebDav作为网盘使用?

可以的。如果只作为网盘使用,执行bash wnmp.sh vhost开始站点,或单独执行bash wnmp.sh webdav 给已存在的站点配置WebDav时,选择 是否公开目录 yes .WNMP会禁用整个站点.php执行。任何后缀的文件都会作为下载文件提供下载

如果单独作为网盘使用,建议只安装NGINX,执行bash wnmp.sh 后可选择不安装PHP,不安装mariadb,只安装nginx

为什么不使用Mysql而使用Mariadb?

Mariadb是Mysql原作者重新开发构建的类Mysql开源版本。绝大多数语法与Mysql兼容,不用担心存在兼容问题!你可以导入Mysql的sql到Mariadb测试,几乎不会存在兼容问题

为什么Mariadb只支持10.x而不支持11.x?

考虑到低配置VPS环境,例如1GB内存的VPS也能正常安装WNMP,并且基于官方理念问题,新版本的Mariadb与Mysql差异越来越大。例如:utf8mb4_general_ci 编码在两个数据库都支持,但新版本各自采用了不同的文件编码。

WNMP安装的Mariadb数据库默认内置安装了Mroonga搜索引擎,Mroonga官方支持的Mariadb版本最高只支持10.x

数据库并不需要最新版本,低端配置的服务器环境无法正常安装,以及兼容综合考虑后WNMP暂时只支持Mariadb 10.x,并且还在官方正常维护期间的版本,如果确实需要安装其他版本,请自行修改WNMP代码

什么是Mroonga搜索引擎?

实际上Mroonga早已经内置在Mariadb多个版本中作为可选引擎提供使用。但官方内置的版本非常低,不能正常使用,因此WNMP默认编译Mariadb时关闭了可选内置Mroonga引擎。而采用了独立编译安装最新版本的Mroonga引擎

Mariadb官网对Mroonga介绍落地页:https://mariadb.com/docs/server/server-usage/storage-engines/mroonga/about-mroonga

Mroonga官网介绍落地页:https://mroonga.org/

几乎任何使用Mysql或Mariadb作为数据库的项目,其瓶颈都来自于数据库查询性能。强烈建议不要再使用LIKE模糊查询,其性能低下!

当把数据表引擎Innodb切换到Mroonga后,配置varchar或text字段索引为fulltext索引类型后,你可以尝试执行SELECT [name] FROM [users] WHERE MATCH ([name]) AGAINST (‘+张三' IN BOOLEAN MODE);测试是否正常。注:请使用真实字段和表名代替[name],[users]

更详细的教程,请访问https://mroonga.org/ 官网了解

为什么http://[ip]/phpmyadmin打开是403页面?

大多数其他方式安装的Nginx环境,都没有考虑默认站点的证书问题,如果默认站点只监听80端口的情况下,有人强制跳过证书验证访问https://[ip]/ ,Nginx会跳转到第一个监听了443端口的站点。这是大多数服务器运维容易忽视的问题。https://[ip]/ 会打开你正常配置域名证书的站点主页。如果在页面中输入账号密码,会存在中间人攻击风险!

因此WNMP默认站点同时监听了80和443端口,并且为了避免使用http://[ip]/phpmyadmin或https://[ip]/phpmyadmin 错误方式打开数据库,存在中间人攻击风险。WNMP要求访问默认站点的前提是执行bash wnmp.sh default,为默认站点配置一个二级域名并且正常申请证书后,才能通过https://[domain]/phpmyadmin 打开数据库

如何管理mariadb数据库?

执行bash wnmp.sh default为默认站点配置了二级域名申请证书的前提下,你可以访问https://[domain]/phpmyadmin,默认已经启用Nginx Basic Auth鉴权,账号为:wnmp,密码默认为[needpasswd]或你安装Mariadb设置的数据库密码一致!

修改默认站点的Nginx Basic Auth鉴权账号密码,请执行:htpasswd -bc /home/passwd/.default [账号] [密码],默认站点不支持多账号配置

https://[domain]/phpmyadmin Nginx Basic Auth鉴权通过后,才能登录phpmyadmin登录页面,账号输入root,密码输入你安装Mariadb设置的数据库密码

Mariadb数据库只支持localhost而非127.0.0.1连接。请注意项目源码中连接数据库使用localhost

第二种管理数据库方式为SSH命令控制台,直接输入mysql即可进入Mariadb命令控制台

如果数据表启用了Mroonga引擎,不能使用phpmyadmin导入导出SQL文件,因为phpmyadmin官方并没有考虑支持Mroonga

推荐统一采用在SSH命令控制台执行mysqldump命令导入导出SQL

全数据导出例子:mysqldump –all-databases –single-transaction –default-character-set=utf8mb4 –routines –events –flush-privileges | gzip > all_databases_backup.sql.gz #包含账户/权限/例程/事件

某数据库导出例子:mysqldump –single-transaction –default-character-set=utf8mb4 –databases test | gzip > test.sql.gz

导入例子:gunzip < all_databases_backup.sql.gz | mysql –default-character-set=utf8mb4

导入例子:gunzip < test.sql.gz | mysql –default-character-set=utf8mb4

能否只用其中某一部分?

可以。脚本支持按需安装与单独清理某个组件,也可以仅执行内核/网络调优。

是否支持一键生成SSH登录密钥?

可以的。执行bash wnmp.sh sshkey

===

⚠️ 强提醒:在你确认【已把私钥保存到你自己的电脑】之前

⚠️ 请不要断开当前 SSH 会话,否则你将无法再次登录服务器!

===

保存私钥到本地电脑,可以使用SSH客户端载入密钥免密码登录

配置密钥登录后,服务器将禁止一切账号密码登录

WNMP与其他脚本有什么区别,为什么要使用WNMP安装环境?

WNMP会动态根据系统硬件环境优化参数,在生产环境下已可以让服务器达到最大化性能

你可以用ab,wrk等并发测试工具测试性能。

同一个服务器硬件环境下,你可以尝试安装其他脚本与WNMP横向对比并发性能。作者不保证一定比其他脚本性能优秀,测试结果仅供参考!

特别注明:测试并发性能时,请关闭域名CDN缓存,采用http,并且ab -n100000 -c1000 -k http… 一定要保证开启 -k 才能保持启用Keep-Alive,模拟真实浏览器行为,性能更高。

是否未来计划出售wnmp.org域名所有权?

作者承诺坚持开源精神,不会出售wnmp.org,请认准唯一官网网址。

如何反馈BUG?

QQ群:1075305476

Telegram Group: https://t.me/wnmps

Githubhttps://github.com/lowphpcom/wnmp

社区源码正在基于LOWPHP构建中,敬请期待!

声明: 1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。 2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。 3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。 4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。 未经允许不得转载:国外主机测评 » WNMP:轻量·稳定·可复制的WebDav+Nginx+Mariadb+PHP一键包

相关文章