При організації віртуального хостингу одним з наріжних каменів в даному питанні є делегування прав сторонньому користувачеві - "хазяїну хоста". Найпростіше дати йому права на те щоб він зміг заливати інформацію через ftp. З HTML проблем не виникає, але як бути з тим щоб дозволити виконання скриптів. Очевидним рішенням - використання вбудованої в APACHE функції suEXEC
Так як в якості системи використовується ASPLinux, то і APACHE використовуємо їх же збірки. Документацію по suEXEC в APACHE можна знайти тут.
підготовка
Після вивчення документації з'ясовуємо, що якщо APACHE зібраний з підтримкою suEXEC - це відображається в логах.
перевіряємо:
[Root @ ns logs] # cat error_log | grep suEXEC
Якщо є, повинні побачити щось подібне:
[Swan @ ns swan] $ whereis suexec
suexec: / usr / sbin / suexec /usr/share/man/man8/suexec.8.gz
перевіримо його працездатність:
[Swan @ ns swan] $ su
Password:
[Root @ ns swan] # / usr / sbin / suexec -V
Увага від імені звичайного користувача він не запуститься
-D DOC_ROOT = "/ var / www"
-D GID_MID = 100
-D HTTPD_USER = "apache"
-D LOG_EXEC = "/ var / log / httpd / suexec_log"
-D SAFE_PATH = "/ usr / local / bin: / usr / bin: / bin"
-D UID_MID = 100
-D USERDIR_SUFFIX = "public_html"
Результат виконання команди вказує на те, що suexec живий і з якими дірректорію (каталогами) він буде працювати
важливо
Проблема може виникнути якщо скрипти виконуються в тих віртуальних хостах, для яких визначені конкретні користувачі (ь | і) і груп (а | и) в розділі конфігураційного файлу:
скрипти не виконуються, навіть найпростіші, якщо documentroot не є підкаталогом в шляху, який вказаний змінної "DOC_ROOT"
Що б цього не сталося скрипти необхідно розмістити, наприклад, в / var / www /. / Cgi-bin /
тест
Створимо простий скрипт: test.bash
echo Content-type: text / html
echo
echo
whoami
Прописуємо в конфігруаціі APACHE в розділі
VirtualHost
user
group