PHP + AJAX não pode carregar arquivos maiores que 100KB

1

O upload de arquivos maiores que 100KB falha com 500 erros de servidor. O site é construído no Laravel e está usando o AJAX para o upload de arquivos. Arquivos pequenos podem ser carregados sem problemas.

Eu testei o upload com a mesma imagem que é dimensionada com o GIMP para menos de 100 KB e outra dimensionada com mais de 100 KB, então o problema não pode ser o tipo de arquivo ou qualquer coisa relacionada à própria imagem, o problema parece estar relacionado apenas para o tamanho do arquivo.

Eu verifiquei o php.ini para memória máxima, upload_max_filesize, post_max_size e todos estão bem. Também verifiquei que o virtualhost do apache não está tendo configuração de tamanho máximo de arquivo. Verifiquei os logs do apache e ele mostra apenas 500 erros de servidor sem mais detalhes. Não consigo encontrar nenhuma pista em nenhum outro arquivo de log. Eu depurei o jQuery para chamar AJAX e assegurei que a função chamada no lado do PHP não está sendo chamado. Tentei verificar as configurações do Laravel, mas não encontrei nada que pudesse estar relacionado.

Alguma ideia de onde o limite de tamanho de arquivo pode estar vindo? Ou alguma idéia de onde obter mais informações de onde vem o 500?

UPDATE: aqui estão os detalhes da solicitação para solicitações bem-sucedidas e com falha. A imagem é igual a apenas 100KB no caso de sucesso e acima de 100KB em caso de falha.

Solicitação bem-sucedida:

Request URL:http://example.com/upload_photo
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip,deflate
Accept-Language:en-US,en;q=0.8,fi;q=0.6
Connection:keep-alive
Content-Length:119826
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryhVIN89yYhJPjWZoS
Cookie:step1=d18d6d9cb707914642cc3df4501565c5c361feab%2B1; step2=d18d6d9cb707914642cc3df4501565c5c361feab%2B1; step3=d18d6d9cb707914642cc3df4501565c5c361feab%2B1; laravel_session=b6cc316fdb17ada3552da4168fa23ad35bc0f171%2B4nKoS74bQHSD9HjzIytxL3Tno2sBYbOKRPfemvHY
Host:example.com
Origin:http://example.com
Referer:http://example.com/album/21095
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36
X-Requested-With:XMLHttpRequest
Request Payload
------WebKitFormBoundaryhVIN89yYhJPjWZoS
Content-Disposition: form-data; name="0"; filename="1c.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryhVIN89yYhJPjWZoS--
Response Headersview source
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:42
Content-Type:text/html
Date:Wed, 24 Sep 2014 01:20:09 GMT
Keep-Alive:timeout=5, max=99
Server:Apache/2.2.22 (Ubuntu)
Vary:Accept-Encoding
X-Powered-By:PHP/5.3.10-1ubuntu3.10

Solicitação falhada:

Request URL:h_t_t_p://example.com/upload_photo
Request Method:POST
Status Code:500 Internal Server Error
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip,deflate
Accept-Language:en-US,en;q=0.8,fi;q=0.6
Connection:keep-alive
Content-Length:142451
Content-Type:multipart/form-data; boundary=----WebKitFormBoundarycv7BVPR9y5npZxAB
Cookie:step1=d18d6d9cb707914642cc3df4501565c5c361feab%2B1; step2=d18d6d9cb707914642cc3df4501565c5c361feab%2B1; step3=d18d6d9cb707914642cc3df4501565c5c361feab%2B1; laravel_session=b6cc316fdb17ada3552da4168fa23ad35bc0f171%2B4nKoS74bQHSD9HjzIytxL3Tno2sBYbOKRPfemvHY
Host:example.com
Origin:http://example.com
Referer:http://example.com/album/21095
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36
X-Requested-With:XMLHttpRequest
Request Payload
------WebKitFormBoundarycv7BVPR9y5npZxAB
Content-Disposition: form-data; name="0"; filename="1d.jpg"
Content-Type: image/jpeg


------WebKitFormBoundarycv7BVPR9y5npZxAB--
Response Headersview source
Accept-Ranges:bytes
Connection:close
Content-Encoding:gzip
Content-Length:829
Content-Type:text/html
Date:Wed, 24 Sep 2014 01:21:42 GMT
ETag:"141df4-73b-5030bebf5947d"
Last-Modified:Sun, 14 Sep 2014 19:57:01 GMT
Server:Apache/2.2.22 (Ubuntu)
Vary:Accept-Encoding
    
por Laowai 23.09.2014 / 17:27

1 resposta

1

O motivo era o mod_fcgid do apache, que limitava o tamanho do upload do arquivo para 128 KB por padrão.

    
por 24.09.2014 / 04:39