Sebelum memulai praktik, pastikan Anda telah memahami konsep dasar pada materi kelas AI Agent & PHP di infokoding.

BAB 19

Deploy AI Agent ke VPS

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.

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.