# การติดตั้ง Kotchasan Framework ## ข้อกำหนดระบบ ### ข้อกำหนดขั้นต่ำ - **PHP**: 8.0 หรือสูงกว่า - **Composer**: 2.0 หรือสูงกว่า - **Web Server**: Apache 2.4+ หรือ Nginx 1.18+ - **Database**: MySQL 5.7+ หรือ MariaDB 10.3+ - **Memory**: 512MB RAM (แนะนำ 1GB+) - **Storage**: 100MB พื้นที่ว่าง ### ข้อกำหนดที่แนะนำ - **PHP**: 8.1 หรือ 8.2 - **Memory**: 2GB RAM - **Storage**: 1GB พื้นที่ว่าง - **SSL Certificate**: สำหรับ Production ## การติดตั้ง ### 1. ติดตั้งผ่าน Composer (แนะนำ) ```bash # สร้างโปรเจ็คใหม่ composer create-project kotchasan/framework my-project # เข้าไปในโฟลเดอร์โปรเจ็ค cd my-project ``` ### 2. ติดตั้งผ่าน Git Clone ```bash # Clone repository git clone https://github.com/kotchasan/framework.git my-project cd my-project # ติดตั้ง dependencies composer install ``` ### 3. ติดตั้งผ่าน Download ```bash # ดาวน์โหลดไฟล์ ZIP wget https://github.com/kotchasan/framework/archive/main.zip unzip main.zip mv framework-main my-project cd my-project # ติดตั้ง dependencies composer install ``` ## การตั้งค่า Environment ### 1. คัดลอกไฟล์ Environment ```bash cp .env.example .env ``` ### 2. แก้ไขไฟล์ .env ```env # Application APP_NAME="Kotchasan Framework" APP_ENV=local APP_DEBUG=true APP_URL=http://localhost # Database DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=kotchasan DB_USERNAME=root DB_PASSWORD= # Cache CACHE_DRIVER=file SESSION_DRIVER=file # Mail MAIL_MAILER=smtp MAIL_HOST=localhost MAIL_PORT=587 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null ``` ### 3. สร้าง Application Key ```bash php artisan key:generate ``` ## การตั้งค่าฐานข้อมูล ### 1. สร้างฐานข้อมูล ```sql -- MySQL CREATE DATABASE kotchasan CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- หรือใช้ MariaDB CREATE DATABASE kotchasan CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 2. รัน Migration ```bash # รัน migration ทั้งหมด php artisan migrate # หรือรันทีละไฟล์ php artisan migrate --step ``` ### 3. Seed ข้อมูลเริ่มต้น ```bash # Seed ข้อมูลเริ่มต้น php artisan db:seed # หรือ seed เฉพาะ seeder ที่ต้องการ php artisan db:seed --class=UserSeeder ``` ## การตั้งค่า Web Server ### Apache Configuration สร้างไฟล์ `.htaccess` ในโฟลเดอร์ `public`: ```apache RewriteEngine On # Handle Angular and other client-side routes RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,L] # Security headers Header always set X-Content-Type-Options nosniff Header always set X-Frame-Options DENY Header always set X-XSS-Protection "1; mode=block" ``` ### Nginx Configuration ```nginx server { listen 80; server_name your-domain.com; root /path/to/kotchasan/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } } ``` ## การตั้งค่า SSL (HTTPS) ### 1. ใช้ Let's Encrypt (แนะนำ) ```bash # ติดตั้ง Certbot sudo apt install certbot python3-certbot-nginx # สร้าง SSL Certificate sudo certbot --nginx -d your-domain.com ``` ### 2. ใช้ Self-Signed Certificate ```bash # สร้าง private key openssl genrsa -out server.key 2048 # สร้าง certificate openssl req -new -x509 -key server.key -out server.crt -days 365 ``` ## การตั้งค่า Cache ### 1. File Cache (Default) ```env CACHE_DRIVER=file ``` ### 2. Redis Cache ```env CACHE_DRIVER=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 ``` ### 3. Memcached ```env CACHE_DRIVER=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 ``` ## การตั้งค่า Queue ### 1. Database Queue ```env QUEUE_CONNECTION=database ``` ```bash # สร้างตาราง queue php artisan queue:table php artisan migrate ``` ### 2. Redis Queue ```env QUEUE_CONNECTION=redis ``` ## การตั้งค่า Mail ### 1. SMTP Configuration ```env MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=your-email@gmail.com MAIL_PASSWORD=your-app-password MAIL_ENCRYPTION=tls ``` ### 2. Mailgun ```env MAIL_MAILER=mailgun MAILGUN_DOMAIN=your-domain.mailgun.org MAILGUN_SECRET=your-mailgun-secret ``` ## การตั้งค่า Logging ### 1. File Logging ```env LOG_CHANNEL=stack LOG_LEVEL=debug ``` ### 2. Syslog ```env LOG_CHANNEL=syslog ``` ### 3. Custom Log Channel ```php // config/logging.php 'channels' => [ 'custom' => [ 'driver' => 'single', 'path' => storage_path('logs/custom.log'), 'level' => 'debug', ], ], ``` ## การทดสอบการติดตั้ง ### 1. ตรวจสอบ PHP Version ```bash php -v # ควรแสดง PHP 8.0 หรือสูงกว่า ``` ### 2. ตรวจสอบ Composer ```bash composer --version # ควรแสดง Composer 2.0 หรือสูงกว่า ``` ### 3. ตรวจสอบ Extension ที่จำเป็น ```bash php -m | grep -E "(pdo|mbstring|openssl|curl|json|zip)" ``` ### 4. ทดสอบ Application ```bash # เริ่ม development server php artisan serve # เปิดเบราว์เซอร์ไปที่ http://localhost:8000 ``` ## การแก้ไขปัญหา ### ปัญหาที่พบบ่อย #### 1. Permission Issues ```bash # ตั้งค่า permission sudo chown -R www-data:www-data storage bootstrap/cache sudo chmod -R 775 storage bootstrap/cache ``` #### 2. Composer Memory Limit ```bash # เพิ่ม memory limit php -d memory_limit=2G /usr/local/bin/composer install ``` #### 3. Database Connection Error ```bash # ตรวจสอบการเชื่อมต่อฐานข้อมูล php artisan tinker >>> DB::connection()->getPdo(); ``` #### 4. Cache Issues ```bash # ล้าง cache php artisan cache:clear php artisan config:clear php artisan route:clear php artisan view:clear ``` ## การอัปเดต ### 1. อัปเดต Dependencies ```bash composer update ``` ### 2. อัปเดต Database Schema ```bash php artisan migrate ``` ### 3. อัปเดต Cache ```bash php artisan optimize ``` ## การสำรองข้อมูล ### 1. สำรองฐานข้อมูล ```bash # MySQL mysqldump -u root -p kotchasan > backup.sql # MariaDB mysqldump -u root -p kotchasan > backup.sql ``` ### 2. สำรองไฟล์ ```bash # สำรองไฟล์สำคัญ tar -czf backup.tar.gz storage/ .env config/ ``` ## การติดตั้งบน Production ### 1. ตั้งค่า Environment ```env APP_ENV=production APP_DEBUG=false APP_URL=https://your-domain.com ``` ### 2. Optimize Application ```bash php artisan optimize php artisan config:cache php artisan route:cache php artisan view:cache ``` ### 3. ตั้งค่า Process Manager ```bash # ติดตั้ง Supervisor sudo apt install supervisor # สร้างไฟล์ configuration sudo nano /etc/supervisor/conf.d/kotchasan.conf ``` ```ini [program:kotchasan] command=php /path/to/kotchasan/artisan queue:work directory=/path/to/kotchasan autostart=true autorestart=true user=www-data redirect_stderr=true stdout_logfile=/path/to/kotchasan/storage/logs/worker.log ``` --- **หมายเหตุ**: เอกสารนี้ครอบคลุมการติดตั้งพื้นฐาน สำหรับข้อมูลเพิ่มเติมโปรดดูที่ [Getting Started Guide](getting-started.md)