Перейти к содержимому

Системные требования и установка

Требования

  • PHP: 8.0-8.4+
  • Обязательные модули PHP: mbstring, curl, json
  • Рекомендуемые модули PHP: redis, pcntl, posix, ffi
    redis - Для игнорирования дублирующихся событий VK API
    pcntl + posix - Многопоточная обработка событий через LongPoll
    ffi - Авто-ускорение фреймворка с помощью встроенных С модулей

Установка на Debian/Ubuntu

Для установки PHP и необходимых модулей выполните команду (замените 8.4 на вашу версию PHP, если требуется):

sudo apt-get install php8.0 php8.0-mbstring php8.0-curl php8.0-openssl

Установка PHP,mbstring,curl в Windows 10:

mbstring уже установлен в windows.
Для установки php используйте эту статью
Для установки curl скачайте его отсюда и распакуйте на диск C:

Включение PHP модулей в php.ini

После установки PHP и модулей, найдите файл php.ini в папке с установленным php и раскомментируйте следующие строки( убрать ;):
extension=curl
extension=mbstring
extension=openssl

Если на сервере есть Apache

То необходимо еще настроить php.ini внутри apache, чтобы бот мог нормально работать с callback.
Также, необходимо перезагружать apache после настройки PHP следующей командой:

sudo service apache2 restart

Диагностика

Чтобы убедится, что вы установили все правильно, и ваш сервер готов к работе с SimpleVK, необходимо создать и запустить следующий скрипт:

php
<?php
require_once __DIR__.'/vendor/digitalstars/simplevk/autoload.php';
\DigitalStars\SimpleVK\Diagnostics::run();

Если вы делаете longpoll бота, то запускайте диагностику через консоль
Если вы делаете callback бота, то запускайте диагностику через браузер

Примерный вывод диагностики:

Заметка о работе библиотеки на бесплатных хостингах

Библиотека может стабильно функционировать только в том случае, если на хостинге используется веб-сервер nginx или apache, а также хостинг не запрещает отправлять кастомные header изнутри PHP (Иначе библиотека не сможет закрывать соединение с ВК до окончания выполнения скрипта, и высок шанс, что ВК не сможет получить ответ от скрипта вовремя, и начнет слать события заново).

Например, бесплатный хостинг 000webhost использует самописный веб-сервер, поэтому на нем работать нормально не будет.

Опубликовано под лицензией MIT.