🔨

Troubleshooting WordPress Server Issues

Table of Contents

Providing Data for Troubleshooting Issues

When people ask for help, either directly or indirectly I usually send them the a bunch of questions, and to install some tools or applications. Instead of writing it over and over again, I made this page!

Guide Requirements

You'll need the following if you want to proceed with this guide.

  • Access to the server in question 🤣
  • A means to share data such as logs, configuration files and command outputs.
    • pastebin - is a good solution, but be careful as most are public and the data below in the wrong hands can be a security issue.
    • Google Doc - everyone has a Gmail account 😂
    • Notion.so - I really love this app! You can share a page via a link! So easy to share large amounts of data.

Step 1 - Instance Details

Overall make sure you know what you have! Understand that not all providers are created equal and that human errors occur. You could be on the wrong plan, you might think you're connected to the server that 32 cores but in-fact has only 8 cores.

Provider Details

  • Server Provider: (Example: Vultr or Upcloud)
  • Type of Server: (VPS, Cloud, Bare Metal, Colo or Raspberry PI)
  • Provider Plan and URL: (The link to the plan you have)

Server Specifications

When working on an issue, it's important to know what you have under the hood. Here's what I typically ask when working on an issue.

System Information

cd ~
wget https://raw.githubusercontent.com/dylanaraps/neofetch/master/neofetch
bash neofetch

Additional Information for Baremetal

  • Processor: lshw -class processor
  • Motherboard: apt-get install dmidecode; dmidecode --string baseboard-product-name
  • Memory: lshw -C memory | grep product
  • Storage: apt-get install lshw;lshw -class disk -class storage | grep product

What about Networking?

  • Run ip addr and copy and paste.

There's two parts to networking, latency and throughput speeds. Both can cause issues, and so it's important to make sure your instance has low latency and good throughput speeds.

! NEEDS UPDATE !

Service Configuration

Miss-configuration of services can occur and cause strange issues to occur. So it's always good to review the base configuration for all services.

Nginx Configuration

Most hosting stacks and the default Nginx configuration is acceptable. Granted you can do some tuning, most of the time there isn't much you need to do here.

  • Review your nginx config by running niginx -T this will print out your entire config. Copy and paste it somewhere. You can also pipe this to a file nginx -T > nginx.config

PHP Worker Configuration

  • Review your php-fpm configuration and provide the full config.
  • Run ps -auxwwf and provide a screensho or pastebin.

MySQL Configuration

  • Review your MySQL configuration, and provide the full config.
  • Run mysqtuner.pl and provide the results.
  • Run mytop and provide a screenshot. (See Command Line Tools)

Tools for Monitoring

Command Line Tools

Either apt-get install or yum install the following

  • htop - like top but allows for multi core display
  • ncdu - find out what's taking up space
  • mytop - top for mysql
  • vmstat - realtime view of procs, memory, swap, io, system and cpu (user/system/idle/wait/steal)

Monitoring Applications

Netdata

  • System level Monitoring of thousands of metrics from linux, nginx, mysql and redis. Data is also historical so you can go back in time. You can extend how far back the data is kept

Newrelic

Tideways

  • Application Performance Monitoring for PHP and other languages.
  • Alternative to Newrelic
  • I haven't tried it, so use at your own risk ;)