Встановлення розширень PHP на Windows
На Windows, ви маєте два варіанта для завантаження розширень PHP: або
компілювати їх в PHP, або завантажити DLL. Завантаження вже компільованих
розширень є простішим та рекомендованим варіантом.
Щоб підключити розширення, вам потрібно мати доступний файл ".dll" на вашій
системі. Всі розширення автоматично та періодично компілюються Групою PHP
(дивіться наступний блок для завантажень).
Щоб компілювати розширення в PHP, ознайомтесь з документацією
Збірка із сирців.
Для компіляції окремого розширення (тобто файлу DLL), ознайомтесь з
документацією Збірка із сирців.
Якщо DLL-файла немає ні в дистрибутиві PHP, ні в PECL, вам потрібно
самостійно скомпілювати це розширення перед його використанням.
Де можна знайти розширення?
Розширення PHP зазвичай мають назву "php_*.dll" (де зірочкою позначено назву
розширення) та розміщені в директорії "PHP\ext".
PHP поставляється з найбільш корисними розширеннями для більшості
розробників. Вони називаються "core" (тобто основними) розширеннями.
Тим не менше, якщо вам потрібна функціональність, яку не надає жодне із
основних розширень, вам ще можна пошукати його в PECL. PHP Extension
Community Library (PECL), що перекладається як Бібліотека Розширень
Спільноти PHP, є сховищем Розширень PHP, що надає місце під хостинг
всім відомим розширенням, забезпечуючи можливість для їхнього завантаження
та розробки.
Якщо ви хочете розробляти розширення для власного використання, ви можете
розраховувати на розміщення його на хостингу PECL, щоб інші люди також
могли отримати вигоду від його використання. Гарним побічним ефектом цього
є те, що ви даєте іншим людям хороший шанс щоб вони тримали з вами зворотній зв'язок
(сподіваємось) для висловлення вдячності, для звітування про неполадки та
події виправлення/латання (англ. fixes/patches). Перед тим як розмістити
ваше розширення на хостингу PECL, прохання прочитати
» PECL submit.
Яке розширення завантажувати?
Дуже часто, ви можете знайти декілька версій кожної DLL:
-
З різними номерами версій (принаймні перші дві цифри повинні збігатись)
-
З різним налаштуванням збереження потоків (thread safety)
-
З різними архітектурами процесорів (x86, x64, ...)
-
З різним налаштуванням відладки
-
і т.д.
Також слід пам'ятати, що всі ваші налаштування розширень повинні бути
відповідними до всіх налаштувань, які ви використовуєте для виконавчих
файлів PHP. Наступний скрипт PHP може надати інформацію про
всі ваші налаштування PHP:
Або запустіть з командного рядка:
диск:\\шлях\до\php\php.exe -i
Завантаження розширень
Найпоширеніший способіб підключення розширення PHP - це включення його у
конфігураційному файлі php.ini. Також пам'ятайте, що
більшість розширень вже представлено у вашому файлі
php.ini, та вам достатньо лише видалити символ крапки
з комою (тобто розкоментувати їх), щоб вони стали активними.
;extension=php_extname.dll
extension=php_extname.dll
І все ж, деякі веб-сервери плутаються, оскільки не використовують
php.ini, який розташовано поруч з виконавчим файлом PHP.
Щоб знайти звідки фактично читається ваш php.ini,
прогляньте шлях в phpinfo():
Configuration File (php.ini) Path C:\WINDOWS
Loaded Configuration File C:\Program Files\PHP\5.2\php.ini
Після активації розширення, збережіть php.ini,
перезавантажте веб-сервер, та перевірте вивід phpinfo()
знову. Нове розширення тепер повинно бути в його власному блоці.
Вирішення проблем
Якщо розширення не представлено у виводі phpinfo(),
вам варто перевірити ваші журнали помилок, щоб прослідкувати що є причиною
проблеми.
Якщо ви використовуєте PHP з командного рядка (CLI), помилки при
завантаженні розширення можна читати безпосередньо з екрану.
Якщо ви використовуєте PHP із веб-сервером, розташування та формат журнала
помилок дуже залежать від налаштування веб-сервера. Так що прочитайте
документацію веб-сервера, щоб знайти журнали помилок, оскільки це не
залежить від самої PHP.
Поширеною проблемою є розташування DLL, значення параметра
extension_dir всередині php.ini та
невідповідність налаштувань під час компіляції.
Якщо проблема полягає у невідповідності налаштувань під час компіляції,
ймовірно, ви не правильно завантажили DLL. Спробуйте завантажити розширення
знову, але з правильними налаштуваннями. Нагадаємо, phpinfo()
може дуже допомогти.