Saya belum melihat instruksi yang jelas tentang menjalankan server mandiri dengan MySQL/SQLite. Halaman wiki tentang cara mengatur server web mandiri juga sudah ketinggalan zaman.
Setelah beberapa jam menyodok di dynmap. Berikut adalah tutorial tentang cara menjalankan server web mandiri di NGINX di server *nix.
PERINGATAN
Mengikuti panduan ini akan mengatur ulang semua data jika Anda _saat ini tidak_ menggunakan database SQL dengan dynmap.
Menggunakan MySQL dengan Dynmap tidak sepenuhnya diuji oleh komunitas.
Tutorial ini mengasumsikan bahwa Anda tahu sedikit tentang Linux. Jika Anda tidak tahu cara Linux, tidak ada kata terlambat untuk belajar!
Jika Anda menggunakan "host server minecraft". Dalam kebanyakan kasus, Anda tidak akan dapat menyiapkan server web mandiri dengan host server minecraft Anda. Anda harus mendapatkan host situs web atau vps untuk meng-host server web mandiri untuk Dynmap.
Akan sangat menyarankan Anda untuk menggunakan MySQL daripada SQLite jika Anda punya pilihan. Ini mungkin memerlukan beberapa langkah ekstra tetapi lihat sisi baiknya. Anda dapat menggunakan MySQL dengan plugin lain :)
Tutorial ini juga mengharuskan Anda untuk menggunakan sudo. Jika Anda tidak memiliki izin sudo maka Anda kurang beruntung atau Anda dapat menyewa VPS.
Jika Anda memberi saya izin untuk mengedit wiki. Saya dengan senang hati akan memberikan kontribusi ke wiki tentang cara menyiapkan server web mandiri dan memeliharanya ;)
Saya membahas cara membuat server web mandiri bekerja dengan proxy cloudflare yang sepenuhnya opsional. Ini SANGAT disarankan jika Anda akan memungkinkan pengguna untuk masuk ke situs web dynmap. Jika akan menginstal sertifikat SSL dengan certbot, jangan ikuti bagian tutorial bonus ini.
Saya juga akan membahas cara menginstal sertifikat SSL ke server web NGINX dengan certbot atau penyedia lain yang sepenuhnya opsional. Ini SANGAT disarankan jika Anda akan memungkinkan pengguna untuk masuk ke situs web dynmap. Jika Anda ingin menggunakan proxy cloudflare, jangan ikuti bagian tutorial bonus ini.
Kelebihan:
Kontra:
Kami akan membahas hal-hal berikut ini:
Untuk memulai, Anda perlu menginstal server web di server tempat Anda ingin meng-host situs web dynmap mandiri. Bagian dari tutorial ini juga mencakup menginstal MySQL di server.
Jika Anda ingin menggunakan SQLite karena alasan tertentu, Anda dapat menginstal NGINX tanpa MySQL/MariaDB. TAPI NGINX harus berada di server yang sama tempat server minecraft di-host.
Jika Anda menggunakan host situs web atau menggunakan host minecraft. Lihat catatan di bawah tautan tutorial.
Anda biasanya harus menginstal MySQL di server yang sama dengan server minecraft. Anda dapat menggunakan server MySQL yang sama dengan plugin yang menggunakan MySQL. MySQL akan digunakan oleh plugin Dynmap untuk menyimpan/memuat data yang juga akan dibaca/ditulis oleh server web.
Secara umum, ada lebih banyak manfaat jika server MySQL/MariaDB berada di server/jaringan yang sama dengan server minecraft karena latensinya akan lebih rendah
Ada banyak sekali tutorial tentang cara mengatur nginx/MySQL/MariaDB di internet. Berikut adalah beberapa tautan tutorial tentang pengaturannya dengan beberapa OS linux.
Jangan khawatir jika tutorial memberitahu Anda untuk menginstal MariaDB karena hampir sama dengan MySQL.
Uji untuk melihat apakah server web Anda melayani halaman web dengan memasukkan ip server web Anda ke browser web Anda. Jika tidak ada yang muncul, firewall Anda mungkin memblokir port atau Anda tidak memulai server nginx.
Sekarang, untuk mengatur server MySQL/MariaDB.
Disarankan untuk membuat pengguna/kata sandi baru dengan izin terbatas untuk setiap aplikasi.
Jika Anda menyiapkan server web eksternal, Anda juga dapat mengatur firewall (iptables/firewalld/ufw/etc) untuk hanya mengizinkan server web terhubung ke database.
Menggunakan terminal di server yang menghosting server minecraft, kami akan membuat database baru dan menambahkan beberapa pengguna database.
mysql -u root -p
[Enter mysql root password if there is one]
mysql> CREATE DATABASE <dynmap_database_name>;
mysql> exit
Contoh (klik untuk meluaskan)
mysql -u root -p
[Enter mysql root password if there is one]
mysql> CREATE DATABASE MyDynmapDatabase;
mysql> exit
catatan
Jika server MySQL berada di server yang sama dengan server minecraft. <minecraftserver_ip>
seharusnya 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
Contoh jika server web dan server minecraft berada di server yang sama (klik saya untuk memperluas)
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
Jika Anda membuat kesalahan dan perlu menghapus pengguna mysql. Ini adalah bagaimana Anda menghapus pengguna.
mysql> DROP USER '<user_to_delete>'@'<ip_you_used>';
Setelah Anda membuat pengguna baru, coba masuk ke pengguna. (setelah Anda keluar dari pengguna root mysql melalui "keluar")
mysql -u <webserver_user> -p
[Enter user password]
mysql> exit
MySQL memiliki izin ini tersedia untuk diatur ke pengguna MySQL.
Sekarang untuk mengubah beberapa pengaturan dalam konfigurasi dari plugin.
Instal dynmap versi terbaru di server. Versi terbaru harus tetap berfungsi dengan versi minecraft dari 1,10 hingga 1,14
Nyalakan server minecraft lalu hentikan server. Seharusnya ada folder baru bernama dynmap
di folder plugins
.
BUAT CADANGAN dari file configuration.txt
! Cukup buat salinan dan beri nama seperti configuration.txt.backup
.
Buka file konfigurasi configuration.txt
sehingga kita dapat mengubah beberapa pengaturan.
Ubah bagian penyimpanan dalam konfigurasi dari
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"
keContoh MySQL (Klik untuk memperluas)
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"
Contoh SQLite (Klik untuk memperluas)
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"
Tepat di bawah bagian penyimpanan, seharusnya ada bagian yang disebut
- class: org.dynmap.InternalClientUpdateComponent
yang akan kami komentari.
Jadi akan terlihat seperti ini:Sebelumnya (klik untuk meluaskan)
- 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
Setelah (klik untuk memperluas)
# - 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
Tepat setelah Anda melakukannya , Anda akan menghapus komentar pada bagian tepat di bawahnya.
Jadi akan terlihat seperti ini.Sebelumnya (klik untuk meluaskan)
#- 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
Setelah (klik untuk memperluas)
- 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
Sekarang kita akan menonaktifkan server web internal karena kita tidak membutuhkannya lagi.
Temukan disable-webserver
di file konfigurasi dan ubah nilainya dari false
menjadi true
.
Kami akan mengubah beberapa url yang diperlukan agar server web mandiri dynmap berfungsi. Ini adalah bagian besar yang kebanyakan orang bermasalah sejauh yang saya tahu.
Temukan bagian url:
dalam file konfigurasi. Seharusnya terlihat seperti ini.Sebelumnya (klik untuk meluaskan)
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/"
Setelah [Contoh MySQL] (klik untuk memperluas)
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="
Setelah [Contoh SQLite] (klik untuk memperluas)
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="
Mulai server minecraft TAPI JANGAN MATIKAN DULU!
Periksa dan lihat apakah ada masalah dengan dynmap dengan memeriksa log terbaru. Jika tidak ada masalah, matikan server.
Alasan utama mengapa Anda harus memulai dan menghentikan server di bagian paling akhir adalah karena Dynmap membuat file konfigurasi untuk digunakan server web. Jika Anda mengubah pengaturan apa pun di configuration.txt
, maka ada kemungkinan file konfigurasi di plugins/dynmap/web
diubah.
Jika Anda akan mengaktifkan pengguna untuk masuk ke dynmap. Anda PASTI harus menginstal sertifikat SSL atau menggunakan proxy cloudflare untuk membuat kredensial login aman dari orang jahat!
Sekarang kita turun ke bisnis yang serius!
Berikut adalah beberapa opsi:
Opsi 1 : Anda dapat menautkan server web ke folder web dynmap di folder plugin (lebih mudah)
Opsi 2 : Salin folder web ke lokasi lain di server (lebih aman)
Only Option : Satu-satunya pilihan Anda adalah menyalin folder web ke server yang memiliki server web.
Jika Anda menggunakan host web seperti hostgator, namecheap, 000webhost, dll. Satu-satunya pilihan Anda adalah menyalin folder web ke host web.
Saya tidak akan menambahkan detail tentang cara menyelesaikan ini karena ada terlalu banyak web host untuk dibahas.
Sebelum Anda pergi ke bagian berikutnya dengan opsi pengaturan. Kami akan membahas pengaturan umum untuk server web NGINX.
Jika Anda menginstal server web NGINX baru. Kami ingin menghapus konfigurasi situs web default dan menambahkan konfigurasi kami sendiri. Jika Anda sudah memiliki NGINX sebelum tutorial ini dan tahu apa yang Anda lakukan. Pergi ke bagian berikutnya dengan opsi tentang bagaimana situs web dynmap harus disetel.
Konfigurasi default biasanya terletak di /etc/nginx/sites-available/
dan /etc/nginx/sites-enabled
.
Anda ingin membuat salinan default karena kami akan menggunakannya.
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/dynmap
Sekarang hapus konfigurasi default dari sites-enabled
untuk menonaktifkan konfigurasi situs default dan restart server web nginx
sudo rm /etc/nginx/sites-enabled/default
sudo service nginx restart
Jika Anda menghosting server web NGINX Anda sendiri di server yang sama dengan server minecraft. Ini adalah bagian yang tepat untuk Anda!
Catatan
Pastikan Anda mengikuti pengaturan umum dengan NGINX sebelum melanjutkan tutorial ini
Jika Anda ingin mengatur server web dengan cara yang mudah (tetapi tidak terlalu aman). Ini adalah pilihan yang tepat untuk Anda! Tetapi saya tetap sangat menyarankan Anda untuk mengikuti opsi 2 karena ini adalah opsi yang lebih aman daripada opsi 1.
Kelebihan:
Kontra:
Mulai mengedit file konfigurasi dynmap di /etc/nginx/sites-available/dynmap
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
File konfigurasi akan terlihat seperti ini. Ubah nilai dalam konfigurasi sesuai keinginan Anda
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;
}
}
Contoh:
root /home/someuser/minecraft/servers/creative/plugins/dynmap/web;
Jika Anda ingin men-setup web server cara yang lebih aman. Ini adalah pilihan yang tepat untuk Anda!
Kelebihan:
Kontra:
Salin file web dynmap ke lokasi lain
sudo cp -r /home/<USERNAME>/<MINECRAFTSERVER>/plugins/dynmap/web/ /var/www/dynmap/
Contoh:
sudo cp -r /home/MyUsername/minecraft/servers/creative/plugins/dynmap/web/ /var/www/dynmap/
Mulai mengedit file konfigurasi dynmap di /etc/nginx/sites-available/dynmap
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
File konfigurasi akan terlihat seperti ini. Ubah nilai dalam konfigurasi sesuai keinginan Anda
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;
}
}
Setelah Anda mengikuti langkah-langkah di Opsi 1/2. Kita akan membuat shortcut dari konfigurasi web server dynmap dan memasukkannya ke dalam folder.
ln -s /etc/nginx/sites-available/dynmap /etc/nginx/sites-enabled/dynmap
Pastikan file konfigurasi bebas dari kesalahan!
nginx -t -c /etc/nginx/sites-available/dynmap
dan restart server jika tidak ada masalah.
sudo service nginx restart
Dan itu seharusnya!
Masukkan ip server web ke browser web Anda, Anda akan melihat dynmap. Karena akan kosong, Anda dapat mulai merender ubin dengan bergabung dengan server dan menjalankan perintah /dynmap fullrender <worldname>
Jika Anda menghosting server web NGINX Anda sendiri di server yang berbeda dari server yang menghosting server minecraft. Ini adalah bagian yang tepat untuk Anda!
Catatan
Kelebihan:
Kontra:
Salin file web dynmap ke lokasi lain
Jalankan perintah ini di server yang menghosting server minecraft. Perintah ini akan menyalin folder dari server minecraft ke server web. Ini akan meminta Anda untuk kata sandi ke server web.
sudo scp -r /home/<USERNAME>/<MINECRAFTSERVER>/plugins/dynmap/web <WEBSERVER_USERNAME>@<WEBSERVER_IP>:/var/www/dynmap
Contoh:
sudo scp -r /home/SomeUserName1/minecraft/servers/creative/plugins/dynmap/web [email protected]:/var/www/dynmap
Mulai mengedit file konfigurasi dynmap di /etc/nginx/sites-available/dynmap
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
File konfigurasi akan terlihat seperti ini. Ubah nilai dalam konfigurasi sesuai keinginan Anda
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;
}
}
Setelah Anda mengikuti langkah-langkahnya. Kita akan membuat shortcut dari konfigurasi web server dynmap dan memasukkannya ke dalam folder.
ln -s /etc/nginx/sites-available/dynmap /etc/nginx/sites-enabled/dynmap
Pastikan file konfigurasi bebas dari kesalahan!
nginx -t -c /etc/nginx/sites-available/dynmap
dan restart server jika tidak ada masalah.
sudo service nginx restart
Dan itu seharusnya!
Masukkan ip server web ke browser web Anda, Anda akan melihat dynmap. Karena akan kosong, Anda dapat mulai merender ubin dengan bergabung dengan server dan menjalankan perintah /dynmap fullrender <worldname>
Jika Anda menggunakan host web karena Anda tidak ingin mengaturnya sendiri. Ini adalah bagian yang tepat untuk Anda!
Salin file dari server minecraft ke folder di komputer Anda. File yang akan Anda salin harus dalam plugins/dynmap/web
di server minecraft.
Salin file ke host web Anda sebaiknya di direktori baru kecuali jika itu akan menjadi hosting dynmap khusus.
Ya benar-benar! Kamu sudah selesai.
Jika Anda menginstal server web NGINX Anda sendiri, Anda dapat mengikuti bagian dari tutorial bonus ini untuk membuat server web Anda aman dengan login dynmap. ANDA HARUS SELALU menangani kredensial pengguna dengan hati-hati jika Anda mengaktifkan login dengan Dynmap.
Anda dapat mengikuti salah satu dari tiga opsi untuk membuat server web Anda aman
Anda cukup mengikuti instruksi ini dari situs web certbot. Ini adalah cara termudah untuk mendapatkan sertifikat SSL untuk situs web.
Sebagai catatan, sertifikasi certbot kedaluwarsa lebih cepat daripada penyedia lain, tetapi mereka memiliki cara otomatis untuk memperbarui sertifikasi Anda jika Anda mengikuti instruksi mereka tentang cara melakukannya.
Sebagai alternatif, Anda bisa mendapatkan sertifikat SSL dari penyedia lain seperti NameCheap. Unduh sertifikasi publik dan kunci pribadi dari penyedia. ANDA TIDAK HARUS MEMBAGIKAN KUNCI PRIBADI DENGAN ORANG LAIN ATAU MEMBUATNYA UMUM . Ini benar-benar untuk server web Anda dan tidak boleh hanya untuk diperebutkan.
Tempatkan file sertifikasi di /etc/ssl/certs/<certification_file>.pem
dan tempatkan kunci pribadi di /etc/ssl/private/<private_key_file>.pem
Buat cadangan konfigurasi situs web sebelum kami melakukan perubahan apa pun
sudo cp /etc/nginx/sites-available/dynmap /etc/nginx/sites-available/dynmap_BACKUP
Jika Anda membuat kesalahan dan perlu kembali, jalankan perintah ini
sudo cp /etc/nginx/sites-available/dynmap_BACKUP /etc/nginx/sites-available/dynmap
Di konfigurasi situs web NGINX, lihat perbedaan antara konfigurasi Anda saat ini dan tambahkan perubahan yang Anda lihat dari contoh konfigurasi ini.
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;
}
}
Kemudian Anda hanya perlu me-restart web server NGINX.
sudo service nginx restart
Buka situs web dynmap Anda dan sekarang seharusnya sudah aman!
Hal yang baik tentang proxy Cloudflare adalah mereka memiliki sertifikasi khusus yang hanya untuk berkomunikasi antara server web Anda dan layanan mereka. Anda juga dapat membiarkan sertifikasi bertahan hingga 15 tahun. Namun, itu hanya alternatif untuk memiliki sertifikasi ssl "asli".
Pertama, masuk ke cloudflare dan buka domain yang ingin Anda atur proxynya. Lalu pergi ke bagian "SSL/TLS"
Di bagian Origin Certificates
, klik "Buat Sertifikat".
Pilih Let Cloudflare generate a private key and a CSR
dan atur Private key type
menjadi ECDSA
Tambahkan nama host map.YOURDOMAIN.com
jika Anda ingin menempatkan situs web dynmap di map.YOURDOMAIN.com.
Atur validitas sertifikat ke apa pun yang Anda suka (15 tahun terdengar bagus?).
Klik berikutnya dan Anda akan melihat sertifikat ssl dan kunci pribadi baru di layar Anda. Sekarang kita akan menyalin teks dan menempelkannya ke file melalui terminal.
Pertama mari kita buat file sertifikat dan tempel di teks. Teks harus dimulai dengan -----BEGIN CERTIFICATE-----
dan diakhiri dengan -----END CERTIFICATE-----
sudo nano /etc/ssl/certs/dynmap_cert.pem
OR
sudo vi /etc/ssl/certs/dynmap_cert.pem
Selanjutnya mari buat file kunci pribadi dan tempel di teks. Teks harus dimulai dengan -----BEGIN PRIVATE KEY-----
dan diakhiri dengan -----END PRIVATE KEY-----
sudo nano /etc/ssl/private/dynmap_private_key.pem
OR
sudo vi /etc/ssl/private/dynmap_private_key.pem
Sekarang kita akan mengedit konfigurasi situs web NGINX. Buat cadangan konfigurasi situs web sebelum kami melakukan perubahan apa pun
sudo cp /etc/nginx/sites-available/dynmap /etc/nginx/sites-available/dynmap_BACKUP
Jika Anda membuat kesalahan dan perlu kembali, jalankan perintah ini
sudo cp /etc/nginx/sites-available/dynmap_BACKUP /etc/nginx/sites-available/dynmap
Di konfigurasi situs web NGINX, lihat perbedaan antara konfigurasi Anda saat ini dan tambahkan perubahan yang Anda lihat dari contoh konfigurasi ini.
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;
}
}
Kemudian Anda hanya perlu me-restart web server NGINX.
sudo service nginx restart
Buka situs web dynmap Anda dan sekarang seharusnya sudah aman!
Bagaimana saya Linux?
Dengan sangat hati-hati.
Tapi di sini adalah jawaban yang serius.
Anda dapat terhubung ke server linux Anda dengan sesuatu yang populer seperti Putty atau klien SSH lain pilihan Anda. Anda dapat masuk ke terminal jika Anda memiliki pengguna/kata sandi.
Anda dapat dengan mudah menemukan panduan/tutorial tentang cara menggunakan linux di internet. Tetapi Anda harus selalu memeriksa ulang apa yang dilakukan suatu perintah sebelum Anda menjalankannya!Situs web saya tidak muncul (NGINX)
Pastikan situs web Anda telah diteruskan portnya.
Port default adalah 80 tetapi jika Anda mengikuti tutorial tentang menginstal sertifikasi SSL, port akan menjadi 443.
Tetapi jika itu tidak berhasil, periksa apakah NGINX berjalan dengan menjalankan perintah
sudo service nginx status
dan itu akan memberi tahu Anda apa yang mungkin salah. Anda juga dapat menguji file konfigurasi dengan menjalankan perintah
nginx -t -c /etc/nginx/sites-available/dynmap
Saya tidak melihat gambar apa pun di situs web dynmap!
Karena kami mulai dengan database baru yang segar tanpa data apa pun di dalamnya. Mungkin perlu beberapa saat untuk melihat gambar apa pun di dynmap.
Anda dapat menjalankan perintah dalam game untuk merender dunia sepenuhnya jika Anda ingin /dynmap fullrender <worldname>
Kok gak ada tutorialnya di windows atau apache?
Saya memutuskan untuk tidak menutupi pengaturan server web mandiri dengan windows atau apache karena kebanyakan orang akan menggunakan Linux dan NGINX saat ini. Tetapi jika ada cukup banyak orang yang bertanya, saya mungkin menutupi windows dan/atau apacheSaya berubah pikiran, dapatkah saya mengonversi kembali dari sql?
Ya, Anda seharusnya dapat mengonversi kembali ke metode sebelumnya jika Anda membuat file cadangan configuration.txt.backup
dari langkah sebelumnya.
Hapus saja configuration.txt
dan ganti nama configuration.txt.backup
menjadi configuration.txt
dan Anda siap melakukannya!Mengapa?
Karena kenapa tidak?
Ada lebih banyak kemungkinan ketika dynmap menggunakan sql. Akan lebih cepat untuk mencadangkan, orang masih dapat menggunakan situs web dynmap meskipun server sedang down, dan banyak lagi!Apakah masih menampilkan ikon pemain dan/atau obrolan?
Ya, ikon pemutar masih harus diperbarui di halaman web.
Kotak obrolan juga harus berfungsi dengan baik.
Perhatikan bahwa pengguna dynmapforge tidak akan memiliki direktori plugins/dynmap/web
. Misalnya, di salah satu server saya ada:
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
(Saya memfilter dynmap/web/tiles/ karena saya memiliki 1500 direktori di sana ...)
Saya akan mencobanya sendiri, tetapi layanan nginx dan minecraft saya ada di mesin yang berbeda. :keringat_senyum:
Saya mengikuti ini, tetapi tidak berhasil. Saya memiliki Apache di server yang sama dengan dynmap, dan memindahkan folder web ke sana. Meskipun tidak ada kesalahan di konsol, jika saya menavigasi ke url, itu hanya menunjukkan latar belakang hitam. Saya juga menggunakan SQLite, yang sudah dirender. Apakah saya melewatkan sesuatu mungkin?
Mungkin memeriksa konsol browser Anda untuk mencari kesalahan dan/atau permintaan yang gagal?
@miiichael
Ya, masalah besar dengan beralih dari sistem file ke database adalah dynmap tidak mengimpor ubin ke database. Jadi, Anda akan kehilangan semua kemajuan rendering Anda. Masih mungkin untuk menempatkan server web di mesin yang berbeda dari server minecraft tetapi Anda harus menggunakan mysql alih-alih sistem file.
@MrLogano
Itu karena Apache tidak dapat menemukan file database SQLite karena tidak ada di folder web. Anda mungkin lebih baik mengarahkan Apache ke folder web yang ada di folder dynmap daripada menyalin folder web ke lokasi yang berbeda. Atau edit file php secara manual (dari folder web yang disalin) untuk mendapatkan file db SQLite dari lokasi yang berbeda.
Saya akan menulis tutorial yang lebih rinci setelah saya mendapatkan waktu luang karena saya cukup sibuk di atm.
@haloflooder
File php "dynmap_access" tertaut ke file database SQLite di direktori dynmap. Saya mencobanya beberapa kali lagi, dan setiap kali saya mengubah bagian URL di konfigurasi, saya hanya mendapatkan halaman yang benar-benar kosong. Meninggalkannya, filetree berfungsi dengan baik, tetapi mengarahkannya ke SQLite menimbulkan kesalahan 500. Memeriksa log apache mengatakan sesuatu tidak dapat membuka file database, dengan itu menunjukkan kesalahan pada baris 79 di SQLite_tiles.php. Saya juga mengubah izin menjadi 775, tidak berhasil.
Saya mengikuti tutorial Anda, tetapi halaman web mengatakan "Tidak dapat mengambil konfigurasi: Kesalahan Server Internal"
bagaimana saya bisa melakukannya?
Saya mengalami masalah yang sama dengan @gundami. Penyelidikan lebih lanjut mengungkapkan pesan kesalahan ini di /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 Sudahkah Anda menemukan solusi? Maaf untuk jawaban yang terlambat, saya sangat sibuk selama beberapa bulan terakhir.
@gundami @ads103 Bisakah Anda memberikan konfigurasi untuk dynmap di pastebin? Jangan lupa untuk menyensor informasi sensitif seperti kredensial mysql.
Tentu! Ini dia: https://Pastebin.com/1xQ2Unjb
@ads103 Baru saja diperhatikan bahwa log akses Anda mengatakan http://dragonmc/
. Apa yang Anda miliki di konfigurasi nginx Anda?
Karena itu juga sudah lama sejak dynmap diperbarui. Saya akan menginstal versi baru di dynmap di server pengujian saya dan mengikuti panduan saya sendiri untuk melihat apakah ada yang berubah sejak September.
Ya, dragonmc adalah nama host dari server minecraft saya. Saya memilikinya di server DNS lokal, jadi saya bisa mengetikkan "dragonmc" di browser web saya dan menelusurinya. Inilah konfigurasi Apache saya, dan direktori tempat saya menyalin file dynmap saya.
https://pastebin.com/NQ8fNjqa
@ads103 Saya kira server Anda juga dihosting secara lokal di jaringan Anda?
Ya! Itu benar. Semuanya hanya berjarak IP lokal!
@haloflooder apakah Anda memiliki kesempatan untuk menginstal versi baru di server pengujian Anda?
Sayangnya, saya tidak tahu javascript. Saya dapat melihat bahwa pesan kesalahan ini dihasilkan oleh fungsi ini di map.js
, tetapi saya tidak dapat menemukan di mana variabel "configuration"
diberi nilai.
`fungsi DynMap(opsi) {
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 Maaf, saya sibuk dengan pekerjaan karena saya harus memenuhi tenggat waktu untuk sesuatu. Konfigurasi berasal dari MySQL_configuration.php secara standalone.
Apakah Anda menyalin file web ke server web setelah membiarkan dynmap mengubah nilai konfigurasi dengan konfigurasi yang dimodifikasi?
Ya saya lakukan. Saya bahkan melihat lalu lintas jaringan ke server basis data saya meningkat saat mulai dirender, jadi nilai konfigurasi setidaknya cukup benar untuk memasukkan ubin ke dalam basis data.
Berikut adalah pertanyaan. Dalam panduan, Anda menyertakan instruksi ini untuk menyalin konten folder web
ke server web:
sudo cp -r /home/MyUsername/minecraft/servers/creative/plugins/dynmap/web/ /var/www/dynmap/
Apakah Anda bermaksud menyalin folder web
ke dalam folder dynmap
, _atau_ _contents_ folder web
folder dynmap
?
@ads103 Oooo, itu tangkapan yang bagus. Seharusnya bukti membaca perintah linux setelah mengerjakan panduan selama sekitar 12 jam.
Saya bermaksud memberi perintah untuk menyalin konten di folder web ke folder server web dynmap. Saya akan membahas panduan saya sendiri hari ini dengan dynmap versi terbaru hari ini.
Adakah pembaruan pada pengaturan akses MySQL? Setelah mengikuti panduan ini ke T dan mencoba mengakses peta, saya mendapatkan layar hitam dan kesalahan "Tidak dapat mengambil konfigurasi: Gerbang Buruk".
EDIT: Saya idiot dan lupa menginstal php, semuanya baik-baik saja
Pertama, panduan luar biasa! Saya sudah mencoba untuk menemukan sesuatu seperti ini untuk sementara waktu sekarang. Namun saya mengalami masalah yang sama dengan @WearisomelyVerbose di mana saya hanya mendapatkan pesan yang mengatakan "Tidak dapat mengambil konfigurasi: Gerbang Buruk"
Beberapa Info tentang build saya: Server Minecraft saya berada di server terpisah, dan menggunakan server Mysql untuk menyimpan semuanya. Saya memastikan untuk menyalin direktori /web dari Dynmap setelah mengubah konfigurasi dan memulai ulang server.
Satu hal yang saya perhatikan, setiap kali saya menguji file Dynmap.conf di Nginx, saya mendapatkan kesalahan ini:
sudo nginx -t -c /etc/nginx/sites-available/dynmap
nginx: Direktif "server" [emerg] tidak diizinkan di sini di /etc/nginx/sites-available/ dynmap:2
nginx: file konfigurasi /etc/nginx/sites-available/dynmap tes gagal
@ads103 @gundami
Saya pikir saya memiliki kesalahan yang sama: "Tidak dapat mengambil konfigurasi: kesalahan" setelah membuka peta melalui server web.
Bagi saya mengubah file "...\standalone\MySQL_config.php" di server web memecahkan masalah:
...
$dbhost = 'host lokal';
...
alih-alih alamat IP. Tapi saya tidak tahu detailnya, semoga membantu seseorang.
Pengaturan saya adalah 2 Raspberry Pis. RP4B(4GB) menghosting minecraft (di antara layanan lainnya) dan RP3B+ menghosting DynMap (Apache+SQL)
Terima kasih untuk tutorial yang bagus!! :)
Saya dapat menyelesaikan masalah saya.
Milik saya, setidaknya, cukup sederhana di belakang. Saya kehilangan dependensi.
Secara khusus, saya kehilangan php-json dan php-mysqlnd. (Saya menggunakan sistem Fedora 31, dan nama paket Ubuntu sedikit berbeda.)
Saya menemukan bahwa saya melewatkan paket-paket ini dengan menyadari bahwa php-fpm adalah aplikasi terpisah dengan file lognya sendiri yang terletak di /var/log/php-fpm
. Memeriksa www-error.log mengungkapkan dua baris log ini:
[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
Pencarian google cepat untuk fungsi json_decode()
dan mysqli_connect()
membawa saya ke dua paket yang hilang ini. Setelah menginstalnya dan menyegarkan Dynmap di browser saya, itu... berhasil. Itu baru saja berhasil.
Terima kasih untuk tutorialnya! Saya dapat memigrasikan 2 server Forge saya ke konfigurasi server web mandiri. Dan saya ingin menunjukkan beberapa hal:
Forge tidak menyertakan driver JDBC untuk MySQL (seperti yang dilakukan Bukkit dan Cauldron). Anda perlu mengambilnya dari https://mvnrepository.com/artifact/mysql/mysql-connector-java dan meletakkannya di direktori mods. Lihat #1674.
Akan lebih baik untuk menyebutkan dalam tutorial bahwa /etc/nginx/sites-available/
dan /etc/nginx/sites-enabled
hanya ada dalam implementasi nginx Debian/Ubuntu. Dalam implementasi upstream, satu-satunya file konfigurasi adalah /etc/nginx/nginx.conf
.
Saya akan merekomendasikan untuk tidak menggunakan MySQL untuk penyimpanan peta, kecuali jika Anda memiliki perangkat keras khusus yang bertindak sebagai server MySQL. Saya memiliki 2 server Forge yang berjalan di server rumah saya. Yang dikonfigurasi dengan MySQL memiliki lebih banyak CPU, RAM, dan overhead I/O disk karena transaksi dengan database. Faktanya, MySQL tidak dirancang untuk menyimpan BLOB, yang membentuk hampir semua penyimpanan peta dynmap. Dengan menggunakan MySQL sebagai penyimpanan peta, siklus CPU ekstra dikonsumsi oleh transaksi SQL. Dan karena dynmap menyimpan data peta sebagai Gumpalan gambar, menggunakan MySQL sebenarnya menghasilkan kinerja yang jauh lebih buruk daripada penyimpanan file, seperti yang diamati di server rumah saya. Lihat juga https://stackoverflow.com/questions/5285857/when-is-using-mysql-blob-recommended
Tebak jenis DB apa yang dirancang untuk menyimpan sejumlah besar Gumpalan? Sistem berkas! Saya ingin mengusulkan pengeditan tutorial untuk merekomendasikan penyimpanan file nginx + php-fpm +. Untuk server web mandiri dengan penyimpanan file, bagian url:
harus diubah seperti ini:
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/'
Terima kasih lagi @haloflooder untuk membuat tutorialnya! Saya juga bermigrasi, dan itu berfungsi dengan baik.
Saya juga menemukan pengaturan yang dibagikan oleh Frumle untuk server MRT berguna: https://github.com/Frumle/mrt-docker-services/blob/master/containers/dynmap-main/docker-compose.yml
@ database64128 Terima kasih atas info tentang file konfigurasi json. Satu amandemen: file konfigurasi json hanya dibuat jika login-enabled: false
diatur di dalam configuration.txt Dynmap.
Serangga? Disengaja? Saya tidak tahu. Info lebih lanjut tentang masalah yang saya buat di sini: https://github.com/webbukkit/dynmap/issues/2848 .
Saya pikir saya akan menyebutkannya di sini karena butuh waktu lama untuk melacak mengapa file konfigurasi json tidak dibuat!
Saya mengalami masalah layar hitam yang dijelaskan oleh @MrLogano . Saya menggunakan MySQL dan nginx di server terpisah. Saya sedang melakukan fullrender sekarang dan saya dapat melihat jumlah baris di tabel "Ubin" di MySQL berkembang, jadi saya tahu itu terhubung ke MySQL dengan baik.
Di konsol browser, saya melihat kesalahan berikut:
Skrip dari “ https://REDACTED/standalone/config.js?_=3.0-beta-10-257 ” telah dimuat meskipun jenis MIME-nya (“teks/html”) bukan jenis JavaScript MIME yang valid.
Pemuatan gagal untuk
Saya menemukan apa masalah saya. Nama host yang saya gunakan untuk server MySQL dapat dipecahkan dari server Minecraft saya tetapi tidak dari server nginx saya. Saya mengubah nama host menjadi sesuatu yang dapat diselesaikan dari keduanya dan sekarang berfungsi.
Yah saya memiliki server minecraft yang dihosting di satu host dan situs web yang dihosting di host lain (yang menggunakan apache dan tidak mendukung proxy terbalik) Bagaimana cara menyiapkan dynmap di situs web saya tanpa iframe? karena saya tidak melihat tutorial untuk itu
@alex17lol Panduan ini tidak menggunakan proxy terbalik. Anda seharusnya dapat menggunakan konfigurasi Apache Anda sendiri alih-alih konfigurasi Nginx yang disarankan di sini.
@alex17lol Panduan ini tidak menggunakan proxy terbalik. Anda seharusnya dapat menggunakan konfigurasi Apache Anda sendiri alih-alih konfigurasi Nginx yang disarankan di sini.
Saya tidak memiliki akses ke perintah sudo Saya menggunakan host web itu masalah saya
_ Dapatkah seseorang menambahkan ini ke wiki? _
Terima kasih banyak telah membuat ini!
SELinux dapat menyebabkan segala macam kesedihan. Yang paling jelas adalah yang langsung memblokir semua akses ke konten web. Ini muncul di log kesalahan server web. Masalah yang lebih halus dapat muncul di log kesalahan php-fpm. Setelah berurusan dengan semua kesalahan dalam log server web, saya masih memiliki masalah layar hitam dan kegagalan yang menakutkan untuk membaca konfigurasi. Sebagai contoh:
[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;
Apa yang memperbaiki teka-teki terakhir ini bagi saya adalah:
# setsebool -P httpd_can_network_connect_db=1
Saya menemukan rsync
menjadi JAUH lebih cepat daripada scp -r
. scp
berjalan lamban dengan kecepatan yang sangat lambat, jadi saya membunuhnya pada 300MB atau lebih dan kemudian menggunakan perintah berikut sebagai gantinya. 2TB ditransfer sangat cepat dibandingkan dengan upaya scp
. Saya melakukan rsync
beberapa kali ketika mencoba menyelesaikan masalah, dan rsync
memperbarui tanpa mengirim seluruh kekacauan setiap saat.
rsync -cavzAX me@$VPS:/path/to/plugins/dynmap/web/ /path/to/web/dynmap/
Adakah yang sudah mencoba ini dengan database DB2?
Saya benar-benar dapat menggunakan bantuan untuk masalah ^^^ #3125 ini. adakah yang bisa membantu masalah ini? Saya memeriksa tiga kali panduan ini. mulai dari awal berkali-kali. telah mencoba beberapa solusi hosting tetapi saya mendapatkan masalah yang sama setiap saat. Saya mencoba beberapa solusi yang dicatat dalam komentar tetapi pada akhirnya tidak membantu.
Saya juga mencoba discord tetapi tidak mendapat respons beberapa kali.
@arkD Untungnya , saya akan merevisi panduan ini dalam beberapa minggu ke depan karena saya menyiapkan pengaturan mandiri lainnya tetapi menggunakan versi terbaru dari Dynmap untuk 1.16.3 yang belum dirilis secara publik di halaman spigot sebagai Sebuah pembaharuan.
Tidak berfungsi untuk saya - saya harus mengaktifkan php di NGINX menggunakan panduan ini
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04
Sekarang kesalahan "Tidak dapat mengambil konfigurasi" berhenti muncul, tetapi saya masih mendapatkan layar hitam , tidak ada bilah sisi, tidak ada jam. 😢.
DB dikonfigurasikan ke sqlite dan semuanya berfungsi dan dirender sebelum memulai panduan
Juga: saya memiliki kesalahan ini di konsol. Ini sangat mungkin terkait
Komentar yang paling membantu
Terima kasih untuk tutorialnya! Saya dapat memigrasikan 2 server Forge saya ke konfigurasi server web mandiri. Dan saya ingin menunjukkan beberapa hal:
Forge tidak menyertakan driver JDBC untuk MySQL (seperti yang dilakukan Bukkit dan Cauldron). Anda perlu mengambilnya dari https://mvnrepository.com/artifact/mysql/mysql-connector-java dan meletakkannya di direktori mods. Lihat #1674.
Akan lebih baik untuk menyebutkan dalam tutorial bahwa
/etc/nginx/sites-available/
dan/etc/nginx/sites-enabled
hanya ada dalam implementasi nginx Debian/Ubuntu. Dalam implementasi upstream, satu-satunya file konfigurasi adalah/etc/nginx/nginx.conf
.Saya akan merekomendasikan untuk tidak menggunakan MySQL untuk penyimpanan peta, kecuali jika Anda memiliki perangkat keras khusus yang bertindak sebagai server MySQL. Saya memiliki 2 server Forge yang berjalan di server rumah saya. Yang dikonfigurasi dengan MySQL memiliki lebih banyak CPU, RAM, dan overhead I/O disk karena transaksi dengan database. Faktanya, MySQL tidak dirancang untuk menyimpan BLOB, yang membentuk hampir semua penyimpanan peta dynmap. Dengan menggunakan MySQL sebagai penyimpanan peta, siklus CPU ekstra dikonsumsi oleh transaksi SQL. Dan karena dynmap menyimpan data peta sebagai Gumpalan gambar, menggunakan MySQL sebenarnya menghasilkan kinerja yang jauh lebih buruk daripada penyimpanan file, seperti yang diamati di server rumah saya. Lihat juga https://stackoverflow.com/questions/5285857/when-is-using-mysql-blob-recommended
Tebak jenis DB apa yang dirancang untuk menyimpan sejumlah besar Gumpalan? Sistem berkas! Saya ingin mengusulkan pengeditan tutorial untuk merekomendasikan penyimpanan file nginx + php-fpm +. Untuk server web mandiri dengan penyimpanan file, bagian
url:
harus diubah seperti ini: