Как установить Anchor CMS на CentOS 7 LAMP VPS
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
Leanote - это бесплатная, легкая и открытая альтернатива Evernote, написанная на Голанге. Имея в виду пользовательский опыт, Leanote предоставляет пользователям множество практических функций, в том числе кроссплатформенную поддержку, запись в синтаксисе MarkDown, общедоступные или частные блоги, сбор и обмен знаниями и совместную работу в команде.
В этой статье я расскажу вам, как настроить сервер Leanote на экземпляре сервера CentOS 7. В целях безопасности также будет разрешено HTTPS support
использование SSL-сертификата Let's Encrypt и Nginx.
203.0.113.1
.leanote
.leanote.example.com
, указываемый на экземпляр сервера, упомянутый выше.При запуске нового экземпляра сервера Vultr CentOS 7 всегда рекомендуется настроить файл подкачки, чтобы обеспечить бесперебойную работу системы. Например, создание файла подкачки размером 2048 МБ подходит для машины с 2 ГБ памяти.
sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -m
Примечание. Если вы используете сервер другого размера, вам может потребоваться изменить размер файла подкачки.
Загрузите и извлеките последнюю стабильную версию Leanote для 64-битной системы Linux:
cd
wget https://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz
В соответствии с требованиями Leanote, СУБД MongoDB NoSQL должна быть установлена, прежде чем вы сможете успешно настроить сервер Leanote.
Создайте репозиторий MongoDB 4.0 YUM следующим образом:
cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
Установите все компоненты и инструменты MongoDB, используя репозиторий MongoDB 4.0 YUM, созданный ранее:
sudo yum install -y mongodb-org
По умолчанию MongoDB будет использовать 27017
порт при работе, что недопустимо, если SELinux находится в enforcing
режиме на компьютере CentOS 7. Используйте следующую команду для подтверждения текущего режима SELinux:
sudo getenforce
На экземпляре сервера Vultr CentOS 7 SELinux по умолчанию отключен. Таким образом, результат вышеприведенной команды будет:
Disabled
В этом случае вы можете свободно пропустить следующие инструкции по настройке SELinux и двигаться дальше.
Однако, если вы работаете с оригинальным экземпляром сервера CentOS 7, вы получите следующую команду Enforcing
. Вам нужно выполнить любой из трех вариантов ниже, прежде чем вы сможете запустить и включить сервис MongoDB.
Вариант 1: разрешить MongoDB использовать 27017
порт
sudo semanage port -a -t mongod_port_t -p tcp 27017
Вариант 2: отключить SELinux
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo shutdown -r now
Вариант 3: permissive
переключить SELinux в режим
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
sudo shutdown -r now
Запустите службу MongoDB и запустите ее после перезагрузки системы:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Используйте команды ниже для импорта исходных данных Leanote в MongoDB:
rm /home/leanote/leanote/mongodb_backup/leanote_install_data/.DS_Store
mongorestore --host localhost -d leanote --dir /home/leanote/leanote/mongodb_backup/leanote_install_data/
В целях безопасности вам необходимо включить контроль доступа к MongoDB сразу после запуска службы MongoDB. Для этого вам необходимо создать как минимум две учетные записи пользователя MongoDB: учетную запись администратора пользователя и учетную запись администратора базы данных. Вам также нужно будет изменить конфигурацию MongoDB.
Войдите в оболочку MongoDB:
mongo --host 127.0.0.1:27017
Переключиться на admin
базу данных:
use admin
Создайте администратора по имени пользователя, useradmin
который использует пароль useradminpassword
:
db.createUser({ user: "useradmin", pwd: "useradminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
Примечание. Администратор пользователей useradmin
должен управлять всеми пользователями MongoDB, поэтому разумно выбрать надежный пароль. Конечно, более безопасный совет - заменить useradmin
трудно угадываемое имя пользователя.
Переключиться на leanote
базу данных:
use leanote
Создайте администратора базы данных с именем leanoteadmin
, использующим пароль leanoteadminpassword
:
db.createUser({ user: "leanoteadmin", pwd: "leanoteadminpassword", roles: [{ role: "dbOwner", db: "leanote" }] })
Примечание . Опять же, рекомендуется выбирать менее известное имя пользователя и трудно угадываемый пароль.
Создав пользователей MongoDB, вы можете подтвердить результаты:
use admin
db.auth("useradmin", "useradminpassword")
Подтвердите администратор базы данных:
use leanote
db.auth("leanoteadmin", "leanoteadminpassword")
Оба будут выводить 1
как подтверждение.
Выйдите из оболочки MongoDB:
exit
Чтобы включить контроль доступа к MongoDB, вам также необходимо добавить две строки в файл конфигурации MongoDB /etc/mongod.conf
, как показано ниже:
sudo bash -c "echo 'security:' >> /etc/mongod.conf"
sudo bash -c "echo ' authorization: enabled' >> /etc/mongod.conf"
Перезапустите сервис MongoDB, чтобы изменения вступили в силу:
sudo systemctl restart mongod.service
Отныне вы можете использовать только две учетные записи пользователей для доступа и управления MongoDB, useradmin
для управления всеми пользователями MongoDB и только leanoteadmin
для управления leanote
базой данных.
Сделайте резервную копию файла конфигурации Leanote /home/leanote/leanote/conf/app.conf
:
cd /home/leanote/leanote/conf/
cp app.conf app.conf.bak
Используйте vi
редактор, чтобы открыть файл конфигурации Leanote:
vi app.conf
Найдите следующие строки одну за другой:
site.url=http://localhost:9000
db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y
Замените их соответственно, как показано ниже:
site.url=http://leanote.example.com:9000
db.username=leanoteadmin
db.password=leanoteadminpassword
app.secret=E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA
Примечание. В целях безопасности значение app.secret
параметра ДОЛЖНО быть 64-битной случайной строкой, отличной от исходной. Обязательно замените значение E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA
своим собственным 64-битным случайным значением.
Сохранить и выйти:
:wq!
Измените правила брандмауэра, чтобы разрешить входящий TCP-трафик через порт 9000
:
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo systemctl reload firewalld.service
Запустите Leanote, используя официальный скрипт:
cd /home/leanote/leanote/bin
bash run.sh
Увидев Listening on.. 0.0.0.0:9000
, укажите ваш любимый веб-браузер, http://leanote.example.com:9000
чтобы начать использовать сайт Leanote.
Используйте учетную запись администратора Leanote по умолчанию для входа в систему:
admin
abc123
В целях безопасности вы должны изменить пароль по умолчанию сразу после входа в систему.
HTTPS
доступНа данный момент вы уже можете получить доступ к серверу Leanote, используя протокол HTTP, менее безопасный протокол. Чтобы повысить безопасность системы, вы можете включить HTTPS
ее, развернув на своем компьютере как SSL-сертификат Let's Encrypt, так и обратный прокси-сервер Nginx.
Прежде чем вы сможете получить SSL-сертификат Let's Encrypt, вам необходимо правильно настроить имя хоста и полное доменное имя на вашем компьютере.
Сначала нажмите CTRL+, Cчтобы остановить скрипт Leanote run.sh
.
Затем настройте имя хоста и полное доменное имя следующим образом:
sudo hostnamectl set-hostname leanote
cat <<EOF | sudo tee /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 leanote.example.com leanote
EOF
Вы также можете подтвердить результаты:
hostname
hostname -f
Заблокируйте входящий трафик через порт 9000
и разрешите входящий трафик через порты для служб HTTP
и HTTPS
служб:
sudo firewall-cmd --permanent --remove-port=9000/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service
Установите утилиту Certbot:
sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install -y certbot
Подать заявку на SSL-сертификат Let's Encrypt для домена leanote.example.com
:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d leanote.example.com
Сертификат и цепочка будут сохранены следующим образом:
/etc/letsencrypt/live/leanote.example.com/fullchain.pem
Файл закрытого ключа будет сохранен следующим образом:
/etc/letsencrypt/live/leanote.example.com/privkey.pem
По умолчанию срок действия SSL-сертификата Let's Encrypt истекает через три месяца. Вы можете настроить задание cron, как показано ниже, для автоматического обновления сертификатов Let's Encrypt:
sudo crontab -e
Нажмите Iдля входа в insert
режим, а затем введите следующую строку:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Сохранить и выйти:
:wq!
Это задание cron будет пытаться обновлять сертификат Let's Encrypt каждый день в полдень.
Установите Nginx, используя репозиторий EPEL YUM:
sudo yum install -y nginx
Создайте файл конфигурации для Leanote:
cat <<EOF | sudo tee /etc/nginx/conf.d/leanote.conf
# Redirect HTTP to HTTPS
server {
listen 80;
server_name leanote.example.com;
return 301 https://\$server_name\$request_uri;
}
server {
# Setup HTTPS certificates
listen 443 default ssl;
server_name leanote.example.com;
ssl_certificate /etc/letsencrypt/live/leanote.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/leanote.example.com/privkey.pem;
# Proxy to the Leanote server
location / {
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host \$http_host;
proxy_set_header Host \$http_host;
proxy_max_temp_file_size 0;
proxy_pass http://127.0.0.1:9000;
proxy_redirect http:// https://;
}
}
EOF
Перезапустите Nginx, чтобы изменения вступили в силу:
sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
Измените site.url
настройку в конфигурационном файле Leanote:
cd /home/leanote/leanote/conf/
vi app.conf
Найдите следующую строку:
site.url=http://leanote.example.com:9000
Замени это:
site.url=https://leanote.example.com
Сохранить и выйти:
:wq!
Запустите скрипт Leanote еще раз:
cd /home/leanote/leanote/bin
bash run.sh
Теперь укажите ваш любимый веб-браузер http://leanote.example.com/
, и вы увидите, что HTTPS
протокол активируется автоматически. Просто войдите в систему как admin
пользователь с новым паролем, который вы установили ранее, или зарегистрируйте новые учетные записи пользователей для совместной работы в команде.
Снова нажмите CTRL+, Cчтобы остановить сценарий Leanote. Мы демонизируем этот скрипт позже.
wkhtmltopdf
программуLeanote решает использовать wkhtmltopdf
программу для экспорта HTML-страниц в виде файлов PDF. Установить wkhtmltopdf
:
cd
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
sudo yum localinstall -y wkhtmltox-0.12.5-1.centos7.x86_64.rpm
which wkhtmltopdf
Не забудьте указать wkhtmltopdf
двоичный путь /usr/local/bin/wkhtmltopdf
в Export PDF
разделе панели инструментов веб-администратора Leanote, когда Leanote снова заработает.
Примечание. Если вы обнаружите нечитаемые символы в экспортированных файлах PDF, вы можете попытаться устранить проблему, добавив в /usr/share/fonts/
каталог необходимые файлы шрифтов .
Чтобы ваш сайт Leanote оставался в сети, вы можете использовать утилиту Supervisor для автоматического запуска сценария Leanote в случае его сбоя.
Установите Supervisor, используя YUM:
sudo yum install -y supervisor
Создайте простой .ini
файл Supervisor для Leanote:
cat <<EOF | sudo tee /etc/supervisord.d/leanote.ini
[program:leanote]
command=bash /home/leanote/leanote/bin/run.sh
directory=/home/leanote/leanote/bin/
priority=999
autostart=true
autorestart=true
user=leanote
redirect_stderr=true
EOF
Запустите службу Supervisor, а также службу Leanote:
sudo supervisord -c /etc/supervisord.conf
Подтвердите статус сервиса Leanote:
sudo supervisorctl status leanote
Вывод будет выглядеть следующим образом:
leanote RUNNING pid 3707, uptime 0:02:36
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
При настройке нового сервера Linux рекомендуется обновить ядро системы и другие пакеты до последней стабильной версии. В этой статье
Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам
Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья
Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания
OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через
OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в
Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я
MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns
Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:
Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе
RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях
Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия
Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и
Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.
Традиционные подходы к анализу данных невозможно использовать, когда наборы данных достигают определенного размера. Современная альтернатива анализу огромных массивов данных, которые я
Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется
Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на
Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер
Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше