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 / 问题 / 35755
Accepted
Tony
Tony
Asked: 2009-07-04 15:43:50 +0800 CST2009-07-04 15:43:50 +0800 CST 2009-07-04 15:43:50 +0800 CST

php.ini 没有被读取

  • 772

我将 PHP 配置为在 /etc/php5/apache2 中查找 php.ini 文件。phpinfo() 的输出表明路径设置正确,但也表明没有加载配置文件。我暂时将 php.ini 权限更改为 777 以测试该问题并且权限不是问题。还有什么问题?

当我编译php时,我做了:

sudo ./configure --with-apxs2=/usr/sbin/apxs --with-mysql --enable-so --with-config-file-path=/etc/php5/apache2 --sysconfdir=/etc/php5 --with-config-file-scan-dir=/etc/php5/conf.d

phpinfo() 说:

Configuration File (php.ini) Path           /etc/php5/apache2 
Loaded Configuration File                   (none)
Scan this dir for additional .ini files     (none) 
Additional .ini files parsed                (none) 

php --ini 还说: 配置文件(php.ini) 路径:/usr/local/lib 加载的配置文件:/etc/php5/apache2/php.ini 扫描其他 .ini 文件:(无)其他 .ini解析的文件:(无)

如果我将 php.ini 放在 /usr/local/lib 中,则配置文件可以正常加载(尽管不会加载额外的 .ini 文件)。我不确定为什么会发生这种情况,因为我在编译 PHP 时设置了选项。

php installation configuration
  • 5 5 个回答
  • 9961 Views

5 个回答

  • Voted
  1. Best Answer
    David Pashley
    2009-07-04T17:52:06+08:002009-07-04T17:52:06+08:00

    核选项是在 strace 下运行 apache,以查看它在尝试读取 php.ini 文件时在做什么。

    运行“ps aux”以找到 apache 的命令行,然后停止该进程。现在运行:

    # strace -efile -f -o /tmp/apache.log /usr/sbin/apache2 -k start
    

    在浏览器中请求您的 phpinfo() 页面,然后使用 ctrl-c 终止 strace。您现在可以为 php.ini grep /tmp/apache.log 并查看它在尝试读取该文件时是否显示任何错误。这将向您显示文件未找到或权限问题等问题。

    如果有一个 open() 调用返回一个数字,那么它似乎正在正确读取文件,并且文件一定有问题阻止 php 正确解析它,但我希望这是记录在错误日志中。

    • 6
  2. StackKrish
    2009-07-11T03:05:50+08:002009-07-11T03:05:50+08:00

    作为一种解决方法,您可以在 Apache 配置中使用 PHPIniDir 指令来强制 PHP 使用特定的 php.ini 文件

    <IfModule mod_php5.c>
        PHPIniDir "usr/local/lib"
    </IfModule>
    

    现在应该强制 PHP 使用您的 php.ini 文件。

    • 1
  3. Unkwntech
    2009-07-04T17:37:24+08:002009-07-04T17:37:24+08:00

    更改 php.ini 后是否重新启动了 apache?

    如果你这样做了,在某些操作系统上,似乎 apache 会缓存数据,所以/etc/init.d/apache reload你不需要这样做,/etc/init.d/apache restart要么/etc/init.d/apache force-reload

    • 0
  4. Saurabh Barjatiya
    2009-07-04T21:00:51+08:002009-07-04T21:00:51+08:00

    目录 /etc 有 /etc/php5 应该执行其他权限。那是,

    chmod o+x /etc /etc/php5
    

    如果目录 /etc/php5/apache2 的用户或组所有者为 apache。然后至少一个组或用户应该对 /etc/php5/apache2 具有读取和执行权限。或者简单地授予其他人对目录 /etc/php5/apache2 的读取和执行权限。那是,

    chmod o+rx /etc/php5/apache2
    

    最后不要使 php.ini 777。如果 apache 正在检查文件的安全权限以确保它不是世界可写的,这可能会导致问题。在 php.ini 上使用 755。这足以确保问题不是由访问控制引起的。

    同样,apache 也应该能够读取其他 ini 文件。他们的其他 ini 文件应该对其他人具有读取权限,或者它们应该属于用户/组 apache 并且设置了用户/组读取权限。

    • 0
  5. Draiken
    2013-09-18T11:23:53+08:002013-09-18T11:23:53+08:00

    在遇到同样的问题一段时间后,我意识到即使我用正确的路径重新编译了 PHP 来加载配置,我也忘记make clean在重新编译之前做一个。显然,除非您清理目标文件,否则它不会重新生成 php.ini 加载路径上的特定部分。

    清理构建并重新编译后,一切顺利。

    • 0

相关问题

  • 对于 SME 规模的安装,您在 Vista 中禁用了哪些功能(如果有)?

  • 首次安装 Office Communications Server 需要一些帮助

  • 如何配置 Ubuntu 的无人值守安装?

  • 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