我在Ubuntu 22.04上尝试安装Presenter

首先

我打算根据Präsentor的用户手册,进一步详细记录个人经历的错误处理方法。

智能显示屏使用手册

在引入プリザンタ之前

建立環境

本次使用VMWare环境,并利用Ubuntu22.04的镜像文件来构建操作系统。首先进行设置,然后启动操作系统。

安装

image.png

启动画面。

image.png

设定

(Note: The word “设定” in Chinese means “setting” or “configuration” in English.)

image.png

学会使用SSH

我打算使用TeraTerm来进行操作。在TeraTerm中,我们使用SSH进行通信,但是Ubuntu默认没有安装SSH。因此,将使用以下命令来安装SSH。

sudo apt update
sudo apt install openssh-server

为了能够使用vim命令

看起来vim命令也没有安装呢…让我们用以下命令进行安装吧。

sudo apt install vim

通过学习和掌握curl命令来实现。

需要安装curl命令。请使用以下命令进行安装。

sudo apt install curl

环境

対象内容OSUbuntu 22.04 LTSDBPostgreSQL 14.7WebサーバNginx 1.18.0Platform.NET 6.0.407Pleasanterプリザンター 1.3.35.1

.NET6.0的安装设置

删除.NET包

sudo apt remove 'dotnet*' 'aspnet*' 'netstandard*'

创建首选项文件

sudo touch /etc/apt/preferences

请通过以下命令打开偏好设置。

sudo vim /etc/apt/preferences

请在创建的文件中设置以下内容。
如果要编辑由vim打开的文件,请按下”i”命令进入插入模式。
在按下”i”命令进入插入模式后,如果要返回命令模式,请按下”esc”键。

Package: dotnet* aspnet* netstandard*
Pin: origin "packages.microsoft.com"
Pin-Priority: -10

如果要保存并关闭在Vim中打开的文件,请按下“:wq”命令。

安装.NET

脚本安装

sudo wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
sudo chmod +x ./dotnet-install.sh
sudo ./dotnet-install.sh -i /usr/local/bin

请参考以下官方网页上的脚本安装说明,以获得详细信息。
https://learn.microsoft.com/ja-jp/dotnet/core/install/linux-scripted-manual#scripted-install

GDI+安装

sudo apt install -y libgdiplus

PostgreSQL的安装设置

安装软件库。

sudo apt update
sudo apt -y install vim bash-completion
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee  /etc/apt/sources.list.d/pgdg.list

安装PostgreSQL

sudo apt update
sudo apt install -y postgresql-14 postgresql-client-14

设置PostgreSQL的认证方式

打开/etc/postgresql/14/main/pg_hba.conf。

sudo vim /etc/postgresql/14/main/pg_hba.conf

将METHOD的设置更改如下:按下”shift + G”将跳转到文件的最后一行。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5

PostgreSQL的日志输出设置

打开/etc/postgresql/14/main/postgresql.conf。

sudo vim /etc/postgresql/14/main/postgresql.conf

编辑以下设置:“/+搜索字符串”可以在文件中进行搜索。如果想操作搜索到的位置,按下回车键。

log_destination = 'stderr'
logging_collector = on
log_line_prefix = '[%t]%u %d %p[%l]'

重新启动PostgreSQL服务并将其设为服务化。

sudo systemctl restart postgresql
sudo systemctl enable postgresql

PostgreSQL用户配置

为PostgreSQL管理用户”postgres”(操作系统用户)设置密码。

sudo passwd postgres

输入上述命令后会提示输入密码。

新しい パスワード:<新しいパスワード>
新しい パスワードを再入力してください:<新しいパスワード>
passwd: パスワードは正しく更新されました

切换到用户”postgres”。

sudo su - postgres
psql -U postgres

请设置 PostgreSQL 的管理用户 “postgres” 的密码。请输入任意密码到“new password”。输入命令时,请包含双引号和分号。

postgres=# alter role postgres with password 'new password';

会以以下的方式显示。

ALTER ROLE

创建用于演示文稿的数据库

我要建立一个名为”Implem.Pleasanter”的数据库。

postgres=# create database "Implem.Pleasanter";

我們將使用以下指令來確認所建立的資料庫。

postgres=# \l

安装用于全文搜索的模块(pg_trgm)。

安装需要进行全文搜索的模块(pg_trgm)。
使用以下命令在Implem.Pleasanter中切换。

postgres=# \c "Implem.Pleasanter"

会被显示如下。

データベース"Implem.Pleasanter"にユーザー"postgres"として接続しました。

使用下列命令进行安装。

Implem.Pleasanter=# create extension pg_trgm;

退出

请使用以下命令注销。

Implem.Pleasanter=# exit
$ exit

会以以下方式显示。

ログアウト

如果允许从外部访问数据库,可以进行以下设置。

请取消注释以下2行,并按如下方式配置 /etc/postgresql/14/main/postgresql.conf。

sudo vim /etc/postgresql/14/main/postgresql.conf
listen_addresses = '*'
port = 5432

打开/etc/postgresql/14/main/pg_hba.conf文件。

sudo vim /etc/postgresql/14/main/pg_hba.conf

请在下面添加内容。请在地址栏中指定允许访问的IP地址范围。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             192.168.1.0/24          md5

