Deploy AI Agent PHP ke VPS Ubuntu dari nol: setup Nginx sebagai web server, konfigurasi SSL dengan Certbot, domain, Supervisor untuk proses daemon, dan Cron job.
Daftar Isi
Terakhir diperbarui:
TL;DR (Ringkasan Cepat)
- Rekomendasi VPS: Ubuntu 22.04 LTS, minimal 1 vCPU dan 2GB RAM.
- Gunakan Nginx sebagai web server dan PHP-FPM untuk PHP processing.
- Pasang SSL gratis dengan Certbot (Let's Encrypt).
- Gunakan Supervisor untuk memastikan proses agent berjalan terus.
Persiapan VPS Ubuntu
# Update sistem
sudo apt update && sudo apt upgrade -y
# Instal PHP 8.3 + ekstensi
sudo add-apt-repository ppa:ondrej/php -y
sudo apt install php8.3-fpm php8.3-cli php8.3-curl php8.3-mbstring \
php8.3-json php8.3-mysql php8.3-xml php8.3-zip -y
# Instal Nginx dan MySQL
sudo apt install nginx mysql-server -y
# Instal Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Konfigurasi Nginx
# /etc/nginx/sites-available/ai-agent
server {
listen 80;
server_name ai-agent.domain.com;
root /var/www/ai-agent/public;
index index.php;
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 120; # Penting untuk respons AI yang lambat
}
location ~ /\. {
deny all; # Blokir akses ke file tersembunyi (.env, .git)
}
}
# Aktifkan site dan reload Nginx
sudo ln -s /etc/nginx/sites-available/ai-agent /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Pasang SSL dengan Certbot
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d ai-agent.domain.com
# Ikuti instruksi, SSL akan otomatis dikonfigurasi di Nginx
Deploy Aplikasi
cd /var/www
git clone https://github.com/username/php-ai-agent.git ai-agent
cd ai-agent
composer install --no-dev --optimize-autoloader
# Set permissions
sudo chown -R www-data:www-data /var/www/ai-agent
sudo chmod -R 755 /var/www/ai-agent
sudo chmod -R 777 /var/www/ai-agent/logs # Agar PHP bisa menulis log
# Konfigurasi .env production
cp .env.example .env
nano .env # Isi dengan konfigurasi production
Setup Supervisor
sudo apt install supervisor -y
# /etc/supervisor/conf.d/ai-agent-worker.conf
[program:ai-agent-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/ai-agent/worker.php
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/ai-agent/logs/worker.log
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start ai-agent-worker:*
Cron Job
sudo crontab -e -u www-data
# Tambahkan:
# Bersihkan log lama setiap hari jam 2 pagi
0 2 * * * find /var/www/ai-agent/logs -name "*.log" -mtime +30 -delete
# Rotasi session setiap jam
0 * * * * php /var/www/ai-agent/artisan clear-expired-sessions
Poin Kunci Bab 19
Deploy yang benar memastikan AI Agent Anda berjalan stabil, aman, dan efisien di production. Jangan pernah lupa mengamankan file .env dan memblokir akses direktori sensitif di Nginx.