如何在Ubuntu 16.04上安装dotCMS

DotCMS是用Java编写的开源企业级内容管理系统。它几乎包含为您的企业创建网站所需的所有功能。它提供了RESTful API,可与其他服务(例如CRM,移动应用程序等)集成。它使用Elasticsearch来对内容进行实时索引,并使用Redis来实现多层缓存。

先决条件

  • Vultr Ubuntu 16.04服务器实例。
  • 一个 sudo的用户
  • 指向服务器的域名。

在本教程中,我们将使用 192.168.0.1 公共IP地址和 cms.example.com 指向Vultr实例的域名。请确保将所有示例域名和公共IP地址替换为实际的域名和公共IP地址。

使用指南如何更新Ubuntu 16.04更新基本系统 。系统更新后,继续安装Java。

安装Java

添加适用于Oracle Java 8的Ubuntu存储库。

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

安装Java。

sudo apt -y install oracle-java8-installer

您将能够验证Java的版本。

java -version

您将看到以下输出。

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

通过安装以下软件包来设置Java的默认路径。

sudo apt -y install oracle-java8-set-default

您可以验证JAVA_HOME已设置。

echo $JAVA_HOME

您应该看到以下内容。

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

如果您根本看不到任何输出,则需要从当前shell注销并重新登录。

安装PostgreSQL

默认情况下,dotCMS配置为使用H2数据库引擎。H2数据库引擎是基于平面文件的数据库引擎。不建议在生产中使用。在本教程中,我们将使用PostgreSQL服务器存储dotCMS数据库。

PostgreSQL是一个对象关系数据库系统,以其稳定性和速度而闻名。默认的Ubuntu存储库包含旧版本的PostgreSQL,因此请添加PostgreSQL存储库。

echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

安装PostgreSQL数据库服务器。

sudo apt -y install postgresql

启动PostgreSQL服务器,并使其在启动时自动启动。

sudo systemctl start postgresql
sudo systemctl enable postgresql

更改默认PostgreSQL用户的密码。

sudo passwd postgres

以PostgreSQL用户身份登录。

sudo su - postgres

为dotCMS创建一个新的PostgreSQL用户。

createuser dotcms 

PostgreSQL提供了psql 在数据库服务器上运行查询的 外壳。切换到PostgreSQL shell。

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.3.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:/opt/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:        /usr
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 Web服务器以在port上为应用程序提供服务 8080

打开您喜欢的浏览器并浏览到 http://192.168.0.1:8080。您将看到该应用程序正在运行一个演示网站。如果看不到您的网站,请稍候,因为dotCMS服务器的第一次启动需要五到十分钟,因为它将数据写入PostgreSQL数据库并建立缓存。您还可以检查启动日志。

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

配置系统

可以使用安装程序包中提供的启动脚本直接启动dotCMS服务器。为了方便起见,您应该为dotCMS服务器设置一个Systemd单位文件。这将确保在系统重新启动和出现故障时自动启动应用程序服务器。

使用关闭脚本停止正在运行的dotCMS服务器。

sudo bin/shutdown.sh

出于安全原因,创建一个非特权用户来运行dotCMS服务器。

sudo adduser --home /opt/dotcms -gecos "dotCMS User" --disabled-password --disabled-login 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服务器在port上侦听 8080。我们将Nginx配置为反向代理,以便可以通过标准HTTPHTTPS 端口访问应用程序。我们还将Nginx配置为使用“让我们加密”生成的SSL。

安装Nginx。

sudo apt -y install nginx

启动Nginx并使它能够在启动时自动启动。

sudo systemctl start nginx
sudo systemctl enable nginx

添加Certbot存储库。

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

安装Certbot,这是Let's Encrypt CA的客户端应用程序。

sudo apt -y install certbot

注意: 要从Let's Encrypt CA获得证书,必须为其生成证书的域指向服务器。如果不是,请对域的DNS记录进行必要的更改,并在再次发出证书请求之前,等待DNS传播。Certbot在提供证书之前会检查域权限。

生成SSL证书。

sudo certbot certonly --webroot -w /var/www/html -d cms.example.com

