Я потратил больше дня, пытаясь заставить работать многосайтовую установку, и я думаю, что большая часть ее уже установлена, но я все еще не вижу 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, не забудьте при необходимости перезагрузить.