Как нам перегенерировать пользовательские шаблоны в папке error docs?
Или можно сделать общие шаблоны из error docs для всех сайтов без включенной опции на сайте «Пользовательские страницы ошибок «
Для примера сайт https://site.ru/.htaccess
в шаблоне forribden.html указан старый номер телефона
хотя в в папке /var/www/vhosts/.skel/0/error_docs
в шаблоне forribden.html указан уже другой номер телефона и шаблон немного другой.
Сделать это автоматически средствами Plesk не получится.
Тем не менее, можно просто скриптом заменить те error_docs, которые уже есть, на те, что сейчас изменены в /.skel/.
У себя на тестовом сервере я ориентировался на классическую структуру директорий (/var/www/vhosts/<имя подписки>) и написал следующий скрипт для изменения error_docs для доменов:
#!/bin/bash for i in `plesk db -Ne "select name from domains where webspace_id = 0;"` do yes | cp -a /var/www/vhosts/.skel/0/error_docs/ /var/www/vhosts/$i/ done
Он заменяет содержимое папки /error_docs/ в главном домене подписки, чего должно быть достаточно.
Затем нужно будет выставить правильные права на эти документы (теоретически оно должно работать и с правами root.root, но тем не менее):
#!/bin/bash VHOST_DIR="/var/www/vhosts" MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -uadmin psa -sN -e"SELECT d.name, h.www_root, s.login FROM domains d, hosting h, sys_users s WHERE s.id=h.sys_user_id AND h.dom_id=d.id AND d.webspace_id=0" | while read domain www user; do chown -R $user.psacln $VHOST_DIR/$domain/error_docs done
У меня на тестовом сервере всё выполнилось корректно.
Во вложении скрипты errordocs.sh и perm.sh. Также можете создать их самостоятельно, скопировав контент из этого сообщения.