Como alterar o diretório raiz do suexec de “/ var / www” para “/ home”?

6

Oi eu instalei o suexec usando no Ubuntu 12.04:

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

No entanto, quando eu executo o seguinte comando:

sudo /usr/lib/apache2/suexec -V

Eu recebo as seguintes informações:

 -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"

Estou utilizando o "/ home / user / public_html" para atender ao conteúdo de usuários na Web, não "/ var / www" Como posso alterar o diretório raiz para "/ home"?

    
por Oudin 26.06.2012 / 18:48

4 respostas

5

Você está usando o Ubuntu. Portanto, a recompilação é bem simples.

Adicione o repositório de origem ao seu /etc/apt/sources.list. Para 12.04, execute

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

altere de.archive.ubuntu.com para o país em que você está. Depois disso, atualize seu repositório.

apt-get update

Altere as fontes dir e de download:

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

Ele irá baixar e extrair o código-fonte do apache e instalar todas as dependências, portanto você poderá construir o apache. Mas você precisará corrigir o AP_DOC_ROOT. Então cd para dir com a origem do apache e altere o caminho do diretório na opção --with-suexec-docroot no arquivo debian/rules . Então agora você precisa criar um pacote. Você pode fazer isso com

debuild -us -uc

É isso. Agora você tem o pacote deb-apache com caminho fixo. Basta instalá-lo com sudo dpkg -i . Mas observe as atualizações. Atualização irá acabar com todos os seus esforços. Portanto, execute aptitude hold apache2 para proibir as atualizações e não se esqueça de recompilá-las manualmente (ou escrever o script fpr).

Boa sorte.

    
por 26.06.2012 / 19:18
15

Ou você pode

apt-get install apache2-suexec-custom

após a instalação, vá para

cd /etc/apache2/suexec

edite o arquivo     vi www-data

Você pode ver as duas primeiras linhas, fazer as alterações: substituir /var/www por /home

esc 
:wq

depois, reinicie o apache

/etc/init.d/apache2 restart
    
por 20.11.2012 / 21:06
0

Você precisa recompilá-lo a partir do suexec.c, de preferência você pode instalar o virtualmin, então ele fará isso automaticamente via install.sh e também criará contas, domínios, etc.

    
por 26.06.2012 / 19:05
0

I'm utilizing "/home/user/public_html" to serve users content on the web not "/var/www" How can I change the root directory to "/home"?

na verdade você pode usar o mod_userdir

neste caso, o suexec irá gerar scripts do dono do / home / user - neste exemplo "user"

para que você não precise definir o SuexecUserGroup na configuração do apache

UPD: basta ativar o módulo userdir

e adicione à configuração principal do vhost

UserDir / home / * / public_html

e

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