MySQL / SQLiteでスタンドアロンサーバーを実行するための明確な手順を見たことがありません。 スタンドアロンのWebサーバーのセットアップ方法に関するwikiページも、長い目で見れば時代遅れです。
dynmapで数時間突っついた後。 これは、スタンドアロンWebサーバーを* nixサーバー上のNGINXで実行する方法に関するチュートリアルです。
🔴警告🔴
このガイドに従うと、dynmapでSQLデータベースを使用していない場合は、すべてのデータがリセットされます。
DynmapでのMySQLの使用は、コミュニティによって完全にはテストされていません。
このチュートリアルは、Linuxについて少し知っていることを前提としています。 Linuxの使い方がわからなくても、学ぶのに遅すぎることはありません。
「minecraftサーバーホスト」を使用している場合。 ほとんどの場合、Minecraftサーバーホストを使用してスタンドアロンのWebサーバーをセットアップすることはできません。 DynmapのスタンドアロンWebサーバーをホストするには、Webサイトホストまたはvpsを取得する必要があります。
選択肢があれば、SQLiteの代わりにMySQLを使用することを強くお勧めします。 いくつかの追加の手順が必要になる場合がありますが、明るい面を見てください。 MySQLを他のプラグインで使用できます:)
このチュートリアルでは、sudoを使用する必要もあります。 sudoパーマがない場合は、運が悪いか、VPSを借りることができます。
あなたが私にウィキを編集する許可を与えたら。 スタンドアロンのウェブサーバーをセットアップして維持する方法について、ウィキに喜んで貢献します;)
完全にオプションであるcloudflareのプロキシでスタンドアロンWebサーバーを動作させる方法について説明します。 ユーザーがdynmapWebサイトにログインできるようにする場合は、これを強くお勧めします。 代わりにcertbotを使用してSSL証明書をインストールする場合は、ボーナスチュートリアルのこの部分に従わないでください。
また、certbotまたは完全にオプションの別のプロバイダーを使用してNGINXWebサーバーにSSL証明書をインストールする方法についても説明します。 ユーザーがdynmapWebサイトにログインできるようにする場合は、これを強くお勧めします。 代わりにcloudflareプロキシを使用したい場合は、ボーナスチュートリアルのこの部分に従わないでください。
長所:
短所:
以下のことをカバーします
開始するには、スタンドアロンのdynmapWebサイトをホストするサーバーにWebサーバーをインストールする必要があります。 チュートリアルのこの部分では、サーバーへのMySQLのインストールについても説明します。
何らかの理由でSQLiteを使用したい場合は、MySQL / MariaDBなしでNGINXをインストールできます。 しかしnginxのはMinecraftのサーバーがホストされている同じサーバー上にある必要があります。
Webサイトのホストを使用している場合、またはMinecraftのホストを使用している場合。 チュートリアルリンクの下の注を参照してください。
通常、MySQLはMinecraftサーバーと同じサーバーにインストールする必要があります。 MySQLを使用するプラグインで同じMySQLサーバーを使用できます。 MySQLはDynmapプラグインによって使用され、Webサーバーが読み取り/書き込みするデータも保存/ロードします。
一般に、MySQL / MariaDBサーバーがMinecraftサーバーと同じサーバー/ネットワーク上にある場合は、待ち時間が短くなるため、より多くのメリットがあります。
インターネット上でnginx / MySQL / MariaDBをセットアップする方法に関するチュートリアルは無数にあります。 いくつかのLinuxOSでそれらを設定するためのチュートリアルのいくつかのリンクがあります。
チュートリアルでMariaDBをインストールするように指示されていても心配しないでください。これは、MySQLとほとんど同じです。
WebサーバーのIPをWebブラウザーに入力して、WebサーバーがWebページを提供しているかどうかをテストします。 何も表示されない場合は、ファイアウォールがポートをブロックしているか、nginxサーバーを起動していない可能性があります。
次に、MySQL / MariaDBサーバーをセットアップします。
アプリケーションごとに制限付きの権限を持つ新しいユーザー/パスワードを作成することをお勧めします。
外部Webサーバーをセットアップする場合は、ファイアウォール(iptables / firewalld / ufw / etc)をセットアップして、Webサーバーのみがデータベースに接続できるようにすることもできます。
minecraftサーバーをホストしているサーバー上のターミナルを使用して、新しいデータベースを作成し、いくつかのデータベースユーザーを追加します。
mysql -u root -p
[Enter mysql root password if there is one]
mysql> CREATE DATABASE <dynmap_database_name>;
mysql> exit
例(クリックして展開)
mysql -u root -p
[Enter mysql root password if there is one]
mysql> CREATE DATABASE MyDynmapDatabase;
mysql> exit
ノート
MySQLサーバーがMinecraftサーバーと同じサーバー上にある場合。 <minecraftserver_ip>
はlocalhost
必要があります
mysql -u root -p
[Enter mysql root password if there is one]
mysql> CREATE USER '<webserver_user>'@'<webserver_ip>' IDENTIFIED BY '<password>';
mysql> CREATE USER '<dynmap_user>'@'<minecraftserver_ip>' IDENTIFIED BY '<password>';
mysql> GRANT CREATE, DELETE, INSERT, SELECT, UPDATE ON <dynmap_database>.* TO '<webserver_user>'@'<webserver_ip>';
mysql> GRANT CREATE, DELETE, INSERT, SELECT, UPDATE ON <dynmap_database>.* TO '<dynmap_user>'@'<minecraftserver_ip>';
mysql> FLUSH PRIVILEGES;
mysql> exit
WebサーバーとMinecraftサーバーが同じサーバー上にある場合の例(クリックして展開)
mysql -u root -p
[Enter mysql root password if there is one]
mysql> CREATE USER 'dynmapwebserver'@'localhost' IDENTIFIED BY 'password1234';
mysql> CREATE USER 'minecraftserver'@'localhost' IDENTIFIED BY 'password5678';
mysql> GRANT CREATE, DELETE, INSERT, SELECT, UPDATE ON MyDynmapDatabase.* TO 'dynmapwebserver'@'localhost';
mysql> GRANT CREATE, DELETE, INSERT, SELECT, UPDATE ON MyDynmapDatabase.* TO 'minecraftserver'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit
oopsieを作成し、mysqlユーザーを削除する必要がある場合。 これは、ユーザーを削除する方法です。
mysql> DROP USER '<user_to_delete>'@'<ip_you_used>';
新しいユーザーを作成したら、そのユーザーにログインしてみてください。 (「exit」を介してmysql rootユーザーからログアウトした後)
mysql -u <webserver_user> -p
[Enter user password]
mysql> exit
MySQLには、MySQLユーザーに設定するために使用できるこれらの権限があります。
次に、プラグインから構成のいくつかの設定を変更します。
サーバーに最新バージョンのdynmapをインストールします。 最新バージョンは、1.10から1.14までのMinecraftバージョンで引き続き機能するはずです。
minecraftサーバーの電源を入れてから、サーバーを停止します。 plugins
フォルダーにdynmap
という名前の新しいフォルダーがあるはずです。
configuration.txt
ファイルのバックアップを作成してください! コピーを作成して、 configuration.txt.backup
ような名前を付けます。
構成ファイルconfiguration.txt
開いて、いくつかの設定を変更できるようにします。
構成のストレージセクションをから変更します
storage:
# Filetree storage (standard tree of image files for maps)
type: filetree
# SQLite db for map storage (uses dbfile as storage location)
#type: sqlite
#dbfile: dynmap.db
# MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix')
#type: mysql
#hostname: localhost
#port: 3306
#database: dynmap
#userid: dynmap
#password: dynmap
#prefix: ""
#flags: "?allowReconnect=true"
にMySQLの例(クリックして展開)
storage:
# Filetree storage (standard tree of image files for maps)
#type: filetree <- DONT FORGET TO COMMENT THIS OUT
# SQLite db for map storage (uses dbfile as storage location)
#type: sqlite
#dbfile: dynmap.db
# MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix')
type: mysql
hostname: <mysql_ip>
port: <mysql_port>
database: <mysql_database>
userid: <dynmap_mysql_user>
password: <dynmap_mysql_password>
prefix: "" # Can add prefix for tables if you want
flags: "?allowReconnect=true"
SQLiteの例(クリックして展開)
storage:
# Filetree storage (standard tree of image files for maps)
#type: filetree <- DONT FORGET TO COMMENT THIS OUT
# SQLite db for map storage (uses dbfile as storage location)
type: sqlite
dbfile: dynmap.db
# MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix')
#type: mysql
#hostname: localhost
#port: 3306
#database: dynmap
#userid: dynmap
#password: dynmap
#prefix: ""
#flags: "?allowReconnect=true"
ストレージセクションのすぐ下に、
コメントアウトする- class: org.dynmap.InternalClientUpdateComponent
。
したがって、次のようになります。前(クリックして展開)
- class: org.dynmap.InternalClientUpdateComponent
sendhealth: true
sendposition: true
allowwebchat: true
webchat-interval: 5
hidewebchatip: true
trustclientname: false
includehiddenplayers: false
# (optional) if true, color codes in player display names are used
use-name-colors: false
# (optional) if true, player login IDs will be used for web chat when their IPs match
use-player-login-ip: true
# (optional) if use-player-login-ip is true, setting this to true will cause chat messages not matching a known player IP to be ignored
require-player-login-ip: false
# (optional) block player login IDs that are banned from chatting
block-banned-player-chat: true
# Require login for web-to-server chat (requires login-enabled: true)
webchat-requires-login: false
# If set to true, users must have dynmap.webchat permission in order to chat
webchat-permissions: false
# Limit length of single chat messages
chatlengthlimit: 256
# # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky)
# hideifshadow: 4
# # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky)
# hideifundercover: 14
# # (Optional) if true, players that are crouching/sneaking will be hidden
hideifsneaking: false
# If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self)
protected-player-info: false
# If true, hide players with invisibility potion effects active
hide-if-invisiblity-potion: true
# If true, player names are not shown on map, chat, list
hidenames: false
後(クリックして展開)
# - class: org.dynmap.InternalClientUpdateComponent
#sendhealth: true
#sendposition: true
#allowwebchat: true
#webchat-interval: 5
#hidewebchatip: false
#trustclientname: false
#includehiddenplayers: false
# (optional) if true, color codes in player display names are used
#use-name-colors: false
# (optional) if true, player login IDs will be used for web chat when their IPs match
#use-player-login-ip: true
# (optional) if use-player-login-ip is true, setting this to true will cause chat messages not matching a known player IP to be ignored
#require-player-login-ip: false
# (optional) block player login IDs that are banned from chatting
#block-banned-player-chat: true
# Require login for web-to-server chat (requires login-enabled: true)
#webchat-requires-login: false
# If set to true, users must have dynmap.webchat permission in order to chat
#webchat-permissions: false
# Limit length of single chat messages
#chatlengthlimit: 256
# # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky)
# hideifshadow: 4
# # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky)
# hideifundercover: 14
# # (Optional) if true, players that are crouching/sneaking will be hidden
#hideifsneaking: false
# If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self)
#protected-player-info: false
# If true, hide players with invisibility potion effects active
#hide-if-invisiblity-potion: true
# If true, player names are not shown on map, chat, list
#hidenames: false
その直後に、そのすぐ下のセクションのコメントを解除します。
したがって、このようになります。前(クリックして展開)
#- class: org.dynmap.JsonFileClientUpdateComponent
# writeinterval: 1
# sendhealth: true
# sendposition: true
# allowwebchat: true
# webchat-interval: 5
# hidewebchatip: false
# includehiddenplayers: false
# use-name-colors: false
# use-player-login-ip: false
# require-player-login-ip: false
# block-banned-player-chat: true
# hideifshadow: 0
# hideifundercover: 0
# hideifsneaking: false
# # Require login for web-to-server chat (requires login-enabled: true)
# webchat-requires-login: false
# # If set to true, users must have dynmap.webchat permission in order to chat
# webchat-permissions: false
# # Limit length of single chat messages
# chatlengthlimit: 256
# hide-if-invisiblity-potion: true
# hidenames: false
後(クリックして展開)
- class: org.dynmap.JsonFileClientUpdateComponent
writeinterval: 1
sendhealth: true
sendposition: true
allowwebchat: true
webchat-interval: 5
hidewebchatip: false
includehiddenplayers: false
use-name-colors: false
use-player-login-ip: false
require-player-login-ip: false
block-banned-player-chat: true
hideifshadow: 0
hideifundercover: 0
hideifsneaking: false
# # Require login for web-to-server chat (requires login-enabled: true)
webchat-requires-login: false
# # If set to true, users must have dynmap.webchat permission in order to chat
webchat-permissions: false
# # Limit length of single chat messages
chatlengthlimit: 256
hide-if-invisiblity-potion: true
hidenames: false
次に、内部Webサーバーは不要になったため、無効にします。
構成ファイルでdisable-webserver
を見つけ、値をfalse
からtrue
ます。
dynmapスタンドアロンWebサーバーが機能するために必要ないくつかのURLを変更します。 これは、私が知る限り、ほとんどの人が問題を抱えていた大きな部分です。
構成ファイルでurl:
セクションを見つけます。 このようになります。前(クリックして展開)
url:
# configuration URL
#configuration: "up/configuration"
# update URL
#update: "up/world/{world}/{timestamp}"
# sendmessage URL
#sendmessage: "up/sendmessage"
# login URL
#login: "up/login"
# register URL
#register: "up/register"
# tiles base URL
#tiles: "tiles/"
# markers base URL
#markers: "tiles/"
[MySQLの例]の後(クリックして展開)
url:
# configuration URL
configuration: "standalone/MySQL_configuration.php"
# update URL
update: "standalone/MySQL_update.php?world={world}&ts={timestamp}"
# sendmessage URL
sendmessage: "standalone/MySQL_sendmessage.php"
# login URL
login: "standalone/MySQL_login.php"
# register URL
register: "standalone/MySQL_register.php"
# tiles base URL
tiles: "standalone/MySQL_tiles.php?tile="
# markers base URL
markers: "standalone/MySQL_markers.php?marker="
[SQLiteの例]の後(クリックして展開)
url:
# configuration URL
configuration: "standalone/configuration.php"
# update URL
update: "standalone/update.php?world={world}&ts={timestamp}"
# sendmessage URL
sendmessage: "standalone/sendmessage.php"
# login URL
login: "standalone/login.php"
# register URL
register: "standalone/register.php"
# tiles base URL
tiles: "standalone/tiles.php?tile="
# markers base URL
markers: "standalone/markers.php?marker="
minecraftサーバーを起動しますが、まだオフにしないでください!
最新のログをチェックして、dynmapに問題があるかどうかを確認してください。 問題がない場合は、サーバーの電源を切ります。
サーバーを最後に起動および停止する必要がある主な理由は、Dynmapが使用するWebサーバーの構成ファイルを作成するためです。 configuration.txt
設定を変更した場合、 plugins/dynmap/web
ファイルが変更される可能性があります。
ユーザーがdynmapにログインできるようにする場合。 間違いなくSSL証明書をインストールするか、cloudflareのプロキシを使用して、ログイン資格情報を悪意のあるユーザーから保護する必要があります。
今、私たちは真剣なビジネスに取り掛かります!
ここにいくつかのオプションがあります:
オプション1 :Webサーバーをプラグインフォルダー内のdynmap Webフォルダーにリンクできます(簡単)
オプション2 :Webフォルダーをサーバー上の別の場所にコピーします(より安全です)
唯一のオプション:唯一のオプションは、WebフォルダーをWebサーバーのあるサーバーにコピーすることです。
hostgator、namecheap、000webhostなどのWebホストを使用している場合。唯一のオプションは、WebフォルダーをWebホストにコピーすることです。
Webホストが多すぎてカバーできないため、これを行う方法の詳細は追加しません。
セットアップオプションを使用して次のセクションに進む前に。 NGINXWebサーバーの一般的なセットアップについて説明します。
新しいNGINXWebサーバーをインストールした場合。 デフォルトのWebサイト構成を削除し、独自の構成を追加します。 このチュートリアルの前にすでにNGINXを持っていて、何をしているのかを知っている場合。 dynmapWebサイトの設定方法に関するオプションを含む次のセクションに進みます。
デフォルトの設定は通常/etc/nginx/sites-available/
と/etc/nginx/sites-enabled
ます。
デフォルトを使用するので、デフォルトのコピーを作成します。
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/dynmap
次に、デフォルトの構成をsites-enabled
から削除して、デフォルトのサイト構成を無効にし、nginxWebサーバーを再起動します。
sudo rm /etc/nginx/sites-enabled/default
sudo service nginx restart
minecraftサーバーと同じサーバーで独自のNGINXWebサーバーをホストしている場合。 これはあなたにぴったりのセクションです!
ノート
このチュートリアルを続行する前に、NGINXの一般的な設定に従っていることを確認してください
Webサーバーを簡単に(ただし安全すぎないように)セットアップしたい場合。 これはあなたにとって正しいオプションです! ただし、オプション1よりも安全なオプションであるため、オプション2に従うことを強くお勧めします。
長所:
短所:
/etc/nginx/sites-available/dynmap
でdynmap構成ファイルの編集を開始します
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
設定ファイルは次のようになります。 設定の値を好みに合わせて変更します
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name map.example.com;
root /home/<USERNAME>/<MINECRAFTSERVER>/plugins/dynmap/web;
index index.php index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
例:
root /home/someuser/minecraft/servers/creative/plugins/dynmap/web;
Webサーバーをより安全な方法でセットアップしたい場合。 これはあなたにとって正しいオプションです!
長所:
短所:
dynmapWebファイルを別の場所にコピーします
sudo cp -r /home/<USERNAME>/<MINECRAFTSERVER>/plugins/dynmap/web/ /var/www/dynmap/
例:
sudo cp -r /home/MyUsername/minecraft/servers/creative/plugins/dynmap/web/ /var/www/dynmap/
/etc/nginx/sites-available/dynmap
でdynmap構成ファイルの編集を開始します
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
設定ファイルは次のようになります。 設定の値を好みに合わせて変更します
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name map.example.com;
root /var/www/dynmap;
index index.php index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
オプション1/2の手順を実行した後。 dynmap Webサーバー構成のショートカットを作成し、フォルダーに配置します。
ln -s /etc/nginx/sites-available/dynmap /etc/nginx/sites-enabled/dynmap
設定ファイルにエラーがないことを確認してください!
nginx -t -c /etc/nginx/sites-available/dynmap
問題がなければサーバーを再起動します。
sudo service nginx restart
そしてそれはそれであるはずです!
WebサーバーのIPをWebブラウザーに配置すると、dynmapが表示されます。 空になるので、サーバーに参加してコマンド/dynmap fullrender <worldname>
を実行すると、タイルのレンダリングを開始できます。
minecraftサーバーをホストしているサーバーとは別のサーバーで独自のNGINXWebサーバーをホストしている場合。 これはあなたにぴったりのセクションです!
ノート
長所:
短所:
dynmapWebファイルを別の場所にコピーします
minecraftサーバーをホストしているサーバーでこのコマンドを実行します。 このコマンドは、フォルダーをminecraftサーバーからWebサーバーにコピーします。 Webサーバーへのパスワードの入力を求められます。
sudo scp -r /home/<USERNAME>/<MINECRAFTSERVER>/plugins/dynmap/web <WEBSERVER_USERNAME>@<WEBSERVER_IP>:/var/www/dynmap
例:
sudo scp -r /home/SomeUserName1/minecraft/servers/creative/plugins/dynmap/web [email protected]:/var/www/dynmap
/etc/nginx/sites-available/dynmap
でdynmap構成ファイルの編集を開始します
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
設定ファイルは次のようになります。 設定の値を好みに合わせて変更します
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name map.example.com;
root /var/www/dynmap;
index index.php index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
手順に従った後。 dynmap Webサーバー構成のショートカットを作成し、フォルダーに配置します。
ln -s /etc/nginx/sites-available/dynmap /etc/nginx/sites-enabled/dynmap
設定ファイルにエラーがないことを確認してください!
nginx -t -c /etc/nginx/sites-available/dynmap
問題がなければサーバーを再起動します。
sudo service nginx restart
そしてそれはそれであるはずです!
WebサーバーのIPをWebブラウザーに配置すると、dynmapが表示されます。 空になるので、サーバーに参加してコマンド/dynmap fullrender <worldname>
を実行すると、タイルのレンダリングを開始できます。
自分で設定したくないのでウェブホストを使用している場合。 これはあなたにぴったりのセクションです!
minecraftサーバーからコンピューター上のフォルダーにファイルをコピーします。 コピーするファイルは、minecraftサーバーのplugins/dynmap/web
にあるはずです。
専用のdynmapウェブホストになる場合を除いて、できれば新しいディレクトリのウェブホストにファイルをコピーします。
ええ、本当に! 完了です。
独自のNGINXWebサーバーをインストールした場合は、ボーナスチュートリアルのこの部分に従って、dynmapログインでWebサーバーを安全にすることができます。 あなたはDynmapでログインを有効にすると、あなたは常に注意して、ユーザーの資格情報を処理あります。
3つのオプションのいずれかに従って、Webサーバーを安全にすることができます
certbotWebサイトからこれらの指示に従うことができます。 WebサイトのSSL証明書を取得する最も簡単な方法です。
注として、certbotの認定は他のプロバイダーよりも早く期限切れになりますが、その方法に関する指示に従うと、認定を更新する自動化された方法があります。
別の方法として、NameCheapなどの別のプロバイダーからSSL証明書を取得することもできます。 プロバイダーから公開証明書と秘密鍵をダウンロードします。 秘密鍵を他の人と共有したり、公開したりしないでください。 それは厳密にあなたのウェブサーバーのためであり、ただつかむために立ち上がっているべきではありません。
認定ファイルを/etc/ssl/certs/<certification_file>.pem
秘密鍵を/etc/ssl/private/<private_key_file>.pem
変更を加える前に、Webサイトの構成のバックアップを作成してください
sudo cp /etc/nginx/sites-available/dynmap /etc/nginx/sites-available/dynmap_BACKUP
oopsieを作成し、元に戻す必要がある場合は、このコマンドを実行します
sudo cp /etc/nginx/sites-available/dynmap_BACKUP /etc/nginx/sites-available/dynmap
NGINX Webサイトの構成で、現在の構成の違いを確認し、この構成例から見た変更を追加します。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name map.example.com;
return 302 https://$server_name$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/certs/<certification_file>.pem;
ssl_certificate_key /etc/ssl/private/<private_key_file>.pem;
server_name map.example.com;
root /var/www/dynmap;
index index.php index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
次に、NGINXWebサーバーを再起動する必要があります。
sudo service nginx restart
dynmap Webサイトにアクセスすると、安全になります。
Cloudflareのプロキシの良いところは、Webサーバーとそのサービスの間の通信専用の特別な認証を持っていることです。 また、認定を最長15年間継続することもできます。 ただし、これは「実際の」SSL認証を取得するための代替手段にすぎません。
まず、cloudflareにログインし、プロキシを設定するドメインに移動します。 次に、「SSL / TLS」セクションに移動します
Origin Certificates
セクションで、[証明書の作成]をクリックします。
Let Cloudflare generate a private key and a CSR
を選択し、 Private key type
をECDSA
dynmap Webサイトをmap.YOURDOMAIN.comに配置する場合は、ホスト名map.YOURDOMAIN.com
を追加します。
証明書の有効性を好きなように設定します(15年は良いアミライトに聞こえますか?)。
[次へ]をクリックすると、画面に新しいSSL証明書と秘密鍵が表示されます。 次に、テキストをコピーして、ターミナル経由でファイルに貼り付けます。
まず、証明書ファイルを作成してテキストに貼り付けます。 テキストで始まる必要があります-----BEGIN CERTIFICATE-----
で、エンド-----END CERTIFICATE-----
sudo nano /etc/ssl/certs/dynmap_cert.pem
OR
sudo vi /etc/ssl/certs/dynmap_cert.pem
次に、秘密鍵ファイルを作成してテキストに貼り付けます。 テキストで始まる必要があります-----BEGIN PRIVATE KEY-----
で、エンド-----END PRIVATE KEY-----
sudo nano /etc/ssl/private/dynmap_private_key.pem
OR
sudo vi /etc/ssl/private/dynmap_private_key.pem
次に、NGINXWebサイトの構成を編集します。 変更を加える前に、Webサイトの構成のバックアップを作成してください
sudo cp /etc/nginx/sites-available/dynmap /etc/nginx/sites-available/dynmap_BACKUP
oopsieを作成し、元に戻す必要がある場合は、このコマンドを実行します
sudo cp /etc/nginx/sites-available/dynmap_BACKUP /etc/nginx/sites-available/dynmap
NGINX Webサイトの構成で、現在の構成の違いを確認し、この構成例から見た変更を追加します。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name map.example.com;
return 302 https://$server_name$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/certs/dynmap_cert.pem;
ssl_certificate_key /etc/ssl/private/dynmap_private_key.pem;
server_name map.example.com;
root /var/www/dynmap;
index index.php index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
次に、NGINXWebサーバーを再起動する必要があります。
sudo service nginx restart
dynmap Webサイトにアクセスすると、安全になります。
Linuxはどうすればいいですか?
非常に慎重に。
しかし、ここに深刻な答えがあります。
PuTTYやその他のSSHクライアントなどの人気のあるものを使用してLinuxサーバーに接続できます。 ユーザー/パスワードをお持ちの場合は、端末にログインできます。
インターネット上でLinuxを使用する方法に関するガイド/チュートリアルを簡単に見つけることができます。 ただし、コマンドを実行する前に、コマンドの動作を常に再確認する必要があります。私のウェブサイトがポップアップしません(NGINX)
Webサイトがポート転送されていることを確認してください。
デフォルトのポートは80ですが、SSL証明書のインストールに関するチュートリアルに従った場合、ポートは443になります。
それでもうまくいかない場合は、コマンドを実行してNGINXが実行されているかどうかを確認してください
sudo service nginx status
そしてそれはあなたに何が間違っているかもしれないかを教えてくれるはずです。 コマンドを実行して構成ファイルをテストすることもできます
nginx -t -c /etc/nginx/sites-available/dynmap
dynmapのWebサイトに画像が表示されません。
データのない新しいデータベースから始めたので。 dynmapで画像が表示されるまでに時間がかかる場合があります。
/dynmap fullrender <worldname>
必要な場合は、ゲーム内でコマンドを実行して、世界を完全にレンダリングできます。WindowsやApacheを使用したチュートリアルがないのはなぜですか?
最近はほとんどの人がLinuxとNGINXを使用するようになるため、WindowsまたはApacheを使用したスタンドアロンWebサーバーのセットアップについては説明しないことにしました。 しかし、質問する人が十分にいる場合は、窓やアパッチをカバーする可能性があります気が変わったのですが、SQLから元に戻すことはできますか?
はい、前の手順でバックアップファイルconfiguration.txt.backup
を作成した場合は、前の方法に戻すことができるはずです。
ただ、削除configuration.txt
し、名前の変更configuration.txt.backup
にconfiguration.txt
、あなたが行くためにすべての良いです!どうして?
なぜですか?
dynmapがsqlを使用する場合、より多くの可能性があります。 バックアップの方が速く、サーバーがダウンしている場合でも、人々はdynmapWebサイトを使用できます。それでもプレーヤーのアイコンやチャットは表示されますか?
はい、プレーヤーアイコンは引き続きWebページで更新する必要があります。
チャットボックスも正常に機能するはずです。
dynmapforgeユーザーにはplugins/dynmap/web
ディレクトリがないことに注意してください。 たとえば、私のサーバーの1つに次のものがあります。
username<strong i="7">@hostname</strong>:/srv/minecraft/instancename$ find dynmap/ -type d | grep -v dynmap/web/tiles
dynmap/
dynmap/web
dynmap/web/images
dynmap/web/standalone
dynmap/web/css
dynmap/web/css/images
dynmap/web/js
dynmap/templates
dynmap/texturepacks
dynmap/texturepacks/standard
dynmap/markers
dynmap/renderdata
dynmap/renderdata/modsupport
dynmap/export
dynmap/colorschemes
(1500個のディレクトリがあるため、dynmap / web / tiles /を除外しています...)
これを自分で試してみますが、nginxとminecraftのサービスは別のマシン上にあります。 :sweat_smile:
私はこれを実行しましたが、運がありませんでした。 dynmapと同じサーバー上にApacheがあり、そこにWebフォルダーを移動しました。 コンソールにエラーはありませんが、URLに移動すると、背景が黒くなります。 すでにレンダリングされているSQLiteも使用しています。 私はおそらく何かを逃したことがありますか?
たぶん、ブラウザのコンソールをチェックして、エラーや失敗したリクエストを探しますか?
@miiichael
ええ、ファイルシステムからデータベースに移行する際の大きな問題は、dynmapがタイルをデータベースにインポートしないことです。 したがって、レンダリングの進行状況はすべて失われます。 WebサーバーをMinecraftサーバーとは別のマシンに配置することは可能ですが、ファイルシステムの代わりにmysqlを使用する必要があります。
@MrLogano
これは、ApacheがSQLiteデータベースファイルをWebフォルダーにないために見つけられないためです。 Webフォルダーを別の場所にコピーするのではなく、dynmapフォルダーにあるWebフォルダーをapacheにポイントする方がよいでしょう。 または、(コピーしたWebフォルダーから)phpファイルを手動で編集して、別の場所からSQLitedbファイルを取得します。
私はATMでかなり忙しいので、暇があれば、より詳細なチュートリアルを書きます。
@haloflooder
phpファイル「dynmap_access」は、dynmapディレクトリのSQLiteデータベースファイルにリンクしています。 何度か試しましたが、構成のURLセクションを変更すると、完全に空白のページが表示されます。 それを除いて、ファイルツリーは正常に機能しますが、SQLiteを指すと500エラーがスローされます。 apacheログを確認すると、データベースファイルを開くことができず、SQLite_tiles.phpの79行目にエラーが表示されます。 運が悪かったので、パーミッションも775に変更しました。
チュートリアルに従いましたが、Webページに「構成を取得できませんでした:内部サーバーエラー」と表示されました
どのようにできるのか?
@gundamiと同じ問題が発生しています。 さらに調査すると、/ var / log / nginx /access.logにこのエラーメッセージが表示されます。
10.0.0.52 - - [24/Jan/2020:20:31:26 +0000] "GET /standalone/MySQL_configuration.php HTTP/1.1" 500 5 "http://dragonmc/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0" "-"
@MrLogano解決策を
@gundami @ ads103pastebinでdynmapの設定を提供できますか? mysqlクレデンシャルなどの機密情報を検閲することを忘れないでください。
もちろん! どうぞ: https :
@ ads103アクセスログにhttp://dragonmc/
と表示されていることに気づきました。 nginx構成には何がありますか?
dynmapが更新されてからしばらく経ちました。 テストサーバーのdynmapに新しいバージョンをインストールし、独自のガイドに従って、9月以降に変更がないかどうかを確認します。
ええ、dragonmcは私のminecraftサーバーのホスト名です。 ローカルDNSサーバーにあるので、Webブラウザに「dragonmc」と入力して参照するだけです。 これが私のapache設定と、dynmapファイルをコピーしたディレクトリです。
https://pastebin.com/NQ8fNjqa
@ ads103あなたのサーバーもあなたのネットワーク上でローカルにホストされていると思いますか?
うん! そのとおりです。 すべてがローカルIPから離れています!
@haloflooderテストサーバーに新しいバージョンをインストールする機会はありましたか?
残念ながら、私はjavascriptを知りません。 このエラーメッセージはmap.js
でこの関数によって生成されていることがわかりますが、変数"configuration"
値が割り当てられている場所が見つかりません。
`関数DynMap(オプション){
var me = this;
if(me.checkForSavedURL())
return;
me.options = options;
$.getJSON(me.options.url.configuration, function(configuration) {
if(configuration.error == 'login-required') {
me.saveURL();
window.location = 'login.html';
}
else if(configuration.error) {
alert(configuration.error);
}
else {
me.configure(configuration);
me.initialize();
}
}, function(status, statusMessage) {
alert('Could not retrieve configuration: ' + statusMessage);
});
}
`
@ ads103申し訳ありませんが、何かの締め切りに間に合わなければならなかったので、仕事で忙しくしています。 構成は、スタンドアロンのMySQL_configuration.phpから取得されます。
変更された構成でdynmapに構成値を変更させた後、WebファイルをWebサーバーにコピーしましたか?
はい、しました。 データベースサーバーへのネットワークトラフィックがレンダリングを開始するときに増加するのを見たので、構成値は少なくともデータベースにタイルを取得するのに十分正しいです。
ここに質問があります。 ガイドには、 web
フォルダーの内容をWebサーバーにコピーするための次の手順が含まれています。
sudo cp -r /home/MyUsername/minecraft/servers/creative/plugins/dynmap/web/ /var/www/dynmap/
web
フォルダーをdynmap
フォルダーにコピーするつもりでしたか、それともweb
フォルダーの_contents_をdynmap
フォルダーにコピーするつもりでしたか?
@ ads103 Oooo 、それは良いキャッチです。 ガイドを約12時間作業した後、Linuxコマンドを校正する必要があります。
Webフォルダー内のコンテンツをdynmapwebserverフォルダーにコピーするコマンドを配置することを意味していました。 今日は、今日の後半に最新バージョンのdynmapを使用して自分のガイドを確認します。
MySQLアクセス設定の更新はありますか? このTガイドに従ってマップにアクセスしようとすると、黒い画面が表示され、「構成を取得できませんでした:ゲートウェイが不良です」というエラーが表示されます。
編集:私はばかで、phpをインストールするのを忘れました、すべてが良いです
まず、素晴らしいガイドです! 私はしばらくの間、このようなものを見つけようとしてきました。 ただし、 @ WearisomelyVerboseと同じ問題が発生して
ビルドに関する情報:Minecraftサーバーは別のサーバー上にあり、Mysqlサーバーを使用してすべてを保存しています。 設定を変更してサーバーを再起動した後、Dynmapから/ webディレクトリをコピーするようにしました。
私が気づいたことの1つは、NginxでDynmap.confファイルをテストするたびに、次のエラーが発生することです。
sudo nginx -t -c / etc / nginx / sites-available / dynmap
nginx:[emerg] "server"ディレクティブは、ここ/ etc / nginx / sites-available / dynmap:2では許可されていません
nginx:構成ファイル/ etc / nginx / sites-available / dynmapテストに失敗しました
@ ads103 @gundami
Webサーバーでマップを開いた後、同じエラーが発生したと思います:「構成を取得できませんでした:エラー」。
私の場合、Webサーバー上のファイル「... \ username \ MySQL_config.php」を変更すると、問題が解決しました。
..。
$ dbhost = 'localhost';
..。
IPアドレスの代わりに。 しかし、私は詳細を知りません、うまくいけばそれは誰かを助けるでしょう。
私のセットアップは2つのラズベリーパイです。 RP4B(4GB)は(他のサービスの中でも)Minecraftをホストし、RP3B +はDynMap(Apache + SQL)をホストします
素晴らしいチュートリアルをありがとう! :)
問題を解決することができました。
少なくとも、私のものは後から考えるとかなり単純でした。 依存関係がありませんでした。
具体的には、php-jsonとphp-mysqlndがありませんでした。 (私はFedora 31システムを使用しており、Ubuntuパッケージ名は少し異なります。)
php-fpmが/var/log/php-fpm
ある独自のログファイルを持つ別個のアプリケーションであることに気付いたので、これらのパッケージが欠落していることがわかりました。 www-error.logをチェックすると、次の2つのログ行が明らかになりました。
[24-Feb-2020 14:52:43 UTC] PHP Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in /usr/share/nginx/html/dynmap/standalone/MySQL_funcs.php:28
Stack trace:
#0 /usr/share/nginx/html/dynmap/standalone/MySQL_funcs.php(38): initDbIfNeeded()
#1 /usr/share/nginx/html/dynmap/standalone/MySQL_funcs.php(63): getStandaloneFileByServerId('dynmap_config.j...', 0)
#2 /usr/share/nginx/html/dynmap/standalone/MySQL_configuration.php(22): getStandaloneFile('dynmap_config.j...')
#3 {main}
thrown in /usr/share/nginx/html/dynmap/standalone/MySQL_funcs.php on line 28
[24-Feb-2020 15:00:54 UTC] PHP Fatal error: Uncaught Error: Call to undefined function json_decode() in /usr/share/nginx/html/dynmap/standalone/MySQL_configuration.php:26
Stack trace:
#0 {main}
thrown in /usr/share/nginx/html/dynmap/standalone/MySQL_configuration.php on line 26
関数json_decode()
とmysqli_connect()
グーグルですばやく検索すると、これら2つの不足しているパッケージが見つかります。 それらをインストールし、ブラウザでDynmapを更新した後、それは...うまくいきました。 それはうまくいきました。
チュートリアルをありがとう! 2台のForgeサーバーをスタンドアロンのWebサーバー構成に移行することができました。 そして、私はいくつかのことを指摘したいと思います:
Forgeには、MySQL用のJDBCドライバーは含まれていません(BukkitやCauldronのように)。 https://mvnrepository.com/artifact/mysql/mysql-connector-javaから取得し、modsディレクトリにドロップする必要があり
チュートリアルでは、 /etc/nginx/sites-available/
と/etc/nginx/sites-enabled
はDebian / Ubuntuのnginx実装にのみ存在することを述べておいたほうがよいでしょう。 アップストリーム実装では、構成ファイルは/etc/nginx/nginx.conf
です。
MySQLサーバーとして機能する専用ハードウェアがない限り、マップストレージにMySQLを使用しないことをお勧めします。 ホームサーバーで2台のForgeサーバーを実行しています。 MySQLで構成されたものは、データベースとのトランザクションのために、CPU、RAM、およびディスクI / Oのオーバーヘッドが大幅に増加します。 実際、MySQLは、dynmapのマップストレージのほとんどすべてを構成するBLOBを格納するようには設計されていません。 MySQLをマップストレージとして使用することにより、SQLトランザクションによって余分なCPUサイクルが消費されます。 また、dynmapはマップデータをイメージBLOBとして保存するため、MySQLを使用すると、ホームサーバーで観察されるように、実際にはファイルストレージよりもパフォーマンスが大幅に低下します。 https://stackoverflow.com/questions/5285857/when-is-using-mysql-blob-recommendedも参照して
多数のBLOBを格納するために設計されたDBのタイプを推測しますか? ファイルシステム! チュートリアルを編集して、nginx + php-fpm +ファイルストレージを推奨することを提案したいと思います。 ファイルストレージを備えたスタンドアロンWebサーバーの場合、 url:
セクションを次のように変更する必要があります。
url:
# configuration URL
configuration: 'standalone/dynmap_config.json?={timestamp}'
# update URL
update: 'standalone/dynmap_{world}.json?={timestamp}'
# sendmessage URL
sendmessage: "standalone/sendmessage.php"
# login URL
login: "standalone/login.php"
# register URL
register: "standalone/register.php"
# tiles base URL
tiles: 'tiles/'
# markers base URL
markers: 'tiles/'
チュートリアルを作成してくれた@haloflooderにも感謝します! 私も移行しましたが、うまく機能しています。
また、FrumpleがMRTサーバー用に親切に共有したセットアップが便利であることがわかりました: https :
@ database64128json構成ファイルに関する情報をありがとう。 ただし、1つの修正:json構成ファイルは、 login-enabled: false
がDynmapのconfiguration.txt内に設定されている場合にのみ作成されます。
バグ? 意図的ですか? わからない。 ここで作成した問題の詳細については、 https :
json構成ファイルが作成されなかった理由を突き止めるのに長い時間がかかったので、ここで言及しようと思いました!
@MrLoganoが説明した黒い画面の問題が
ブラウザコンソールに、次のエラーが表示されます。
「 https://REDACTED/standalone/config.js?_ = 3.0-beta-10-257 」のスクリプトは、そのMIMEタイプ(「text / html」)が有効なJavaScript MIMEタイプではありませんが、ロードされました。
の読み込みに失敗しました
私は自分の問題が何であるかを知りました。 MySQLサーバーに使用したホスト名は、Minecraftサーバーからは解決できましたが、nginxサーバーからは解決できませんでした。 ホスト名を両方から解決可能なものに変更しましたが、現在は機能しています。
あるホストでホストされているMinecraftサーバーと、別のホストでホストされているWebサイト(Apacheを使用し、リバースプロキシをサポートしていません)があります。iframeを使用せずにWebサイトでdynmapを設定するにはどうすればよいですか? そのためのチュートリアルが見当たらないからです
@ alex17lolこのガイドはリバースプロキシを使用していません。 ここで提案されているNginx構成の代わりに、独自のApache構成を使用できるはずです。
@ alex17lolこのガイドはリバースプロキシを使用していません。 ここで提案されているNginx構成の代わりに、独自のApache構成を使用できるはずです。
私はsudoコマンドにアクセスできません私は私の問題であるウェブホストを使用しています
_誰かがこれをウィキに追加できますか? _
これを作ってくれてありがとう!
SELinuxはあらゆる種類の悲しみを引き起こす可能性があります。 最も明白なのは、Webコンテンツへのすべてのアクセスを完全にブロックするものです。 これらは、Webサーバーのエラーログに表示されます。 さらに微妙な問題がphp-fpmエラーログに表示される可能性があります。 Webサーバーログのすべてのエラーを処理した後も、黒い画面の問題と構成の読み取りの恐ろしい失敗がありました。 例えば:
[01-Jun-2020 17:45:44 UTC] PHP Warning: mysqli_connect(): (HY000/2002): Permission denied in /home/data/web/dynmap/standalone/MySQL_funcs.php on line 30
# grep mysql /var/log/audit/audit.log | tail -1 | tee /dev/stderr | audit2allow
type=AVC msg=audit(1591033906.504:2725): avc: denied { name_connect } for pid=717 comm="php-fpm" dest=3306 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:mysqld_port_t:s0 tclass=tcp_socket permissive=0
#============= httpd_t ==============
#!!!! This avc can be allowed using one of the these booleans:
# httpd_can_network_connect, httpd_can_network_connect_db
allow httpd_t mysqld_port_t:tcp_socket name_connect;
この最後のパズルを修正したのは次のとおりです。
# setsebool -P httpd_can_network_connect_db=1
rsync
はscp -r
よりもはるかに高速であることがわかりました。 scp
は非常に遅い速度で進んでいたので、300MB程度で強制終了し、代わりに次のコマンドを使用しました。 scp
試行と比較して、2TBは信じられないほど高速に転送されました。 問題を解決しようとしている間、私はrsync
何度も実行し、 rsync
毎回混乱全体を送信せずに更新しました。
rsync -cavzAX me@$VPS:/path/to/plugins/dynmap/web/ /path/to/web/dynmap/
誰かがDB2データベースでこれを試しましたか?
私はこの^^^#3125の問題で本当に助けを使うことができました。 誰かがこの問題を手伝ってくれる? このガイドをトリプルチェックしました。 複数回ゼロから始めました。 複数のホスティングソリューションを試しましたが、毎回同じ問題が発生します。 コメントに記載されているいくつかの解決策を試しましたが、最終的には役に立ちませんでした。
私も不和を試みましたが、何度も反応がありませんでした。
@arkD幸運なことに、別のスタンドアロンセットアップをセットアップしているので、このガイドを数週間以内に改訂しますが、スピゴットページでまだ公開されていない1.16.3用の最新の最先端バージョンのDynmapを使用しています。アップデート。
私のために働いていませんでした-私はこのガイドを使用してNGINXでphpを有効にする必要がありました
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04
「構成を取得できませんでした」というエラーが表示されなくなりましたが、画面が表示されず、時計も
DBはsqliteに設定されており、ガイドを開始する前にすべてが機能してレンダリングされていました
また、コンソールでこのエラーが発生します。 関連している可能性が非常に高い
最も参考になるコメント
チュートリアルをありがとう! 2台のForgeサーバーをスタンドアロンのWebサーバー構成に移行することができました。 そして、私はいくつかのことを指摘したいと思います:
Forgeには、MySQL用のJDBCドライバーは含まれていません(BukkitやCauldronのように)。 https://mvnrepository.com/artifact/mysql/mysql-connector-javaから取得し、modsディレクトリにドロップする必要があり
チュートリアルでは、
/etc/nginx/sites-available/
と/etc/nginx/sites-enabled
はDebian / Ubuntuのnginx実装にのみ存在することを述べておいたほうがよいでしょう。 アップストリーム実装では、構成ファイルは/etc/nginx/nginx.conf
です。MySQLサーバーとして機能する専用ハードウェアがない限り、マップストレージにMySQLを使用しないことをお勧めします。 ホームサーバーで2台のForgeサーバーを実行しています。 MySQLで構成されたものは、データベースとのトランザクションのために、CPU、RAM、およびディスクI / Oのオーバーヘッドが大幅に増加します。 実際、MySQLは、dynmapのマップストレージのほとんどすべてを構成するBLOBを格納するようには設計されていません。 MySQLをマップストレージとして使用することにより、SQLトランザクションによって余分なCPUサイクルが消費されます。 また、dynmapはマップデータをイメージBLOBとして保存するため、MySQLを使用すると、ホームサーバーで観察されるように、実際にはファイルストレージよりもパフォーマンスが大幅に低下します。 https://stackoverflow.com/questions/5285857/when-is-using-mysql-blob-recommendedも参照して
多数のBLOBを格納するために設計されたDBのタイプを推測しますか? ファイルシステム! チュートリアルを編集して、nginx + php-fpm +ファイルストレージを推奨することを提案したいと思います。 ファイルストレージを備えたスタンドアロンWebサーバーの場合、
url:
セクションを次のように変更する必要があります。