🐘 PHP 8.x + PHP-FPM
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-curl \
php8.2-mbstring php8.2-xml php8.2-zip php8.2-gd php8.2-bcmath -y
sudo systemctl enable --now php8.2-fpm
php -v
php-fpm8.2 -v
# Multiple PHP versions side-by-side
sudo apt install php8.1-fpm php8.3-fpm
# Each has own socket: /run/php/php8.X-fpm.sock
⚙️ PHP Tuning
# /etc/php/8.2/fpm/php.ini
memory_limit = 256M
max_execution_time = 60
upload_max_filesize = 50M
post_max_size = 50M
date.timezone = Asia/Dhaka
# OPcache (huge perf boost)
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0 # production: 0
# /etc/php/8.2/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
sudo systemctl reload php8.2-fpm
🟢 Node.js via nvm
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
# Install Node
nvm install 20 # latest LTS
nvm install 18
nvm use 20
nvm alias default 20
node -v
npm -v
# Faster package mgr
npm install -g pnpm
# Process manager
npm install -g pm2
pm2 start app.js --name myapp
pm2 startup # auto-start on boot
pm2 save
pm2 list
pm2 logs myapp
pm2 monit
pm2 restart myapp
pm2 reload myapp # zero-downtime
🐍 Python via pyenv
# Dependencies
sudo apt install build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev libffi-dev liblzma-dev -y
# Install pyenv
curl https://pyenv.run | bash
# Add to ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
source ~/.bashrc
# Install Python
pyenv install 3.12
pyenv install 3.11
pyenv global 3.12
python --version
pip --version
# Per-project virtualenv
cd myproject
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
🦄 Python App Server
# Gunicorn (Django/Flask)
pip install gunicorn
gunicorn --workers 4 --bind 127.0.0.1:8000 myapp.wsgi:application
# Workers = (2 * CPU) + 1
# Uvicorn (FastAPI/ASGI)
pip install uvicorn[standard]
uvicorn main:app --host 127.0.0.1 --port 8000 --workers 4
# Production: systemd service (covered earlier)
☕ Java / .NET (mention)
# Java
sudo apt install openjdk-17-jdk
java -jar app.jar
# .NET
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt install dotnet-sdk-8.0
dotnet myapp.dll
🎓 মূল কথা ⭐
PHP-FPM + Nginx = LAMP modern। Node = PM2 process manager। Python = Gunicorn/Uvicorn behind Nginx। Multiple version side-by-side complex app-এ দরকার।