configuração do apache para multisite drupal

1

Eu passei mais de um dia tentando instalar uma multisite e acho que a maioria está no lugar, mas ainda não consigo ver o install.php quando visito www.mywebsite.co.uk/install.php?

Eu tenho um servidor dedicado rodando ubuntu, apache2 e o último mysql e php 5.

Eu instalei a última base de código do Drupal em

/home/d/r/drupal/web/public_html

Eu tenho a instalação do banco de dados drupal (chamado drupal) e configurei a base de código e tudo está funcionando muito bem e posso ver a instalação do drupal sem problemas em www.myserver.co.uk/drupal.

Em seguida, segui as instruções em: link e configurei meu conf apache quase exatamente como descrito :

Estes são os conteúdos dos meus vários arquivos conf:

/etc/apache2/conf.d/drupal6.conf:

#============================================================
# Toggle APC cache
#php_flag apc.cache_by_default 1
#This is already enabled in php

<Directory "/home/d/r/drupal/web/public_html">
    # Yeah, better performance - no hits to the file system
    # Loading Drupal's .htaccess into memory is much better
    AllowOverride none

    # Define your own file limitations on drupal files
    <FilesMatch "(install.php|cron.php|update.php|\.txt)$">
        Order deny,allow
#        Include conf.d/ip.conf
# including the line above always caused an error when re-starting apache2 so I have hard coded the IPs below (these are not the ones I am usinb obviously!)
Allow from 123.123.123.123
Allow from 124.124.124.124
        Deny from all
    </FilesMatch>

    # Read in Drupal default .htaccess file asif conf - easier CVS management
    Include /home/d/r/drupal/web/public_html/.htaccess

# Offline mode for multisite setup - see file for more info
# Uncomment the line below to set sites offline
    # Include conf.d/offline.conf

</Directory>

# Sorry, no svn peeking
<DirectoryMatch "\.svn">
    # Currently pointing back to drupal
    # High traffic sites might want custom
    # error pages, no need to load drupal
    ErrorDocument 403 /index.php
    Order allow,deny
    Deny from all
    Satisfy All
</DirectoryMatch>

# Allow the .htacces files to be used in the sites folder where /files are stored
<Directory "/home/d/r/drupal/web/public_html/sites">
    AllowOverride
</Directory>

# Block off access to admin and devel - just in case
<LocationMatch "/(admin|devel)">
    Order deny,allow
#    Include conf.d/ip.conf
# including the line above always caused an error when re-starting apache2 so I have hard coded the IPs below (these are not the ones I am usinb obviously!)
Allow from 123.123.123.123
Allow from 124.124.124.124
    Deny from all
</LocationMatch>
#============================================================

/etc/apache2/conf.d/ip.conf:

#============================================================
#This file always caused a problem when repstarting apache so I hard coded the IP addresses
# into the drupal6.conf file.  Would like to undersatand why this wont work! I am using the correct IP addresses, these are just for posting!
Allow from 123.123.123.123
Allow from 124.124.124.124
#============================================================

/etc/apache2/apache2.conf:

#============================================================
# ..
# ..
# All the apache config and at the very bottom is these lines:
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/[^.#]*
#============================================================

/etc/apache2/sites-available/drupalsites.conf:

#============================================================
# This is called from Apache2.conf
# Each vhost can be read in as its own file
Include vhosts/mywebsite.conf
#============================================================

/etc/apache2/vhosts/mywebsite.conf:

#============================================================
# This is called from /etc/apache2/sites-available/drupalsites.conf
<VirtualHost mywebsite.co.uk:80>
DocumentRoot /home/d/r/drupal/web/public_html
ServerName mywebsiteco.uk
ServerAlias www.mywebsiteco.uk
ErrorLog /var/log/apache2/sites/mywebsite.co.uk_error-log
CustomLog /var/log/apache2/sites/mywebsite.co.uk_access-log "combined"

# Rewrite the www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.mywebsite\.co.uk/?$ [NC]
RewriteRule ^(.*)$ http://mywebsite.co.uk$1 [L,R=301]

# Read in the drupal configuration
Include conf.d/drupal6.conf

# Block access while developing
#  Include conf.d/beta.conf

</VirtualHost>
#============================================================

/ etc / hosts:

127.0.0.1 localhost server0
127.0.0.1 mywebsite.co.uk
123.123.123.123 myservername.co.uk

A raiz do site que criei está em:

/home/m/y/mysite/web/public_html

Eu substituí o diretório físico public_html por um link simbólico para

/home/d/r/drupal/web/public_html

Eu posso ver os arquivos de texto como www.mysite.co.uk/INSTALL.txt, mas quando tento visualizar qualquer página do php (como install.php ou root), sempre recebo o seguinte erro: "Internal Server Error, este é um erro com seu script, verifique seu log de erros para mais informações."

Não sei o que fazer em seguida e gostaria de receber ajuda ou conselhos.

Obrigado

    
por belliez 28.07.2009 / 11:03

2 respostas

4

A configuração que você publicou é muito mais complicada do que precisa ser. Não sei bem por que está configurado dessa maneira, mas notei algumas coisas que podem fazer a diferença.

Primeiramente, no drupal6.conf all você deve precisar do seguinte:

<Directory /home/d/r/drupal/web/public_html/>
    Options +FollowSymLinks
    AllowOverride All
    order allow,deny
    allow from all
</Directory>

O resto do material é secundário e pode estar complicando (ou causando) o problema. Eu recomendo - especialmente para a instalação inicial - para simplificar as configurações, tanto quanto possível. Eu corro um lote de sites do Drupal e eu nunca mexi com nada além de apontar o mysite.conf para o diretório do Drupal e criar o diretório / sites / my.site.com (raiz do Drupal) e arquivos de configurações.

Eu recomendaria copiar todas as outras coisas do drupal6.conf e ver se funciona para a instalação. Em seguida, adicione de volta nos blocos de acesso no / admin, install.php, etc. Eu não recomendo mexer com os arquivos .htaccess no arquivo de configuração. Deixe de fora a linha incluindo o .htaccess nas configurações do apache e apenas deixe o .htaccess ser escolhido como foi projetado pelo apache.

    
por 20.08.2009 / 22:34
0

Só por curiosidade, você tem php habilitado e uma linha AddHandler apropriada em algum lugar? Parece um pouco como se ele estivesse tentando executar os arquivos php como scripts cgi diretamente, em vez de usar o módulo. No Ubuntu e Debian você pode ter certeza que o php é carregado como um módulo com o seguinte:

a2enmod php5
/etc/init.d/apache2 force-reload

Se o php funcionar em outro lugar na sua configuração, eu também estaria inclinado a verificar o arquivo .htaccess. Especificamente, você vai querer ter certeza de que não está tentando definir os arquivos .php para serem executados como scripts cgi explicitamente. Se você encontrar algo como a seguinte linha referindo-se a arquivos .php, comente-os e veja se as coisas melhoram.

AddHandler cgi-script .php

Como você carregou explicitamente o arquivo .htaccess, não se esqueça de recarregar conforme apropriado.

    
por 28.07.2009 / 11:57