Apache2 + diretório estático do PHP

2

Eu tenho o Apache2 e o PHP5 instalados. Meu DocumentRoot é / var / www /. Todos os arquivos .php e .html são atendidos pelo formulário / e seus diretórios filhos. No entanto, quando eu solicito, digamos, .png images, recebo Forbidden notice.

Gostaria de enviar um diretório /static/ específico para conteúdo estático.

Como devo editar os arquivos de configuração do Apache para poder visualizar o conteúdo estático de /static/ ?

    
por Alex 25.07.2009 / 21:50

3 respostas

3

Não tenho certeza se entendi o problema, mas você pode:

se você quiser veicular arquivos estáticos que não sejam do / var / www / static use:

Alias /static/ /somewhere/somewhere/dir/

se o seu diretório estático já estiver em / var / www / static e você receber um erro proibido - certifique-se de que esses arquivos sejam legíveis para o usuário sob o qual o apache é executado:

chown www-data:www-data -R /var/www/static

deve corrigir o problema de legibilidade. dependendo da distribuição, o nome de usuário pode ser diferente. verifique-o executando ps faux | grep apache

    
por 25.07.2009 / 22:58
0

O Apache permite especificar as configurações do php.ini por diretório, então você deve ser capaz de desabilitar o php para os diretórios do usuário com algo parecido com isto no seu arquivo httpd.conf:

<Directory /home/*/public_html>
php_admin_flag engine off
</Directory>

Você também pode configurá-los em ".htaccess"

    
por 26.07.2009 / 04:12
0

Para que o conteúdo de um diretório no sistema de arquivos seja 'webservable', você precisa ter uma diretiva Directory que a encapsule, e os arquivos devem ser acessíveis pelo usuário que o seu servidor web executa. A maioria das instalações padrão tem um Directory configurado e todo o conteúdo está abaixo dele (ou seja, / var / www /).

Isso não é obrigatório, você pode ter conteúdo veiculado sob outros diretórios, contanto que você tenha outra seção Directory definida para ele. Você pode ter vários diretórios como esse e fazer com que pareça uma árvore feliz com uma diretiva Alias .

Você também pode proibir a veiculação de determinadas partes de uma árvore "webservable", por exemplo, para evitar incluir arquivos contendo strings, senhas, nomes de usuário, etc.

Mesmas regras se aplicam a scripts, apenas com ScriptAlias directive.

    
por 26.07.2009 / 04:29