强制从当前文件夹加载 php.ini 文件

强制从当前文件夹加载 php.ini 文件

我的目标是增加 WordPress 中上传的最大文件大小。我已按照以下步骤操作这个SE答案本教程(除了 .htaccess 部分,因为它正在运行 nginx,而据我所知 nginx 会忽略 .htaccess 文件),但无济于事。看起来它正在忽略php.ini当前文件夹中的文件。

在我租用的共享主机上运行的不相关的 WP 安装上,如果我将php.ini文件放在 WordPress 文件夹(或任何文件夹)上,则该文件上的参数将优先于原始php.ini文件夹,并且未指定的参数将被继承。

我认为这是 PHP 的默认行为。开头/etc/php.ini似乎证实了这一点:

[PHP]

;;;;;;;;;;;;;;;;;;;
; About php.ini   ;
;;;;;;;;;;;;;;;;;;;
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.

; PHP attempts to find and load this configuration from a number of locations.
; The following is a summary of its search order:
; 1. SAPI module specific location.
; 2. The PHPRC environment variable. (As of PHP 5.2.0)
; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)

;4.当前工作目录(CLI 除外)

; 5. The web server's directory (for SAPI modules), or directory of PHP
; (otherwise in Windows)
; 6. The directory from the --with-config-file-path compile time option, or the
; Windows directory (C:\windows or C:\winnt)
; See the PHP docs for more specific information.
; http://php.net/configuration.file

官方文档似乎也同意:

除了主 php.ini 文件之外,PHP 扫描每个目录中的 INI 文件,从请求的 PHP 文件的目录开始,然后向上扫描到当前文档根目录(如 $_SERVER['DOCUMENT_ROOT'] 中设置)。如果 PHP 文件位于文档根目录之外,则仅扫描其目录。

在我的例子中,它似乎不起作用;添加带有等的php.iniphp5.ini文件upload_max_filesize不会产生预期的效果。按照其他地方的建议,将其添加@ini_set( 'upload_max_size' , '64M' );到 WP 文件的末尾functions.php也不起作用。

输出php --ini

Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/curl.ini,
/etc/php.d/dom.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/json.ini,
/etc/php.d/mbstring.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini,
/etc/php.d/posix.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/sysvmsg.ini,
/etc/php.d/sysvsem.ini,
/etc/php.d/sysvshm.ini,
/etc/php.d/wddx.ini,
/etc/php.d/xmlreader.ini,
/etc/php.d/xmlwriter.ini,
/etc/php.d/xsl.ini,
/etc/php.d/zip.ini

phpinfo()

Configuration File (php.ini) Path   /etc
Loaded Configuration File   /etc/php.ini
Scan this dir for additional .ini files     /etc/php.d
Additional .ini files parsed    /etc/php.d/curl.ini, /etc/php.d/dom.ini, /etc/php.d/fileinfo.ini, /etc/php.d/json.ini, /etc/php.d/mbstring.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/phar.ini, /etc/php.d/posix.ini, /etc/php.d/sqlite3.ini, /etc/php.d/sysvmsg.ini, /etc/php.d/sysvsem.ini, /etc/php.d/sysvshm.ini, /etc/php.d/wddx.ini, /etc/php.d/xmlreader.ini, /etc/php.d/xmlwriter.ini, /etc/php.d/xsl.ini, /etc/php.d/zip.ini 
  • 操作系统:CentOS 版本 6.5(最终版)2.6.32-431.17.1.el6.x86_64
  • PHP 版本:5.4.30
  • Web 服务器:nginx-1.6.0-2.el6.ngx.x86_64

答案1

没有看到您的配置文件,我只能假设......

确保您对文件进行了以下更改nginx.conf

http {

client_max_body_size $New_File_Size;

}

将其替换$New_File_Size为您设置 php.ini 最大文件大小的值。

将此行添加到现有的 nginx.conf 文件后,您需要重新启动服务。

service php-fpm restart

service nginx reload

如果这不起作用,请粘贴您的配置文件,我会进一步帮助您。

您还应该更新您的 PHP 版本。

相关内容