The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от Сергей email(??) on 14-Фев-06, 12:25 
Помогите, а? Замучался уже. Есть второй апач на фре и пхп с внешней GD. При ресайзе картинок и записи результата в файл - в результате создаются файлы с нулевым размером. Картинку в броузер скрипт выводит нормально. При запуске из командной строки этого скрипта - аналогично - создается нормальный файл уменьшенного размера. Пробовал сие под разными пользователями. А вот при помощи апача - никак... :(
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от mephius email(ok) on 14-Фев-06, 12:37 
>Помогите, а? Замучался уже. Есть второй апач на фре и пхп с
>внешней GD. При ресайзе картинок и записи результата в файл -
>в результате создаются файлы с нулевым размером. Картинку в броузер скрипт
>выводит нормально. При запуске из командной строки этого скрипта - аналогично
>- создается нормальный файл уменьшенного размера. Пробовал сие под разными пользователями.
>А вот при помощи апача - никак... :(


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

Предполагаю, что файл дл записи открывается ДО того, как скрипт начинает ресайзить картинку. А потом ему просто не хватает памяти (в php дефолт 8Мб, по-моему), т.е. 8 мег ему хватит на относительно небольшую картинку (он при открытии ее преобразует в битовую матрицу — читай bmp)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от Сергей email(??) on 14-Фев-06, 13:00 
>Что-нить в логах? например, насчет того, что памяти скрипту не хватило для
>обработки картинки?
>
>Предполагаю, что файл дл записи открывается ДО того, как скрипт начинает ресайзить
>картинку. А потом ему просто не хватает памяти (в php дефолт
>8Мб, по-моему), т.е. 8 мег ему хватит на относительно небольшую картинку
>(он при открытии ее преобразует в битовую матрицу — читай bmp)

В логах тишина абсолютная. Картинки пытаюсь ресайзить размером в 30-40кБ, (уменьшаются до 3кБ) так что размер памяти тут навряд ли на что влияет...


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от mephius email(ok) on 14-Фев-06, 13:19 
>>Что-нить в логах? например, насчет того, что памяти скрипту не хватило для
>>обработки картинки?
>>
>>Предполагаю, что файл дл записи открывается ДО того, как скрипт начинает ресайзить
>>картинку. А потом ему просто не хватает памяти (в php дефолт
>>8Мб, по-моему), т.е. 8 мег ему хватит на относительно небольшую картинку
>>(он при открытии ее преобразует в битовую матрицу — читай bmp)
>
>В логах тишина абсолютная. Картинки пытаюсь ресайзить размером в 30-40кБ, (уменьшаются до
>3кБ) так что размер памяти тут навряд ли на что влияет...
>


Да, я не посмотрел, что в браузер картинку нормально выводит....
А в файл пишешь как? просто fopen() или так же как в браузер?
т.е. если imagepng($img, 'path/to/file'), то он должен в файл писать.
если при этом не будет писать, то что-то определенно с файлами. Прав вроде как хватает, если пустой файл создает... что-то ничего в голову не лезет.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от Сергей email(??) on 14-Фев-06, 13:39 
>Да, я не посмотрел, что в браузер картинку нормально выводит....
>А в файл пишешь как? просто fopen() или так же как в
>браузер?
>т.е. если imagepng($img, 'path/to/file'), то он должен в файл писать.
>если при этом не будет писать, то что-то определенно с файлами. Прав
>вроде как хватает, если пустой файл создает... что-то ничего в голову
>не лезет.

В файл пишу ImageJpeg($small,"/path/to/img.jpeg") Так вопрос в том, что при запуске этого скрипта просто из командной строки - все работает... А вот каким таким кривым образом его апач может запустить, что бы создать файл с нулевым размером?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от mephius email(ok) on 14-Фев-06, 13:54 
>>Да, я не посмотрел, что в браузер картинку нормально выводит....
>>А в файл пишешь как? просто fopen() или так же как в
>>браузер?
>>т.е. если imagepng($img, 'path/to/file'), то он должен в файл писать.
>>если при этом не будет писать, то что-то определенно с файлами. Прав
>>вроде как хватает, если пустой файл создает... что-то ничего в голову
>>не лезет.
>
>В файл пишу ImageJpeg($small,"/path/to/img.jpeg") Так вопрос в том, что при запуске этого
>скрипта просто из командной строки - все работает... А вот каким
>таким кривым образом его апач может запустить, что бы создать файл
>с нулевым размером?


ладно, начинаем дебажить.
ставь error_reporting(E_ALL); //для отображения всех ошибок.

можешь также выключить html_errors и сыпать все ошибки в лог, так удобнее их потом смотреть.

теперь попробуй вот так: сам создай файл, в который скрипт должен писать и поставь ему сосответствующие права.

может быть, как-то влияет вот это http://bugs.php.net/bug.php?id=35060

что, кстати, с safe_mode, версией php, как php установлен ?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от Сергей email(??) on 14-Фев-06, 14:36 
>ладно, начинаем дебажить.
>ставь error_reporting(E_ALL); //для отображения всех ошибок.
>
>можешь также выключить html_errors и сыпать все ошибки в лог, так удобнее
>их потом смотреть.
>
>теперь попробуй вот так: сам создай файл, в который скрипт должен писать
>и поставь ему сосответствующие права.
>
>может быть, как-то влияет вот это http://bugs.php.net/bug.php?id=35060
>
>что, кстати, с safe_mode, версией php, как php установлен ?

php-4.4.2 apache-2.0.55 - php стоит как модуль...
Баг этот видел, но во-первых у меня safe_mode выключен пока, а во-вторых я пользуюсь внешней GD. Логи и на пхп и на апаче включены по максимуму - никаких ошибок там нет. Пробовал и добавлять touch перед ImageJpeg
touch("/path/to/img.jpeg");
ImageJpeg($small,"/path/to/img.jpeg");
С правами там 644 - с этой стороны вроде тоже все хорошо... Однако чуть позже попробую все-таки на 664 изменить, но думаю будет все тоже самое...

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от mephius email(ok) on 14-Фев-06, 14:43 
>>ладно, начинаем дебажить.
>>ставь error_reporting(E_ALL); //для отображения всех ошибок.
>>
>>можешь также выключить html_errors и сыпать все ошибки в лог, так удобнее
>>их потом смотреть.
>>
>>теперь попробуй вот так: сам создай файл, в который скрипт должен писать
>>и поставь ему сосответствующие права.
>>
>>может быть, как-то влияет вот это http://bugs.php.net/bug.php?id=35060
>>
>>что, кстати, с safe_mode, версией php, как php установлен ?
>
>php-4.4.2 apache-2.0.55 - php стоит как модуль...
>Баг этот видел, но во-первых у меня safe_mode выключен пока, а во-вторых
>я пользуюсь внешней GD. Логи и на пхп и на апаче
>включены по максимуму - никаких ошибок там нет. Пробовал и добавлять
>touch перед ImageJpeg
>touch("/path/to/img.jpeg");
>ImageJpeg($small,"/path/to/img.jpeg");
>С правами там 644 - с этой стороны вроде тоже все хорошо...
>Однако чуть позже попробую все-таки на 664 изменить, но думаю будет
>все тоже самое...

Ладно, а если отловить поток картинки и руками записать его в файл?

т.е.
<?
ob_start();
imagejpeg($small);
$buffer=ob_get_contents();
ob_end_clean();

потом записать $buffer в файл...
?>

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от Сергей email(??) on 15-Фев-06, 00:33 
>Ладно, а если отловить поток картинки и руками записать его в файл?
>
>
>т.е.
><?
>ob_start();
>imagejpeg($small);
>$buffer=ob_get_contents();
>ob_end_clean();
>
>потом записать $buffer в файл...
>?>

Хммм... ну это же не наш метод... :) т.е. мне же придеться переделывать весь сайт, а вернее заставлять это делать программеров... Боюсь побьют они меня :)
Кстати пробовал менять права на файл в который запись идет - как и следовало ожидать - результат тот же...
Интересно было бы попробовать вариант апача 1.3.34 с пхп 4.4.2 - может работает у кого? Просто я не представляю уже что такого можно поправить в моей конфигурации... Я что первый такой??? В смысле связки апача 2.0.55 и пхп 4.4.2 ? Да и еще - пробовал и встроенную библиотеку GD, и внешнюю - результат один и тот же... из командной строки работает, а через апач нет... :(

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

9. "Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от Сергей email(??) on 17-Фев-06, 12:42 
Ну вот. Проблемма решена. Пишу небольшой отчет... :)
Решилось все переустановкой пхп на версию 5.1.2
Но и это не все. По умолчанию во фре при установке пхп из портов в Makefile стоит опция --disable-all. Так что умолчания никакие работать не будут. Т.е. надо все нужные опции при компиляции указывать явно, ну или убрать --disable-all.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

10. "Апач+GD+PHP+FreeBSD = нулевой размер каринок при ресайзе"  
Сообщение от mephius email(ok) on 17-Фев-06, 12:48 
>Ну вот. Проблемма решена. Пишу небольшой отчет... :)
>Решилось все переустановкой пхп на версию 5.1.2
>Но и это не все. По умолчанию во фре при установке пхп
>из портов в Makefile стоит опция --disable-all. Так что умолчания никакие
>работать не будут. Т.е. надо все нужные опции при компиляции указывать
>явно, ну или убрать --disable-all.


эта опция там правильно стоит, потому что есть специальный порт — php5_extensions (php4_extensions для четверки), с помощью которого можно поставить нужные модули.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру