GalaxyData Community

Замена шаблонов Error docs для Apache в Plesk

Как нам перегенерировать пользовательские шаблоны в папке 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. Также можете создать их самостоятельно, скопировав контент из этого сообщения.

Exit mobile version