Этот промт написал ИИ DeepSeek для самого себя (по моей просьбе). Он позволит решить проблему с установкой хостинг-панели HestiaCP на виртуальные сервера Aeza (не рекомендую, намучаетесь с этим провайдером!)
Вот готовый промт — сохраните его. При возникновении той же проблемы на любой установке HestiaCP достаточно будет выполнить описанные шаги, и PHP заработает для IDN-домена.
---
**Промт для исправления бага HestiaCP с IDN-доменами (кириллическими) и шаблоном PHP-FPM**
*Проблема:*
При использовании кириллического домена (например, `криптоблог.рф`) и выбранном шаблоне PHP-FPM-8.x nginx конфигурация остаётся проксирующей на Apache (директивы `proxy_pass` на порты 8080/8443), из-за чего PHP-файлы возвращают 404 Not Found, а в логах Apache фиксируется ошибка «Primary script unknown». Стандартная пересборка (`v-rebuild-web-domain`) не помогает.
*Решение (ручная правка конфигов nginx):*
1. **Получить punycode-представление домена**
```bash
idn2 криптоблог.рф
```
(Результат: `xn--90aenhhqcehw.xn--p1ai`)
2. **Определить системного пользователя и пути**
Убедиться, что домену соответствует пользователь (например, `cryptoblog`), а корень сайта лежит в `/home/cryptoblog/web/криптоблог.рф/public_html/`.
Проверить наличие пула PHP-FPM:
```bash
ls /etc/php/8.3/fpm/pool.d/ | grep криптоблог
```
Найти сокет внутри файла пула:
```bash
cat /etc/php/8.3/fpm/pool.d/криптоблог.рф.conf | grep 'listen ='
```
(Сокет: `/run/php/php8.3-fpm-криптоблог.рф.sock`)
3. **Сделать резервные копии текущих конфигов nginx**
```bash
cp /etc/nginx/conf.d/domains/криптоблог.рф.conf /etc/nginx/conf.d/domains/криптоблог.рф.conf.bak
cp /etc/nginx/conf.d/domains/криптоблог.рф.ssl.conf /etc/nginx/conf.d/domains/криптоблог.рф.ssl.conf.bak
```
4. **Записать новые конфиги с прямым fastcgi_pass (без прокси на Apache)**
*HTTP-конфиг (`/etc/nginx/conf.d/domains/криптоблог.рф.conf`):*
```nginx
server {
listen ВАШ_IP:80;
server_name xn--90aenhhqcehw.xn--p1ai www.xn--90aenhhqcehw.xn--p1ai;
root /home/cryptoblog/web/криптоблог.рф/public_html;
index index.php index.html index.htm;
access_log /var/log/apache2/domains/криптоблог.рф.log combined;
error_log /var/log/apache2/domains/криптоблог.рф.error.log error;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm-криптоблог.рф.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known\/) {
deny all;
}
include /home/cryptoblog/conf/web/криптоблог.рф/nginx.conf_*;
}
```
*HTTPS-конфиг (`/etc/nginx/conf.d/domains/криптоблог.рф.ssl.conf`):*
```nginx
server {
listen ВАШ_IP:443 ssl;
server_name xn--90aenhhqcehw.xn--p1ai www.xn--90aenhhqcehw.xn--p1ai;
root /home/cryptoblog/web/криптоблог.рф/public_html;
index index.php index.html index.htm;
ssl_certificate /home/cryptoblog/conf/web/криптоблог.рф/ssl/криптоблог.рф.pem;
ssl_certificate_key /home/cryptoblog/conf/web/криптоблог.рф/ssl/криптоблог.рф.key;
access_log /var/log/apache2/domains/криптоблог.рф.log combined;
error_log /var/log/apache2/domains/криптоблог.рф.error.log error;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm-криптоблог.рф.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known\/) {
deny all;
}
include /home/cryptoblog/conf/web/криптоблог.рф/nginx.ssl.conf_*;
}
```
*Замените `ВАШ_IP` на актуальный внешний IP-адрес сервера.*
5. **Проверить конфигурацию и перезагрузить nginx**
```bash
nginx -t
systemctl reload nginx
```
6. **Протестировать**
```bash
curl -I http://xn--90aenhhqcehw.xn--p1ai/info.php --resolve xn--90aenhhqcehw.xn--p1ai:80:ВАШ_IP
```
Должен вернуться код 200. Открыть в браузере `http://криптоблог.рф/info.php`.
*Примечание:*
Правки действуют до следующей пересборки конфигов через панель Hestia. При обновлении сертификатов, смене шаблона или других операциях в панели конфиги могут быть перезаписаны. Держите резервные копии и при необходимости применяйте ручную правку повторно.
---
Сохраните этот промт. Если понадобится помощь в будущем – обращайтесь.