完成設置後,重新啟動PostgreSQL服務。

systemctl restart postgresql

输入命令后,系统会提示您输入密码,请您输入。

设置Prezi演示文稿

应用程序的准备

使用以下命令下载zip文件。下载Pleasanter 1.3。点击下载按钮,在“Latest”的“Pleasanter~.zip”文件上,将鼠标右键点击并复制链接。将复制的链接粘贴到下面命令中的链接URL。下载的文件被存储在”/home/implem”文件夹中。

wget リンクURL

请使用以下命令解压已下载的zip文件。

unzip ダウンロードしたファイル名

在根目录(“/”)下创建一个名为“/web”的文件夹。

sudo mkdir /web

我們將剛剛解壓縮時創建的pleasanter文件夾移動到WEB上。

sudo mv /home/implem/pleasanter /web/pleasanter

数据库的组成

可以打开 /web/pleasanter/Implem.Pleasanter/App_Data/Parameters/Rds.json 文件。

sudo vim /web/pleasanter/Implem.Pleasanter/App_Data/Parameters/Rds.json

輸入剛剛設定的密碼以設定密碼。

{
    "Dbms": "PostgreSQL",
    "Provider": "Local",
    "TimeZoneInfo": "Asia/Tokyo",
    "SaConnectionString":"Server=localhost;Port=5432;Database=postgres;UID=postgres;PWD=設定したパスワード",
    "OwnerConnectionString":"Server=localhost;Port=5432;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=SetAdminsPWD",
    "UserConnectionString":"Server=localhost;Port=5432;Database=#ServiceName#;UID=#ServiceName#_User;PWD=SetUsersPWD",
    "SqlCommandTimeOut": 600,
    "MinimumTime": 3,
    "DeadlockRetryCount": 4,
    "DeadlockRetryInterval": 1000
}

执行CodeDefiner

cd /web/pleasanter/Implem.CodeDefiner
dotnet Implem.CodeDefiner.dll _rds

请确认Pleasnter的启动。

cd /web/pleasanter/Implem.Pleasanter
dotnet Implem.Pleasanter.dll

在另一个终端执行以下命令,确认Presenter已启动。通过”Ctrl+C”来终止。

$ curl -v http://localhost:5000/
*   Trying 127.0.0.1:5000...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> Host: localhost:5000
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 302 Found
< Date: Tue, 23 Feb 2021 09:04:33 GMT
< Server: Kestrel
< Content-Length: 0
< Location: http://localhost:5000/users/login?ReturnUrl=%2F
< X-Frame-Options: SAMEORIGIN
< X-Xss-Protection: 1; mode=block
< X-Content-Type-Options: nosniff
< 
* Connection #0 to host localhost left intact

创建更加愉快的服务脚本

打开/etc/systemd/system/pleasanter.service。

sudo vim /etc/systemd/system/pleasanter.service

请将以下内容转述为中文,并指定“loginUser”为登录用户。

请转述以下内容:“loginUser”请指明登录用户。

[Unit]
Description = Pleasanter
Documentation =
Wants=network.target
After=network.target

[Service]
ExecStart = /usr/local/bin/dotnet Implem.Pleasanter.dll
WorkingDirectory = /web/pleasanter/Implem.Pleasanter
Restart = always
RestartSec = 10
KillSignal=SIGINT
SyslogIdentifier=dotnet-pleasanter
User = loginUser
Group = root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy = multi-user.target

注册和启动服务

sudo systemctl daemon-reload
sudo systemctl enable pleasanter
sudo systemctl start pleasanter

搭建逆向代理(NginX)的设置

我們將進行反向代理的設定,以便能夠像常規的網絡服務器一樣透過Port80進行訪問。

安装NginX

sudo apt install -y nginx
sudo systemctl enable nginx

反向代理服务器的设置

打开 /etc/nginx/conf.d/pleasanter.conf 文件。

sudo vim /etc/nginx/conf.d/pleasanter.conf

在创建时,server_name行指定了实际访问时的主机名。

server {
    listen  80;
    server_name   192.168.1.100;
    client_max_body_size 100M;
    location / {
       proxy_pass         http://localhost:5000;
       proxy_http_version 1.1;
       proxy_set_header   Upgrade $http_upgrade;
       proxy_set_header   Connection keep-alive;
       proxy_set_header   Host $host;
       proxy_cache_bypass $http_upgrade;
       proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

重新启动服务。

sudo systemctl restart nginx

允许访问Http(80)。

为了允许客户端访问Web服务,我们将进行对Http(端口:80)的访问权限设置。

sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status numbered

尝试连接

我能够从VM环境和本地设备访问到Presenter的登录页面。由于无法使用”localhost”进行连接,请指定IP地址后可以访问。我曾经被告知无法通过”localhost”进行访问的原因,但是忘记了……我依稀记得是关于通过80号端口访问递归加载的脚本时,会将其转发给nginx进行处理。如果有了解的人,请留下评论!

最后

我已按照上述步骤确认了连接。由于是从操作系统启动开始操作的,因此除了上述步骤外,我没有进行任何其他设置。因此,如果在上述步骤中无法访问或出现错误,请确认您的环境设置。我将利用这些经验来帮助未来的环境配置。

广告
将在 10 秒后关闭
bannerAds