Назад | Перейти на главную страницу

Как изменить корневой каталог suexec с «/ var / www» на «/ home»?

Привет, я установил suexec, используя ubuntu 12.04:

apt-get install apache2 apache2-suexec libapache2-mod-fcgid php5-cgi

Однако когда я запускаю следующую команду:

sudo /usr/lib/apache2/suexec -V

Я получаю следующую информацию:

 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"

Я использую «/ home / user / public_html» для обслуживания пользовательского контента в сети, а не «/ var / www». Как я могу изменить корневой каталог на «/ home»?

Или вы можете

apt-get install apache2-suexec-custom

после установки перейдите в

cd /etc/apache2/suexec

редактировать файл vi www-data

Вы можете увидеть первые 2 строки, внести изменения: заменить /var/www с участием /home

esc 
:wq

после перезапустите apache

/etc/init.d/apache2 restart

Вы используете Ubuntu. Поэтому перекомпилировать довольно просто.

Добавьте исходный репозиторий в свой /etc/apt/sources.list. За 12.04 пробега

echo "deb-src http://de.archive.ubuntu.com/ubuntu/ precise main"|sudo tee -a /etc/apt/sources.list

изменение de.archive.ubuntu.com в любую страну, в которой вы находитесь. После этого обновите свой репозиторий.

apt-get update

Измените каталог и источники загрузки:

mkdir ~/apache_new  ; cd ~/apache_new
apt-get source apache2
apt-get build-dep apache2

Он загрузит и извлечет исходный код apache и установит все зависимости, поэтому вы сможете собрать apache. Но вам нужно исправить AP_DOC_ROOT. Итак, cd to dir с источником apache и измените путь к dir в --with-suexec-docroot вариант в debian/rules файл. Итак, теперь вам нужно собрать package. Вы можете сделать это с

debuild -us -uc

Вот и все. Теперь у вас есть deb-пакет apache с фиксированным путем. Просто установите его с помощью sudo dpkg -i. Но следите за обновлениями. Обновление сведет на нет все ваши усилия. Так беги aptitude hold apache2 запретить обновления и не забывать каждый раз перекомпилировать вручную (или писать скрипт fpr that).

Удачи.

Я использую "/ home / user / public_html" для обслуживания пользовательского контента в Интернете, а не "/ var / www" Как я могу изменить корневой каталог на "/ home"?

на самом деле вы можете использовать mod_userdir

в этом случае suexec будет порождать скрипты от владельца / home / user - в этом примере "user"

поэтому вам не нужно определять SuexecUserGroup в конфигурации apache

UPD: просто включите модуль userdir

и добавляем в основную конфигурацию vhost

UserDir / home / * / public_html

и

<Directory /home/*/public_html/ >
      AllowOverride All
      Options +ExecCGI
      AddHandler cgi-script .cgi .pl  .py .rb
</Directory>

Вам нужно перекомпилировать его из suexec.c, в идеале вы могли бы установить virtualmin, чтобы он делал это автоматически через install.sh, а также создавал учетные записи, домены и т. Д.