Эта документация предназначена для ознакомления вас с разработкой под XenForo 2.0. Предполагается, что перед началом работы с этой документацией вы уже знакомы с базовыми вещами, вроде PHP и MySQL. Опыт работы с предыдущими версиями XenForo не требуется, но предоставит ряд преимуществ.
На последующих страницах документации мы расскажем об установке локального сервера, подготовке к установке и самом процессе чистой установки XenForo 2.0 и объясним некоторые базовые концепции разработки под XF2.
Хотя XenForo 2.0 добавляет много улучшений для ваших форумов и его участников, значительные усилия были направлены на улучшение базовой структуры XenForo. Вы можете прочитать дополнительную информацию об этих изменениях в следующих темах:
Что нового для разработчиков в XenForo 2 (часть 1)1
Что нового для разработчиков в XenForo 2 (часть 2)1
Начать разработку на XF легко. Вам просто нужно загрузить файлы, выгрузить их на веб-сервер и запустить установку.
Если у вас еще нет веб-сервера, не беспокойтесь, вы легко сможете настроить его в локальном окружении.
Для загрузки XF 2.0, просто зайдите в [Customer Area] (https://xenforo.com/customers) и войдите в учетную запись как обычно. Найдите правильную лицензию и нажмите ссылку «Загрузить XenForo». Выберите версию, которую вы хотите загрузить, тип пакета и принять лицензионное соглашение. Наконец, нажмите кнопку «Загрузить», чтобы загрузить файлы.
Требования к запуску XF 2.0 изменились с XF 1.5. Рекомендуемые требования:
- PHP: 5.4.0+
- MySQL: 5.5+
- PHP расширения: MySQLi, GD (with JPEG support), PCRE, SPL, SimpleXML, DOM, JSON, iconv, ctype, cURL
Загрузить скрипт проверки требований.
Часто более удобно настраивать локальный веб-сервер для разработки. Как правило, для этого существуют два подхода:
- Установка Apache (или nginx), MySQL (или MariaDB) и сам PHP.
- Установка предварительно построенной виртуальной машины.
- Установка готовых сборок.
Локальная установка сама по себе может быть сложной, но, как правило, дает вам больше контроля, над тем, как всё настроено.
В Интернете есть множество готовых виртуальных машин, которые обеспечивают наличия почти всех необходимых сервисов для запуска XenForo, аккуратно упакованного в одно место, без необходимости их установки и обслуживания непосредственно на вашем собственном компьютере.
Некоторые из разработчиков XenForo используют виртуальную машину под названием Scotch Box, которая включает в себя все необходимое для запуска XenForo с настройками по умолчанию. У нас есть Пошаговое руководство для запуска сервера разработки XenForo - вы получите рабочий виртуальный веб-сервер и сервер баз данных выполня всего несколько команд.
Установка Scotch Box для использования с XenForo
Существует много готовых сборок, и они могут различаться в наборе функций, производительности и надежности. Bitnami поддерживает несколько сборок, включая LAMP, MAMP и [WAMP](https:// bitnami.com/stack/wamp) для использования в Linux, Mac и Windows соответственно. Все они включают полностью настроенную установку Apache, MySQL и PHP, а так же PhpMyAdmin для управления MySQL.
Чтобы установить XF 2.0, вам просто нужно извлечь ZIP-файл, загруженный ранее, и выгрузить некоторые из файлов и каталогов на ваш сервер.
После извлечения вы увидите каталог с именем upload
. Вам нужно зайти в этот каталог и загрузить файлы и каталоги в корневой каталог вашего сервера. Обычно это каталог с именем public_html
, htdocs
или www
.
Если вы используете CLI для установки XF 2.0, вам нужно будет создать файл config.php
вручную. Для этого войдите каталог src
в файлах XF 2.0, загруженные на ваш сервер. Создайте новый файл с именем config.php
и заполните его именем хоста, порта, имени пользователя, пароля и базы данных для вашего сервера MySQL.
Примечание
Убедитесь, что вы создали файл конфигурации в каталоге
src
. Каталогlibrary
используется только для устаревших целей.
После этого он должен выглядеть следующим образом:
<?php
$config['db']['host'] = 'localhost';
$config['db']['port'] = '3306';
$config['db']['username'] = 'root';
$config['db']['password'] = 'mypassword';
$config['db']['dbname'] = 'xf2';
Теперь вы готовы к установке!
Если вы используете MySQL 5.5 и выше, и хотите иметь полную поддержку Unicode (для таких вещей, как emoji), перед установкой вы также должны добавить следующее:
$config['fullUnicode'] = true;
Во время работы, XenForo записывает файлы в разные места. При нормальной работе это ограничивается каталогами data
и internal_data
(и их подкаталогами). Эти записи файлов будут инициироваться такими приложениями, например, вложения, поэтому они, как правило, запускаются пользователем PHP на вашем веб-сервере. Поэтому необходимо обеспечить, чтобы в этих каталогах были установлены разрешения, чтобы веб-сервер мог изменять их. Вам нужно будет сделать это до начала установки.
Когда CLI задействован, эта ситуация становится более сложной, так как теперь есть потенциально два пользователя, которые должны иметь возможность записывать файлы. Таким образом, важно принять меры, чтобы избежать проблем с записью этих файлов. Вот несколько вариантов.
- Используйте одного и того же пользователя для CLI и веб-сервера. Это значит, что вы должны переключится на пользователя веб-сервера перед запуском любой команды установки или обновления (или любого другого, который будет записывать файлы).
- Если доступно, рассмотрите возможность применения ACL к каталогам
data
иinternal_data
. 2. Эта концепция зависит от ОС и конфигурации, но общая идея описывается здесь. - Принудительная установка разрешения на то, что установлено PHP. Это можно сделать через файл
src/config.php
с такой строкой:$config['chmodWritableValue'] = 0666;
Этот подход потенциально является самым простым в целях развития.
Обратите внимание: если вы разрабатываете плагины, могут быть другие местоположения, которые должны быть доступны для записи пользователям CLI и веб-сервером. Примечательно, что это включает в себя каталог _output
внутри плагина. В этой ситуации, когда ваш веб-сервер работает как пользователь CLI, может возникнуть наименьшее число проблем. Если вы будете использовать любые другие адреса, вам может потребоваться обеспечить, чтобы ваш веб-сервер мог вести запись во все расположения вашей установки XenForo; это не рекомендуется в производстве.
Текущий способ установки XF 2.0 - это новая система CLI. Многие процессы разработки могут выполняться только с помощью CLI, поэтому давайте закрепим знания о нем, чтобы установить XF 2.0. Чтобы выполнить эти команды, вам понадобится доступ к терминалу/оболочке, команде php и текущему рабочему каталогу, которым должен быть корневой каталог, куда вы загружали файлы XF 2.0.
Предупреждение Чтобы устранить проблемы с разрешениеми файлов, мы рекомендуем запускать установщик как тот же пользователь, что и PHP, как через ваш веб-сервер. Если вы этого не сделаете, вы должны предпринять шаги для обеспечения правильной установки разрешений. См. Выше раздел для более подробной информации.
Для начала установки используйте следующюю команду:
$ php cmd.php xf:install
Вам будет задан ряд вопросов, таких как имя пользователя
, пароль администратора
, название сайта
и т.д.. После этого будут импортированы таблицы базы данных XF 2.0 и настройка основных данныъ.
XF 2.0 теперь установлен!
Иногда может потребоваться переустановка XF2. Это особенно актуально на этапе предварительного просмотра разработки, который не поддерживает обновление. Если вы готовы сделать переустановку, загрузите новые файлы (если возможно) в соответствии с разделом Загрузка XF 2.0 выше. Как правило, достаточно просто загрузить новые файлы и перезаписать существующие. Если вы делаете полную чистую переустановку, вы можете сохранить копию файла config.php
или заново создать его в соответствии с инструкциями в Создание src/config.php.
Перед загрузкой новых файлов необходимо удалить содержимое каталогов data
и internal_data
.
Наконец, вам просто нужно будет начать установку, как описано выше. Вам нужно будет использовать опцию --clear
, которая удалит все существующие таблицы xf_
.
$ php cmd.php xf:install --clear
Как только переустановка завершена, вы можете снова войти в систему.
Если вы разрабатывали плагины, и вы решили сохранить или создать резервную копию существующего каталога src/addons
, вы можете восстановить свои данные плагинов с помощью команды Импорт вывода разработки.
Предупреждение Будьте осторожны, если вы решите создать резервную копию и восстановить каталог
src/addons
. КаталогXF
внутри содержит основные данные XF и не может быть восстановлен из резервной копии, чтобы гарантировать, что у вас всегда самая последняя версия файлов.Выполнение переустановки таким образом является деструктивной операцией и приведет к удалению всех данных, которые вы создали. Кроме того, имейте в виду, что только таблицы с префиксом
xf_
очищаются. Это является существенной причиной для рекомендации, что все таблицы, даже для плагинов, должны иметь префиксxf_
.
Когда вы устанавливаете XF2, мы выполняем проверку целостности файла при установке. Если необходимо, но нет возможности выполнить проверку через АСР, вы можете использовать CLI для выполнения этой проверки.
$ php cmd.php xf:file-check [addon_id]
Если вы хотите выполнить проверку целостности всех файллв, включая файлы XF, просто опустите аргумент [addon_id]
. Только для XF просто используйте XF
вместо аргумента или для определенного дополнения, просто укажите идентификатор плагина, который вы хотите проверить.
В дополнение к вышеприведенным командам для установки XF2 есть также несколько команд для управления плагинами.
$ php cmd.php xf:addon-install [addon_id]
Устанавливает указанное дополнение, если оно доступно, и производит проверку работоспособности файлов. Если выход разработки доступен, вам будет предложено подтвердить, хотите ли вы использовать его для установки вместо экспортированных XML-файлов данных.
$ php cmd.php xf:addon-upgrade [addon_id]
Обновляет указанное дополнение, если его можно обновить, и производит проверку работоспособности файлов. Может произвольно выполнять импорт из вывода разработки.
$ php cmd.php xf:addon-rebuild [addon_id]
Перестраивает основные данные для указанного плагина и производит проверку работоспособности файла. Данная операция повторно импортирует данные плагина. Может опционально выполнять импорт из вывода разработки.
$ php cmd.php xf:addon-uninstall [addon_id]
Удаляет указанное дополнение, если его можно удалить.