Я пытаюсь использовать Envoyer.io для развертывания своего кода и сталкиваюсь с некоторыми проблемами.
Эта утилита создает две папки current
и releases
символические current
ссылки на последнюю версию в releases
папке.
Итак, моя структура каталогов выглядит так:
- public_html
- текущий - символическая ссылка на releases/{release_id}
- релизы
- {release_id}
- публичный
- (другое содержание)
- {release_id}
Мне нужно, чтобы все запросы направлялись в current/public
каталог, сделав его корневым веб-каталогом, а не public_html
.
Я попробовал очевидный вариант установки моего webroot на public_html/current/public
, но затем столкнулся с ошибкой:Symbolic link not allowed or link target not accessible: /home/mysite/public_html/current
Я пробовал вариации Options +FollowSymLinks
в моем .htaccess
файле, но безуспешно. Я считаю, что не могу получить доступ к файлам Apache conf, так как это общий хост.
Буду признателен за любые указания по этому вопросу.
решение1
Не могу не повториться:
Большинству людей, которые используют его .htaccess
и спрашивают об этом на ServerFault, не следует его использовать, .htaccess
поскольку это решение, которое никогда не предназначалось для конечного пользователя.для администраторов:
Вам следуетполностью избегайте использования
.htaccess
файловесли у вас есть доступ к главному файлу конфигурации сервера httpd. Использование.htaccess
файлов замедляет работу сервера Apache http. Любую директиву, которую вы можете включить в.htaccess
файл, лучше установить в блоке Directory, так как это даст тот же эффект с лучшей производительностью.
Подробнее вАпачируководство
Чтобы иметь возможность использоватьFollowSymlinks
директива в .htaccess
файле конфигурации основного сервера должна разрешать это либо настройкой, AllowOverride All
либо при использовании немного менее щедрой настройки опция должна быть явно включена с помощьюAllowOverride Option=FollowSymlinks
директива, поскольку она не является частью группировок по умолчанию AuthConfig
, FileInfo
, Indexes
или Limit
.