Как установить dotCMS на CentOS 7

dotCMS - это система управления контентом корпоративного уровня с открытым исходным кодом, написанная на Java. Он содержит почти все функции, необходимые для создания веб-сайта для вашего бизнеса. Он предоставляет RESTful API для интеграции с другими службами, такими как CRM, мобильные приложения и т. Д. Он использует Elasticsearch для индексации контента в реальном времени и Redis для реализации многоуровневого кэша.

Эта статья была написана для dotCMS 4.2.2, однако предоставленные инструкции могут работать и для более новых версий.

Предпосылки

  • Экземпляр сервера Vultr CentOS 7.
  • Пользователь Sudo .
  • Доменное имя указывает на сервер.

В этом руководстве мы будем использовать 192.168.0.1в качестве общедоступного IP-адреса и в cms.example.comкачестве имени домена, указывающего на экземпляр Vultr. Обязательно замените все вхождения примера доменного имени и общедоступного IP-адреса фактическим.

Обновите базовую систему, используя руководство Как обновить CentOS 7 . После обновления системы перейдите к установке Java.

Установить Java

OpenJDK может быть легко установлен, так как пакет доступен в репозитории YUM по умолчанию.

sudo yum -y install java-1.8.0-openjdk-devel

Если Java установлена ​​правильно, вы сможете проверить ее версию.

java -version

Вы получите аналогичный вывод.

[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Прежде чем мы продолжим, нам нужно будет установить переменные среды JAVA_HOMEи JRE_HOME. Найдите абсолютный путь к исполняемому файлу Java в вашей системе.

readlink -f $(which java)

Вы увидите похожий вывод.

[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre/bin/java

Теперь установите переменные среды JAVA_HOMEи в JRE_HOMEсоответствии с путем к каталогу Java.

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre" >> ~/.bash_profile

Запустите bash_profileфайл.

source ~/.bash_profile

Теперь вы можете запустить echo $JAVA_HOMEкоманду, чтобы убедиться, что установлена ​​переменная окружения.

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

Установить PostgreSQL

По умолчанию dotCMS настроен на использование ядра базы данных H2. Ядро базы данных H2 - это ядро ​​базы данных на основе простых файлов Не рекомендуется использовать в производстве. В этом руководстве мы будем использовать сервер PostgreSQL для хранения базы данных dotCMS.

PostgreSQL - это объектно-реляционная система баз данных, известная своей стабильностью и скоростью. Добавьте репозиторий последней версии PostgreSQL в систему.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

Установите сервер базы данных PostgreSQL.

sudo yum -y install postgresql10-server postgresql10-contrib postgresql10 

Инициализируйте базу данных.

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

Запустите сервер PostgreSQL и включите его автоматический запуск во время загрузки.

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10

Измените пароль для пользователя PostgreSQL по умолчанию.

sudo passwd postgres

Войдите в систему как пользователь PostgreSQL по умолчанию.

sudo su - postgres

Создайте нового пользователя PostgreSQL для dotCMS.

createuser dotcms 

PostgreSQL предоставляет psqlоболочку для выполнения запросов на сервере базы данных. Переключитесь на оболочку PostgreSQL.

psql

Установите пароль для вновь созданного пользовате��я для базы данных dotCMS.

ALTER USER dotcms WITH ENCRYPTED password 'DBPassword';

Замените пароль пользователя базы данных DBPasswordнадежным паролем. Создайте новую базу данных для установки dotCMS.

CREATE DATABASE dotcms OWNER dotcms;

Выход из psqlоболочки.

\q

Переключиться на sudoпользователя.

exit

Установите dotCMS

Загрузите архив dotCMS.

wget https://dotcms.com/physical_downloads/release_builds/dotcms_4.2.2.tar.gz

Вы всегда можете найти ссылку на последнюю версию приложения на странице загрузки dotCMS .

Создайте новый каталог для хранения файлов dotCMS и извлеките их в него.

sudo mkdir /opt/dotcms
sudo tar -zxf dotcms*.tar.gz -C /opt/dotcms

Откройте файл конфигурации базы данных.

cd /opt/dotcms
sudo nano dotserver/tomcat-*/webapps/ROOT/META-INF/context.xml

Найдите H2блок.

<!-- H2 -->
<Resource name="jdbc/dotCMSPool" auth="Container"
 ...

 validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />

Закомментируйте весь H2раздел, заменив разделитель комментариев -->от начала раздела до конца раздела. Это должно выглядеть следующим образом.

<!-- H2
<Resource name="jdbc/dotCMSPool" auth="Container"
 ...

 validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
-->

Раскомментируйте раздел PostgreSQL, удалив разделитель комментариев -->в конце раздела и поместив его в верхнюю обертку POSTGRESQL. Также найдите username=и password=замените существующие значения именем пользователя и паролем пользователя базы данных PostgreSQL. Если вы использовали имя базы данных, отличное от dotcms, то вам нужно будет изменить имя базы данных в url=. После настройки блок PostgreSQL в файле должен выглядеть следующим образом.

<!-- POSTGRESQL -->
<Resource name="jdbc/dotCMSPool" auth="Container"
      type="javax.sql.DataSource"
      factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
      driverClassName="org.postgresql.Driver"
      url="jdbc:postgresql://localhost/dotcms"
      username="dotcms" password="DBPassword" maxTotal="60" maxIdle="10" maxWaitMillis="60000"
      removeAbandonedOnBorrow="true" removeAbandonedOnMaintenance="true" removeAbandonedTimeout="60" logAbandoned="true"
      timeBetweenEvictionRunsMillis="30000" validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />

Предоставьте разрешение на выполнение для всех исполняемых файлов.

sudo chmod 755 ./bin/*.sh
sudo chmod 755 dotserver/tomcat-*/bin/*.sh

dotCMS теперь установлен на вашем сервере. Чтобы немедленно запустить приложение, выполните следующее.

cd /opt/dotcms
sudo bin/startup.sh

После успешного запуска сервера вы увидите следующий вывод.

[user@vultr dotcms]$ sudo bin/startup.sh
Using DOTCMS_HOME = /opt/dotcms/dotserver/tomcat-8.0.18/webapps/ROOT
Using DOTSERVER = dotcms
Using CATALINA_PID = /tmp/dotcms.pid
Using JAVA_OPTS =  -Djava.awt.headless=true -Xverify:none -Dfile.encoding=UTF8 -server -XX:+DisableExplicitGC -XX:MaxMetaspaceSize=512m -Xmx1G -XX:+UseG1GC -javaagent:/opt/dotcms/dotserver/tomcat-8.0.18/webapps/ROOT/WEB-INF/lib/byte-buddy-agent-1.6.12.jar -Ddotserver=dotcms
Using CATALINA_BASE:   /opt/dotcms/dotserver/tomcat-8.0.18
Using CATALINA_HOME:   /opt/dotcms/dotserver/tomcat-8.0.18
Using CATALINA_TMPDIR: /opt/dotcms/dotserver/tomcat-8.0.18/temp
Using JRE_HOME:        /
Using CLASSPATH:       /opt/dotcms/dotserver/tomcat-8.0.18/bin/bootstrap.jar:/opt/dotcms/dotserver/tomcat-8.0.18/bin/tomcat-juli.jar
Using CATALINA_PID:    /tmp/dotcms.pid
Tomcat started.

Приведенная выше команда запустит веб-сервер Tomcat для обслуживания приложения через порт 8080. Чтобы проверить, работает ли сайт dotCMS, разрешите необходимый порт 8080через системный брандмауэр.

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

Откройте ваш любимый браузер и перейдите к http://192.168.0.1:8080. Вы должны увидеть, что приложение работает на демо-сайте. Если вы не видите свой веб-сайт, подождите, пока первый запуск сервера dotCMS займет пару минут, поскольку он записывает данные в базу данных PostgreSQL и создает кэш. Вы также можете проверить журналы запуска.

tail -n 1000 -f /opt/dotcms/dotserver/tomcat-*/webapps/ROOT/dotsecure/logs/dotcms.log

Настройка службы Systemd

Сервер dotCMS может быть запущен напрямую с помощью сценария запуска, предоставленного в пакете установщика. Для удобства вам следует настроить файл модуля Systemd для сервера dotCMS. Это обеспечит автоматический запуск сервера приложений при перезапуске системы и сбоях.

Остановите работающий сервер dotCMS, используя скрипт завершения работы.

sudo bin/shutdown.sh

В целях безопасности создайте непривилегированного пользователя для запуска сервера dotCMS.

sudo adduser -d /opt/dotcms -s /sbin/nologin dotcms

Предоставьте право собственности на файлы пользователю dotCMS.

sudo chown -R dotcms:dotcms /opt/dotcms

Создайте новый сервис Systemd.

sudo nano /etc/systemd/system/dotcms.service

Заполните файл.

[Unit]
Description=dotCMS service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/dotcms/bin/startup.sh
ExecStop=/opt/dotcms/bin/shutdown.sh
User=dotcms
Group=dotcms
Restart=always

[Install]
WantedBy=multi-user.target

Запустите приложение и включите его для автоматического запуска во время загрузки.

sudo systemctl start dotcms
sudo systemctl enable dotcms

Убедитесь, что служба работает.

sudo systemctl status dotcms

Настройте обратный прокси

По умолчанию сервер dotCMS прослушивает порт 8080. Мы настроим Nginx как обратный прокси-сервер, чтобы к приложению можно было обращаться через стандарт HTTPи HTTPSпорты. Мы также настроим Nginx для использования SSL, созданного с помощью бесплатного шифрования Let's Encrypt.

Установите веб-сервер Nginx.

sudo yum -y install nginx

Запустите веб-сервер и включите его автоматический запуск во время загрузки.

sudo systemctl start nginx
sudo systemctl enable nginx

Установите Certbot, который является клиентским приложением для Let's Encrypt CA.

sudo yum -y install certbot

Прежде чем вы сможете запросить сертификаты, вам необходимо разрешить порты 80и / 443или стандартные HTTPи HTTPSсервисы через брандмауэр. Кроме того, удалите порт 8080из списка исключений брандмауэра, так как он больше не требуется.

sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

Примечание. Чтобы получить сертификаты от Let's Encrypt CA, домен, для которого должны быть созданы сертификаты, должен быть направлен на сервер. Если нет, внесите необходимые изменения в записи DNS домена и дождитесь распространения DNS, прежде чем снова делать запрос сертификата. Certbot проверяет полномочия домена перед предоставлением сертификатов.

Создайте сертификаты SSL.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d cms.example.com

Сгенерированные сертификаты, вероятно, будут храниться в /etc/letsencrypt/live/cms.example.com/. Срок действия сертификатов Let's Encrypt истекает через 90 дней, поэтому рекомендуется настроить автоматическое обновление сертификатов с помощью заданий Cron.

Откройте файл задания cron.

sudo crontab -e

Добавьте следующую строку в конец файла.

30 5 * * * /usr/bin/certbot renew --quiet

Вышеуказанная работа cron будет выполняться каждый день в 5:30. Если срок действия сертификата истекает, он будет автоматически продлен.

Создайте новый файл блока сервера для сайта dotCMS.

sudo nano /etc/nginx/conf.d/cms.example.com.conf

Заполните файл.

server {
    listen 80;
    server_name cms.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name cms.example.com;

    ssl_certificate           /etc/letsencrypt/live/cms.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/cms.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/dotcms.access.log;

    location / {

      proxy_set_header        Host $host;
      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 $scheme;

      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:8080 https://cms.example.com;
    }
  }

Перезапустите веб-сервер Nginx, чтобы изменения вступили в силу.

sudo systemctl restart nginx

Приложение dotCMS теперь установлено на вашем сервере для производственного использования. Получите доступ к административной панели по следующему адресу.

https://cms.example.com/dotAdmin

Войдите в систему, используя начальную учетную запись администратора, [email protected]и admin. Измените пароль по умолчанию сразу после входа в систему.

Поздравляем, система управления контентом dotCMS установлена ​​на вашем сервере. Вы можете изменить демонстрационный сайт или начать создавать свой сайт с нуля.



Leave a Comment

Как установить Anchor CMS на CentOS 7 LAMP VPS

Как установить Anchor CMS на CentOS 7 LAMP VPS

Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.

Как установить TextPattern CMS 4.6.2 на VBS FreeBSD 11 FAMP

Как установить TextPattern CMS 4.6.2 на VBS FreeBSD 11 FAMP

Используете другую систему? TextPattern CMS 4.6.2 - это простая, гибкая, бесплатная система управления контентом (CMS) с открытым исходным кодом, которая позволяет веб-дизайнерам

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Как установить Subrion 4.1 CMS на Ubuntu 16.04 LAMP VPS

Как установить Subrion 4.1 CMS на Ubuntu 16.04 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Установка Bolt CMS на CentOS 7

Установка Bolt CMS на CentOS 7

Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.

Как установить PyroCMS на Ubuntu 16.04

Как установить PyroCMS на Ubuntu 16.04

Используете другую систему? PyroCMS - это CMS с открытым исходным кодом, написанная на PHP. Исходный код PyroCMS размещен на GitHub. В этом руководстве хорошо прогуляться по всему

Как установить Backdrop CMS 1.8.0 на Debian 9 LAMP VPS

Как установить Backdrop CMS 1.8.0 на Debian 9 LAMP VPS

Использ��ете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Как установить Pagekit 1.0 CMS на Debian 9 LAMP VPS

Как установить Pagekit 1.0 CMS на Debian 9 LAMP VPS

Используете другую систему? Pagekit 1.0 CMS - это красивая, модульная, расширяемая и легкая, бесплатная и с открытым исходным кодом система управления контентом (CMS) с

Как установить Subrion 4.1 CMS на Debian 9 LAMP VPS

Как установить Subrion 4.1 CMS на Debian 9 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Как установить TextPattern CMS 4.6.2 на Ubuntu 16.04 LAMP VPS

Как установить TextPattern CMS 4.6.2 на Ubuntu 16.04 LAMP VPS

Используете другую систему? TextPattern CMS 4.6.2 - это простая, гибкая, бесплатная система управления контентом (CMS) с открытым исходным кодом, которая позволяет веб-дизайнерам

Как установить CMS за октябрь 1.0 на Debian 9 LAMP VPS

Как установить CMS за октябрь 1.0 на Debian 9 LAMP VPS

Используете другую систему? Октябрь 1.0 CMS - это простая и надежная, бесплатная система управления контентом (CMS) с открытым исходным кодом, построенная на платформе Laravel.

Как установить dotCMS на Ubuntu 16.04

Как установить dotCMS на Ubuntu 16.04

Используете другую систему? DotCMS - это система управления контентом корпоративного уровня с открытым исходным кодом, написанная на Java. Он содержит почти все функции, необходимые т

Как установить Subrion 4.1 CMS на CentOS 7 LAMP VPS

Как установить Subrion 4.1 CMS на CentOS 7 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Как установить Automad CMS на CentOS 7

Как установить Automad CMS на CentOS 7

Используете другую систему? Automad - это система управления контентом на основе файлов с открытым исходным кодом (CMS) и механизм шаблонов, написанный на PHP. Исходный код Automad я

Как установить WonderCMS на FreeBSD 12

Как установить WonderCMS на FreeBSD 12

Используете другую систему? WonderCMS - это быстрая и небольшая плоская файловая CMS с открытым исходным кодом, написанная на PHP. Исходный код WonderCMS размещен на Github. Это руководство будет

Установите Tiki Wiki CMS Groupware на Ubuntu 18.04 LTS

Установите Tiki Wiki CMS Groupware на Ubuntu 18.04 LTS

Используете другую систему? Введение Tiki Wiki CMS Groupware, также известная как Tiki, является бесплатной и открытой системой управления контентом вики. Особенность Тикиса

Как установить BoltWire в Ubuntu 18.04

Как установить BoltWire в Ubuntu 18.04

Используете другую систему? Введение BoltWire - это бесплатная и легкая система управления контентом, написанная на PHP. По сравнению с большинством других контент-менеджеров

Как установить ApostropheCMS в Ubuntu 18.04

Как установить ApostropheCMS в Ubuntu 18.04

ApostropheCMS - это современная система управления контентом, построенная на NodeJS с акцентом на расширяемые инструменты контекстного редактирования. В этом уроке вы узнаете

Как установить BigTree CMS 4.2 на VBS FreeBSD FAMP

Как установить BigTree CMS 4.2 на VBS FreeBSD FAMP

Используете другую систему? BigTree CMS 4.2 - это быстрая и легкая бесплатная система управления контентом (CMS) корпоративного уровня с открытым исходным кодом и широким

Как установить Microweber на CentOS 7

Как установить Microweber на CentOS 7

Используете другую систему? Microweber - это CMS с открытым исходным кодом и онлайн-магазин. Исходный код микропровода размещен на GitHub. Это руководство покажет вам

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше