Skip to main content

Quick Command Reference

Essential commands for managing your BMLT/YAP server. Keep this page bookmarked for quick reference.

System Status Commands

Check Service Status

# Check all key services
sudo systemctl status apache2
sudo systemctl status mysql
php --version

# Quick status check
sudo systemctl is-active apache2 mysql

System Resources

# Disk space
df -h

# Memory usage
free -h

# CPU and process monitor
htop

# System load
uptime

Network and Connectivity

# Test web server response
curl -I http://localhost

# Check open ports
sudo netstat -tlnp

# Test domain resolution
nslookup your-domain.com

Log Monitoring Commands

Apache Logs

# View recent Apache errors
sudo tail -f /var/log/apache2/error.log

# View recent access logs
sudo tail -f /var/log/apache2/access.log

# Search for specific errors
sudo grep "500" /var/log/apache2/error.log
sudo grep "404" /var/log/apache2/access.log

BMLT Application Logs

# View BMLT Laravel logs
sudo tail -f /var/www/your-domain.com/main_server/storage/logs/laravel.log

# Search for BMLT errors
sudo grep "ERROR" /var/www/your-domain.com/main_server/storage/logs/laravel.log

YAP Application Logs

# View YAP logs
sudo tail -f /var/www/your-domain.com/yap/storage/logs/laravel.log

System Logs

# View system messages
sudo journalctl -f

# View recent boot messages
sudo journalctl -b

# MySQL error log
sudo tail -f /var/log/mysql/error.log

Database Commands

MySQL Access

# Connect as root
sudo mysql

# Connect to specific database
sudo mysql bmlt
sudo mysql yap

# Connect as specific user
mysql -u bmlt -p
mysql -u yap -p

Database Backup

# Backup BMLT database
sudo mysqldump bmlt > bmlt-backup-$(date +%Y%m%d).sql
sudo mysqldump bmlt | gzip > bmlt-backup-$(date +%Y%m%d).gz

# Backup YAP database
sudo mysqldump yap > yap-backup-$(date +%Y%m%d).sql
sudo mysqldump yap | gzip > yap-backup-$(date +%Y%m%d).gz

# Backup all databases
sudo mysqldump --all-databases > full-backup-$(date +%Y%m%d).sql

Database Restore

# Restore BMLT database
sudo mysql bmlt < bmlt-backup-20231212.sql

# Restore from compressed backup
gzip -d bmlt-backup-20231212.gz
sudo mysql bmlt < bmlt-backup-20231212.sql

Apache Management

Service Control

# Start/Stop/Restart Apache
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2

Configuration

# Test Apache configuration
sudo apache2ctl configtest

# Show virtual hosts
sudo apache2ctl -S

# Enable/Disable sites
sudo a2ensite your-domain.com.conf
sudo a2dissite 000-default.conf

# Enable/Disable modules
sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2dismod status

File Management

Permissions and Ownership

# Set correct ownership for web files
sudo chown -R www-data:www-data /var/www/your-domain.com

# Set directory permissions
sudo find /var/www/your-domain.com -type d -exec chmod 755 {} \;

# Set file permissions
sudo find /var/www/your-domain.com -type f -exec chmod 644 {} \;

# Secure configuration files
sudo chmod 600 /var/www/your-domain.com/auto-config.inc.php
sudo chmod 600 /var/www/your-domain.com/yap/config.php

File Operations

# Navigate to web directories
cd /var/www/your-domain.com
cd /var/www/your-domain.com/main_server
cd /var/www/your-domain.com/yap

# List files with details
ls -la

# Check disk usage of directory
du -sh /var/www/your-domain.com

# Find large files
find /var/www -size +100M -type f

System Updates

Package Management

# Update package list
sudo apt update

# Upgrade packages
sudo apt upgrade -y

# Upgrade system (more comprehensive)
sudo apt full-upgrade -y

# Clean package cache
sudo apt autoremove -y
sudo apt autoclean

Service Restart After Updates

