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

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

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

我认为这是默认的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文件位于文档根目录之外,则只扫描其目录。

在我的例子中,看起来不工作; 用upload_max_filesize等添加一个php.iniphp5.ini文件,将不会产生预期的效果。 添加@ini_set( 'upload_max_size' , '64M' ); 到WP的functions.php文件的末尾,正如其他地方所build议的那样,将不会工作。

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

看不到你的configuration文件,我只能假设..

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

http {

 client_max_body_size $New_File_Size; 

}

$New_File_Sizereplace$New_File_Size你设置你的php.ini最大文件大小。

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

service php-fpm restart

service nginx reload

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

你也应该更新你的PHP版本。