Я играю (читай: вытаскиваю волосы) с Contao версии 4.8.Я получил его для установки нормально на localhost, где я могу свободно бездельничать с виртуальными хостами и тому подобное.Я также установил его на общем веб-сервере, используя поддомен, потому что я могу установить для этого корневой каталог документов.Это не достаточно хорошо, хотя.Поэтому я попытался:
- Изменить корень документа основного домена в cPanel. Нет. Недопустимо в cPanel.
- Переименуйте каталог public_html и сделайте ссылку на него. Нет. В доступе отказано.
- Свяжитесь с хостинг-провайдером, чтобы он внес необходимые изменения. Нет. Извините, ничего нельзя сделать, сказали они.
Итак, прочитав это: https://github.com/contao/installation-bundle/issues/40 Я решил, что должен попробовать.Однако нет четких и однозначных объяснений , где расположены эти параметры.Так что я нашел это в файле, который находится по адресу /var/cache/prod/ContainerBPeWrxy/appContao_ManagerBundle_HttpKernel_ContaoKernelProdContainer.php
(обратите внимание, что BPeWrxy
) может быть и другим):
case 'contao.web_dir': $value = ($this->targetDirs[3].'/web'); break;
Аааа, вот оно!Я изменил это на:
case 'contao.web_dir': $value = ($this->targetDirs[3].'/public_html'); break;
Whaddayaknow! Это работает! Ууу!
Я думал, что у меня это получилось, и у меня работала живая установка, но потом заметил, что на сайте все еще включены суффиксы .html.Неважно, подумал я, я просто отключу их в настройках Contao, , как раньше. Нет! Таких настроек больше не существует.Так что я погуглил и нашел: https://contao -academy.de / blog / url-суффикс-contao4-anpassen
Поэтому я создал файл /config/config.yml (потому чтоего не существовало) и ввели:
contao:
url_suffix: ""
Человек, это было сложно!Но теперь я обнаружил, что менеджер Contao больше не работает.Не удалось найти мою установку.Поэтому я снова изменил документацию с /public_html
на /web
и вернулся от своего грязного взлома.Я запустил восстановление кеша в менеджере Contao и все работало хорошо.Но затем, используя свои превосходные навыки логического мышления, я пришел к выводу, что это должно быть место, где должен быть таинственный contao.web_dir
.Я должен сделать все правильно, поэтому я отредактировал файл еще раз:
contao:
url_suffix: ""
web_dir: D:\wamp64\www\contao_installation\public_html
О, кстати: что ни один гид или руководство не скажет вам, это:
- Путь должен быть абсолютным;относительный
/public_html
не будет работать. - Путь должен быть с обратными слешами, если среда - Windows.
Но сейчас я в затруднительном положении.Со всеми настройками, указывающими на /public_html
, менеджер Contao не найдет мою установку.Если я переименую папку /public_html
обратно в /web
и изменим docroot в vhosts.conf
соответственно, я получу запуск менеджера Contao.Затем я могу выполнить операцию восстановления кэша.Я проверил файл appContao_ManagerBundle_HttpKernel_ContaoKernelProdContainer.php
и похоже, что менеджер Contao правильно установил параметр contao.web_dir
.Однако, что странно, это то, что, несмотря на это, мой docroot по-прежнему называется /web
и по какой-то причине он все еще работает.Должен быть запасной вариант.
Но теперь, если я изменю docroot на /public_html
, сайт работает отлично, но менеджер Contao перестает работать.Это нехорошо, потому что, поскольку я нахожусь в localhost и использую Windows, менеджер Contao создает очень сложную структуру автозагрузки классов, где пути к файлам содержат экранированные обратные косые черты в стиле Windows, такие как \\vendor\\foo\\bar
, которые не будут работать, если я просто передамфайлы на живой сервер, на котором работает Linux.И я не могу получить менеджер Contao работать на живой веб-сервер, потому что она упорно хочет DOCROOT быть /web
1072
Итак:.
- Есть ли способ настроить Contaoдиспетчер, чтобы подчиняться моим настройкам docroot?
- Или есть какой-то другой способ выполнить требуемую операцию восстановления кеша и другие вещи, для которых я бы использовал Contao manager, который работал бы со мной, а не против меня с настройками docrootчто мне нужно иметь?