| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Время жизни скрипта |
| Автор: Throne 13.9.2007, 19:45 |
| На сервере (мастерхост) жестко установленно время жизни скрипта, в админке на сайте есть возможность заливать файлы, но т.к . время работы скрипта ограничено, файлы заливаются только те, которые успевают залиться за 10 секунд. пробовал использовать "set_time_limit(300);" - не помогло. файлы передаются через форму по посту, затем перемещаются из временной директории в нужное место и переименновываются. подскажите пожалуйста, как можно осуществить загрузку больших файлов? |
| Автор: ewolf 13.9.2007, 21:34 |
| Проблема не в ограничении по времени (оно не учитывается в загрузке файла), а в значениях post_max_size и upload_max_filesize Поставь, например php_value post_max_size 2048M php_value upload_max_filesize 1024M |
| Автор: Throne 14.9.2007, 00:15 |
| это ставить в скрипте или в инишнике? если второе то не катит. если первое то поконкретнее напиши плиз. Добавлено через 2 минуты и 4 секунды Очень будет хорошо, если есть возможность это написать в htaccess |
| Автор: Sannis 14.9.2007, 00:34 |
| ewolf как раз привёл пример как это написать в .htaccess. Только до таких больших значений поднять на Мастерхосте не получится естессно. |
| Автор: Throne 14.9.2007, 22:41 |
| ммм. написал.... чет реакции ноль.... как грузилось не больше 8-ми мегов, так и есть |
| Автор: Throne 15.9.2007, 13:44 |
| эти дириктивы установились, но все равно не прет. может быть из-за этого - memory_limit 10M ? пробывал поменять - не получается Добавлено через 5 минут и 50 секунд Еще раз перепроверил, он вырубается или по таймауту или из-за вот этого - memory_limit 10M , проходит ровно 30 секунд загружается либо ровно 10 метров либо время выходит, хотя это действительно наврядли из-за времени потому, что ночью (у меня инет ночью в 10 раз быстрее) скрипт работал около 5-ти секунд. |
| Автор: Golda 15.9.2007, 17:15 |
| А в логах сообщения об ошибках есть? |
| Автор: Throne 15.9.2007, 17:27 |
| есть ошибки только о том, что я пытался изменить дерективы, которые не меняются (время выполнения и "мемори лимит") Добавлено через 7 минут ммм. а можно ли как-то осуществить передачу файла не по http а по ftp. (по ftp файлы передаются сколь угодно долго и любого размера) |
| Автор: BuShaRt 15.9.2007, 17:39 |
| php_value post_max_size 2048M php_value upload_max_filesize 1024M 2 и 1 мб? Странно, что 8мб загрузилось -) |
| Автор: Throne 15.9.2007, 17:50 |
| стоп 2048М - это типа не мегабайты?! =) |
| Автор: ewolf 15.9.2007, 18:19 |
| это 2048 мегабайт и 1024 мегабайта - т.е. загрузка вплоть до гигабайта. |
| Автор: BuShaRt 15.9.2007, 18:30 |
Нет, это не магабайты. ewolf, Вы уверенны в том, что говорите, вы действительно пробывали установив 1024м, закачать файлы <1гб и у вас это успешно получалось? |
| Автор: console 15.9.2007, 18:52 | ||
Логичнее все же было бы предположить, что 2048M - есть 2 Гигабайта...
А вы пробовали? http://bugs.php.net/bug.php?id=38051 |
| Автор: ewolf 15.9.2007, 19:18 | ||
Нет, это мегабайты http://www.php.net/manual/ru/faq.using.php#faq.using.shorthandbytes
Действительно получалось, правда не на мастерхосте. С мастерхностом сейчас проверю. |
| Автор: console 15.9.2007, 20:11 |
| Просвятите, что есть Мастерхост? |
| Автор: ewolf 15.9.2007, 20:22 |
| Хостинг |
| Автор: console 15.9.2007, 20:26 |
| Wow |
| Автор: BuShaRt 15.9.2007, 20:30 |
| ewolf, В целом с php.net сложно спорить, но когда я впервые задался вопросо загрузки файлов на сервер, именно из-за того, что я приравнял м к мбайтам я убил пол ночи, и потом лишь, когда пересчитал все с учетом м = кб, у меня все вышло. Может это баг денвера Добавлено через 1 минуту и 30 секунд до сих пор стоит на локалке 10000000 м, шоб не лагало -) |
| Автор: ewolf 15.9.2007, 20:47 |
| Проверил на мастерхосте, к моему удивлению настройки не позволили мне загрузить файл больше 10 мегабайт (memory_limit = 16М). Считаю себя полным ламером, написал в поддержку мастерхоста |
| Автор: BuShaRt 15.9.2007, 22:48 |
| ewolf, попробуй поставить > 10240 М ;) |
| Автор: ewolf 15.9.2007, 22:58 |
| Я конечно попробывал, но, как я и ожидал, ничего не изменилось. Собственно и симтпомы проблемы разные - когда реально ограничивает upload_max_filesize, скрипт все равно срабатывает, но в массиве $_FILES значение $_FILES['file']['error'] становится равным UPLOAD_ERR_INI_SIZE. В данном же случае загрузка просто "зависает" на 10 мегабайтах и потом выдает ошибку "Соединение закрыто удалённым сервером". Еще одна фишка, которая меня смущает - в дирректории временных файлов в момент загрузки не создается файл, в который теоретически должно все загружаться. Я конечно не уверен, но по-моему проблема в том, что на мастерхосте установлен nginx (или подобный ему сервер), который является фронт-эндом к апачу. И этот nginx кэширует загружаемый файл в памяти, а лишь потом отдает апачу. Но я могу и ошибаться. В любом случае, жду ответа техподдержки. |
| Автор: ewolf 16.9.2007, 14:15 | ||
Ответ мастерхоста
Так что, увы... (( |
| Автор: Throne 16.9.2007, 15:05 |
| И все-таки, раз уж стоит ограничение может быть попробывать по фтп грузить? вот тока как.... (кстати они (мастерхост) как вариант решения предложили запустить собственный интерпритатор php, ну или как-то так, но так как я ни чего не понимаю в SSH и *nix командах, то ничего не вышло) |
| Автор: ewolf 16.9.2007, 15:55 |
| Создай дополнительный аккаунт, позволяющий заливать файлы только в определенную папку |
| Автор: Throne 16.9.2007, 16:58 |
| Я имел в виду - как это сделать через веб-интерфейс? Как послать и принять не по хттп а по фтп? |
| Автор: BuShaRt 16.9.2007, 17:41 |
| Throne, А оно действительно надо, чтоб через веб-интерфей грузились такие большие файлы? |
| Автор: Throne 16.9.2007, 18:09 |
| Ну блин я для фирмы делаю промо-проект, а они такие б**** идиоты, что даже с коммандером не могут толком понять как обращаться |
| Автор: ewolf 16.9.2007, 20:43 |
| Сделай для них ссылку в админке, которая позволит закачивать файлы через эксплорер вида ftp://login:password@uXXXX.ftp.masterhost.ru |
| Автор: Throne 16.9.2007, 20:55 |
| ну дак они еще должны файл назвать правильно..... хотя есть по этому поводу идея: в оригинале скрипт выдавал конечные имена и пути к файлам, которые были загружены, мб сказать, чтоб так и называли.... |
| Автор: Throne 14.5.2008, 14:52 |
| Уже в другой фирме нужно было установить зенда чтобы цмс-ку поставить можно было, а чтобы поставить зенда надо поставить свой интерпритатор php Мораль - хочешь лить в мастерхосте большие файлы — делай свой интерпритатор, а если не работает пиши заяву в свободной форме. |