php - 减少在 Azure Web App 上运行的 PHP Wiki 站点的磁盘空间使用量

标签 php azure azure-storage wiki

最近我刚刚开始在 Azure Web App 上管理一个 wiki (pukiwiki) 站点,该站点还运行另一个 MVC 应用程序。下面是概念结构。

--site/
  --wwwroot/
    --<main app>
    --wiki/
      --attach/   //attached files
      --lib/      //php codes
      --image/    //images
      --<other folders>
      --index.php
      --pukiwiki.ini
      --.htaccess
      --<other files>

它工作得很好,但是,我的 wiki 被设计为包含许多图像和文章,因此 wiki 的存储会影响我的网络应用程序的总磁盘空间,这将是一个问题。

然后我认为这是将上面列出的文件夹移动到 Azure Blob 存储的一种方法。
index.php 和 wiki.ini 对位于 lib、attach 和其他文件夹中的 php 代码有一些要求,并且还有确定文件夹位置的定义。

//index.php
define('DATA_HOME', '');
define('LIB_DIR',   'lib/');

require(LIB_DIR . 'pukiwiki.php');

//pukiwiki.ini
define('DATA_DIR',      DATA_HOME . 'wiki/'     );
define('UPLOAD_DIR',    DATA_HOME . 'attach/'   );
...

我将文件夹移动到 blob 并编辑这些引用以引用那里的位置。

//index.php
define('DATA_HOME', 'https://<account>.blob.core.windows.net/wiki/<container>/');
define('LIB_DIR',   'lib/');

require(LIB_DIR . 'pukiwiki.php');

//pukiwiki.ini
define('DATA_DIR',      DATA_HOME . 'wiki/'     );
define('UPLOAD_DIR',    DATA_HOME . 'attach/'   );
...

但是,由于引用另一个域的限制,它不起作用。通过编辑 .user.ini 来允许访问域将是一个解决方案,但正如我所见,从安全角度来看并不推荐这样做。

有什么好主意可以减少 wiki 内容的磁盘空间吗?

最佳答案

关于“有没有减少磁盘空间的好主意”——这是主观且广泛的。但是,从客观的角度来看,您所做的事情是不正确的。

您尝试将 Blob 容器视为文件目录,但事实并非如此。 Blob 可通过 REST API(或特定于语言的 SDK 之一)进行访问。

如果您需要为 Web 应用程序提供一个单独的、更大的存储区域(无需修改代码以专门用于 Blob 存储),则必须执行以下操作之一:

  • 创建 Azure 文件存储卷(位于 Blob 存储之上,但实现 SMB,并允许您像访问任何其他 UNC 路径一样访问该卷)
  • 升级到更大的网络应用套餐(具有更多磁盘空间)
  • 设置一个带有附加存储磁盘的虚拟机,作为您的 Web 应用程序的文件服务器(您还需要处理虚拟机可能离线并导致您的文件服务器对您的 Web 应用程序不可用的情况)

始终可以选择在 Web 应用程序之外存储内容(例如数据库、直接 Blob 访问等)。但这将取决于您的 wiki 软件的设置方式。

关于php - 减少在 Azure Web App 上运行的 PHP Wiki 站点的磁盘空间使用量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40069896/

相关文章:

javascript - 如何通过类名和存储获取页面中的所有链接

Azure DevOps AzCopy 身份验证失败,它要么不正确,要么已过期,或者没有正确的权限

azure - 每小时生成的 Azure Blob 存储 SAS key 数量是否有限制?

azure - 如何使用 az 存储实体查询在 powershell 中获取排序结果?

php - 什么时候*不*使用准备好的语句?

PHP/CSS 和列对齐

c# - 如何执行Azure队列触发的大量持久函数?

java - 使用 Skutypes Azure-sdk-for-java 创建 VMSS 问题

Azure ARM模板将复杂值获取到变量中

php - Magento 产品详细信息图片尺寸