Принудительно загружать файлы php.ini из текущей папки

Моя цель - увеличить максимальный размер файла для загрузки в WordPress. Я следовал инструкциям этого SE-ответа и этого руководства (за исключением части.htaccess, поскольку он запускает nginx, а AFAIK 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.ini или же php5.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
  • Веб-сервер: 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

Если это не сработает, вставьте bin свои файлы конфигурации, и я помогу вам в дальнейшем.

Вам также следует обновить версию PHP.

Другие вопросы по тегам