Saturday, March 20, 2010

Windows 7 x64 + Apache 2.2 + PHP 5.2.13 + Mysql 5.1

В последнее время очень стали доставать падения апача при выполнении PHP скриптов. Другая проблема - запуск скриптов из консоли. По завершению CLI впадает в ступор на 5 секунд. Со времен версии PHP 5.1 на память приходил только модуль для mysql, который тогда еще выдавал сообщение об ошибке завершения своей нити выполнения с точно такой-же задержкой. Тогда это лечилось заменой php_mysql.dll на аналогичный файл со старой PHP 4.2. Там клиентская библиотека была статически вкомпилена в php_mysql.dll, но и поддерживала mysql версии 3.28. С пятой версии php модули mysql линкуются динамически с libmysql.dll, и что-то с этим самым libmysql.dll, идущим вместе с php, не все в порядке. Замена его на родную библиотеку от свежего сервера mysql решает проблему с 5-секундной задержкой во время завершения, но при этом любая попытка сделать mysql_connect() оканчивается падением CLI или Апача. Гонять и то и другое отладчиком нет ни времени ни желания, так что с 5-секундной задержкой придется пока смириться. А вот с падениями апача похоже покончено. По непонятной причине PHP при запуске скрипта то выбирает libmysql.dll собственного разлива, то подключает библиотеку идущую с mysql сервером, директория bin которого прописана в PATH. Родную dll пришлось переименовать и апач стал работать стабильно.

Thursday, November 5, 2009

Resizable full-browser background image with jQuery (preserving aspect ratio)

Design of my last "71°Økonor" project required a background picture that should be fixed to the top of the window view-port being not scrollable and resized on resize event of the window. Before reinventing a wheel I googled a bit and found this nice jQuery plug-in.

Solik might have used this for the front page of Martin Yang Stousland's portfolio website.

Wednesday, November 4, 2009

pdo_sqlite for php 5.2.x

The latest 5.2.x PHP comes with the pdo_sqlite driver built using the pretty old sqlite library (3.3.7). Related parameters of the configure script are unobvious and rather confusing to understand quickly how to rebuild it with the latest version of the sqlite library (which is 3.6.19 now). In fact all we need is:

--with-pdo-sqlite=[LIBRARY_BASE_PATH]

where LIBRARY_BASE_PATH is /usr/local or wherever the library is installed to.