生成的证书可能存储在中 /etc/letsencrypt/live/cms.example.com/。让我们加密证书的有效期限为90天,因此建议使用Cron作业设置证书的自动续订。

打开cron作业文件。

sudo crontab -e

在文件末尾添加以下行。

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

上面的cron作业每天凌晨5:30运行。如果证书到期,它将自动更新。

为dotCMS站点创建一个新的服务器阻止文件。

sudo nano /etc/nginx/sites-available/dotcms

填充文件。

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;
    }
  }

激活配置。

sudo ln -s /etc/nginx/sites-available/dotcms /etc/nginx/sites-enabled/dotcms

重新启动Nginx Web服务器,以使更改生效。

sudo systemctl restart nginx

现在,dotCMS应用程序已安装在服务器上以用于生产。访问以下地址上的管理仪表板。

https://cms.example.com/dotAdmin

使用初始管理员帐户 [email protected] 和密码登录admin。登录后立即更改默认密码。

恭喜,您的服务器上现已安装了dotCMS内容管理系统。您可以修改演示站点,也可以从头开始构建站点。



Leave a Comment

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

在Fedora 28上安装Anchor CMS

在Fedora 28上安装Anchor CMS

使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在Ubuntu 18.04 LTS上安装WonderCMS

如何在Ubuntu 18.04 LTS上安装WonderCMS

使用其他系统?WonderCMS是用PHP编写的开源,快速,小型平面文件CMS。WonderCMS源代码托管在Github上。本指南将

如何在FreeBSD 11 FAMP VPS上安装Omeka Classic 2.4 CMS

如何在FreeBSD 11 FAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

在Ubuntu 16.04上使用Nginx反向代理设置Keystone.js服务器

在Ubuntu 16.04上使用Nginx反向代理设置Keystone.js服务器

在本教程中,我们将使用反向代理来设置Web服务器。我们将使用的CMS是Keystone.js,这是众所周知的Web应用程序框架

如何在Fedora 28上安装Bludit CMS

如何在Fedora 28上安装Bludit CMS

使用其他系统?Bludit是一个用PHP编写的简单,快速且灵活的博客CMS。Bludit使用JSON格式的文件来存储内容,因此您不必

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在Fedora 26 LAMP VPS上安装Couch CMS 2.0

如何在Fedora 26 LAMP VPS上安装Couch CMS 2.0

使用其他系统?Couch CMS是一个简单,灵活,免费和开源的内容管理系统(CMS),可让Web设计人员进行设计

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

如何在FreeBSD 11 FAMP VPS上安装Couch CMS 2.0

如何在FreeBSD 11 FAMP VPS上安装Couch CMS 2.0

使用其他系统?Couch CMS是一个简单,灵活,免费和开源的内容管理系统(CMS),可让Web设计人员进行设计

如何在FreeBSD 11 FAMP VPS上安装ProcessWire CMS 3.0

如何在FreeBSD 11 FAMP VPS上安装ProcessWire CMS 3.0

使用其他系统?ProcessWire CMS 3.0是一个简单,灵活,功能强大,免费和开源的内容管理系统(CMS)。ProcessWire CMS 3。

如何在Fedora 28上安装PyroCMS

如何在Fedora 28上安装PyroCMS

使用其他系统?PyroCMS是用PHP编写的开源CMS。PyroCMS源代码托管在GitHub上。在本指南中,请仔细阅读整个条目

如何在Fedora 26 LAMP VPS上安装BlogoText CMS

如何在Fedora 26 LAMP VPS上安装BlogoText CMS

使用其他系统?BlogoText CMS是一个简单,轻便,免费和开源的内容管理系统(CMS)和极简博客引擎

如何在Debian 9 LAMP VPS上安装Pagekit 1.0 CMS

如何在Debian 9 LAMP VPS上安装Pagekit 1.0 CMS

使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有

如何在FreeBSD 11 FAMP VPS上安装Redaxscript 3.2 CMS

如何在FreeBSD 11 FAMP VPS上安装Redaxscript 3.2 CMS

使用其他系统?Redaxscript 3.2 CMS是一款现代,超轻量级,免费和开源的内容管理系统(CMS),具有火箭fas

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。