No he visto instrucciones claras sobre cómo hacer que un servidor independiente se ejecute con MySQL / SQLite. La página wiki sobre cómo configurar el servidor web independiente también está desactualizada por mucho.
Después de un par de horas de hurgar en dynmap. Aquí hay un tutorial sobre cómo hacer que el servidor web independiente se ejecute en NGINX en un servidor * nix.
🔴 ADVERTENCIA 🔴
Si sigue esta guía, se restablecerán todos los datos si _actualmente no_ está utilizando una base de datos SQL con dynmap.
El uso de MySQL con Dynmap no está completamente probado por la comunidad.
Este tutorial asume que conoces un poco de Linux. Si no sabe usar Linux, ¡nunca es demasiado tarde para aprender!
Si está utilizando un "servidor de servidor de Minecraft". En la mayoría de los casos, no podrá configurar un servidor web independiente con su servidor de servidor de Minecraft. Tendrá que conseguir un servidor web o un vps para alojar un servidor web independiente para Dynmap.
Le recomendaría encarecidamente que utilice MySQL en lugar de SQLite si tiene la opción. Es posible que requiera algunos pasos adicionales, pero mire el lado positivo. Puede usar MySQL con otros complementos :)
Este tutorial también requiere que uses sudo. Si no tienes sudo permanente, entonces no tienes suerte o puedes alquilar un VPS.
Si me da permiso para editar wiki. Con mucho gusto haré una contribución a la wiki sobre cómo configurar un servidor web independiente y mantenerlo;)
Cubro cómo hacer que el servidor web independiente funcione con el proxy de cloudflare, que es completamente opcional. Esto es MUY recomendable si va a permitir que los usuarios inicien sesión en el sitio web de dynmap. Si va a instalar un certificado SSL con certbot, no siga esta parte del tutorial adicional.
También cubriré cómo instalar un certificado SSL en el servidor web NGINX con certbot u otro proveedor, que es completamente opcional. Esto es MUY recomendable si va a permitir que los usuarios inicien sesión en el sitio web de dynmap. Si desea utilizar el proxy cloudflare en su lugar, no siga esta parte del tutorial adicional.
Pros:
Contras:
Cubriremos las siguientes cosas
Para comenzar, debe instalar un servidor web en el servidor en el que desea alojar el sitio web independiente de dynmap. Esta parte del tutorial también cubre la instalación de MySQL en el servidor.
Si desea utilizar SQLite por alguna razón, puede instalar NGINX sin MySQL / MariaDB. PERO NGINX debe estar en el mismo servidor donde está alojado el servidor de Minecraft.
Si está utilizando un servidor de sitio web o un servidor de Minecraft. Vea las notas debajo de los enlaces del tutorial.
Por lo general, debe instalar MySQL en el mismo servidor que el servidor de Minecraft. Puede usar el mismo servidor MySQL con complementos que usan MySQL. El complemento Dynmap utilizará MySQL para guardar / cargar datos en los que el servidor web también leerá / escribirá.
Generalmente, hay más beneficios si el servidor MySQL / MariaDB está en el mismo servidor / red que el servidor de Minecraft, ya que la latencia sería menor.
Hay innumerables tutoriales sobre cómo configurar nginx / MySQL / MariaDB en Internet. Aquí hay algunos enlaces de tutoriales sobre cómo configurarlos con algunos sistemas operativos Linux.
No se preocupe si el tutorial le dice que instale MariaDB, ya que es prácticamente lo mismo que MySQL.
Pruebe para ver si su servidor web está sirviendo una página web ingresando la IP de su servidor web en su navegador web. Si no aparece nada, entonces su firewall podría estar bloqueando el puerto o no inició el servidor nginx.
Ahora, para configurar el servidor MySQL / MariaDB.
Se recomienda crear un nuevo usuario / contraseña con permisos limitados para cada aplicación.
Si está configurando un servidor web externo, también puede configurar un firewall (iptables / firewalld / ufw / etc) para permitir que solo el servidor web se conecte a la base de datos.
Usando una terminal en el servidor que aloja el servidor de Minecraft, crearemos una nueva base de datos y agregaremos algunos usuarios de la base de datos.
mysql -u root -p
[Enter mysql root password if there is one]
mysql> CREATE DATABASE <dynmap_database_name>;
mysql> exit
Ejemplo (haga clic para expandir)
mysql -u root -p
[Enter mysql root password if there is one]
mysql> CREATE DATABASE MyDynmapDatabase;
mysql> exit
Nota
Si el servidor MySQL está en el mismo servidor que el servidor de Minecraft. <minecraftserver_ip>
debería ser 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
Ejemplo si el servidor web y el servidor de Minecraft están en el mismo servidor (haz clic en mí para expandir)
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
Si hizo un oopsie y necesita eliminar el usuario de mysql. Así es como eliminas un usuario.
mysql> DROP USER '<user_to_delete>'@'<ip_you_used>';
Después de crear un nuevo usuario, intente iniciar sesión en el usuario. (después de cerrar la sesión del usuario root de mysql a través de "salir")
mysql -u <webserver_user> -p
[Enter user password]
mysql> exit
MySQL tiene estos permisos disponibles para configurar a los usuarios de MySQL.
Ahora para cambiar algunas configuraciones en la configuración del complemento.
Instale la última versión de dynmap en el servidor. La última versión aún debería funcionar con la versión de Minecraft de 1.10 a 1.14
Encienda el servidor de Minecraft y luego detenga el servidor. Debería haber una nueva carpeta llamada dynmap
en la carpeta plugins
.
¡HAGA UNA COPIA DE SEGURIDAD del archivo configuration.txt
! Simplemente haga una copia y asígnele un nombre como configuration.txt.backup
.
Abra el archivo de configuración configuration.txt
para que podamos cambiar algunas configuraciones.
Cambie la sección de almacenamiento en la configuración de
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"
aEjemplo de MySQL (haga clic para expandir)
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"
Ejemplo de SQLite (haga clic para expandir)
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"
Justo debajo de la sección de almacenamiento, debería haber una sección llamada
- class: org.dynmap.InternalClientUpdateComponent
que estaremos comentando.
Entonces se vería así:Antes (haga clic para expandir)
- 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
Después (haga clic para expandir)
# - 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
Inmediatamente después de hacer eso , eliminará los comentarios de la sección justo debajo.
Entonces se verá así.Antes (haga clic para expandir)
#- 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
Después (haga clic para expandir)
- 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
Ahora vamos a deshabilitar el servidor web interno ya que ya no lo necesitamos.
Busque disable-webserver
en el archivo de configuración y cambie el valor de false
a true
.
Vamos a cambiar algunas URL necesarias para que funcione el servidor web independiente de dynmap. Esta es la parte más importante con la que la mayoría de la gente ha tenido problemas, hasta donde yo sé.
Busque la sección url:
en el archivo de configuración. Debe tener un aspecto como este.Antes (haga clic para expandir)
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/"
Después del [Ejemplo de MySQL] (haga clic para expandir)
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="
Después de [Ejemplo de SQLite] (haga clic para expandir)
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="
Inicie el servidor de Minecraft, ¡PERO NO LO APAGUE TODAVÍA!
Compruebe y vea si hay algún problema con dynmap consultando el registro más reciente. Si no hay problemas, apague el servidor.
La razón principal por la que necesita iniciar y detener el servidor al final es porque Dynmap crea archivos de configuración para que los utilice el servidor web. Si cambió alguna configuración en configuration.txt
, entonces existe la posibilidad de que se modifiquen los archivos de configuración en plugins/dynmap/web
.
Si va a permitir que los usuarios inicien sesión en dynmap. ¡ DEFINITIVAMENTE debe instalar un certificado SSL o usar el proxy de cloudflare para hacer que las credenciales de inicio de sesión sean seguras de los malos!
¡Ahora vamos al asunto serio!
A continuación se muestran algunas opciones:
Opción 1 : puede vincular el servidor web a la carpeta web de dynmap en la carpeta del complemento (más fácil)
Opción 2 : Copie la carpeta web en una ubicación diferente en el servidor (más segura)
Única opción : Su única opción es copiar la carpeta web al servidor que tiene el servidor web.
Si está utilizando un servidor web como hostgator, namecheap, 000webhost, etc. Su única opción es copiar la carpeta web al servidor web.
No agregaré detalles sobre cómo hacer esto, ya que hay demasiados servidores web que cubrir.
Antes de pasar a las siguientes secciones con las opciones de configuración. Cubriremos la configuración general de los servidores web NGINX.
Si instaló un servidor web NGINX nuevo. Queremos eliminar la configuración predeterminada del sitio web y agregar nuestra propia configuración. Si ya tiene un NGINX antes de este tutorial y sabe lo que está haciendo. Vaya a la siguiente sección con opciones sobre cómo debe configurarse el sitio web de dynmap.
La configuración predeterminada generalmente se encuentra en /etc/nginx/sites-available/
y /etc/nginx/sites-enabled
.
Desea hacer una copia del predeterminado ya que lo usaremos.
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/dynmap
Ahora elimine la configuración predeterminada de sites-enabled
para deshabilitar la configuración predeterminada del sitio y reiniciar el servidor web nginx
sudo rm /etc/nginx/sites-enabled/default
sudo service nginx restart
Si está alojando su propio servidor web NGINX en el mismo servidor que el servidor de Minecraft. ¡Esta es la sección adecuada para ti!
Nota
Asegúrese de seguir la configuración general con NGINX antes de continuar con este tutorial
Si desea configurar el servidor web de forma fácil (pero no demasiado segura). ¡Esta es la opción adecuada para ti! Pero aún así te recomiendo encarecidamente que sigas la opción 2, ya que es una opción más segura que la opción 1.
Pros:
Contras:
Comience a editar el archivo de configuración de dynmap en /etc/nginx/sites-available/dynmap
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
El archivo de configuración debería verse así. Cambia los valores en la configuración a tu gusto.
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;
}
}
Ejemplo:
root /home/someuser/minecraft/servers/creative/plugins/dynmap/web;
Si desea configurar el servidor web de la manera más segura. ¡Esta es la opción adecuada para ti!
Pros:
Contras:
Copie los archivos web de dynmap en una ubicación diferente
sudo cp -r /home/<USERNAME>/<MINECRAFTSERVER>/plugins/dynmap/web/ /var/www/dynmap/
Ejemplo:
sudo cp -r /home/MyUsername/minecraft/servers/creative/plugins/dynmap/web/ /var/www/dynmap/
Comience a editar el archivo de configuración de dynmap en /etc/nginx/sites-available/dynmap
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
El archivo de configuración debería verse así. Cambia los valores en la configuración a tu gusto.
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;
}
}
Después de seguir los pasos de la Opción 1/2. Vamos a hacer un acceso directo a la configuración del servidor web dynmap y ponerlo en una carpeta.
ln -s /etc/nginx/sites-available/dynmap /etc/nginx/sites-enabled/dynmap
¡Asegúrese de que los archivos de configuración estén libres de errores!
nginx -t -c /etc/nginx/sites-available/dynmap
y reinicie el servidor si no hay problemas.
sudo service nginx restart
¡Y eso debería ser todo!
Coloque la ip del servidor web en su navegador web, debería ver dynmap. Como estará vacío, puede comenzar a renderizar mosaicos uniéndose al servidor y ejecutando el comando /dynmap fullrender <worldname>
Si está alojando su propio servidor web NGINX en un servidor diferente al servidor que aloja el servidor de Minecraft. ¡Esta es la sección adecuada para ti!
Nota
Pros:
Contras:
Copie los archivos web de dynmap en una ubicación diferente
Ejecute este comando en el servidor que aloja el servidor de Minecraft. Este comando copiará la carpeta del servidor de Minecraft al servidor web. Le pedirá la contraseña del servidor web.
sudo scp -r /home/<USERNAME>/<MINECRAFTSERVER>/plugins/dynmap/web <WEBSERVER_USERNAME>@<WEBSERVER_IP>:/var/www/dynmap
Ejemplo:
sudo scp -r /home/SomeUserName1/minecraft/servers/creative/plugins/dynmap/web [email protected]:/var/www/dynmap
Comience a editar el archivo de configuración de dynmap en /etc/nginx/sites-available/dynmap
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
El archivo de configuración debería verse así. Cambia los valores en la configuración a tu gusto.
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;
}
}
Después de seguir los pasos. Vamos a hacer un acceso directo a la configuración del servidor web dynmap y ponerlo en una carpeta.
ln -s /etc/nginx/sites-available/dynmap /etc/nginx/sites-enabled/dynmap
¡Asegúrese de que los archivos de configuración estén libres de errores!
nginx -t -c /etc/nginx/sites-available/dynmap
y reinicie el servidor si no hay problemas.
sudo service nginx restart
¡Y eso debería ser todo!
Coloque la ip del servidor web en su navegador web, debería ver dynmap. Como estará vacío, puede comenzar a renderizar mosaicos uniéndose al servidor y ejecutando el comando /dynmap fullrender <worldname>
Si está utilizando un proveedor de alojamiento web, ya que no desea configurar uno usted mismo. ¡Esta es la sección adecuada para ti!
Copie los archivos del servidor de Minecraft en una carpeta en su computadora. Los archivos que va a copiar deben estar en plugins/dynmap/web
en el servidor de Minecraft.
Copie los archivos a su servidor web preferiblemente en un nuevo directorio a menos que sea un servidor web dynmap dedicado.
¡Si, en serio! Ya terminaste.
Si instaló su propio servidor web NGINX, puede seguir esta parte del tutorial adicional para hacer que su servidor web sea seguro con los inicios de sesión de dynmap. SIEMPRE DEBE manejar las credenciales del usuario con cuidado si habilita los inicios de sesión con Dynmap.
Puede seguir una de las tres opciones para hacer que su servidor web sea seguro
Puede seguir estas instrucciones del sitio web de certbot. Es la forma más sencilla de obtener un certificado SSL para un sitio web.
Como nota, las certificaciones de certbot caducan más rápido que otros proveedores, pero tienen una forma automatizada de renovar sus certificaciones si sigue sus instrucciones sobre cómo hacerlo.
Como alternativa, puede obtener un certificado SSL de un proveedor diferente, como NameCheap. Descargue la certificación pública y la clave privada del proveedor. NUNCA DEBE COMPARTIR LA CLAVE PRIVADA CON OTRA PERSONA NI HACERLA PÚBLICA . Es estrictamente para su servidor web y no debería estar solo en juego.
Coloque el archivo de certificación en /etc/ssl/certs/<certification_file>.pem
y coloque la clave privada en /etc/ssl/private/<private_key_file>.pem
Haga una copia de seguridad de la configuración del sitio web antes de realizar cambios
sudo cp /etc/nginx/sites-available/dynmap /etc/nginx/sites-available/dynmap_BACKUP
Si hace un oopsie y necesita revertir, ejecute este comando
sudo cp /etc/nginx/sites-available/dynmap_BACKUP /etc/nginx/sites-available/dynmap
En la configuración del sitio web de NGINX, observe las diferencias entre su configuración actual y agregue los cambios que ve en esta configuración de ejemplo.
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;
}
}
Entonces solo necesita reiniciar el servidor web NGINX.
sudo service nginx restart
Vaya a su sitio web dynmap y ahora debería ser seguro.
Lo bueno del proxy de Cloudflare es que tiene una certificación especial que es solo para comunicarse entre su servidor web y sus servicios. También puede dejar que la certificación dure hasta 15 años. Sin embargo, es solo una alternativa a tener una certificación SSL "real".
Primero, inicie sesión en cloudflare y vaya al dominio con el que desea configurar el proxy. Luego vaya a la sección "SSL / TLS"
En la sección Origin Certificates
, haga clic en "Crear certificado".
Seleccione Let Cloudflare generate a private key and a CSR
y establezca Private key type
en ECDSA
Agregue el nombre map.YOURDOMAIN.com
host
Establezca la validez del certificado como desee (¿15 años suena bien, amirite?).
Haga clic en siguiente y debería ver un certificado SSL nuevo y una clave privada en su pantalla. Ahora vamos a copiar el texto y pegarlo en un archivo a través de la terminal.
Primero, creemos un archivo de certificado y peguemos el texto. El texto debe comenzar con -----BEGIN CERTIFICATE-----
y terminar con -----END CERTIFICATE-----
sudo nano /etc/ssl/certs/dynmap_cert.pem
OR
sudo vi /etc/ssl/certs/dynmap_cert.pem
A continuación, creemos un archivo de clave privada y peguemos el texto. El texto debe comenzar con -----BEGIN PRIVATE KEY-----
y terminar con -----END PRIVATE KEY-----
sudo nano /etc/ssl/private/dynmap_private_key.pem
OR
sudo vi /etc/ssl/private/dynmap_private_key.pem
Ahora vamos a editar la configuración del sitio web de NGINX. Haga una copia de seguridad de la configuración del sitio web antes de realizar cambios
sudo cp /etc/nginx/sites-available/dynmap /etc/nginx/sites-available/dynmap_BACKUP
Si hace un oopsie y necesita revertir, ejecute este comando
sudo cp /etc/nginx/sites-available/dynmap_BACKUP /etc/nginx/sites-available/dynmap
En la configuración del sitio web de NGINX, observe las diferencias entre su configuración actual y agregue los cambios que ve en esta configuración de ejemplo.
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;
}
}
Entonces solo necesita reiniciar el servidor web NGINX.
sudo service nginx restart
Vaya a su sitio web dynmap y ahora debería ser seguro.
¿Cómo hago Linux?
Muy cuidadosamente.
Pero aquí está la respuesta seria.
Puede conectarse a su servidor Linux con algo popular como PuTTY o cualquier otro cliente SSH de su elección. Puede iniciar sesión en la terminal si tiene el usuario / contraseña.
Puede encontrar fácilmente guías / tutoriales sobre cómo usar Linux en Internet. ¡Pero siempre debe verificar lo que hace un comando antes de ejecutarlo!Mi sitio web no aparece (NGINX)
Asegúrese de que el puerto de su sitio web esté reenviado.
El puerto predeterminado sería 80, pero si siguió el tutorial sobre la instalación de una certificación SSL, el puerto sería 443.
Pero si eso no funciona, verifique si NGINX se está ejecutando ejecutando el comando
sudo service nginx status
y debería decirle qué podría estar mal. También puede probar el archivo de configuración ejecutando el comando
nginx -t -c /etc/nginx/sites-available/dynmap
¡No veo ninguna imagen en el sitio web de dynmap!
Desde que comenzamos con una nueva base de datos nueva sin ningún dato en ella. Puede llevar algún tiempo ver las imágenes en dynmap.
Puedes ejecutar el comando en el juego para renderizar completamente un mundo si quieres /dynmap fullrender <worldname>
¿Cómo es que no hay un tutorial con Windows o Apache?
Decidí no cubrir la configuración de un servidor web independiente con Windows o Apache, ya que la mayoría de la gente va a utilizar Linux y NGINX hoy en día. Pero si hay suficientes personas preguntando, podría cubrir ventanas y / o apacheCambié de opinión, ¿puedo volver a convertir de SQL?
Sí, debería poder volver a convertir al método anterior si creó un archivo de respaldo configuration.txt.backup
de los pasos anteriores.
Simplemente elimine configuration.txt
y cambie el nombre de configuration.txt.backup
a configuration.txt
y estará listo.¿Por qué?
¿Porque, porque no?
Hay más posibilidades cuando dynmap usa sql. Sería más rápido hacer una copia de seguridad, las personas aún pueden usar el sitio web dynmap incluso si el servidor está inactivo, ¡y más!¿Sigue mostrando iconos de jugador y / o chat?
Sí, el ícono del reproductor aún debería estar actualizado en la página web.
El chatbox también debería funcionar bien.
Tenga en cuenta que los usuarios de dynmapforge no tendrán un directorio plugins/dynmap/web
. Por ejemplo, en uno de mis servidores hay:
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
(Estoy filtrando dynmap / web / tiles / porque tengo 1500 directorios allí ...)
Probaría esto yo mismo, pero mis servicios nginx y minecraft están en máquinas diferentes. : sweat_smile:
Seguí esto, pero sin suerte. Tengo Apache en el mismo servidor que dynmap y moví la carpeta web allí. Aunque no hay ningún error en la consola, si navego a la URL, solo muestra un fondo negro. También estoy usando SQLite, que ya fue renderizado. ¿Me he perdido algo quizás?
¿Quizás verifique la consola de su navegador para buscar errores y / o solicitudes fallidas?
@miiichael
Sí, el gran problema al pasar del sistema de archivos a una base de datos es que dynmap no importa los mosaicos a una base de datos. Por lo tanto, perdería todo su progreso de renderizado. Todavía es posible colocar el servidor web en una máquina diferente del servidor de Minecraft, pero requiere que uses mysql en lugar del sistema de archivos.
@MrLogano
Es porque Apache no puede encontrar el archivo de base de datos SQLite porque no está en la carpeta web. Probablemente sea mejor que apunte Apache a la carpeta web que está en la carpeta dynmap en lugar de copiar la carpeta web a una ubicación diferente. O edite manualmente los archivos php (de la carpeta web copiada) para obtener el archivo db SQLite desde una ubicación diferente.
Escribiré un tutorial más detallado una vez que tenga algo de tiempo libre, ya que estoy bastante ocupado en el cajero automático.
@haloflooder
El archivo php "dynmap_access" se vincula al archivo de base de datos SQLite en el directorio dynmap. Lo intenté unas cuantas veces más, y cada vez que cambio la sección de URL en la configuración, obtengo una página completamente en blanco. Dejando eso fuera, el árbol de archivos funciona bien, pero apuntarlo al SQLite arroja un error 500. Verificar el registro de Apache dice que algo no puede abrir el archivo de la base de datos, y muestra un error en la línea 79 en SQLite_tiles.php. También cambié los permisos a 775, sin suerte.
Sigo su tutorial, pero la página web decía "No se pudo recuperar la configuración: Error interno del servidor"
¿Como lo puedo hacer?
Tengo el mismo problema que @gundami. Una investigación más profunda revela este mensaje de error en /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 ¿Ha encontrado una solución? Perdón por la respuesta tardía, he estado increíblemente ocupado durante los últimos meses.
@gundami @ ads103 ¿Puede proporcionar la configuración de dynmap en pastebin? No olvide censurar cualquier información confidencial como las credenciales de mysql.
¡Seguro! Aquí tienes: https://pastebin.com/1xQ2Unjb
@ ads103 Acabo de notar que su registro de acceso dice http://dragonmc/
. ¿Qué tienes en tu configuración de nginx?
Dado que también ha pasado un tiempo desde la actualización de dynmap. Instalaré una nueva versión en dynmap en mi servidor de prueba y seguiré mi propia guía para ver si algo ha cambiado desde septiembre.
Sí, dragonmc es el nombre de host de mi servidor de Minecraft. Lo tengo en un servidor DNS local, así que puedo escribir "dragonmc" en mi navegador web y buscarlo. Aquí está mi configuración de apache y el directorio en el que copié mis archivos dynmap.
https://pastebin.com/NQ8fNjqa
@ ads103 Supongo que su servidor también está alojado localmente en su red.
¡Sí! Eso es correcto. ¡Todo está a solo una IP local de distancia!
@haloflooder , ¿tuvo la oportunidad de instalar una nueva versión en su servidor de prueba?
Desafortunadamente, no conozco javascript. Puedo ver que esta función está generando este mensaje de error en map.js
, pero no puedo encontrar dónde se asigna un valor a la variable "configuration"
.
`function DynMap (opciones) {
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 Lo siento, he estado ocupado con el trabajo desde que tuve que cumplir una fecha límite para algo. La configuración proviene de MySQL_configuration.php de forma independiente.
¿Copió los archivos web al servidor web después de permitir que dynmap cambiara los valores de configuración con la configuración modificada?
Sí, lo hice. Incluso vi que el tráfico de red hacia mi servidor de base de datos aumentaba a medida que comenzaba a renderizarse, por lo que los valores de configuración son al menos lo suficientemente correctos para obtener mosaicos _en_ la base de datos.
He aquí una pregunta. En la guía, incluyó estas instrucciones para copiar el contenido de la carpeta web
al servidor web:
sudo cp -r /home/MyUsername/minecraft/servers/creative/plugins/dynmap/web/ /var/www/dynmap/
¿Tenía la intención de copiar la carpeta web
en la carpeta dynmap
, _o_ el _contenido_ de la carpeta web
carpeta dynmap
?
@ ads103 Oooo, esa es una buena captura. Debería haber leído los comandos de Linux después de trabajar en la guía durante aproximadamente 12 horas.
Quería poner un comando para copiar el contenido de la carpeta web en la carpeta del servidor web dynmap. Hoy repasaré mi propia guía con la versión más reciente de dynmap.
¿Alguna actualización sobre la configuración de acceso de MySQL? Después de seguir esta guía a la T e intentar acceder al mapa, aparece una pantalla negra y el error "No se pudo recuperar la configuración: Puerta de enlace incorrecta".
EDITAR: Soy un idiota y olvidé instalar php, todo está bien
En primer lugar, ¡guía increíble! He estado tratando de encontrar algo como esto por un tiempo. Sin embargo, tengo el mismo problema que @WearisomelyVerbose donde solo recibo un mensaje que dice "No se pudo recuperar la configuración: Puerta de enlace incorrecta"
Algo de información sobre mi compilación: Mi servidor de Minecraft está en un servidor separado y usa un servidor Mysql para almacenar todo. Me aseguré de copiar el directorio / web de Dynmap después de cambiar las configuraciones y reiniciar el servidor.
Una cosa que sí noté, cada vez que pruebo el archivo Dynmap.conf en Nginx, aparece este error:
sudo nginx -t -c / etc / nginx / sites-available / dynmap
nginx: [emerg] la directiva "servidor" no está permitida aquí en / etc / nginx / sites-available / dynmap: 2
nginx: la prueba del archivo de configuración / etc / nginx / sites-available / dynmap falló
@ ads103 @gundami
Creo que tengo el mismo error: "No se pudo recuperar la configuración: error" después de abrir el mapa en el servidor web.
Para mí, cambiar el archivo "... \ standalone \ MySQL_config.php" en el servidor web resolvió el problema:
...
$ dbhost = 'localhost';
...
en lugar de la dirección IP. Pero no conozco los detalles, ojalá ayude a alguien.
Mi configuración por cierto es 2 Raspberry Pis. RP4B (4GB) aloja Minecraft (entre otros servicios) y RP3B + aloja DynMap (Apache + SQL)
¡¡Gracias por el gran tutorial!! :)
Pude resolver mis problemas.
Los míos, al menos, eran bastante simples en retrospectiva. Me faltaban dependencias.
Específicamente, me faltaba php-json y php-mysqlnd. (Estoy en un sistema Fedora 31 y los nombres de los paquetes de Ubuntu son un poco diferentes).
Descubrí que me faltaban estos paquetes al darme cuenta de que php-fpm era una aplicación separada con sus propios archivos de registro ubicados en /var/log/php-fpm
. La comprobación de www-error.log reveló estas dos líneas de registro:
[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
Una búsqueda rápida en Google de las funciones json_decode()
y mysqli_connect()
me lleva a estos dos paquetes faltantes. Después de instalarlos y actualizar Dynmap en mi navegador, ... simplemente funcionó. Simplemente funcionó.
¡Gracias por el tutorial! Pude migrar mis 2 servidores Forge a la configuración del servidor web independiente. Y me gustaría señalar algunas cosas:
Forge no incluye el controlador JDBC para MySQL (como lo hacen Bukkit y Cauldron). Debe obtenerlo de https://mvnrepository.com/artifact/mysql/mysql-connector-java y colocarlo en el directorio de mods. Vea el n. ° 1674.
Sería mejor mencionar en el tutorial que /etc/nginx/sites-available/
y /etc/nginx/sites-enabled
solo existen en las implementaciones nginx de Debian / Ubuntu. En la implementación ascendente, el único archivo de configuración es /etc/nginx/nginx.conf
.
Recomendaría no usar MySQL para el almacenamiento de mapas, a menos que tenga hardware dedicado que actúe como servidor MySQL. Tengo 2 servidores Forge ejecutándose en mi servidor doméstico. El configurado con MySQL tiene una sobrecarga significativamente mayor de CPU, RAM y E / S de disco debido a las transacciones con la base de datos. De hecho, MySQL no fue diseñado para almacenar BLOB, que constituyen casi todo el almacenamiento de mapas de dynmap. Al usar MySQL como almacenamiento de mapas, las transacciones SQL consumen ciclos adicionales de CPU. Y debido a que dynmap almacena datos de mapas como BLOB de imágenes, el uso de MySQL en realidad da como resultado un rendimiento mucho peor que el almacenamiento de archivos, como se observa en mi servidor doméstico. Consulte también https://stackoverflow.com/questions/5285857/when-is-using-mysql-blob-recommended
¿Adivina qué tipo de base de datos se diseñó para almacenar una gran cantidad de BLOB? ¡El sistema de archivos! Me gustaría proponer editar el tutorial para recomendar el almacenamiento de archivos nginx + php-fpm +. Para un servidor web independiente con almacenamiento de archivos, la sección url:
debe cambiarse así:
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/'
¡Otro gracias @haloflooder por hacer el tutorial! Yo también migré y funciona bien.
También encontré útil la configuración amablemente compartida por Frumple para el servidor MRT: https://github.com/Frumple/mrt-docker-services/blob/master/containers/dynmap-main/docker-compose.yml
@ database64128 Gracias por la información sobre los archivos de configuración json. Sin embargo, una enmienda: los archivos de configuración json solo se crean si login-enabled: false
se establece dentro del archivo configuration.txt de Dynmap.
¿Bicho? ¿Intencional? No sé. Más información sobre el problema que creé aquí: https://github.com/webbukkit/dynmap/issues/2848.
¡Pensé en mencionarlo aquí porque me tomó mucho tiempo rastrear por qué no se estaban creando los archivos de configuración json!
Tengo el problema de la pantalla negra que describió @MrLogano . Estoy usando MySQL y nginx en un servidor separado. Estoy realizando una reproducción completa en este momento y puedo ver el recuento de filas en la tabla "Tiles" en MySQL creciendo, así que sé que se está conectando a MySQL sin problemas.
En la consola del navegador, veo los siguientes errores:
El script de " https: //REDACTED/standalone/config.js? _ = 3.0-beta-10-257 " se cargó aunque su tipo MIME ("text / html") no es un tipo MIME de JavaScript válido.
Error al cargar el
Descubrí cuál era mi problema. El nombre de host que usé para el servidor MySQL se pudo resolver desde mi servidor Minecraft pero no desde mi servidor nginx. Cambié el nombre de host a algo que se pudiera resolver desde ambos y ahora está funcionando.
Bueno, tengo un servidor de Minecraft alojado en un host y un sitio web alojado en otro host (que usa apache y no admite proxies inversos) ¿Cómo configuro un dynmap en mi sitio web sin iframe? porque no veo ningún tutorial para eso
@ alex17lol Esta guía no utiliza un proxy inverso. Debería poder usar su propia configuración de Apache en lugar de las configuraciones de Nginx sugeridas aquí.
@ alex17lol Esta guía no utiliza un proxy inverso. Debería poder usar su propia configuración de Apache en lugar de las configuraciones de Nginx sugeridas aquí.
No tengo acceso a los comandos de sudo, uso un servidor web, ese es mi problema
_ ¿Alguien puede agregar esto a la wiki? _
¡Muchas gracias por hacer esto!
SELinux puede causar todo tipo de dolor. Los más obvios son los que bloquean por completo todo acceso al contenido web. Estos aparecen en el registro de errores del servidor web. Pueden aparecer problemas más sutiles en el registro de errores de php-fpm. Después de lidiar con todos los errores en el registro del servidor web, todavía tenía problemas con la pantalla negra y la temida falla al leer la configuración. Por ejemplo:
[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;
Lo que solucionó este rompecabezas final para mí fue:
# setsebool -P httpd_can_network_connect_db=1
Encontré que rsync
es MUCHO más rápido que scp -r
. scp
avanzaba pesadamente a un ritmo abismalmente lento, así que lo maté a 300 MB más o menos y luego usé el siguiente comando en su lugar. 2 TB se transfirieron increíblemente rápido en comparación con el intento de scp
. Hice rsync
bastantes veces mientras trataba de resolver problemas, y rsync
actualicé sin enviar todo el lío cada vez.
rsync -cavzAX me@$VPS:/path/to/plugins/dynmap/web/ /path/to/web/dynmap/
¿Alguien ha probado esto con una base de datos DB2 todavía?
Realmente me vendría bien un poco de ayuda con este problema ^^^ # 3125. ¿Alguien puede ayudar con este problema? Revisé esta guía tres veces. Empezó desde cero varias veces. He probado varias soluciones de alojamiento, pero siempre tengo el mismo problema. Probé algunas de las soluciones señaladas en los comentarios, pero al final no fueron útiles.
También probé la discordia pero no obtuve respuesta varias veces.
@arkD Afortunadamente, revisaré esta guía en las próximas semanas, ya que estoy configurando otra configuración independiente pero usando la última versión de vanguardia de Dynmap para 1.16.3 que aún no se ha publicado públicamente en la página de spigot. una actualización.
No funcionaba para mí, tuve que habilitar php en NGINX usando esta guía
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04
Ahora el error "No se pudo recuperar la configuración" dejó de aparecer, pero todavía aparece una pantalla negra , sin barra lateral, sin reloj. 😢
DB está configurado para sqlite y todo estaba funcionando y renderizado antes de comenzar la guía
Además: tengo este error en la consola. Es muy probable que esté relacionado
Comentario más útil
¡Gracias por el tutorial! Pude migrar mis 2 servidores Forge a la configuración del servidor web independiente. Y me gustaría señalar algunas cosas:
Forge no incluye el controlador JDBC para MySQL (como lo hacen Bukkit y Cauldron). Debe obtenerlo de https://mvnrepository.com/artifact/mysql/mysql-connector-java y colocarlo en el directorio de mods. Vea el n. ° 1674.
Sería mejor mencionar en el tutorial que
/etc/nginx/sites-available/
y/etc/nginx/sites-enabled
solo existen en las implementaciones nginx de Debian / Ubuntu. En la implementación ascendente, el único archivo de configuración es/etc/nginx/nginx.conf
.Recomendaría no usar MySQL para el almacenamiento de mapas, a menos que tenga hardware dedicado que actúe como servidor MySQL. Tengo 2 servidores Forge ejecutándose en mi servidor doméstico. El configurado con MySQL tiene una sobrecarga significativamente mayor de CPU, RAM y E / S de disco debido a las transacciones con la base de datos. De hecho, MySQL no fue diseñado para almacenar BLOB, que constituyen casi todo el almacenamiento de mapas de dynmap. Al usar MySQL como almacenamiento de mapas, las transacciones SQL consumen ciclos adicionales de CPU. Y debido a que dynmap almacena datos de mapas como BLOB de imágenes, el uso de MySQL en realidad da como resultado un rendimiento mucho peor que el almacenamiento de archivos, como se observa en mi servidor doméstico. Consulte también https://stackoverflow.com/questions/5285857/when-is-using-mysql-blob-recommended
¿Adivina qué tipo de base de datos se diseñó para almacenar una gran cantidad de BLOB? ¡El sistema de archivos! Me gustaría proponer editar el tutorial para recomendar el almacenamiento de archivos nginx + php-fpm +. Para un servidor web independiente con almacenamiento de archivos, la sección
url:
debe cambiarse así: