Aplicar o carregamento de arquivos php.ini da pasta atual

3

Meu objetivo é aumentar o tamanho máximo do arquivo para uploads no WordPress. Eu segui os passos em esta resposta SE e este tutorial (exceto a parte .htaccess, porque é nginx runnning e nginx AFAIK ignora arquivos .htaccess), sem sucesso. Parece que está ignorando php.ini arquivos da pasta atual.

Em uma instalação WP não relacionada eu executo em um host compartilhado alugo, se eu colocar um arquivo php.ini na pasta WordPress (ou qualquer pasta), os parâmetros nesse arquivo terão precedência sobre a pasta php.ini original e os parâmetros não especificados serão herdados.

Eu assumo que este é o comportamento padrão do PHP. O início de /etc/php.ini parece corroborar isso:

[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. Current working directory (except 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

A documentação oficial também parece concordar:

In addition to the main php.ini file, PHP scans for INI files in each directory, starting with the directory of the requested PHP file, and working its way up to the current document root (as set in $_SERVER['DOCUMENT_ROOT']). In case the PHP file is outside the document root, only its directory is scanned.

No meu exemplo, parece que não está funcionando; Adicionar um arquivo php.ini ou php5.ini com upload_max_filesize , etc, não terá o efeito desejado. Adicionar @ini_set( 'upload_max_size' , '64M' ); ao final do arquivo functions.php do WP, conforme recomendado em outros lugares, não funcionará tão bem.

Saída de 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

De 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 
  • SO: versão 6.5 do CentOS (final) 2.6.32-431.17.1.el6.x86_64
  • versão do PHP: 5.4.30
  • Servidor da Web: nginx-1.6.0-2.el6.ngx.x86_64
por That Brazilian Guy 21.07.2014 / 18:56

1 resposta

0

Sem ver seus arquivos de configuração, só posso assumir ..

Certifique-se de que você fez as seguintes alterações no seu arquivo nginx.conf :

http {

client_max_body_size $New_File_Size;

}

Substitua $New_File_Size para o que você definiu para o tamanho máximo do arquivo php.ini.

Uma vez que você tenha adicionado esta linha ao seu arquivo nginx.conf, você precisa reiniciar seus serviços.

service php-fpm restart

service nginx reload

Se isso não funcionar, cole seus arquivos de configuração e eu ajudarei você.

Você também deve atualizar sua versão do PHP.

    
por 22.07.2014 / 00:52