Подключение Drupal 11 (D2) к Claude Code Proxy для работы AI-модулей
без прямого ключа Anthropic API.
| Параметр | Значение |
|---|---|
| URL прокси | http://91.218.142.168:8899 |
| Drupal KEY_ID | claude_code_proxy |
| Drupal KEY_VALUE | claude-code-proxy-key |
| Токен setup.php | claude-proxy-setup-2026 |
| Сервис | claude-proxy.service на VPS |
cd ~/site.ru/
/usr/local/bin/php8.4 ~/bin/composer require \
drupal/ai \
drupal/ai_provider_anthropic \
drupal/key
cd public_html
/usr/local/bin/php8.4 ../vendor/bin/drush en ai ai_provider_anthropic key -y
/usr/local/bin/php8.4 ../vendor/bin/drush cr
# Скопировать скрипт
cp /opt/claude-workspace/library/connectors/site/drupal/ai-proxy/setup.php \
~/site.ru/public_html/setup_ai_proxy.php
Или загрузить через SCP:
sshpass -p 'PASSWORD' scp \
/opt/claude-workspace/library/connectors/site/drupal/ai-proxy/setup.php \
user@site.beget.tech:~/site.ru/public_html/setup_ai_proxy.php
Открыть в браузере:
https://site.ru/setup_ai_proxy.php?token=claude-proxy-setup-2026
Ожидаемый вывод:
DB connected: site_db
Current host: (not set)
Config updated: host=http://91.218.142.168:8899, api_key=claude_code_proxy
Key created: claude_code_proxy
Cache cleared: cache_config, cache_default, cache_bootstrap, cache_data
Proxy health: OK (http://91.218.142.168:8899)
SUCCESS
Next: delete this file from the server!
rm ~/site.ru/public_html/setup_ai_proxy.php
curl -X POST http://91.218.142.168:8899/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer claude-code-proxy-key" \
-d '{"model":"claude-sonnet-4-6","messages":[{"role":"user","content":"Say OK"}]}'
# → {"choices":[{"message":{"content":"OK"}}]}
ai_provider_anthropic.settings в таблице config:host = http://91.218.142.168:8899api_key = claude_code_proxykey.key.claude_code_proxy:configclaude-code-proxy-keycache_config, cache_default, cache_bootstrap, cache_data/healthDrupal AI модуль
→ openai-php/client
→ POST /chat/completions
→ http://91.218.142.168:8899 (наш прокси)
→ claude-agent-sdk
→ Claude Code CLI (OAuth)
→ Anthropic API
→ ответ назад
Формат запроса: OpenAI (не Anthropic native).
Drupal использует openai-php/client, который посылает POST /chat/completions.
Beget-специфика: DocumentRoot = public_html/, .htaccess перенаправляет
запросы в web/ (или в Drupal если webroot = public_html).
Для правильной структуры (по стандарту):
~/site.ru/
├── vendor/
├── composer.json
├── web -> public_html ← симлинк
└── public_html/ ← DocumentRoot
└── setup_ai_proxy.php ← скрипт ЗДЕСЬ
Скрипт кладётся в public_html/ (не в web/), доступен как /setup_ai_proxy.php.
| Модуль | Назначение |
|---|---|
ai |
Базовый AI API |
ai_provider_anthropic |
Провайдер Anthropic (использует OpenAI SDK) |
key |
Хранение API ключей |
ai_agents |
AI агенты (опционально) |
ai_dashboard |
Дашборд (опционально) |
| Симптом | Причина | Решение |
|---|---|---|
Invalid API Key |
host не задан в конфиге | Запустить setup.php |
Connection refused |
Прокси не запущен | systemctl restart claude-proxy на VPS |
| Нет моделей в списке | fetchAvailableModels() → api.anthropic.com (норма) |
Игнорировать, модели hardcoded |
| setup.php → 403 | Скрипт в неправильном месте | Положить в public_html/, не в web/ |
DB connected но нет config update |
Таблица config не найдена |
Drupal не установлен, нет AI модуля |
| Сайт | KEY_ID | Дата подключения |
|---|---|---|
| feyerverks.ru | claude_code_proxy | 2026-02-23 |