Настройка Apache для нескольких сайтов с общими файлами


У меня есть около 50 сайтов, которые используют одни и те же файлы, кроме CSS и изображений, в настоящее время я дублирую файлы каждый раз, когда создаю новый сайт и загружаю разные css и изображения.

Что я хочу сделать, так настроить каждый vhost, чтобы иметь то же самое DocumentRoot затем добавьте AliasMatch для папок css и images, например:

#Common Files VHOST
<VirtualHost xxx.xxx.xxx.xxx:80>
    ServerName commonfiles.com
    ServerAlias www.commonfiles.com
    DocumentRoot /home/commonfiles/public_html
</VirtualHost>

#Sample vhost for 1 of the 50 sites.
<VirtualHost xxx.xxx.xxx.xxx:80>
    ServerName mytest.com
    ServerAlias www.mytest.com
    DocumentRoot /home/commonfiles/public_html
    ......
    AliasMatch /css/(.*) /home/ftpuser/public_html/mycss/$1
</VirtualHost>

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

[Mon Nov 16 09:31:01 2009] [crit] [client xxx.xxx.xxx.xxx] (13)Permission denied: /home/commonfiles/public_html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

Это текущая настройка сервера, которая, как я думаю, может быть частью проблемы (предыдущий администратор сервера установил это):

  • Apache (Apache / 2.2.14 (Unix)
  • PHP 5.2.11
  • стандарт CentOS 4.8 i686
  • обработчик PHP 5-dso
  • Apache suEXEC включен

Есть предложения?

3 2

3 ответа:

Оказывается, что по умолчанию папка public_html имеет разрешения 750, я изменил на 755 и обновил ограничения open_basedir, и все начало работать отлично.

Я просто должен убедиться, что у меня все еще есть a .htaccess для каждого сайта.

Не похоже, что проблема в AliasMatch, сообщение об ошибке указывает на ваш файл htaccess. Вы проверили это на наличие разрешений? Какому пользователю он принадлежит?

Другим решением было бы создание символических ссылок на каждый домен, указывающих на папку, в которой находятся общие файлы.