Чтение файла с PHP дает ошибку 500 - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть скрипт, который читает файл mp3 с помощью readfile () (я также пробовал fread () с циклом).И в одном конкретном файле я получаю 500 ошибок.Все остальные файлы, кажется, читаются очень хорошо.

Когда я просматриваю журнал ошибок на моем сервере, я замечаю, что я получаю ошибку памяти PHP, когда когда-либо этот конкретный файл пытаются прочитать.

Кто-нибудь может дать мне несколько советов относительно того, что может происходить?

Ответы [ 5 ]

1 голос
/ 22 ноября 2011

Вы уже указали на проблему - PHP не хватает памяти. Максимальное использование памяти в PHP ограничено настройкой ini.

Вы можете установить его во время выполнения вверху вашего скрипта с помощью ini_set :

ini_set('memory_limit', '64M');

Или вы можете установить его в файле php.ini , чтобы он действовал для всех сценариев :

memory_limit = 64M;

Наконец, вы можете увидеть память, используемую исполняемым в данный момент сценарием с memory_get_usage()

0 голосов
/ 22 ноября 2011

Скорее всего, он превышает максимальный объем памяти.Это можно настроить в php.ini, проверьте здесь: http://www.php.net/manual/en/ini.core.php#ini.memory-limit

0 голосов
/ 22 ноября 2011

Попробуйте увеличить время выполнения: set_time_limit (300);// 300 секунд ini_set ('memory_limit', '16M');// увеличить до некоторого значения, например, 16 МБ

0 голосов
/ 22 ноября 2011

Что ж, php, вероятно, не хватает памяти до завершения скрипта. Вы можете просто увеличить память, которую разрешено запускать php, изменив параметр memory_limit в вашем php.ini.

0 голосов
/ 22 ноября 2011

Размер файла mp3 больше, чем memory_limit.Вам нужно будет увеличить объем памяти, к которому может обращаться PHP, если вы хотите читать из этого mp3-файла.

Если у вас есть доступ к файлу php.ini, вы можете найти memory_limit = 16M ; и заменить значениес тем большим объемом памяти, который вам необходим.

Если у вас нет доступа к php.ini и у вас есть доступ .htaccess, добавьте:

php_value memory_limit 16M

и заменитезначение.

Если у вас нет ни одного, попробуйте сжать mp3-файл или иным образом уменьшить объем памяти, который потребуется для выполнения этого действия.Попробуйте очистить неиспользуемые переменные и занять много памяти.

...