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 / 问题 / 461702
Accepted
Alex G
Alex G
Asked: 2012-12-30 13:51:16 +0800 CST2012-12-30 13:51:16 +0800 CST 2012-12-30 13:51:16 +0800 CST

VirtualHost 中的自定义 PHPINIDir 设置影响其他 VirtualHosts

  • 772

一位客户要求为他的网站进行个人 php.ini 配置,因此我将他的 VirtualHost 设置如下:

<VirtualHost *:80>
    DocumentRoot "/home/alex/www.domain.tld"
    ServerName www.domain.tld
    AssignUserID alex alex
    PHPINIDir /home/alex/php.ini
</VirtualHost>

客户端在 /home/alex/ 下创建了 php.ini 文件,其中仅包含此设置:

session.save_path = "/home/alex/.php_sessions/"

完成后,他开始抱怨说他看到了其他客户网站生成的所有其他会话文件。

在做了一些基本的故障排除之后,我意识到他的 php.ini 设置影响了 httpd-vhosts.conf 中指定的所有网站。

问题是为什么?既然PHPINIDir只在里面指定一个特定的VirtualHost?

apache-2.2
  • 1 1 个回答
  • 12030 Views

1 个回答

  • Voted
  1. Best Answer
    DerfK
    2012-12-30T14:14:02+08:002012-12-30T14:14:02+08:00

    各个虚拟主机不能有自己的PHPINIDir,因为php.ini文件在 apache+mod_php 启动时被读取,甚至在它开始处理请求之前。无论出于何种原因,该指令不会对这种用法发出警告,而是设置全局 INI 目录并继续其愉快的方式。

    相反,您必须使用php_value、php_flag和Apache 指令来覆盖您想要为此虚拟主机设置的特定设置。(见这里)在这种情况下,你会这样做:php_admin_valuephp_admin_flag

    <VirtualHost *:80>
        DocumentRoot "/home/alex/www.domain.tld"
        ServerName www.domain.tld
        AssignUserID alex alex
        php_value session.save_path "/home/alex/.php_sessions/"
    </VirtualHost>
    

    在这种情况下,它将加载默认php.ini文件,然后更改session.save_path到给定目录,仅用于此虚拟主机。

    • 5

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

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