PHP сообщество

любители кода :)

Падение Apache при fopen

Bloged in Без рубрики от admin Воскресенье Август 31, 2008 at about 11:12 пп

Здравствуйте.

Имеется система:
WinXP Pro,
Apache 2,
PHP 4.4.2

Скрипт в цикле поочереди открывает файлы fopen($file,'rb'), в файлах картинки png, затем производит над ними какие-то действия. Несколько файлов открываются нормально, но на 3-м по счету апатч падает (приложение выполнило недопустимую операцию …). Отладчик Visual Studio говорит: Unhandled exception at 0×00705fca in Apache.exe: 0xC0000005: Access violation reading location 0×00000035 - не информативно … В логе сервера с максимальным уровнем отображения ошибок тоже ничего подозрительного:
[Sun Aug 31 22:58:14 2008] [notice] Apache/2.0.59 (Win32) PHP/4.4.2 configured — resuming normal operations
[Sun Aug 31 22:58:14 2008] [notice] Server built: Jul 27 2006 15:55:03
[Sun Aug 31 22:58:14 2008] [notice] Parent: Created child process 2452
[Sun Aug 31 22:58:14 2008] [notice] Child 2452: Child process is running
[Sun Aug 31 22:58:14 2008] [notice] Child 2452: Acquired the start mutex.
[Sun Aug 31 22:58:14 2008] [notice] Child 2452: Starting 250 worker threads.

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

На Unix хостинге скрипт работает нормально.

Может быть превышен лимит количества открытых файлов процессом ? Ни в httpd.conf, ни в php.ini таких директив не нашел.

Понимаю, что информации мало, но я даже не знаю, как получить больше :)

Как обратиться к static методу класса, когда известно только имя класса?

Bloged in Без рубрики от admin Воскресенье Август 31, 2008 at about 3:22 пп

В ходе работы моего PHP-скрипта определеятся имя класса, который нужно создать. Класс выполнен в виде синглтона, поэтому получать его можно только через статичный метод getInstance(), а метод __construct() объявлен как приватный. Поэтому сделать $class = new $className() нельзя. Как правильно замутить что-то вроде $class = $className::getInstance()?

Опубликовано с мобильного портала m.lj.ru

торт

Bloged in Без рубрики от admin Суббота Август 30, 2008 at about 10:20 пп

друзья, подскажите ктонить где в Cakephp в стандартные новости можно добавить кнопку читать далее? весь двиг перерыл ничего ненашёл(( в кейке не-рублю но работа обязывает разобраться…

вставлял и в контроллер и в вьюв и везде в мире, но так и не разабрался(

Поддержка часовых поясов

Bloged in Без рубрики от admin Суббота Август 30, 2008 at about 10:38 дп

Добрый день, коллеги! Есть желание сделать на сайте поддержку местного времени для пользователей (часовых поясов). Правильно ли я понимаю, что в связи с переходом на зимнее/летнее время эта задача не вполне формализуема? Т.е. если, скажем, сервер (FreeBSD, php5) работает по московскому времени, заграничным пользователям два раза в год придется для правильного отображения времени вручную корректировать в своем профиле смещение своего часового пояса из-за сдвига серверного времени? Есть ли красивые варианты решения?

Помогите с командой system плз.

Bloged in Без рубрики от admin Пятница Август 29, 2008 at about 9:01 пп

Доброго времени суток сообществу.
Есть проблемка у меня.
По нажатию кнопки у меня отрабатывается внешний скрипт (командой system)
Но, иногда, он отрабатыватся достаточно долго и в результате я получаю пустой экран.
В принципе мне не надо ждать результатов работы скрипта а сразу выводить контент.
Вот только как это сделать я не знаю (не ждать результатов)
Подскажите плз

gzip

Bloged in Без рубрики от admin Пятница Август 29, 2008 at about 8:06 дп

Чем лучше сжимать получаемый на выходе контент - средстами php или mod_deflate у апача второго. Что будет оптимальней по ресурсам сервера/скорости выдачи?
Если ответ зависит от каких-то параметров - может формула есть? :-)

TreeMenu (PHP, MySQL, JS)

Bloged in Без рубрики от admin Четверг Август 28, 2008 at about 11:46 дп

Подскажите хороший TreeMenu.
Из того, что нашёл в гугле - ни к чему душа не лежит

Именование

Bloged in Без рубрики от admin Четверг Август 28, 2008 at about 10:42 дп

Хм, честно не пойму, чем плох GNU C вариант кодирования так же для пхп, когда точно знаешь, что не надо мучатся с регистрами (понимаю название функций в пхп регистронезависимое, но не переменных же) imageResize, а не resize_image например, может я старый такой, что второй вариант мне кажется более читаемым и не надо думать в каком регистре писать?

Аплоад файла

Bloged in Без рубрики от admin Четверг Август 28, 2008 at about 10:18 дп

Каким макаром можно, находясь на сайте a.com, закачать файл на сайт b.com и соблюсти при этом некий минимум безопасности?

UPD. Поясню для некоторых остряков в камментах.
Само собой, для этого используется форма. Но, если я разрешаю загрузку файла через форму в каталог b.com/upload/, то точно такую же форму может сделать любой и закачать мне все, что хочет.
Можно, конечно, проверять, с какого сайта пришли данные формы, но это, как я понимаю, обходится без особых проблем.

Как бы ускорить сайт?

Bloged in Без рубрики от admin Среда Август 27, 2008 at about 7:08 дп

Хорошего Всем времени суток!
Поделитесь, пожалуйста опытом, или киньте ссылками.
Дано сайт на джумле. В основном, всё стандартно, но некоторые компоненты кастомизированы, есть несколько самописных. С некоторых пор сайт стал жутко тормозить. Сначала регулярно ломал базы мускул, а потом вот тормоза пошли. Посещаемость сайта около 1000 посетителей в сутки. Скажем, до 5000 станичек подгружается за день. Хостеры жалуются на загруженность mysql-сервера и на неоптимизированность скриптов на сайте. Скрипты я просмотрел, всё, вроде, нормально, но вдруг я чего не заметил? Как можно промониторить где именно копать? Или же всё-таки хостер гонит и просто нужно поменять хостинг? Другие сайты с этого сервака грузятся быстро (по утверждению хостера). Увеличил время кэширования - видимых изменений нет..
Посоветуйте, с какого бока подходить к проблеме? Сайт написан страшноватенько, но всё же тягать 5000 страниц в сутки не такая уж большая задача, чтоб намертво сервак вешать.. :(