Недавно передо мной поставили задачу поднять сервер на Oracle Linux с Wiki.js. Ранее с подобным я не сталкивался и поэтому пришлось изучить данный вопрос с нуля. Как выяснилось – ничего сложного. В данной статье разберем пример данной установки.
Для начала установим чистый Oracle Linux, установим репозиторий epel и произведем обновление, для этого поочередно выполняем следующие команды:
sudo dnf install epel-release
sudo dnf update
Следующим этапом устанавливаем платформу Node.js:
curl -sL https://rpm.nodesource.com/setup_12.x | bash -
sudo dnf install nodejs
Ждем 20 секунд, после чего запускаем установку.
Далее устанавливаем Nginx:
sudo dnf install nginx
Запускаем nginx и прописываем его в автозапуск:
sudo systemctl start nginx
sudo systemctl enable nginx
Устанавливаем СУБД MariaDB:
sudo dnf install mariadb mariadb-server
Запускаем MariaDB и прописываем ее в автозапуск:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Далее необходимо произвести начальную настройку MariaDB, как это сделать я уже описывал в этой статье.
Если вкратце то, выполняем команду:
mysql_secure_installation
Отвечаем на вопросы следующими ответами:
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Заходим в MariaDB:
mysql -u root -p
Создаем базу данных для нашей вики:
CREATE DATABASE wikidb;
GRANT ALL PRIVILEGES ON wikidb.* TO 'wiki'@'localhost' IDENTIFIED BY 'your-password';
FLUSH PRIVILEGES;
EXIT;
Теперь качаем саму Wiki.js:
curl -s https://api.github.com/repos/Requarks/wiki/releases/latest | grep browser_download_url | grep -v windows | cut -d '"' -f 4 | wget -qi -
Создадим директорию в /var/www и распакуем туда архив с Wiki.js:
mkdir -p /var/www/html/wiki
tar zxf wiki-js.tar.gz -C /var/www/html/wiki
Теперь перейдем в каталог с Wiki.js и скопируем файл конфигурации в отдельный файл:
cd /var/www/html/wiki
cp config.sample.yml config.yml
Открываем файл конфигурации в редакторе:
nano config.yml
После чего находим следующий участок кода и приводим его к такому виду:
db:
type: mariadb
# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: 127.0.0.1
port: 3306
user: wiki
pass: your-password
db: wikidb
ssl: false
Сохраняем конфигурацию.
Создадим пользователя и группу для него, под котором будет работать наша вики:
groupadd --system wiki
useradd -s /sbin/nologin --system -g wiki wiki
Разрешаем пользователю права на запись в директорию:
chown -R wiki:wiki /var/www/html/wiki
Открываем в файрволе порты 80 и 3000:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=3000/tcp
firewall-cmd --reload
Пробуем запустить:
node server
Если у вас отобразилось тоже самое, что и на скриншоте, значит Wiki.js успешно запущен. Пробуем открыть в браузере следующую ссылку: http://ip_вашего_сервера:3000 вы должны увидеть следующую страницу:
Если все работает, осталось дело за малым – настроить фоновую работу Wiki.js, для этого создадим скрипт для фонового запуска через cron:
touch /var/www/html/wikijs.sh
Откроем его для редактирования:
nano /var/www/html/wikijs.sh
И вставим туда следующее содержимое:
#!/bin/bash
cd /var/www/html/wiki
nohup node server &
Предоставим права на запуск скрипта:
chmod +x /var/www/html/wikijs.sh
Теперь пропишем скрипт в cron, выполняем:
crontab -e
Вставляем следующую строку:
@reboot /var/www/html/wikijs.sh
Сохраняем и перезагружаем сервер. После перезагрузки проверяем доступна ли по прежнему наша страница с вики.