我在Ubuntu 22.04上尝试安装Presenter
首先
我打算根据Präsentor的用户手册,进一步详细记录个人经历的错误处理方法。
智能显示屏使用手册
在引入プリザンタ之前
建立環境
本次使用VMWare环境,并利用Ubuntu22.04的镜像文件来构建操作系统。首先进行设置,然后启动操作系统。
安装
启动画面。
设定
(Note: The word “设定” in Chinese means “setting” or “configuration” in English.)
学会使用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
环境
.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进行处理。如果有了解的人,请留下评论!
最后
我已按照上述步骤确认了连接。由于是从操作系统启动开始操作的,因此除了上述步骤外,我没有进行任何其他设置。因此,如果在上述步骤中无法访问或出现错误,请确认您的环境设置。我将利用这些经验来帮助未来的环境配置。