跳转到主要内容
你行网

Main navigation

  • 首页
  • Drupal
  • 编程与开发
  • 数据库
  • 操作系统与应用
  • 服务器与运维
  • 社区
User account menu
  • 登录

面包屑

  1. 首页

drupal 10如何配置nginx 服务器

由 hrs, 14 四月, 2026

明白了,这种目录结构是 Drupal 10 使用 Composer 安装的标准结构。在这种情况下,我们需要做两件事:

1.  **修改 `root` 路径**:将网站根目录指向 `dwoke/web`。
2.  **(推荐)配置子目录访问**:通常为了让 URL 更美观且安全,我们会配置让 `http://127.0.0.1:8080/` 直接访问 `dwoke` 文件夹下的内容,而不是让 URL 变成 `http://127.0.0.1:8080/dwoke/web/`。

假设你的物理路径是 `/var/www/html/dwoke/web/index.php`,下面是针对这种情况的最佳 Nginx 配置:

### Drupal 10 子目录结构专用配置

```nginx
server {
       listen 8080 default_server;
       listen [::]:8080 default_server;

       # --- 核心修改 1: 指向 Drupal 的 web 目录 ---
       # 假设你的 dwoke 文件夹在 /var/www/html/ 下
       # 最终路径组合就是: /var/www/html/dwoke/web
       root /var/www/html/dwoke/web;

       index index.php index.html;

       server_name _;

       # --- 核心修改 2: Drupal 的 URL 重写规则 ---
       location / {
               # try_files 会尝试查找文件,如果找不到,则转交给 index.php
               # 这解决了你之前 "干净 URL 404" 的问题
               try_files $uri $uri/ /index.php?$query_string;
       }

       # --- Drupal 私有文件保护 ---
       # 如果 drupal 根目录是 root,那么这里写相对路径即可
       location ~ ^/sites/.*/private/ {
               deny all;
               return 404;
       }

       # --- 禁止访问敏感文件 (备份、隐藏文件等) ---
       location ~* \.(bak|config|sql|tar|tgz|zip|sh|engine|inc|info|install|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$ {
               deny all;
       }
       
       location ~ /\. {
               deny all;
       }

       # --- PHP 处理核心配置 ---
       location ~ '\.php$|^/update.php' {
               include snippets/fastcgi-php.conf;
               
               # 对应你的 PHP 8.4 版本
               fastcgi_pass unix:/run/php/php8.4-fpm.sock;
               
               # 这里的 $document_root 会自动替换为上面定义的 root 路径
               # 即: /var/www/html/dwoke/web
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               
               include fastcgi_params;
               
               # 优化参数
               fastcgi_read_timeout 300;
               fastcgi_buffer_size 128k;
               fastcgi_buffers 4 256k;
               fastcgi_busy_buffers_size 256k;
       }

       # --- 静态资源缓存 ---
       location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
               expires max;
               log_not_found off;
       }
}
```

### 关键修改说明

1.  **`root /var/www/html/dwoke/web;`**
   *   这是最重要的一行。它告诉 Nginx:“网站的根目录就是 `dwoke/web`”。
   *   这样,当用户访问 `http://127.0.0.1:8080/index.php` 时,Nginx 实际上是在读取 `/var/www/html/dwoke/web/index.php`。
   *   **注意**:请确保 `dwoke` 文件夹有足够的权限让 Nginx 读取(通常 Nginx 运行用户是 `www-data`)。
       *   可以运行命令授权:`sudo chown -R www-data:www-data /var/www/html/dwoke`

2.  **`try_files $uri $uri/ /index.php?$query_string;`**
   *   这行代码依然必不可少。因为 Drupal 的 URL(如 `/node/1` 或你的文章别名)在 `web` 目录下并不存在真实的物理文件。这行指令充当了“路由器”,把找不到的文件请求全部转交给 `index.php` 处理。

### 验证步骤

配置修改完成后,请执行以下步骤:

1.  **检查权限(非常重要)**:
   如果 `dwoke` 目录是新建的,或者归属权不是 web 服务器用户,可能会导致 Permission Denied。
   ```bash
   # 将 your_username 替换为你的用户名,这通常能解决权限问题
   sudo chown -R www-data:www-data /var/www/html/dwoke
   sudo chmod -R 775 /var/www/html/dwoke
   ```

2.  **测试配置语法**:
   ```bash
   sudo nginx -t
   ```

3.  **重载 Nginx**:
   ```bash
   sudo systemctl reload nginx
   ```

现在,访问 `http://127.0.0.1:8080/` 应该就能直接进入 Drupal 10 的首页,并且所有干净的 URL(如你之前的 `articles/...`)都能正常工作了。

  • 登录或注册以发表评论
  • 1次浏览
内容类型分类
服务器与运维
文章归类
Linux

文章标签

  • nginx

评论

最新文章

  • 配置一个完整的Web服务器环境(LNMP:Linux + Nginx + MySQL + PHP)。
  • Nginx 各种应用场景
  • 什么是无头cms
  • 什么是站群
  • drupal 10如何配置nginx 服务器
  • nginx 多站点配置方法
  • OpenClaw 帮助文件的翻译版本
  • OpenClaw AI助手成本优化完全指南:从每天1900万Token降到合理范围
  • drupal 10 如何导出分类术语
  • vim 复制粘贴的几种方法

标签云

adsenseAIApacheaptbadblocksbreadcrumbbrewcentoscertbotckeditorcommandcomposercookiecsharpCSScurlC语言DDEVdiffdnsdockerDreamweaverDrupaldrupal 7drupal 8drupal 9drupal10drupal 11drushExcelfirewalldfirmwareflameshotformgimpgitgzipHTMLHTML5httpdhttp验证inputipjavaJavaScriptJavaSrciptkernelKVMLinuxmavenmbstringmod_expires 模块MysqlnerdtreenetstatnetworknginxnpmOpenClawpasswordphpphpmyadminphp扩展RFIDRSSselinuxSEOsharesimple_adsensesshsslStatisticssuperfishsurroundtagcloudstitleubuntuuploadprogressvimVPNVUEweb服务器WireGuardwpsxdebugyoutubeyumzip主题主题(theme)二进制五笔分类术语压缩解压哈希值声音字段密码工作流快捷键摄影无头cms更新权限果树种植标签优化模块模块(module)源地址版本号电子秤电脑基础电脑技巧短信验证站群端口简介算法网站备份网站安全网站运营翻译英语表单视图(views)计算机基础赚钱超五类线网线邮件验证重定向重定向,301错误颜色

相关文章

  • 配置一个完整的Web服务器环境(LNMP:Linux + Nginx + MySQL + PHP)。
  • Nginx 各种应用场景
  • 什么是无头cms
  • 什么是站群
  • nginx 多站点配置方法
  • linux-firmware 是什么,有哪些作用?
  • journalctl 的使用和简介
  • linux 网络检查命令
  • 在drupal 使用composer一次性安装多个模块
  • composer update 命令的参数列表
RSS源

关于我们

  • 你行网简介
  • 关于我们
  • 版权声明

网站相关

  • 社区论坛
  • 站点反馈
  • 网址导航
  • 网站地图

友情链接

  • 申请链接
  • 英文学习

友情链接2

  • drupal 大学
  • 水滴间
  • 爱码网
  • Apache

友情链接3

  • MySQL
  • php
  • drupalcode

友情链接4

  • Drupal 中国
  • Drupal 老葛
  • 宁浩网
  • drupal 台湾
Copyright © 2019 - 2021 你行网 版权所有  粤ICP备19072650号-1