Этот материал является пятой частью статьи Проблемы при установке MaxSite CMS на сервер. Здесь выложены нетипичные проблемы и способы их лечения, которые я нашел на сайтах поддержки Maxsite CMS.
Не работает maxsite
Ссылка на данную статью: //design-for.net/page/reshenie-problem-pru-ustanovke
1.1. После вставки паролей не происходит переход на сайт, а появляется предупреждение типа:
Warning: Cannot modify header information - headers already sent by (output started at /home/note/public_html/wp-config.php:1) in /home/note/public_html/wp-includes/functions.php on line 1348
Уж сколько раз твердили миру, что… Блокнот не является правильным текстовым редактором, но самой частой ошибкой является появление сообщений в браузере вариации подобных предупреждений, которые могут отличаться файлами и номерами строк (файл functions.php и номер line 1348).
Если вы сразу не обратили внимание на файл и строку с ошибкой, то обычно система сохраняет их в лог-файлах в папке logs.
Основной причиной таких предупреждений является сохранение файла в неправильной кодировке. Дело в том, что требуется не просто сохранение в кодировке UTF-8, но обязательно – сохранение UTF-8 без сигнатуры (без BOOM). Система maxsite просто не понимает файлы в других кодировках.
У меня самого как-то слетала настройка моего Notepad++. Причем дефект заметил случайно, когда я повторно брал файл, который, только что отредактировал. Я с удивление обнаружил, что у него отсутствовала кодировка UTF-8. Просто редактор, потерявший настройку, сохранял файл в произвольной кодировке.
Как видите – бед натворить можно, не только пользуясь неподходящими программами, но и по собственной вине. Причем обнаружить ошибки связанные с кодировкой довольно трудно, если вы уже прошлись по большому количеству файлов.
К счастью, такие ошибки легко исправить, если взять эти файлы maxsite в правильный редактор и задать там: «Преобразовать в UTF8 без BOOM» (или File - Encoding - UTF-8 (а не UTF-8 with signature).
База данных maxsite
2.1. Ошибки BD базы maxsite. Довольно похожие ошибки возникают, когда при создании базы данных выставляются неправильные сравнения в кодировке UTF-8. Тогда в браузере может выскочить сообщение:
Table 'xxx.mso_options' doesn't exist
Конфликт может так же получиться, если вы во время установки указали неправильные данные (присланные от хостера логин и пароль) в файле config/database.php.
2.1. При переходе к сайту от установочной панели (2 этап) появляется ошибка 404. Как правило, эти сообщения связаны с файлом «.htaccess», отвечающим за ЧПУ – человеко-понятные урлы. Другой причиной появления ошибки 404 может стать несоответствие программного обеспечения сервера у хостера техническим требованиям (например, не поддерживается PHP5). Если ваш хостер пользуется старым программным обеспечением, то можно использовать версию движка, которая работает с PHP4.
2.2. При установке последних версий движка стали выскакивать:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/eurostan/public_html/system/core/Config.php on line 279
Иногда хостер предоставляет возможность выбрать между PHP4 и PHP5, а по умолчанию стоит - PHP4. Для перехода на PHP5 нужно дописать в файле «.htaccess» строку:
AddHandler application/x-httpd-php5 .php
2.3. Еще с файлом «.htaccess» связана «расклейка» адресов – ошибка, когда адрес сайта с и без www (например, //design-for.net и //www.design-for.net), браузеры считают разными. Лечение состоит в проверке и вставке в файл «.htaccess» следующего кода:
# В переменную окружения %{ENV:PROTOCOL} помещаем протокол
RewriteRule ^(.*)$ - [E=PROTOCOL:http]
RewriteCond %{HTTPS} ^on$ [NC]
RewriteRule ^(.*)$ - [E=PROTOCOL:https]
# Если нужно убираем www
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ %{ENV:PROTOCOL}://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ %{ENV:PROTOCOL}://%1:%{SERVER_PORT}%{REQUEST_URI} [R=301,L]
Новичкам бояться что-либо править в файлах типа «.htaccess» не следует. Ведь этот текст вы всегда можете подправить, заглянув в нулёвый экземпляр дистрибутива движка, или совсем заменить испорченный файл свежим методом копирования.
3.1. Появляется предупреждение:
Call to undefined function mb_strtolower() in...
Такая ошибка может свидетельствовать, что вы выбрали неподходящий тариф, который не поддерживает функцию mb_strtolower() модуля PHP. Если серверы поддерживают PHP, то значит, не включена библиотека mbstring. В любом случае вам необходимо связаться со службой поддержки хостера.
4.1. Появляется надпись:
Severity: Notice
Message: Undefined variable: mso_install
Filename: common/common.php
Line Number: 140
Иногда, нам кажется, что мы делаем все правильно, бьемся в поисках ошибки на данном этапе, упуская из виду, что ошибка могла быть сделана уже давно, или она лежит в другой плоскости.
Например, секретная фраза, которую ставят во время установки и на локальный сервер или на настоящий в файле «mso_config.php». Если ее не ставить, то система автоматически будет использовать наименование вашего сайта для шифрования. Тогда, при переносе сайта с локального сервера на настоящий, может возникнуть проблема, так как у сайта меняется имя. В подобном случае сайт может не принять старый логин и пароль, так как система сгенерирует новые.
Лечение проблемы видится в создании нового файла «mso_config.php» из заготовки «mso_config.php-distr». Вам следует откатиться до пункта 2.1. моей статьи Готовим наши файлы для заливки на хост и вставить секретную фразу – имя локального сайта. В крайнем случае – придется заново установливать движок с нуля, используя дистрибутив с официального сайта, но контент тогда придется переносить ручками.
5.1. Проблема после установки, когда в браузере все же появляется ваш сайт. Если он ужат или нет картинок, то это можно поправить из Административной панели, но бывает, что Главная страница отображается нормально, а при просмотре других на них «слетает» (исчезает) всякое оформление: страницы выглядят как документы с обычным текстом.
Так как за внешнее оформление отвечают файлы стилей, то вероятно «испортились» пути к этим файлам. Это можно проверить, если в браузере кликнут правой на страницу сайта и выбрать строку в меню «Просмотр кода страницы». Так наша страница выглядит «глазами» браузера. Надо открыть рядом (или скопировать) два окна – окно с кодом Главной и кодом проблемной страницы и сравнить вверху строки, наподобие этой:
"//site.com/page/application/maxsite/templates/default/style.css"
Сравните пути до файла стилей в обоих кодах. В кодах Главной и второстепенной страницы они должны быть одинаковы:
//site.com/application/maxsite/templates/default/style.css
Причиной «слёта» оформления и появления дополнительных секторов в адресе может стать неправильная работа файла «.htaccess».
Вероятно, вы выбрали не ту заготовку для получения файла «.htaccess».
Другой причиной может стать плохая поддержка сервером PHP5, тогда лечение заключается в переходе на PHP4. В крайнем случае – все зависит от настроек конкретного сервера и вам следует обращаться в службу поддержки.
Тег cut maxsite
Следующая проблема появляется уже после установки движка на этапе написания статей в визуальном редакторе. Тег [cut] maxsite используют для разрыва статьи на анонс и саму статью. Таким образом получается вывод на страницу сайта короткого анонса, а читателю предоставляется возможность увидеть полный текст статьи по нажатию на ссылку Далее…
После вставки тега [cut] происходит разрыв блоков текста (<div>…[cut]…</div>). Появление незакрытого тега <div> приводит к сдвигу сайдбара под текст статьи.
Для решения этой проблему существует плагин autoclose_tag, который автоматически закрывает теги перед [cut], но иногда и он не справляется со своей работой на внутренних страницах сайта.
Решение состоит в переходе на невизуальный редактор (режим), в котором ручным методом надо закрыть разрыв тегов <div>. А лучше всего пользоваться, как рекомендует разработчик Максим, стандартным невизуальным редактором, в котором работают теги BB-code, включая тег [cut]. Для новичков лучше всего использовать невизуальный редактор markItUp (плагин editor_markitup вместе с плагином bbcode), в котором отлично обрабатываются теги HTML и BB-Code.
Если у вас проявилась особая проблема, для которой вы не нашли решения в данной статье, то можете обратиться с вопросами на форум //forum.max-3000.com/ к настоящим знатокам движка. Порой вопрос может быть полезен для самого разработчика движка, если вы выявили какой-то особый глюк в системе.
Не обижайтесь, если вам укажут на вашу невнимательность, так как лечение проблемы указывалось уже раз сто на предыдущих страницах. Действительно, зачем закидывать одинаковые вопросы, ответы на которые находятся через две страницы? Так, что перед тем, как отвлекать людей от дела, постарайтесь проштудировать страницы, посвященные ошибкам. Кроме того, не ошибайтесь при выборе форума по своему вопросу. Понятно, что вы Новичок и вам положено ошибаться, но тут небрежность – это знак неуважения к чужому времени.