Alterar a pasta raiz do documento Apache para o disco rígido secundário

28

Eu instalei o ubuntu 12.04 server edition para o meu pc servidor. eu tinha instalado o servidor da lâmpada. preciso alterar o local var / www para o local do disco rígido secundário. Eu estava configurado tanto tempo para no gedit / etc / apache2 / sites-available / default aqui está o meu código

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    #DocumentRoot /var/www
    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    #<Directory /var/www/>
        <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

e também usado

sudo chown -R var/www /media/myserver/

e

chmod -R 755 /media/myserver/

ainda não consegui conectar meu / media / myserver e meu navegador mostra a seguinte mensagem

Forbidden

You don't have permission to access / on this server.

Por favor, diga a alguém como montar o myserver no meu var / www, obrigado antecipadamente

Kevin - Dhinesh babu
fonte
a segunda unidade foi formatada e montada no diretório / media / myserver? você adicionou uma entrada fstab para essa unidade?
damien
Você verificou se a barra final na raiz do documento é o problema, observe onde o comentário não existe, mas na sua edição existe.
23414 Chris
Você tentou alterar o arquivo apache2.conf?
22416 Golden_flash

Respostas:

40

Você terá que editar apache2.confe 000-default.confalterar a raiz do documento do apache.

O servidor Apache está instalado em var/www/html.Este é o diretório raiz padrão do apache.

Altere o diretório raiz do Apache ou mova o projeto para /var/www/html.

  1. Para alterar o diretório raiz do Apache, execute:

    cd /etc/apache2/sites-available
    
  2. Em seguida, abra o 000-default.confarquivo usando o comando:

    nano 000-default.conf
    
  3. Edite a DocumentRootopção:

    DocumentRoot /path/to/my/project
    
  4. Em seguida, reinicie o servidor apache:

    sudo service apache2 restart
    

Se você conseguir Forbidden You don't have permission to access / on this serveralterar a raiz do apache, siga estas etapas

  1. Encontre o apache2.conflocalizado em /etc/apache2e abra-o usando:

    nano apache2.conf
    
  2. Use Ctrl+ We pesquise Diretório (deve estar na linha 153)

  3. Deve ficar assim

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Mude para

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. Reinicie o apache

    sudo service apache2 restart
    

Eu criei um script que altera a raiz do apache em um único comando. Você pode encontrá-lo no meu github .

Harjot
fonte
É um tipo de trabalho para mim, mas tenho que acrescentar <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. Em /etc/apache2/apahce2.confantes de reiniciar o serviço apache2.
Rdng
19

Talvez um pouco tarde. Mas ainda..

Você deve editar suas permissões de diretório no apache.conf em / etc / apache2

Procurar por este

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

e adicione esse código abaixo dele, que dá permissão para acessar seu diretório

 <Directory /media/myserver/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>
onurbekiroglu
fonte
3

Simplesmente altere a raiz do documento na sua configuração ativada. /etc/apache2/sites-enabled/000-default e depois certifique-se de recarregar seu apache.

Então tente com isso:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Em seguida, a permissão apropriada deve ser dada assim:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/
Achu
fonte
sim meu amigo eu já fiz isso. veja o código acima eu estava comentando a raiz do documento padrão e inserida a nova raiz do documento. após o apache2 parar e iniciar. não está funcionando. é erro 403, e mostrou acesso negado e permissão de permissão
Kevin - Dhinesh babu
Você viu meu último edite?
Achu
sim eu vi isso. ainda é mostrar que você não tem permissão para acessar / neste servidor
Kevin - Dhinesh babu
2

Como uma solução rápida (segura e rápida), você pode definir o ponto de montagem do seu disco rígido externo para o diretório raiz padrão (/ var / www por padrão).

Atribuir o ponto de montagem a um diretório existente é seguro, mas o conteúdo antigo não pode ser alcançado a menos que você desmonte o driver.

Para saber mais sobre como criar um ponto de montagem, consulte isso .

yahya tawil
fonte
De acordo com essa ideia, eu montaria uma determinada pasta, usando bindfs, conforme descrito aqui: askubuntu.com/a/1024308/566421
pa4080
1

sudo gedit etc/apache2/apache2.conf adicione isto Opções Índices FollowSymLinks MultiViews AllowOverride None Order allow, deny allow from all

na configuração virtual:/etc/apache2/sites-available/site.conf

ServerAdmin [email protected]
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf

Anil Gupta
fonte
1

Para quem usa as adições de convidados do VirtualBox e se you don't have permission to access /on this serverbeneficia de tudo o que foi mencionado acima:

Se você estiver tentando definir a pasta raiz do documento Apache como uma pasta compartilhada do VirtualBox e tiver tentado tudo acima e isso não ajudou, haverá mais uma etapa.

Em resumo, a solução é adicionar o usuário 'www-data' ao grupo 'vboxsf':

sudo usermod -a -G vboxsf www-data

Você não pode alterar o proprietário e / ou o grupo da pasta compartilhada do VirtualBox, mas a solução acima funcionou bem para mim.

Yuri Fedorov
fonte
1

Também encontro o mesmo problema e poderia resolvê-lo!

O que você precisa fazer é

  1. você modifica o apache2.conf. Troque /var/www/para o seu caminho: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. Modifique 000-default.conf:

    DocumentRoot /your/path/

  3. altere a propriedade dos diretórios para você do gerenciador de arquivos ou terminal (por exemplo, sudo chown pi: path) Sem isso, você receberá a mensagem "Você não tem permissão para acessar / neste servidor". mensagem de erro.

Isso é tudo.

eatysweaty
fonte