我的目标是增加在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.ini或php5.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
看不到你的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版本。