Je n'ai pas vu d'instructions claires sur l'exécution d'un serveur autonome avec MySQL/SQLite. La page wiki expliquant comment configurer le serveur Web autonome est également obsolète de loin.
Après quelques heures à piquer sur dynmap. Voici un tutoriel sur la façon de faire fonctionner le serveur Web autonome sur NGINX sur un serveur * nix.
ATTENTION
Suivre ce guide réinitialisera toutes les données si vous n'utilisez _actuellement pas_ une base de données SQL avec dynmap.
L'utilisation de MySQL avec Dynmap n'est pas entièrement testée par la communauté.
Ce tutoriel suppose que vous connaissez un peu Linux. Si vous ne savez pas utiliser Linux, il n'est jamais trop tard pour apprendre !
Si vous utilisez un "hôte de serveur minecraft". Dans la plupart des cas, vous ne pourrez pas configurer un serveur Web autonome avec votre hôte de serveur minecraft. Vous devrez obtenir un hébergeur de site Web ou un vps pour héberger un serveur Web autonome pour Dynmap.
Je vous recommande fortement d'utiliser MySQL au lieu de SQLite si vous avez le choix. Cela peut nécessiter quelques étapes supplémentaires, mais regardez du bon côté. Vous pouvez utiliser MySQL avec d'autres plugins :)
Ce tutoriel nécessite également que vous utilisiez sudo. Si vous n'avez pas de perm sudo, vous n'avez pas de chance ou vous pouvez louer un VPS.
Si vous me donnez la permission de modifier le wiki. Je serai ravi d'apporter une contribution au wiki sur la façon de configurer un serveur Web autonome et de le maintenir ;)
Je explique comment faire fonctionner le serveur Web autonome avec le proxy de cloudflare, qui est totalement facultatif. Ceci est FORTEMENT recommandé si vous voulez permettre aux utilisateurs de se connecter au site Web dynmap. Si vous souhaitez installer un certificat SSL avec certbot à la place, ne suivez pas cette partie du didacticiel bonus.
Je vais également expliquer comment installer un certificat SSL sur le serveur Web NGINX avec certbot ou un autre fournisseur qui est complètement facultatif. Ceci est FORTEMENT recommandé si vous voulez permettre aux utilisateurs de se connecter au site Web dynmap. Si vous souhaitez utiliser le proxy cloudflare à la place, ne suivez pas cette partie du didacticiel bonus.
Avantages:
Les inconvénients:
Nous couvrirons les choses suivantes
Pour commencer, vous devez installer un serveur Web sur le serveur sur lequel vous souhaitez héberger le site Web autonome dynmap. Cette partie du didacticiel couvre également l'installation de MySQL sur le serveur.
Si vous souhaitez utiliser SQLite pour une raison quelconque, vous pouvez simplement installer NGINX sans MySQL/MariaDB. MAIS NGINX doit être sur le même serveur où le serveur minecraft est hébergé.
Si vous utilisez un hébergeur de site Web ou un hébergeur minecraft. Voir les notes sous les liens du didacticiel.
Vous devez généralement installer MySQL sur le même serveur que le serveur minecraft. Vous pouvez utiliser le même serveur MySQL avec des plugins qui utilisent MySQL. MySQL sera utilisé par le plugin Dynmap pour enregistrer/charger des données que le serveur Web lira/écrira également.
Généralement, il y a plus d'avantages si le serveur MySQL/MariaDB est sur le même serveur/réseau que le serveur minecraft car la latence serait plus faible
Il existe d'innombrables tutoriels sur la configuration de nginx/MySQL/MariaDB sur Internet. Voici quelques liens de tutoriels sur leur configuration avec certains systèmes d'exploitation Linux.
Ne vous inquiétez pas si le tutoriel vous dit d'installer MariaDB car c'est à peu près la même chose que MySQL.
Testez pour voir si votre serveur Web sert une page Web en insérant l'adresse IP de votre serveur Web dans votre navigateur Web. Si rien ne s'affiche, votre pare-feu bloque peut-être le port ou vous n'avez pas démarré le serveur nginx.
Maintenant, pour configurer le serveur MySQL/MariaDB.
Il est recommandé de créer un nouvel utilisateur/mot de passe avec des autorisations limitées pour chaque application.
Si vous configurez un serveur Web externe, vous pouvez également configurer un pare-feu (iptables/firewalld/ufw/etc) pour autoriser uniquement le serveur Web à se connecter à la base de données.
En utilisant un terminal sur le serveur qui héberge le serveur minecraft, nous allons créer une nouvelle base de données et ajouter des utilisateurs de base de données.
mysql -u root -p
[Enter mysql root password if there is one]
mysql> CREATE DATABASE <dynmap_database_name>;
mysql> exit
Exemple (cliquez pour agrandir)
mysql -u root -p
[Enter mysql root password if there is one]
mysql> CREATE DATABASE MyDynmapDatabase;
mysql> exit
Remarque
Si le serveur MySQL est sur le même serveur que le serveur minecraft. <minecraftserver_ip>
devrait juste être 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
Exemple si le serveur web et le serveur minecraft sont sur le même serveur (cliquez sur moi pour développer)
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 vous avez fait un oopsie et que vous devez supprimer l'utilisateur mysql. C'est ainsi que vous supprimez un utilisateur.
mysql> DROP USER '<user_to_delete>'@'<ip_you_used>';
Après avoir créé un nouvel utilisateur, essayez de vous connecter à l'utilisateur. (après vous être déconnecté de l'utilisateur root mysql via "exit")
mysql -u <webserver_user> -p
[Enter user password]
mysql> exit
MySQL a ces autorisations disponibles pour les utilisateurs MySQL.
Maintenant, modifiez certains paramètres dans la configuration du plugin.
Installez la dernière version de dynmap sur le serveur. La dernière version devrait toujours fonctionner avec la version minecraft de 1.10 à 1.14
Allumez le serveur minecraft puis arrêtez le serveur. Il devrait y avoir un nouveau dossier appelé dynmap
dans le dossier plugins
.
FAIRE UNE SAUVEGARDE du fichier configuration.txt
! Faites simplement une copie et nommez-la quelque chose comme configuration.txt.backup
.
Ouvrez le fichier de configuration configuration.txt
afin que nous puissions modifier certains paramètres.
Modifiez la section de stockage dans la configuration 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"
àExemple MySQL (Cliquez pour développer)
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"
Exemple SQLite (Cliquez pour développer)
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"
Juste sous la section de stockage, il devrait y avoir une section appelée
- class: org.dynmap.InternalClientUpdateComponent
que nous allons commenter.
Donc ça ressemblerait à ça :Avant (cliquez pour agrandir)
- 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
Après (cliquez pour agrandir)
# - 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
Juste après cela , vous décommenterez la section juste en dessous.
Donc ça ressemblera à ça.Avant (cliquez pour agrandir)
#- 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
Après (cliquez pour agrandir)
- 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
Nous allons maintenant désactiver le serveur Web interne car nous n'en avons plus besoin.
Recherchez disable-webserver
dans le fichier de configuration et modifiez la valeur de false
à true
.
Nous allons modifier certaines URL nécessaires au fonctionnement du serveur Web autonome dynmap. C'est l'énorme partie avec laquelle la plupart des gens ont eu des problèmes pour autant que je sache.
Recherchez la section url:
dans le fichier de configuration. Ça devrait ressembler à ça.Avant (cliquez pour agrandir)
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/"
Après [Exemple MySQL] (cliquez pour développer)
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="
Après [Exemple SQLite] (cliquez pour développer)
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="
Démarrez le serveur minecraft MAIS NE LE DÉSACTIVEZ PAS ENCORE !
Vérifiez et voyez s'il y a des problèmes avec dynmap en consultant le dernier journal. S'il n'y a pas de problèmes, éteignez le serveur.
La principale raison pour laquelle vous devez démarrer et arrêter le serveur à la toute fin est que Dynmap crée des fichiers de configuration à utiliser par le serveur Web. Si vous avez modifié des paramètres dans configuration.txt
, il est possible que les fichiers de configuration dans plugins/dynmap/web
soient modifiés.
Si vous autorisez les utilisateurs à se connecter à dynmap. Vous devez CERTAINEMENT installer un certificat SSL ou utiliser le proxy de cloudflare pour sécuriser les informations de connexion contre les méchants !
Passons maintenant aux choses sérieuses !
Voici quelques options :
Option 1 : Vous pouvez lier le serveur web au dossier web dynmap dans le dossier plugin (plus simple)
Option 2 : Copiez le dossier Web vers un autre emplacement sur le serveur (plus sécurisé)
Seule option : votre seule option est de copier le dossier Web sur le serveur qui possède le serveur Web.
Si vous utilisez un hébergeur tel que hostgator, namecheap, 000webhost, etc. Votre seule option est de copier le dossier web sur l'hébergeur.
Je n'ajouterai pas de détails sur la façon de procéder, car il y a trop d'hébergeurs Web à couvrir.
Avant de passer aux sections suivantes avec les options de configuration. Nous couvrirons la configuration générale des serveurs Web NGINX.
Si vous avez installé un nouveau serveur Web NGINX. Nous voulons supprimer la configuration de site Web par défaut et ajouter notre propre configuration. Si vous possédez déjà un NGINX avant ce tutoriel et savez ce que vous faites. Passez à la section suivante avec des options sur la configuration du site Web dynmap.
La configuration par défaut est généralement située à /etc/nginx/sites-available/
et /etc/nginx/sites-enabled
.
Vous voulez faire une copie de la valeur par défaut puisque nous l'utiliserons.
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/dynmap
Supprimez maintenant la configuration par défaut de sites-enabled
pour désactiver la configuration du site par défaut et redémarrer le serveur Web nginx
sudo rm /etc/nginx/sites-enabled/default
sudo service nginx restart
Si vous hébergez votre propre serveur Web NGINX sur le même serveur que le serveur minecraft. Cette rubrique est faite pour vous !
Noter
Assurez-vous d'avoir suivi la configuration générale avec NGINX avant de continuer avec ce didacticiel
Si vous souhaitez configurer le serveur Web de manière simple (mais pas trop sécurisée). C'est la bonne option pour vous! Mais je vous recommande tout de même fortement de suivre l'option 2 car c'est une option plus sûre que l'option 1.
Avantages:
Les inconvénients:
Commencez à éditer le fichier de configuration dynmap dans /etc/nginx/sites-available/dynmap
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
Le fichier de configuration devrait ressembler à ceci. Modifiez les valeurs dans la configuration à votre guise
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;
}
}
Exemple:
root /home/someuser/minecraft/servers/creative/plugins/dynmap/web;
Si vous souhaitez configurer le serveur Web de la manière la plus sécurisée. C'est la bonne option pour vous!
Avantages:
Les inconvénients:
Copiez les fichiers Web dynmap vers un autre emplacement
sudo cp -r /home/<USERNAME>/<MINECRAFTSERVER>/plugins/dynmap/web/ /var/www/dynmap/
Exemple:
sudo cp -r /home/MyUsername/minecraft/servers/creative/plugins/dynmap/web/ /var/www/dynmap/
Commencez à éditer le fichier de configuration dynmap dans /etc/nginx/sites-available/dynmap
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
Le fichier de configuration devrait ressembler à ceci. Modifiez les valeurs dans la configuration à votre guise
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;
}
}
Après avoir suivi les étapes de l'option 1/2. Nous allons créer un raccourci de la configuration du serveur Web dynmap et le mettre dans un dossier.
ln -s /etc/nginx/sites-available/dynmap /etc/nginx/sites-enabled/dynmap
Assurez-vous que les fichiers de configuration sont sans erreur !
nginx -t -c /etc/nginx/sites-available/dynmap
et redémarrez le serveur s'il n'y a pas de problème.
sudo service nginx restart
Et ça devrait être ça !
Mettez l'adresse IP du serveur Web dans votre navigateur Web, vous devriez voir dynmap. Comme il va être vide, vous pouvez commencer à rendre les tuiles en rejoignant le serveur et en exécutant la commande /dynmap fullrender <worldname>
Si vous hébergez votre propre serveur Web NGINX sur un serveur différent de celui qui héberge le serveur minecraft. Cette rubrique est faite pour vous !
Noter
Avantages:
Les inconvénients:
Copiez les fichiers Web dynmap vers un autre emplacement
Exécutez cette commande sur le serveur qui héberge le serveur minecraft. Cette commande copiera le dossier du serveur minecraft sur le serveur Web. Il vous demandera le mot de passe du serveur Web.
sudo scp -r /home/<USERNAME>/<MINECRAFTSERVER>/plugins/dynmap/web <WEBSERVER_USERNAME>@<WEBSERVER_IP>:/var/www/dynmap
Exemple:
sudo scp -r /home/SomeUserName1/minecraft/servers/creative/plugins/dynmap/web [email protected]:/var/www/dynmap
Commencez à éditer le fichier de configuration dynmap dans /etc/nginx/sites-available/dynmap
sudo nano /etc/nginx/sites-available/dynmap
OR
sudo vi /etc/nginx/sites-available/dynmap
Le fichier de configuration devrait ressembler à ceci. Modifiez les valeurs dans la configuration à votre guise
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;
}
}
Après avoir suivi les étapes. Nous allons créer un raccourci de la configuration du serveur Web dynmap et le mettre dans un dossier.
ln -s /etc/nginx/sites-available/dynmap /etc/nginx/sites-enabled/dynmap
Assurez-vous que les fichiers de configuration sont sans erreur !
nginx -t -c /etc/nginx/sites-available/dynmap
et redémarrez le serveur s'il n'y a pas de problème.
sudo service nginx restart
Et ça devrait être ça !
Mettez l'adresse IP du serveur Web dans votre navigateur Web, vous devriez voir dynmap. Comme il va être vide, vous pouvez commencer à rendre les tuiles en rejoignant le serveur et en exécutant la commande /dynmap fullrender <worldname>
Si vous utilisez un hébergeur car vous ne voulez pas en créer un vous-même. Cette rubrique est faite pour vous !
Copiez les fichiers du serveur minecraft dans un dossier sur votre ordinateur. Les fichiers que vous allez copier doivent être dans plugins/dynmap/web
sur le serveur minecraft.
Copiez les fichiers sur votre hébergeur de préférence dans un nouveau répertoire, à moins qu'il ne s'agisse d'un hébergeur dédié à dynmap.
Ouais vraiment! Vous avez terminé.
Si vous avez installé votre propre serveur Web NGINX, vous pouvez suivre cette partie du didacticiel bonus pour sécuriser votre serveur Web avec des connexions dynmap. VOUS DEVEZ TOUJOURS manipuler les informations d'identification de l'utilisateur avec soin si vous activez les connexions avec Dynmap.
Vous pouvez suivre l'une des trois options pour sécuriser votre serveur Web
Vous pouvez simplement suivre ces instructions à partir du site Web de certbot. C'est le moyen le plus simple d'obtenir un certificat SSL pour un site Web.
À noter que les certifications de certbot expirent plus rapidement que celles des autres fournisseurs, mais ils disposent d'un moyen automatisé de renouveler vos certifications si vous suivez leurs instructions pour le faire.
Comme alternative, vous pouvez obtenir un certificat SSL auprès d'un autre fournisseur tel que NameCheap. Téléchargez la certification publique et la clé privée du fournisseur. VOUS NE DEVEZ JAMAIS PARTAGER LA CLÉ PRIVÉE AVEC UNE AUTRE PERSONNE OU LA RENDRE PUBLIQUE . Il est strictement réservé à votre serveur Web et ne devrait pas être uniquement à gagner.
Placer le dossier de certification dans /etc/ssl/certs/<certification_file>.pem
et placez la clé privée dans /etc/ssl/private/<private_key_file>.pem
Faites une sauvegarde de la configuration du site Web avant d'apporter des modifications
sudo cp /etc/nginx/sites-available/dynmap /etc/nginx/sites-available/dynmap_BACKUP
Si vous faites un oopsie et que vous devez revenir en arrière, exécutez cette commande
sudo cp /etc/nginx/sites-available/dynmap_BACKUP /etc/nginx/sites-available/dynmap
Dans la configuration du site Web NGINX, examinez les différences entre votre configuration actuelle et ajoutez les modifications que vous voyez dans cet exemple de configuration.
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;
}
}
Ensuite, il vous suffit de redémarrer le serveur Web NGINX.
sudo service nginx restart
Rendez-vous sur votre site Web dynmap et il devrait maintenant être sécurisé !
Une bonne chose à propos du proxy de Cloudflare est qu'ils ont une certification spéciale qui ne sert qu'à communiquer entre votre serveur Web et leurs services. Vous pouvez également laisser la certification durer jusqu'à 15 ans. Cependant, ce n'est qu'une alternative à une "vraie" certification ssl.
Tout d'abord, connectez-vous à cloudflare et accédez au domaine avec lequel vous souhaitez configurer le proxy. Rendez-vous ensuite dans la rubrique "SSL/TLS"
Dans la section Origin Certificates
, cliquez sur "Créer un certificat".
Sélectionnez Let Cloudflare generate a private key and a CSR
et réglez le Private key type
sur ECDSA
Ajoutez le nom d'hôte map.YOURDOMAIN.com
si vous souhaitez mettre le site Web dynmap sur map.YOURDOMAIN.com.
Réglez la validité du certificat sur ce que vous voulez (15 ans, ça sonne bien comme amirite ?).
Cliquez sur Suivant et vous devriez voir un nouveau certificat SSL et une clé privée sur votre écran. Maintenant, nous allons copier le texte et le coller dans un fichier via un terminal.
Créons d'abord un fichier de certificat et collez-le dans le texte. Le texte doit commencer par -----BEGIN CERTIFICATE-----
et se terminer par -----END CERTIFICATE-----
sudo nano /etc/ssl/certs/dynmap_cert.pem
OR
sudo vi /etc/ssl/certs/dynmap_cert.pem
Ensuite, créons un fichier de clé privée et collez-le dans le texte. Le texte doit commencer par -----BEGIN PRIVATE KEY-----
et se terminer par -----END PRIVATE KEY-----
sudo nano /etc/ssl/private/dynmap_private_key.pem
OR
sudo vi /etc/ssl/private/dynmap_private_key.pem
Nous allons maintenant modifier la configuration du site Web NGINX. Faites une sauvegarde de la configuration du site Web avant d'apporter des modifications
sudo cp /etc/nginx/sites-available/dynmap /etc/nginx/sites-available/dynmap_BACKUP
Si vous faites un oopsie et que vous devez revenir en arrière, exécutez cette commande
sudo cp /etc/nginx/sites-available/dynmap_BACKUP /etc/nginx/sites-available/dynmap
Dans la configuration du site Web NGINX, examinez les différences entre votre configuration actuelle et ajoutez les modifications que vous voyez dans cet exemple de configuration.
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;
}
}
Ensuite, il vous suffit de redémarrer le serveur Web NGINX.
sudo service nginx restart
Rendez-vous sur votre site Web dynmap et il devrait maintenant être sécurisé !
Comment puis-je Linux?
Très soigneusement.
Mais voici la réponse sérieuse.
Vous pouvez vous connecter à votre serveur Linux avec quelque chose de populaire comme PuTTY ou tout autre client SSH de votre choix. Vous pouvez vous connecter au terminal si vous avez l'utilisateur/mot de passe.
Vous pouvez facilement trouver des guides/tutoriels sur l'utilisation de Linux sur Internet. Mais vous devriez toujours vérifier ce que fait une commande avant de l'exécuter !Mon site Web ne s'affiche pas (NGINX)
Assurez-vous que votre site Web est transféré vers le port.
Le port par défaut serait 80 mais si vous suiviez le tutoriel sur l'installation d'une certification SSL, le port serait 443.
Mais si cela ne fonctionne pas, vérifiez si NGINX est en cours d'exécution en exécutant la commande
sudo service nginx status
et il devrait vous dire ce qui ne va pas. Vous pouvez également tester le fichier de configuration en exécutant la commande
nginx -t -c /etc/nginx/sites-available/dynmap
Je ne vois aucune image sur le site dynmap !
Depuis que nous avons commencé avec une nouvelle base de données sans aucune donnée. Cela peut prendre un certain temps pour voir des images sur dynmap.
Vous pouvez exécuter la commande dans le jeu pour rendre complètement un monde si vous le souhaitez /dynmap fullrender <worldname>
Comment se fait-il qu'il n'y ait pas de tutoriel avec Windows ou Apache ?
J'ai décidé de ne pas couvrir la configuration d'un serveur Web autonome avec Windows ou Apache, car la plupart des gens vont utiliser Linux et NGINX de nos jours. Mais s'il y a assez de gens qui demandent, je pourrais couvrir windows et/ou apacheJ'ai changé d'avis, puis-je reconvertir à partir de SQL ?
Oui, vous devriez pouvoir reconvertir à la méthode précédente si vous avez créé un fichier de sauvegarde configuration.txt.backup
partir des étapes précédentes.
Supprimez simplement configuration.txt
et renommez configuration.txt.backup
en configuration.txt
et vous êtes prêt à partir !Pourquoi?
Parce que pourquoi pas ?
Il y a plus de possibilités lorsque dynmap utilise sql. La sauvegarde serait plus rapide, les gens peuvent toujours utiliser le site Web dynmap même si le serveur est en panne, et plus encore !Affiche-t-il toujours les icônes des joueurs et/ou le chat ?
Oui, l'icône du lecteur doit toujours être mise à jour sur la page Web.
La boîte de discussion devrait également fonctionner correctement.
Notez que les utilisateurs de dynmapforge n'auront pas de répertoire plugins/dynmap/web
. Par exemple, sur un de mes serveurs il y a :
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
(Je filtre dynmap/web/tiles/ car j'y ai 1500 répertoires...)
J'essayerais cela moi-même, mais mes services nginx et minecraft sont sur des machines différentes. :sweat_smile:
J'ai suivi, mais sans succès. J'ai Apache sur le même serveur que dynmap et j'y ai déplacé le dossier Web. Bien qu'il n'y ait pas d'erreurs dans la console, si je navigue jusqu'à l'URL, elle affiche simplement un fond noir. J'utilise également SQLite, qui a déjà été rendu. Ai-je raté quelque chose peut-être ?
Peut-être vérifier la console de votre navigateur pour rechercher des erreurs et/ou des requêtes ayant échoué ?
@miiichael
Oui, le gros problème avec le passage d'un système de fichiers à une base de données est que dynmap n'importe pas les tuiles dans une base de données. Vous perdriez donc toute votre progression de rendu. Il est toujours possible de mettre le serveur Web sur une machine différente du serveur minecraft, mais cela vous oblige à utiliser mysql au lieu du système de fichiers.
@MrLogano
C'est parce qu'Apache ne peut pas trouver le fichier de base de données SQLite car il ne se trouve pas dans le dossier Web. Vous feriez probablement mieux de pointer Apache vers le dossier Web qui se trouve dans le dossier dynmap au lieu de copier le dossier Web vers un emplacement différent. Ou modifiez manuellement les fichiers php (à partir du dossier Web copié) pour obtenir le fichier db SQLite à partir d'un emplacement différent.
J'écrirai un tutoriel plus détaillé une fois que j'aurai un peu de temps libre car je suis assez occupé au guichet automatique.
@haloflooder
Le fichier php "dynmap_access" renvoie au fichier de base de données SQLite dans le répertoire dynmap. Je l'ai essayé encore quelques fois, et chaque fois que je modifie la section URL dans la configuration, j'obtiens une page complètement vierge. Laissant cela de côté, l'arbre de fichiers fonctionne bien, mais le pointer vers le SQLite génère une erreur 500. La vérification du journal Apache indique que quelque chose ne peut pas ouvrir le fichier de base de données, avec une erreur à la ligne 79 dans SQLite_tiles.php. J'ai également modifié les autorisations en 775, sans succès.
Je suis votre tutoriel, mais la page Web dit "Impossible de récupérer la configuration : erreur du serveur interne"
Comment puis-je faire?
J'ai le même problème que @gundami. Une enquête plus approfondie révèle ce message d'erreur dans /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 Avez-vous trouvé une solution ? Désolé pour la réponse tardive, j'ai été incroyablement occupé ces derniers mois.
@gundami @ads103 Pouvez-vous fournir la configuration de dynmap sur pastebin ? N'oubliez pas de censurer toute information sensible comme les informations d'identification mysql.
Sûr! Et voilà : https://pastebin.com/1xQ2Unjb
@ads103 Je viens de remarquer que votre journal d'accès indique http://dragonmc/
. Qu'est-ce que tu as dans ta config nginx ?
Comme cela fait aussi un moment que dynmap n'a pas été mis à jour. Je vais installer une nouvelle version sur dynmap sur mon serveur de test et suivre mon propre guide pour voir si quelque chose a changé depuis septembre.
Oui, dragonmc est le nom d'hôte de mon serveur minecraft. Je l'ai sur un serveur DNS local, je peux donc simplement taper "dragonmc" dans mon navigateur Web et y accéder. Voici ma configuration apache et le répertoire dans lequel j'ai copié mes fichiers dynmap.
https://pastebin.com/NQ8fNjqa
@ ads103 Je suppose que votre serveur est également hébergé localement sur votre réseau ?
Ouais! C'est correct. Tout est juste à une adresse IP locale !
@haloflooder avez-vous eu la chance d'installer une nouvelle version sur votre serveur de test ?
Malheureusement, je ne connais pas le javascript. Je peux voir que ce message d'erreur est généré par cette fonction dans map.js
, mais je ne trouve pas où la variable "configuration"
est affectée d'une valeur.
`function DynMap(options) {
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 Désolé, j'ai été occupé avec le travail depuis que je devais respecter une date limite pour quelque chose. La configuration vient de MySQL_configuration.php en standalone.
Avez-vous copié les fichiers Web sur le serveur Web après avoir laissé dynmap modifier les valeurs de configuration avec la configuration modifiée ?
Oui je l'ai fait. J'ai même vu le trafic réseau vers mon serveur de base de données augmenter au fur et à mesure que le rendu commençait, donc les valeurs de configuration sont au moins suffisamment correctes pour que les tuiles _dans_ la base de données.
Voici une question. Dans le guide, vous avez inclus cette instruction pour copier le contenu du dossier web
sur le serveur Web :
sudo cp -r /home/MyUsername/minecraft/servers/creative/plugins/dynmap/web/ /var/www/dynmap/
Aviez-vous l'intention de copier le dossier web
dans le dossier dynmap
, _ou_ le _contenu_ du dossier web
dossier dynmap
?
@ ads103 Oooo , c'est une bonne prise. J'aurais dû relire les commandes Linux après avoir travaillé sur le guide pendant environ 12 heures.
Je voulais mettre une commande pour copier le contenu du dossier Web dans le dossier du serveur Web dynmap. Je passerai en revue mon propre guide aujourd'hui avec la dernière version de dynmap plus tard dans la journée.
Une mise à jour sur les paramètres d'accès MySQL ? Après avoir suivi ce guide du T et tenté d'accéder à la carte, j'obtiens un écran noir et l'erreur "Impossible de récupérer la configuration : Bad Gateway".
EDIT : je suis un idiot et j'ai oublié d'installer php, tout va bien
Tout d'abord, guide incroyable! J'essaie de trouver quelque chose comme ça depuis un moment maintenant. J'ai cependant le même problème que @WearisomelyVerbose où je ne reçois qu'un message disant "Impossible de récupérer la configuration: Bad Gateway"
Quelques informations sur ma version : Mon serveur Minecraft est sur un serveur séparé et utilise un serveur Mysql pour tout stocker. Je me suis assuré de copier le répertoire /web de Dynmap après avoir modifié les configurations et redémarré le serveur.
Une chose que j'ai remarquée, chaque fois que je teste le fichier Dynmap.conf dans Nginx, j'obtiens cette erreur :
sudo nginx -t -c /etc/nginx/sites-available/dynmap
nginx : [emerg] la directive "server" n'est pas autorisée ici dans /etc/nginx/sites-available/ dynmap:2
nginx : le test du fichier de configuration /etc/nginx/sites-available/dynmap a échoué
@ads103 @gundami
Je pense avoir la même erreur : "Impossible de récupérer la configuration : erreur" après avoir ouvert la carte sur le serveur Web.
Pour moi, changer le fichier "...\standalone\MySQL_config.php" sur le serveur Web a résolu le problème :
...
$dbhost = 'localhost';
...
au lieu de l'adresse IP. Mais je ne connais pas les détails, j'espère que cela aidera quelqu'un.
Ma configuration est d'ailleurs 2 Raspberry Pis. RP4B (4 Go) héberge minecraft (entre autres services) et un RP3B+ héberge DynMap (Apache+SQL)
Merci pour le super tuto !! :)
J'ai pu résoudre mes problèmes.
Les miens, au moins, étaient assez simples avec le recul. Il me manquait des dépendances.
Plus précisément, il me manquait php-json et php-mysqlnd. (Je suis sur un système Fedora 31, et les noms des packages Ubuntu sont un peu différents.)
J'ai découvert qu'il me manquait ces packages en réalisant que php-fpm était une application distincte avec ses propres fichiers journaux situés dans /var/log/php-fpm
. La vérification de www-error.log a révélé ces deux lignes de journal :
[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
Une recherche rapide sur Google des fonctions json_decode()
et mysqli_connect()
m'amène à ces deux packages manquants. Après les avoir installés et actualisé Dynmap dans mon navigateur, cela... a juste fonctionné. Cela a juste fonctionné.
Merci pour le tuto ! J'ai pu migrer mes 2 serveurs Forge vers la configuration de serveur web autonome. Et je voudrais souligner quelques points :
Forge n'inclut pas le pilote JDBC pour MySQL (comme le font Bukkit et Cauldron). Vous devez le récupérer sur https://mvnrepository.com/artifact/mysql/mysql-connector-java et le déposer dans le répertoire mods. Voir #1674.
Il serait préférable de mentionner dans le didacticiel que /etc/nginx/sites-available/
et /etc/nginx/sites-enabled
n'existent que dans les implémentations nginx de Debian/Ubuntu. Dans l'implémentation en amont, le seul fichier de configuration est /etc/nginx/nginx.conf
.
Je vous déconseille d'utiliser MySQL pour le stockage de cartes, sauf si vous disposez d'un matériel dédié faisant office de serveur MySQL. J'ai 2 serveurs Forge en cours d'exécution sur mon serveur domestique. Celui configuré avec MySQL a beaucoup plus de temps système CPU, RAM et E/S disque en raison des transactions avec la base de données. En fait, MySQL n'a pas été conçu pour stocker les BLOB, qui constituent la quasi-totalité du stockage de cartes de dynmap. En utilisant MySQL comme stockage de carte, des cycles CPU supplémentaires sont consommés par les transactions SQL. Et parce que dynmap stocke les données cartographiques sous forme de BLOB d'image, l'utilisation de MySQL entraîne en fait des performances bien pires que le stockage de fichiers, comme observé sur mon serveur domestique. Voir aussi https://stackoverflow.com/questions/5285857/when-is-using-mysql-blob-recommended
Devinez quel type de base de données a été conçu pour stocker un grand nombre de BLOB ? Le système de fichiers ! Je voudrais proposer d'éditer le tutoriel pour recommander nginx + php-fpm + stockage de fichiers. Pour un serveur Web autonome avec stockage de fichiers, la section url:
doit être modifiée comme suit :
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/'
Encore un merci @haloflooder pour avoir fait le tuto ! J'ai migré aussi, et ça marche bien.
J'ai également trouvé utile la configuration gentiment partagée par Frumple pour le serveur MRT : https://github.com/Frumple/mrt-docker-services/blob/master/containers/dynmap-main/docker-compose.yml
@database64128 Merci pour les informations sur les fichiers de configuration json. Un amendement cependant : les fichiers de configuration json ne sont créés que si login-enabled: false
est défini dans le fichier configuration.txt de Dynmap.
Punaise? Intentionnel? Je ne sais pas. Plus d'informations sur le problème que j'ai créé ici : https://github.com/webbukkit/dynmap/issues/2848.
J'ai pensé le mentionner ici car il m'a fallu beaucoup de temps pour savoir pourquoi les fichiers de configuration json n'étaient pas créés !
J'ai le problème d'écran noir décrit par @MrLogano . J'utilise MySQL et nginx sur un serveur séparé. J'effectue actuellement un rendu complet et je peux voir le nombre de lignes dans la table "Tiles" dans MySQL augmenter, donc je sais qu'il se connecte très bien à MySQL.
Dans la console du navigateur, je vois les erreurs suivantes :
Le script de « https://REDACTED/standalone/config.js?_=3.0-beta-10-257 » a été chargé même si son type MIME (« text/html ») n'est pas un type JavaScript MIME valide.
Le chargement a échoué pour le
J'ai découvert quel était mon problème. Le nom d'hôte que j'ai utilisé pour le serveur MySQL pouvait être résolu depuis mon serveur Minecraft mais pas depuis mon serveur nginx. J'ai changé le nom d'hôte en quelque chose qui pouvait être résolu à partir des deux et maintenant cela fonctionne.
Eh bien, j'ai un serveur minecraft hébergé sur un hôte et un site Web hébergé sur un autre hôte (qui utilise Apache et ne prend pas en charge les proxy inverses) Comment configurer un dynmap sur mon site Web sans iframe? car je ne vois aucun tuto pour ça
@alex17lol Ce guide n'utilise pas de proxy inverse. Vous devriez pouvoir utiliser votre propre configuration Apache au lieu des configurations Nginx suggérées ici.
@alex17lol Ce guide n'utilise pas de proxy inverse. Vous devriez pouvoir utiliser votre propre configuration Apache au lieu des configurations Nginx suggérées ici.
Je n'ai pas accès aux commandes sudo j'utilise un hébergeur c'est mon problème
_ Quelqu'un peut-il ajouter ceci au wiki ? _
Merci beaucoup d'avoir fait ça !
SELinux peut causer toutes sortes de problèmes. Les plus évidents sont ceux qui bloquent carrément tout accès au contenu Web. Ceux-ci apparaissent dans le journal des erreurs du serveur Web. Des problèmes plus subtils peuvent apparaître dans le journal des erreurs php-fpm. Après avoir traité toutes les erreurs dans le journal du serveur Web, j'avais toujours des problèmes d'écran noir et l'échec redouté de lire la configuration. Par example:
[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;
Ce qui a résolu ce dernier casse-tête pour moi était :
# setsebool -P httpd_can_network_connect_db=1
J'ai trouvé que rsync
était BEAUCOUP plus rapide que scp -r
. scp
avançait à un rythme extrêmement lent, alors je l'ai tué à environ 300 Mo, puis j'ai utilisé la commande suivante à la place. 2 To transférés incroyablement rapidement par rapport à la tentative de scp
. J'ai fait rsync
plusieurs fois en essayant de résoudre des problèmes, et rsync
mis
rsync -cavzAX me@$VPS:/path/to/plugins/dynmap/web/ /path/to/web/dynmap/
Est-ce que n'importe qui a déjà essayé ceci avec une base de données DB2 ?
J'aurais vraiment besoin d'aide pour ce problème ^^^ #3125. quelqu'un peut-il aider avec ce problème? J'ai vérifié trois fois ce guide. commencé à partir de zéro plusieurs fois. J'ai essayé plusieurs solutions d'hébergement mais j'ai le même problème à chaque fois. J'ai essayé quelques solutions notées dans les commentaires mais elles n'ont finalement pas été utiles.
J'ai aussi essayé Discord mais je n'ai pas eu de réponse plusieurs fois.
@arkD Heureusement, je réviserai ce guide au cours des deux prochaines semaines car je mets en place une autre configuration autonome mais en utilisant la dernière version à la pointe de la technologie de Dynmap pour 1.16.3 qui n'est pas encore publiée sur la page de spigot car une mise à jour.
Ne fonctionnait pas pour moi - j'ai dû activer php sur NGINX à l'aide de ce guide
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04
Maintenant, l'erreur "Impossible de récupérer la configuration" a cessé d'apparaître, mais j'ai toujours un écran noir , pas de barre latérale, pas d'horloge. ??
DB est configuré pour sqlite et tout fonctionnait et était rendu avant de commencer le guide
Aussi: j'ai cette erreur dans la console. C'est très probablement lié
Commentaire le plus utile
Merci pour le tuto ! J'ai pu migrer mes 2 serveurs Forge vers la configuration de serveur web autonome. Et je voudrais souligner quelques points :
Forge n'inclut pas le pilote JDBC pour MySQL (comme le font Bukkit et Cauldron). Vous devez le récupérer sur https://mvnrepository.com/artifact/mysql/mysql-connector-java et le déposer dans le répertoire mods. Voir #1674.
Il serait préférable de mentionner dans le didacticiel que
/etc/nginx/sites-available/
et/etc/nginx/sites-enabled
n'existent que dans les implémentations nginx de Debian/Ubuntu. Dans l'implémentation en amont, le seul fichier de configuration est/etc/nginx/nginx.conf
.Je vous déconseille d'utiliser MySQL pour le stockage de cartes, sauf si vous disposez d'un matériel dédié faisant office de serveur MySQL. J'ai 2 serveurs Forge en cours d'exécution sur mon serveur domestique. Celui configuré avec MySQL a beaucoup plus de temps système CPU, RAM et E/S disque en raison des transactions avec la base de données. En fait, MySQL n'a pas été conçu pour stocker les BLOB, qui constituent la quasi-totalité du stockage de cartes de dynmap. En utilisant MySQL comme stockage de carte, des cycles CPU supplémentaires sont consommés par les transactions SQL. Et parce que dynmap stocke les données cartographiques sous forme de BLOB d'image, l'utilisation de MySQL entraîne en fait des performances bien pires que le stockage de fichiers, comme observé sur mon serveur domestique. Voir aussi https://stackoverflow.com/questions/5285857/when-is-using-mysql-blob-recommended
Devinez quel type de base de données a été conçu pour stocker un grand nombre de BLOB ? Le système de fichiers ! Je voudrais proposer d'éditer le tutoriel pour recommander nginx + php-fpm + stockage de fichiers. Pour un serveur Web autonome avec stockage de fichiers, la section
url:
doit être modifiée comme suit :