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 / 问题 / 36867
Accepted
Ionuț G. Stan
Ionuț G. Stan
Asked: 2009-07-08 00:52:34 +0800 CST2009-07-08 00:52:34 +0800 CST 2009-07-08 00:52:34 +0800 CST

PHP 作为 CGI 还是 Apache 模块?

  • 772

我一直认为 PHP 作为 Apache 模块安装效果更好,但最近,本地论坛上的某个人指出,将 PHP 作为 CGI 运行在安全方面更好。我做了一些谷歌搜索,似乎Dreamhost 默认其 PHP 安装为通过 CGI 工作。现在我有点困惑。

据我了解(我不是系统管理员,只是一名 Web 开发人员),当 PHP 作为 Apache 模块安装时存在用户权限问题。通过 CGI 使用 PHP 时存在速度问题(或者确实如此)。

现在推荐的安装 PHP 的方法是什么?在共享主机和专用主机上。

php apache-2.2 installation cgi
  • 3 3 个回答
  • 3487 Views

3 个回答

  • Voted
  1. Best Answer
    David Spillett
    2009-07-08T01:09:50+08:002009-07-08T01:09:50+08:00

    将 PHP 作为一个模块运行通常更有效,但这意味着所有脚本都在同一个用户帐户下运行(Apache 运行的任何帐户),这可能会在共享环境中造成安全问题。

    CGI 的速度要慢得多,因为它会为每个需要的请求启动一个新的 PHP 进程,但可以配置为以拥有它的用户身份运行每个脚本,这在共享环境中会更加安全。

    FastCGI 的设置可能更麻烦,但接近作为 PHP 模块运行的速度。

    • 7
  2. Dan Carley
    2009-07-08T01:15:59+08:002009-07-08T01:15:59+08:00

    一般来说,您想要运行 CGI 的唯一原因是在共享环境中。

    这允许您拥有 suEXEC 样式(请参阅:suPHP)安排,其中脚本仅作为所有者的 UID/GID 执行,并且对文件系统上的任何其他内容具有有限的权限。

    否则 mod_php 效率更高,通常更容易调试。

    • 5
  3. Kornel
    2009-07-08T13:42:31+08:002009-07-08T13:42:31+08:00

    使用 FastCGI,我可以在不重新启动服务器的情况下重新启动 PHP(只需终止 PHP 进程,服务器会注意到它并立即重新启动它们)。

    • 1

相关问题

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

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

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +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