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

конфигурация apache для мультисайта drupal

Я потратил больше дня, пытаясь заставить работать многосайтовую установку, и я думаю, что большая часть ее уже установлена, но я все еще не вижу install.php, когда захожу на сайт www.mywebsite.co.uk/install.php?

У меня есть выделенный сервер под управлением ubuntu, apache2 и последних версий mysql и php 5.

Я установил последнюю версию кода Drupal в

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

У меня есть настроенная база данных drupal (называемая drupal) и настроенная база кода, и все работает отлично, и я могу без проблем просмотреть установку drupal на www.myserver.co.uk/drupal.

Затем я выполнил инструкции по адресу: http://gotdrupal.com/videos/multisites-vs-multiple-sites и настроил мой apache conf почти так, как описано:

Это содержимое моих различных файлов 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

Корневой каталог сайта, который я создал, находится по адресу:

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

Я заменил физический каталог public_html символической ссылкой на

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

Я могу просматривать текстовые файлы, такие как www.mysite.co.uk/INSTALL.txt, но когда я пытаюсь просмотреть любую страницу php (например, install.php или корень), я всегда получаю следующую ошибку: «Внутренняя ошибка сервера, это ошибка вашего скрипта; дополнительную информацию смотрите в журнале ошибок. "

Я не понимаю, что мне делать дальше, и был бы признателен за любую помощь или совет.

Спасибо

Опубликованная вами конфигурация намного сложнее, чем должна быть. Я не совсем уверен, почему он так настроен, но я заметил несколько вещей, которые могут иметь значение.

В первую очередь, в drupal6.conf все вам понадобится следующее:

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

Все остальное вторично и может усложнять (или вызывать) проблему. Я бы рекомендовал - особенно для начальной установки - максимально упростить конфиги. Я управляю много сайтов Drupal, и я никогда не связываюсь ни с чем, кроме указания mysite.conf в каталог Drupal и создания каталога (Drupal root) /sites/my.site.com и файлов настроек.

Я бы порекомендовал извлечь все остальное из drupal6.conf и посмотреть, работает ли он для установки. Затем добавьте обратно блоки доступа в / admin, install.php и т. Д. Я не рекомендую возиться с файлами .htaccess в файле конфигурации. Оставьте строку, включающую .htaccess, в конфигурациях apache и просто позвольте .htaccess быть поднятым, поскольку он разработан apache.

Просто из любопытства, есть ли у вас где-то включен php и соответствующая строка AddHandler? Похоже, он пытается запускать php-файлы как cgi-скрипты напрямую, а не с помощью модуля. В Ubuntu и Debian вы можете убедиться, что php загружен как модуль со следующим:

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

Если php работает где-то еще в вашей настройке, я также был бы склонен проверить файл .htaccess. В частности, вы захотите убедиться, что он не пытается явно настроить .php-файлы для запуска как cgi-скрипты. Если вы найдете что-то вроде следующей строки, относящейся к файлам .php, закомментируйте их и посмотрите, улучшится ли ситуация.

AddHandler cgi-script .php

Поскольку вы явно загрузили файл .htaccess, не забудьте при необходимости перезагрузить.