# Restart services after updates
sudo systemctl restart apache2
sudo systemctl restart mysql

# Check if reboot required
if [ -f /var/run/reboot-required ]; then
echo "Reboot required"
fi

SSL/Security Commands

Certbot (Let's Encrypt)

# Request new certificate
sudo certbot --apache -d your-domain.com

# Renew certificates
sudo certbot renew

# Test renewal (dry run)
sudo certbot renew --dry-run

# List certificates
sudo certbot certificates

Firewall Management

# Check firewall status
sudo ufw status

# Allow services
sudo ufw allow ssh
sudo ufw allow 'Apache Full'

# Enable/Disable firewall
sudo ufw enable
sudo ufw disable

Performance Monitoring

Resource Usage

# Monitor CPU/Memory in real-time
htop

# Check memory details
cat /proc/meminfo

# Check CPU information
cat /proc/cpuinfo

# Monitor disk I/O
iostat -x 1

# Network statistics
ss -tuln

Apache Performance

# Check Apache processes
ps aux | grep apache2

# Monitor Apache connections
sudo netstat -an | grep :80 | wc -l
sudo netstat -an | grep :443 | wc -l

# Apache status (if mod_status enabled)
curl http://localhost/server-status

Troubleshooting Commands

Service Issues

# Check why service failed
sudo systemctl status apache2 -l
sudo systemctl status mysql -l

# View service logs
sudo journalctl -u apache2 -f
sudo journalctl -u mysql -f

Connectivity Testing

# Test local web server
curl -I http://localhost
curl -I https://localhost

# Test external connectivity
ping google.com
curl -I https://bmlt.app

File System Issues

# Check disk space
df -h

# Check inode usage
df -i

# Find largest directories
du -sh /var/* | sort -rh | head -10

# Check file permissions
ls -la /var/www/your-domain.com/auto-config.inc.php

Emergency Commands

Service Recovery

# Force restart services
sudo systemctl restart apache2
sudo systemctl restart mysql

# Kill hung processes (use carefully)
sudo pkill -f apache2
sudo systemctl start apache2

Space Cleanup

# Clean log files (emergency only)
sudo truncate -s 0 /var/log/apache2/access.log
sudo truncate -s 0 /var/log/apache2/error.log

# Clean journal logs
sudo journalctl --vacuum-size=100M

Backup Current State (Emergency)

# Quick backup before emergency fixes
sudo mysqldump bmlt > /tmp/emergency-bmlt-backup.sql
sudo cp -r /var/www/your-domain.com /tmp/emergency-web-backup

Configuration File Locations

Key Configuration Files

# Apache main configuration
/etc/apache2/apache2.conf

# Virtual host configurations
/etc/apache2/sites-available/your-domain.com.conf

# PHP configuration
/etc/php/8.1/apache2/php.ini

# MySQL configuration
/etc/mysql/mysql.conf.d/mysqld.cnf

# BMLT configuration
/var/www/your-domain.com/auto-config.inc.php

# YAP configuration
/var/www/your-domain.com/yap/config.php

Log File Locations

# Apache logs
/var/log/apache2/error.log
/var/log/apache2/access.log

# MySQL logs
/var/log/mysql/error.log

# System logs
/var/log/syslog
/var/log/auth.log

# BMLT logs
/var/www/your-domain.com/main_server/storage/logs/laravel.log

# YAP logs
/var/www/your-domain.com/yap/storage/logs/laravel.log
Alias Commands

Add these aliases to your ~/.bashrc for quicker access:

alias bmlt-logs="sudo tail -f /var/www/your-domain.com/main_server/storage/logs/laravel.log"
alias apache-error="sudo tail -f /var/log/apache2/error.log"
alias apache-access="sudo tail -f /var/log/apache2/access.log"
alias bmlt-backup="sudo mysqldump bmlt | gzip > ~/bmlt-backup-\$(date +%Y%m%d-%H%M).gz"
warning

Always backup before running system-changing commands. When in doubt, create a server snapshot first.