Alexander A Manaeff -

 
 

Как подключить timezonedb к php

Microsoft Internet Security and Acceleration (ISA) Server
Microsoft Internet Information Services
Kerio Connect
Kerio Mail Server
Kerio Firewall
UserGate
DHCP, DNS, SMTP, POP, WWW, FTP

Модератор: UncleFather

Как подключить timezonedb к php

Сообщение UncleFather » 19 ноя 2012 15:37, Пн

Задача:

Для корректного отображения часовых поясов в приложениях php необходимо привязать базу данных часовых поясов timezonedb к оболочке
php.

Вроде бы много об этом написано, но только все для unix-овых систем.

Как же откомпилировать timezonedb в MS Windows?


Решение:


  1. Скачиваем исходники для своей сборки php отсюда

  2. Распаковываем эти исходники в папку на жестком диске. Желательно, чтобы полный путь не содержал пробелов и кириллицы. Например, пусть будет папка C:\Soft\!\php

  3. Качаем актуальную версию timezonedb отсюда

  4. Распаковываем скачанный архив в папку "ext", находящуюся там, куда мы распаковали исходники php. В нашем примере получится новая папка C:\Soft\!\php\ext\timezonedb, содержащая файлы из актуального архива timezonedb - примерно такие:
    • config.m4
    • config.w32
    • CREDITS
    • package2.xml
    • package.xml
    • php_timezonedb.h
    • timezonedb.c
    • timezonedb.h

  5. Скачиваем два исполняемых файла flex.exe и bison.exe:
    Executions.rar
    (176.12 КБ) Скачиваний: 275


    Либо можно скачать полные архивы с этими файлами (хотя из них нам понадобится лишь два экзешника flex.exe и bison.exe, которые я вырезал и выложил в предыдущем архиве):
    flex-2.5.4a-1-bin.zip
    (198.05 КБ) Скачиваний: 215

    bison-2.4.1-bin.zip
    (941.14 КБ) Скачиваний: 229


  6. Распаковываем flex.exe и bison.exe в корень папки с исходниками php

  7. Скачиваем и устанавливаемMicrosoft Visual Studio C++ 2008 Express с сайта Microsoft (нам потребуется установщик vcsetup.exe).
    Внимание!!! Устанавливать 2010 и другие версии Microsoft Visual Studio не нужно, так как бинарники php скомпилированы либо на 2008 либо на VC9 версиях Visual Studio, а версии компиляторов должны совпадать.

  8. Открываем в текстовом редакторе файл C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat, находим в нем строку, где прописываются пути - примерно следующего вида:
    Код: Выделить всё
    @set PATH=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;...


  9. Сразу после знака "=" дописываем в эту строку путь до папки, куда распаковали исходники php. Получится что-то такое:
    Код: Выделить всё
    @set PATH=C:\Soft\!\php;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;...

    Это нужно для того, чтобы оболочка Microsoft Visual Studio увидела файлы flex.exe и bison.exe

  10. Запускаем командную строку Visual Studio 2008 (Visual Studio 2008 command prompt):
    01.JPG
    01.JPG (9.92 КБ) Просмотров: 3882


  11. Убеждаемся, что текущая папка "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin", при необходимости переходим в нее:
    Код: Выделить всё
    cd C:\Program Files\Microsoft Visual Studio 9.0\VC\bin

    02.JPG


  12. Выполняем скрипт, задающий значения переменных для данной сессии:
    Код: Выделить всё
    vcvars32.bat

    03.JPG


  13. Переходим в папку, куда распаковали исходники php:
    Код: Выделить всё
    cd C:\Soft\!\php
    и, для очистки от всех возможных предыдущих компиляций, выполняем скрипт
    Код: Выделить всё
    nmake clean

    04.JPG


  14. Далее, для обновления конфигурации расширений php выполняем:
    Код: Выделить всё
    buildconf.bat
    и выводим список зарегистрированных расширений командой:
    Код: Выделить всё
    configure --help


  15. Убеждаемся, что в списке присутствует строка вида:
    Код: Выделить всё
    --enable-timezonedb

    05.JPG


  16. Выполняем команду:
    Код: Выделить всё
    cscript /nologo configure.js --enable-timezonedb=shared --without-mysqlnd --disable-zts

    06.JPG


  17. Компилируем библиотеку dll:
    Код: Выделить всё
    nmake php_timezonedb.dll

    Это займет некоторое время - в зависимости от производительности ПК - 5-15 минут.

  18. После окончания компиляции увидим что-то такое:
    07.JPG


  19. Теперь можно забирать полученную библиотеку из папки Release, которая находится в корне папки и исходниками php (в нашем примере: C:\Soft\!\php\Release\php_timezonedb.dll)


Откомпилированную (готовую к употреблению) библиотеку php_timezonedb.dll вместе с сформировавшейся с ней библиотекой php5.dll для php 5.3.2 и базы данный временных зон версии 2012.9, можно скачать из приложенного архива:
php_timezonedb.dll.rar
(1.06 МБ) Скачиваний: 256


Файлы библиотек php_timezonedb.dll и php5.dll для php 5.3.3 и базы данный временных зон версии 2012.9, качаем из этого архива:
php_timezonedb.dll_5.3.3.rar
(1.06 МБ) Скачиваний: 318
Аватара пользователя
UncleFather
Site Admin
 
Сообщения: 1311
Зарегистрирован: 17 авг 2004 16:20, Вт

Вернуться в Сетевые службы (сервисы)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Alexander A Manaeff -
@Mail.ru .