SHOW FULL PROCESSLIST;
- Look for queries with high
Time
values (e.g.,>5s
). - Identify queries stuck in "Sending data", "Copying to tmp table", or "Waiting for table lock".
build-essential autoconf libtool bison re2c pkg-config git-core libsqlite3-dev libonig-dev libzip-dev libltdl-dev libbz2-dev libxml2-dev libxslt1-dev libssl-dev libicu-dev libpspell-dev libenchant-dev libmcrypt-dev libpng-dev libjpeg8-dev libfreetype6-dev libmysqlclient-dev libreadline-dev libcurl4-openssl-dev
cd /var/sources
<?php | |
$paramters = []; | |
const CONSTRAINT_TYPE_MINMAX = "minmax"; | |
const CONSTRAINT_TYPE_SET = "set"; | |
function determineParameterConstraintType(array $constraint): string | |
{ | |
return count($constraint) == 1 ? CONSTRAINT_TYPE_MINMAX : CONSTRAINT_TYPE_SET; |
This is a living document which reflects the current process, accumulated and tuned over many years, that I use to set up a Ubuntu 20.04LTS LNMP/LAMP stack from scratch. It might not suit everyone, and probably isn't without its flaws, but it's a good foundation for any new server setup, one that I use for dev and production servers alike.
If you would like a quick, no-fuss, local LNMP stack, check out my ubuntu_lnmp_docker_vagrant repository.