Как загрузить сторонние расширения PHP в ServBay
ServBay уже предоставляет пользователям распространенные модули расширений PHP, и пользователям нужно лишь настроить и активировать их в разделе язык
-версия PHP
-расширения
.
Однако иногда пользователям необходимо загрузить модули, которые не входят в состав ServBay. В этой статье мы обсудим, как осуществить этот процесс.
ServBay позволяет пользователям гибко загружать сторонние расширения для управляемой ими среды PHP. Этот документ будет использовать ionCube Loader в качестве примера и проведет вас через весь процесс. Этот процесс также будет полезен для загрузки других расширений Zend или расширений, собранных пользователями (файлы .so
).
Примечание: ionCube Loader является расширением Zend, поэтому при его настройке необходимо использовать директиву zend_extension
, а не extension
.
Предварительные условия
- Вы уже установили и запустили ServBay.
- У вас есть права администратора для доступа к системным файлам и интерфейсу конфигурации ServBay.
- Вы знакомы с использованием терминала (Terminal) в macOS.
Внимание
ServBay предоставляет пакеты PHP с нативной архитектурой как для Intel, так и для Silicon (M1/M2/M3/M4). При загрузке файла so
обязательно убедитесь, что архитектура загружаемого файла so
соответствует архитектуре пакета ServBay.
Файлы с разной архитектурой не могут быть смешаны, несоответствие архитектуры приведет к сбою PHP.
- Определите архитектуру пакета PHP, поставляемого с ServBay:
file /Applications/ServBay/package/php/8.3/current/bin/php
Вывод будет похож на:
php: Mach-O 64-bit executable arm64 # Архитектура Silicon Arm64
php: Mach-O 64-bit executable x86_64 # Архитектура Intel x86
2
- Определите архитектуру необходимого файла
so
:
file xdebug.so
Вывод будет похож на:
xdebug.so: Mach-O 64-bit bundle arm64 # Архитектура Silicon Arm64
xdebug.so: Mach-O 64-bit bundle x86_64 # Архитектура Intel x86
2
Шаги выполнения
Шаг 1: Скачайте ionCube Loader
- Перейдите на официальную страницу загрузки ionCube Loader. Для macOS ARM64 (чипы Apple Silicon M-серии) загрузите версию Darwin ARM64. Вы можете использовать следующую ссылку (проверьте наличие обновленной версии): https://downloads.ioncube.com/loader_downloads/ioncube_loaders_dar_arm64.tar.gz
- После завершения загрузки вы получите файл .tar.gz, например,
ioncube_loaders_dar_arm64.tar.gz
.
Шаг 2: Определите целевую версию PHP и директорию расширений
Откройте приложение ServBay.
В левом навигационном меню нажмите Languages.
В правом списке найдите версию PHP, для которой вы хотите установить ionCube Loader (например, в этом примере PHP 8.3). Запомните этот номер версии.
Расширения PHP в ServBay обычно находятся в определенном пути. Согласно стандартной структуре установки ServBay и приведенному для примера скриншоту, директория расширений для PHP 8.3 может выглядеть следующим образом:
/Applications/ServBay/package/php/8.3/8.3.16/lib/php/extensions/no-debug-non-zts-20230831/
/Applications/ServBay/package/php/
— базовый путь пакета PHP ServBay.8.3/
— основная версия.8.3.16/
— конкретная версия PHP (пожалуйста, подкорректируйте в зависимости от вашей установки).lib/php/extensions/
— родительский каталог для директории расширений.no-debug-non-zts-xxxxxxxx/
— каталог с конкретной версией API и сборки (это имя каталога будет меняться вместе с версией PHP).
Важно: Вам необходимо определить или найти этот точный путь в соответствии с актуальной установленной версией PHP в вашем ServBay и архитектурой. Вы также можете найти его с помощью команд в терминале (убедитесь, что используете путь к PHP, управляемый ServBay):
bash/Applications/ServBay/package/php/8.3/current/bin/php -i | grep extension_dir
1Замените
/Applications/ServBay/package/php/8.3/current/bin/php
на фактический путь к исполняемому файлуphp
необходимой вам версии. Вывод команды покажетextension_dir => /path/to/extension/directory
.
Шаг 3: Распакуйте и поместите файлы Loader
- Откройте терминал (Terminal).
- Используйте команду
cd
, чтобы перейти в директорию, куда вы загрузили файл.tar.gz
(обычно это директорияDownloads
).bashcd ~/Downloads
1 - Распакуйте загруженный файл:bashЭто создаст директорию с именем
tar -zxvf ioncube_loaders_dar_arm64.tar.gz
1ioncube
. - Перейдите в директорию
ioncube
:bashcd ioncube
1 - В этой директории вы увидите соответствующие
.so
файлы для разных версий PHP, например,ioncube_loader_dar_8.3.so
. Найдите файл, соответствующий вашей целевой версии PHP (версия, определенная на шаге 2, например, 8.3). - Скопируйте этот соответствующий файл
.so
в директорию расширений PHP, определенную вами на шаге 2. Предположим, целевая директория — это путь из приведенного ранее примера, и вы хотите установить Loader для PHP 8.3:bashcp ioncube_loader_dar_8.3.so /Applications/ServBay/package/php/8.3/8.3.16/lib/php/extensions/no-debug-non-zts-20230831/
1- Обязательно замените целевой путь на фактический путь к директории расширений вашей версии PHP.
- Убедитесь, что вы копируете именно тот файл
.so
, который полностью соответствует версии PHP.
Шаг 4: Настройте PHP в ServBay
Вернитесь к интерфейсу приложения ServBay.
Убедитесь, что выбрана Languages слева, затем в правом списке нажмите на версию PHP, которую вы хотите настроить (например, PHP 8.3).
В раскрывающейся области настроек справа нажмите на вкладку PHP (как показано стрелкой 1 на изображении ниже).
Прокрутите вниз и найдите текстовое поле Additional Parameters (Дополнительные параметры).
В этом текстовом поле добавьте следующую строку (как показано стрелкой 2 на изображении ниже), указав относительный путь к файлу ionCube Loader:
inizend_extension = ioncube_loader_dar_8.3.so
1- Еще раз подчеркиваю: файл
so
должен строго находиться в путиextension_dir
, полученном на шаге 3. Пожалуйста, внимательно проверьте. - Используйте
zend_extension
, а неextension
, поскольку ionCube Loader является расширением Zend. - Если в этом текстовом поле уже есть другие конфигурации, добавьте эту директиву в новой строке.
- Еще раз подчеркиваю: файл
Нажмите кнопку Save в правом нижнем углу, чтобы сохранить конфигурацию.
Шаг 5: Перезапустите PHP сервис
После нажатия кнопки сохранения ServBay автоматически перезапустит PHP сервис.
Шаг 6: Проверьте успешность загрузки
Вы можете проверить, успешно ли загружен ionCube Loader, двумя способами:
Через командную строку:
Откройте терминал.
Выполните следующую команду (убедитесь, что используете полный путь к целевой версии PHP):
bash/Applications/ServBay/package/php/8.3/current/bin/php -m | grep -i ioncube
1Если загрузка прошла успешно, вы должны увидеть вывод типа
ionCube Loader
.Вы также можете выполнить команду
php -v
, чтобы проверить информацию о версии, обычно после загрузки ionCube выводится соответствующая информация:bash/Applications/ServBay/package/php/8.3/current/bin/php -v
1Пример вывода:
PHP 8.3.16 (cli) (выпущен: Jan 31 2025 15:09:39) (NTS) Copyright (c) The PHP Group Zend Engine v4.3.16, Copyright (c) Zend Technologies с ionCube PHP Loader v14.4.0, Copyright (c) 2002-2024, by ionCube Ltd.
1
2
3
4
Через phpinfo():
- Создайте PHP файл с содержимым
<?php phpinfo(); ?>
(например,info.php
) и поместите его в корневой каталог вашего сайта. - Откройте файл с помощью браузера (например,
http://your-local-site.test/info.php
). - На странице вывода
phpinfo()
найдите "ionCube". Если загрузка прошла успешно, вы увидите специальный блок информации о ionCube Loader, который покажет его версию и другие подробности.
- Создайте PHP файл с содержимым
Заключение
Следуя вышеуказанным шагам, вы сможете успешно загрузить ionCube Loader или другие сторонние расширения PHP для определенной версии PHP в ServBay. Главное — найти правильный файл расширения, определить правильную директорию расширений PHP, добавить правильные директивы в конфигурацию ServBay (zend_extension
или extension
). Если возникнут проблемы, внимательно проверьте пути, права доступа к файлам и перезапустили ли вы PHP сервис.