AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 833535
Accepted
Michael
Michael
Asked: 2017-02-20 12:37:06 +0800 CST2017-02-20 12:37:06 +0800 CST 2017-02-20 12:37:06 +0800 CST

LAMP 堆栈,仅对特定目录进行读/写访问

  • 772

我正在考虑设置一个 AWS 微实例,我可以从中运行许多不同的、不相关的网站。

我在共享主机上遇到的一个问题是,我的一些客户运行 Wordpress 网站,这些网站有时不会像我希望的那样及时更新到最新版本,从而使他们容易受到安全漏洞的攻击。以前,当其中一个 Wordpress 网站遭到入侵时,我共享主机上的所有其他网站都会受到影响,包括非 Wordpress 网站。

如果它再次发生,我至少想控制它。有没有一种方法,在一个 Linux 实例上,我可以拥有多个 PHP“用户”(非常宽松地使用该术语),每个用户都具有不高于网站根级目录的读写权限?

我已经看到了有关OpenVZ的建议,但这似乎会对性能产生很大的影响而收效甚微。

抱歉,如果以前有人问过这个问题 - 这是那些难以简洁地用于谷歌搜索的事情之一,但又足够明显,以至于以前一定有人问过同样的事情。

linux php apache-2.2 lamp amazon-web-services
  • 1 1 个回答
  • 95 Views

1 个回答

  • Voted
  1. Best Answer
    Tim
    2017-02-20T12:53:51+08:002017-02-20T12:53:51+08:00

    您可以使用文件权限在单个虚拟机(EC2 实例)上隔离事物。您可以拥有单独的 PHP 池,并且它们可以根据本DO 教程以不同的用户身份运行。该教程几乎是您需要做什么的指南,并且可能会比使用 ECS 更好。

    您应该查看t2 instances, t2.micro 可能有点小,有多个池,但小型或中型可能适合您。当然,您必须进行一些测试。您可以将虚拟内存添加到 EC2 实例,但也有缺点,特别是因为磁盘在 t2 实例上跨网络。其他实例类型具有本地磁盘,上一代 M3/C3 实例,但您可能最好使用具有足够 RAM 的 t2 或当前一代实例。

    或者查看AWS EC2 容器服务,也就是托管 docker。这将使您将事物完全分开,但代价是运行多个资源密集型应用程序副本,例如使用大量内存的 PHP。微型实例可能不会适用于许多容器,但t2.large或类似的可能是合适的。

    更新 - 后续问题 Nginx 是一个快速、高效的 Web 服务器和反向代理,它使用非常少的内存并且相对容易配置。Apache 更大,可用的模块更多,但使用的资源更多。

    我在 t2.nano 上托管了 5 个网站和 MySQL,但我偶尔会用完 RAM 进行大的 yum 更新。t2.micro 最初可能适合您,但这取决于您拥有多少 PHP 池 - 它们可能会占用大量内存。我有一个关于如何配置 MySQL 以使用最少 RAM 的指南。从免费层上的 t2.micro 和 RDS 服务开始,这样您的数据库就可以在单独的机器上运行,从而节省 RAM。如果由于 RAM 要求而不得不增加更大的实例大小,请不要感到惊讶。

    来自评论 @tero Kilkanen 的更新指出了以下非常有价值的观点

    如果您希望 PHP 工作者之间有更多的分离,您可以考虑使用 PHP-FPM 的 chroot 功能。使用 chroot,每个 PHP 进程只能看到访问其 chroot 中的目录。但是,它需要更多的工作来设置,我不知道是否有任何指南可以做到这一点

    • 1

相关问题

  • mod_rewrite 不转发 GET 参数

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve