webbukkit / dynmap

A set of Minecraft mods that provide a real time web-based map system for various Minecraft server implementations.
https://www.reddit.com/r/Dynmap/
Apache License 2.0
2.06k stars 420 forks source link

Some error with MySQL Config #2208

Closed pdglobal closed 4 years ago

pdglobal commented 6 years ago

Hello, there appears to be some error with the MySQL setup on version 2.6-beta-1 for 1.12.

My current config worked on the last released 1.7.10 version and is still valid.

Plugin connects to database fine, places tiles, faces, files, etc into database just fine.

However when copying the /web into my webserver under /dynmap I just get a black screen, no sidebar, no chat bar, no buttons, no images, nothing.

I believe this may be related to the files generated for the /web directory, I have noticed that other files reference to a mysql_config.php file, however it does not exist. (nor does the corresponding config.php file)

Please check this out, really want to use your plugin/mod on our updated server.

jwshields commented 6 years ago

We'll need some more information about this. What httpd are you using? What PHP version? What does your httpd configuration look like? Assuming you're even using an external web server and disabling the internal one. Did you copy the web directory or the standalone one?

What does your dynmap config look like?

Farnsworth777 commented 6 years ago

Yes, that's what I'm doing, I'm using my own web server. It has nothing to do with my apache config, because like I stated before, it worked just fine in the last 1.7.10 release, so I would think that would imply that seeing as, I followed the exact same steps to set up the newest version, that there's something wrong with the files in the /web dir which are hosted under https://pdglobal.net/dynmap . my php version is 5.6.33 and my dynmap config file is as follow

# All paths in this configuration file are relative to Dynmap's data-folder: minecraft_server/dynmap/

# All map templates are defined in the templates directory
# To use the HDMap very-low-res (2 ppb) map templates as world defaults, set value to vlowres
#   The definitions of these templates are in normal-vlowres.txt, nether-vlowres.txt, and the_end-vlowres.txt
# To use the HDMap low-res (4 ppb) map templates as world defaults, set value to lowres
#   The definitions of these templates are in normal-lowres.txt, nether-lowres.txt, and the_end-lowres.txt
# To use the HDMap hi-res (16 ppb) map templates (these can take a VERY long time for initial fullrender), set value to hires
#   The definitions of these templates are in normal-hires.txt, nether-hires.txt, and the_end-hires.txt
# To use the HDMap low-res (4 ppb) map templates, with support for boosting resolution selectively to hi-res (16 ppb), set value to low_boost_hi
#   The definitions of these templates are in normal-low_boost_hi.txt, nether-low_boost_hi.txt, and the_end-low_boost_hi.txt
# To use the HDMap hi-res (16 ppb) map templates, with support for boosting resolution selectively to vhi-res (32 ppb), set value to hi_boost_vhi
#   The definitions of these templates are in normal-hi_boost_vhi.txt, nether-hi_boost_vhi.txt, and the_end-hi_boost_vhi.txt
# To use the HDMap hi-res (16 ppb) map templates, with support for boosting resolution selectively to xhi-res (64 ppb), set value to hi_boost_xhi
#   The definitions of these templates are in normal-hi_boost_xhi.txt, nether-hi_boost_xhi.txt, and the_end-hi_boost_xhi.txt
deftemplatesuffix: hires

# Map storage scheme: only uncommoent one 'type' value
#  filetree: classic and default scheme: tree of files, with all map data under the directory indicated by 'tilespath' setting
#  sqlite: single SQLite database file (this can get VERY BIG), located at 'dbfile' setting (default is file dynmap.db in data directory)
#  mysql: MySQL database, at hostname:port in database, accessed via userid with password
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' in database 'database' using user 'userid' password 'password' and table prefix 'prefix'
  type: mysql
  hostname: localhost
  port: 3306
  database: dynmap
  userid: Admin
  password: **************T
  #prefix: ""

components:
  - class: org.dynmap.ClientConfigurationComponent

  - class: org.dynmap.InternalClientUpdateComponent
    sendhealth: true
    sendposition: true
    allowwebchat: true
    webchat-interval: 1
    hidewebchatip: true
    trustclientname: false
    includehiddenplayers: true
    # (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: false
    # (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: true
    # If set to true, users must have dynmap.webchat permission in order to chat
    webchat-permissions: false
    # Limit length of single chat messages
    chatlengthlimit: 256
  #  # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky)
  #  hideifshadow: 4
  #  # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky)
  #  hideifundercover: 14
  #  # (Optional) if true, players that are crouching/sneaking will be hidden 
    hideifsneaking: false
    # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self)
    protected-player-info: false
    # If true, hide players with invisibility potion effects active
    hide-if-invisiblity-potion: true
    # If true, player names are not shown on map, chat, list
    hidenames: false
  - class: org.dynmap.JsonFileClientUpdateComponent
    writeinterval: 1
    sendhealth: true
    sendposition: true
    allowwebchat: true
  #  webchat-interval: 5
  #  hidewebchatip: false
  #  includehiddenplayers: false
  #  use-name-colors: false
  #  use-player-login-ip: false
  #  require-player-login-ip: false
  #  block-banned-player-chat: true
  #  hideifshadow: 0
  #  hideifundercover: 0
  #  hideifsneaking: false
  #  # Require login for web-to-server chat (requires login-enabled: true)
    webchat-requires-login: true
  #  # If set to true, users must have dynmap.webchat permission in order to chat
  #  webchat-permissions: false
  #  # Limit length of single chat messages
  #  chatlengthlimit: 256
  #  hide-if-invisiblity-potion: true
  #  hidenames: false

  - class: org.dynmap.SimpleWebChatComponent
    allowchat: true
    # If true, web UI users can supply name for chat using 'playername' URL parameter.  'trustclientname' must also be set true.
    allowurlname: false

  # Note: this component is needed for the dmarker commands, and for the Marker API to be available to other plugins
  - class: org.dynmap.MarkersComponent
    type: markers
    showlabel: false
    enablesigns: true
    # Default marker set for sign markers
    default-sign-set: markers
    # (optional) add spawn point markers to standard marker layer
    showspawn: true
    spawnicon: world
    spawnlabel: "Spawn"
    # (optional) layer for showing offline player's positions (for 'maxofflinetime' minutes after logoff)
    showofflineplayers: true
    offlinelabel: "Offline"
    offlineicon: offlineuser
    offlinehidebydefault: false
    offlineminzoom: 0
    maxofflinetime: 120
    # (optional) layer for showing player's spawn beds
    showspawnbeds: True
    spawnbedlabel: "Spawn Beds"
    spawnbedicon: bed
    spawnbedhidebydefault: true
    spawnbedminzoom: 0
    spawnbedformat: "%name%'s bed"

  - class: org.dynmap.ClientComponent
    type: chat
    allowurlname: false
  - class: org.dynmap.ClientComponent
    type: chatballoon
    focuschatballoons: false
  - class: org.dynmap.ClientComponent
    type: chatbox
    showplayerfaces: true
    #messagettl: 5
    # Optional: set number of lines in scrollable message history: if set, messagettl is not used to age out messages
    scrollback: 250
    # Optiona; set maximum number of lines visible for chatbox
    #visiblelines: 10
    # Optional: send push button
    sendbutton: false
  - class: org.dynmap.ClientComponent
    type: playermarkers
    showplayerfaces: true
    showplayerhealth: true
    # If true, show player body too (only valid if showplayerfaces=true
    showplayerbody: false
    # Option to make player faces small - don't use with showplayerhealth
    smallplayerfaces: false
    # Optional - make player faces layer hidden by default
    hidebydefault: false
    # Optional - ordering priority in layer menu (low goes before high - default is 0)
    layerprio: 0
    # Optional - label for player marker layer (default is 'Players')
    label: "Players"

  #- class: org.dynmap.ClientComponent
  #  type: digitalclock
  - class: org.dynmap.ClientComponent
    type: link

  - class: org.dynmap.ClientComponent
    type: timeofdayclock
    showdigitalclock: true
    #showweather: true
  # Mouse pointer world coordinate display
  - class: org.dynmap.ClientComponent
    type: coord
    label: "Location"
    hidey: false
    show-mcr: false

  # Note: more than one logo component can be defined
  #- class: org.dynmap.ClientComponent
    type: logo
    text: "Progressive Dynamics Global Limited Company"
  #  logourl: "https://pdglobal.net/?sid=files_go&ID=logo_png"
  #  linkurl: "http://forums.bukkit.org/threads/dynmap.489/"
  #  # Valid positions: top-left, top-right, bottom-left, bottom-right
    position: bottom-right

  #- class: org.dynmap.ClientComponent
  #  type: inactive
  #  timeout: 1800 # in seconds (1800 seconds = 30 minutes)
  #  redirecturl: inactive.html
  #  #showmessage: 'You were inactive for too long.'

  #- class: org.dynmap.TestComponent
  #  stuff: "This is some configuration-value"

# Treat hiddenplayers.txt as a whitelist for players to be shown on the map? (Default false)
display-whitelist: false

# How often a tile gets rendered (in seconds).
renderinterval: 0.50

# How many tiles on update queue before accelerate render interval
renderacceleratethreshold: 60

# How often to render tiles when backlog is above renderacceleratethreshold
renderaccelerateinterval: 0.25

# How many update tiles to work on at once (if not defined, default is 1/2 the number of cores)
tiles-rendered-at-once: 4

# If true, use normal priority threads for rendering (versus low priority) - this can keep rendering
# from starving on busy Windows boxes (Linux JVMs pretty much ignore thread priority), but may result
# in more competition for CPU resources with other processes
usenormalthreadpriority: true

# Save and restore pending tile renders - prevents their loss on server shutdown or /reload
saverestorepending: true

# Save period for pending jobs (in seconds): periodic saving for crash recovery of jobs
save-pending-period: 60

# Zoom-out tile update period - how often to scan for and process tile updates into zoom-out tiles (in seconds)
zoomoutperiod: 4

# Control whether zoom out tiles are validated on startup (can be needed if zoomout processing is interrupted, but can be expensive on large maps)
initial-zoomout-validate: true

# Default delay on processing of updated tiles, in seconds.  This can reduce potentially expensive re-rendering
# of frequently updated tiles (such as due to machines, pistons, quarries or other automation).  Values can
# also be set on individual worlds and individual maps.
tileupdatedelay: 4

# Tile hashing is used to minimize tile file updates when no changes have occurred - set to false to disable
enabletilehash: true

# Optional - hide ores: render as normal stone (so that they aren't revealed by maps)
#hideores: true

# Optional - enabled BetterGrass style rendering of grass and snow block sides
#better-grass: true

# Optional - enable smooth lighting by default on all maps supporting it (can be set per map as lighting option)
smooth-lighting: true

# Optional - use world provider lighting table (good for custom worlds with custom lighting curves, like nether)
#   false=classic Dynmap lighting curve
use-brightness-table: true

# Optional - render specific block IDs using the texures and models of another block ID: can be used to hide/disguise specific
#  blocks (e.g. make ores look like stone, hide chests) or to provide simple support for rendering unsupported custom blocks
block-id-alias:
#    "14": 1
#    "15": 1
#    "16": 1

# Default image format for HDMaps (png, jpg, jpg-q75, jpg-q80, jpg-q85, jpg-q90, jpg-q95, jpg-q100)
# Has no effect on maps with explicit format settings
image-format: png

#  use-generated-textures: if true, use generated textures (same as client); false is static water/lava textures
#  correct-water-lighting: if true, use corrected water lighting (same as client); false is legacy water (darker)
#  transparent-leaves: if true, leaves are transparent (lighting-wise): false is needed for some Spout versions that break lighting on leaf blocks
use-generated-textures: true
correct-water-lighting: true
transparent-leaves: true

# ctm-support: if true, Connected Texture Mod (CTM) in texture packs is enabled (default)
ctm-support: true
# custom-colors-support: if true, Custom Colors in texture packs is enabled (default)
custom-colors-support: true

# Control loading of player faces (if set to false, skins are never fetched)
#fetchskins: false

# Control updating of player faces, once loaded (if faces are being managed by other apps or manually)
#refreshskins: false

# Customize URL used for fetching player skins (%player% is macro for name)
skin-url: "http://skins.minecraft.net/MinecraftSkins/%player%.png"

# Control behavior for new (1.0+) compass orientation (sunrise moved 90 degrees: east is now what used to be south)
#   default is 'newrose' (preserve pre-1.0 maps, rotate rose)
#   'newnorth' is used to rotate maps and rose (requires fullrender of any HDMap map - same as 'newrose' for FlatMap or KzedMap)
compass-mode: newnorth

# Triggers for automatic updates : blockupdate-with-id is debug for breaking down updates by ID:meta
# To disable, set just 'none' and comment/delete the rest
render-triggers:
  - blockupdate
  - blockupdate-with-id
  - lightingupdate
  - chunkpopulate
  - chunkgenerate
  #- none

# Title for the web page - if not specified, defaults to the server's name (unless it is the default of 'Unknown Server')
#webpage-title: "My Awesome Server Map"

# The path where the tile-files are placed.
tilespath: C:/Users/PDGLOBAL.NET/CLOUD/singularity
# The path where the web-files are located.
webpath: C:/Users/PDGLOBAL.NET/CLOUD/SRV/htdocs/dynmap

# The path were the /dynmapexp command exports OBJ ZIP files
exportpath: export

# The network-interface the webserver will bind to (0.0.0.0 for all interfaces, 127.0.0.1 for only local access).
# If not set, uses same setting as server in server.properties (or 0.0.0.0 if not specified)
#webserver-bindaddress: 0.0.0.0

# The TCP-port the webserver will listen on.
webserver-port: 8123

# Maximum concurrent session on internal web server - limits resources used in Bukkit server
max-sessions: 30

# Disables Webserver portion of Dynmap (Advanced users only)
disable-webserver: true

# Enable/disable having the web server allow symbolic links (true=compatible with existing code, false=more secure (default))
allow-symlinks: true

# Enable login support
login-enabled: true
# Require login to access website (requires login-enabled: true)
login-required: false

# Period between tile renders for fullrender, in seconds (non-zero to pace fullrenders, lessen CPU load)
timesliceinterval: 0.0

# Maximum chunk loads per server tick (1/20th of a second) - reducing this below 90 will impact render performance, but also will reduce server thread load
maxchunkspertick: 200

# Progress report interval for fullrender/radiusrender, in tiles.  Must be 100 or greater
progressloginterval: 100

# Parallel fullrender: if defined, number of concurrent threads used for fullrender or radiusrender
#   Note: setting this will result in much more intensive CPU use, some additional memory use.  Caution should be used when
#  setting this to equal or exceed the number of physical cores on the system.
#parallelrendercnt: 4

# Interval the browser should poll for updates.
updaterate: 1000

# If nonzero, server will pause fullrender/radiusrender processing when 'fullrenderplayerlimit' or more users are logged in
fullrenderplayerlimit: 0
# If nonzero, server will pause update render processing when 'updateplayerlimit' or more users are logged in
updateplayerlimit: 0
# Target limit on server thread use - msec per tick
per-tick-time-limit: 50
# If TPS of server is below this setting, update renders processing is paused
update-min-tps: 15.0
# If TPS of server is below this setting, full/radius renders processing is paused
fullrender-min-tps: 15.0
# If TPS of server is below this setting, zoom out processing is paused
zoomout-min-tps: 15.0

showplayerfacesinmenu: true

# Control whether players that are hidden or not on current map are grayed out (true=yes)
grayplayerswhenhidden: true

# Set sidebaropened: 'true' to pin menu sidebar opened permanently, 'pinned' to default the sidebar to pinned, but allow it to unpin
#sidebaropened: true

# Customized HTTP response headers - add 'id: value' pairs to all HTTP response headers (internal web server only)
#http-response-headers:
#    Access-Control-Allow-Origin: "my-domain.com"
#    X-Custom-Header-Of-Mine: "MyHeaderValue"

# Trusted proxies for web server - which proxy addresses are trusted to supply valid X-Forwarded-For fields
trusted-proxies:
  - "127.0.0.1"
  - "0:0:0:0:0:0:0:1"

joinmessage: "%playername% joined"
quitmessage: "%playername% quit"
spammessage: "You may only chat once every %interval% seconds."
# format for messages from web: %playername% substitutes sender ID (typically IP), %message% includes text
webmsgformat: "&color;f[WEB]&color;2%playername%: &color;f%message%"

# Control whether layer control is presented on the UI (default is true)
showlayercontrol: true

# Enable checking for banned IPs via banned-ips.txt (internal web server only)
check-banned-ips: true

# Default selection when map page is loaded
defaultzoom: 4
defaultworld: world
defaultmap: surface
# (optional) Zoom level and map to switch to when following a player, if possible
#followzoom: 6
#followmap: surface

# If true, make persistent record of IP addresses used by player logins, to support web IP to player matching
persist-ids-by-ip: false

# If true, map text to cyrillic
cyrillic-support: false

# Messages to customize
msg:
    maptypes: "Map Types"
    players: "Players"
    chatrequireslogin: "Chat Requires Login"
    chatnotallowed: "You are not permitted to send chat messages"
    hiddennamejoin: "Player joined"
    hiddennamequit: "Player quit"

# URL for client configuration (only need to be tailored for proxies or other non-standard configurations)
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/"

# Spout support controls
spout:
    # If false, ignore spout even if detected
    enabled: true
    # If true, previously loaded textures will be assumed to still be valid (faster startup, but
    # can result in stale textures if originals are updated - delete files in texturepacks/standard/spoout
    # to clean cached textures and force reload on next startup)
    use-existing-textures: true

# Snapshot cache size, in chunks
snapshotcachesize: 500
# Snapshot cache uses soft references (true), else weak references (false)
soft-ref-cache: true

# Set to true to enable verbose startup messages - can help with debugging map configuration problems
# Set to false for a much quieter startup log
verbose: false

# Enables debugging.
#debuggers:
#  - class: org.dynmap.debug.LogDebugger
# Debug: dump blocks missing render data
dump-missing-blocks: false

as I already said, I know it's connecting to the database just fine, because I can see all the mysql tables being filled with data in the dynmap database.
pdglobal commented 6 years ago

That last comment was me, didn't realized I was signed into an old account.

jwshields commented 6 years ago

I just checked the link you put in your prior comment, and I am seeing the sidebar, buttons work, I see users moving and active; additionally, of all the web requests returned either 200 or 302.

jwshields commented 6 years ago

If you're still seeing issues, I'd suggest a cache clear on your web browser and/or try with another machine & browser.

jwshields commented 6 years ago

Initially I might believe this was a permissions problem.. But since I checked it out and it worked for me, I am unsure. Does whichever user minecraft is running as, have permissions to write to C:\Users\PDGLOBAL.NET\CLOUD\SRV\htdocs\dynmap? Or, does Apache have permissions to read the files in that directory?

pdglobal commented 6 years ago

interestingly enough, the map only shows up when the minecraft server doesn't have the dynmap mod installed. I just re-installed it and it's back to showing just a plain black page with no menu or any sort of interface

pdglobal commented 6 years ago

okay weird, it randomly started working.