วิธีการย้ายเว็บไซต์ Apache ไปยัง Caddy
ServBay ให้บริการเซิร์ฟเวอร์เว็บทั้ง Caddy, Nginx และ Apache ผู้ใช้สามารถเลือกใช้งานตามความเหมาะสมของแต่ละโปรเจกต์ สำหรับเฟรมเวิร์ก PHP และ CMS ที่ได้รับความนิยมส่วนใหญ่ ทาง ServBay ได้ตั้งค่ากฎ URL Rewrite สำหรับ Caddy และ Nginx ไว้ล่วงหน้าแล้ว สามารถใช้งานได้ทันทีโดยไม่ต้องตั้งค่าเพิ่มเติม
บทความนี้จะอธิบายวิธีการนำเว็บไซต์ที่เคยตั้งค่าด้วย Apache มาทำงานในสภาพแวดล้อมการพัฒนาในเครื่องผ่าน Caddy ของ ServBay โดยจะยกตัวอย่างผ่านโปรเจกต์ยอดนิยมอย่าง Laravel และ WordPress
เกี่ยวกับการรองรับ Apache โดย ServBay
ServBay รองรับ Apache เป็นเว็บเซิร์ฟเวอร์โดยสมบูรณ์ ถ้าคุณต้องการเปลี่ยนเซิร์ฟเวอร์เว็บหลักของ ServBay เป็น Apache หรือศึกษาวิธีตั้งค่าเว็บไซต์แบบ Apache บน ServBay โปรดดูเอกสาร วิธีเปลี่ยนเซิร์ฟเวอร์เว็บเริ่มต้นเป็น Apache บทความนี้เน้นที่การย้ายเว็บไซต์ที่ตั้งค่าด้วย Apache ไปยังสภาพแวดล้อม Caddy ของ ServBay
ภาพรวม
การย้ายเว็บไซต์จากหนึ่งเว็บเซิร์ฟเวอร์ไปอีกตัวหนึ่ง ต้องปรับเปลี่ยนทั้งไฟล์และการกำหนดค่า ServBay อนุญาตให้ผู้ใช้เลือกใช้ Caddy เป็นเว็บเซิร์ฟเวอร์ พร้อมรองรับเฟรมเวิร์ก PHP และ CMS ชั้นนำแบบใช้งานได้ทันที หมายถึง ServBay จะตั้งค่าที่จำเป็นและกฎ Rewrite ให้โดยอัตโนมัติ ดังนั้น การย้ายเว็บไซต์ที่เคยตั้งค่าบน Apache มารันบน Caddy ใน ServBay จึงง่ายมาก เพียงเพิ่มเว็บไซต์ในแอป ServBay ให้ถูกต้องเท่านั้น
เตรียมความพร้อมก่อนย้าย
ก่อนเริ่มกระบวนการย้าย โปรดตรวจสอบให้ครบตามขั้นตอนดังนี้:
- สำรองข้อมูลไฟล์: สำรองข้อมูลเว็บไซต์ทั้งโฟลเดอร์ รวมถึงโค้ด รูปภาพ และไฟล์ที่อัปโหลดไว้ทั้งหมด
- สำรองฐานข้อมูล: ส่งออก (export) และสำรองฐานข้อมูลที่เว็บไซต์ใช้ ServBay รองรับฐานข้อมูลหลายประเภท เช่น MySQL, PostgreSQL, MongoDB ฯลฯ ใช้เครื่องมือที่สัมพันธ์ในการสำรอง
- ตรวจสอบการติดตั้ง ServBay: ให้แน่ใจว่าคุณติดตั้ง ServBay เรียบร้อยแล้วและใช้งานได้บน macOS
- ตรวจสอบให้เปิดใช้งาน Caddy: ในแอป ServBay ให้แน่ใจว่าได้เปิดใช้งานแพ็กเกจ Caddy แล้ว
ย้ายเว็บไซต์ Laravel ไปยัง Caddy
สมมติคุณมีเว็บไซต์ Laravel ที่กำหนดค่าบน Apache ดังนี้
ตัวอย่างการตั้งค่า Apache แบบทั่วไป (นอกเหนือจาก ServBay)
ตัวอย่างต่อไปนี้แสดงการตั้งค่า Apache VirtualHost สำหรับเว็บไซต์ Laravel โดย DocumentRoot
ชี้มายังโฟลเดอร์ public
พร้อมเปิดใช้การเขียน Rewrite ใน .htaccess
ผ่าน AllowOverride All
apache
<VirtualHost *:80>
ServerName laravel.demo
DocumentRoot /path/to/your/laravel/public
<Directory /path/to/your/laravel/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# 通常还会配置 PHP 处理方式,例如通过 FPM 或 mod_php
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ทำให้ Laravel ทำงานบน ServBay (ใช้ Caddy)
บน ServBay คุณไม่จำเป็นต้องเขียนหรือแปลงค่า Apache ด้านบนไปเป็นค่าของ Caddy เอง คอนเซปต์ของ ServBay คือช่วยให้การตั้งค่าสำหรับการพัฒนาในเครื่องทำได้ง่ายที่สุด สำหรับ Laravel ที่เป็นเฟรมเวิร์กยอดนิยม ServBay จะสร้างไฟล์ตั้งค่าของ Caddy ให้อัตโนมัติ พร้อมกำหนดให้ชี้ไปที่ public
และดำเนินการตั้งค่า Rewrite ตามที่ต้องการ
ขั้นตอนการใช้งานจริง:
- นำไฟล์โปรเจกต์ Laravel ทั้งหมดคัดลอกไปยังโฟลเดอร์ย่อยใต้เว็บรูทของ ServBay (แนะนำเป็น
/Applications/ServBay/www/your-laravel-project
) และตรวจให้แน่ใจว่าโฟลเดอร์public
อยู่ในเส้นทางนี้ - เปิดแอป ServBay ขึ้นมา
- ไปที่หน้าจัดการ "เว็บไซต์" (Websites)
- คลิกปุ่ม "เพิ่มเว็บไซต์"
- ในหน้าต่างตั้งค่าที่ปรากฏขึ้น:
- โดเมน (Domain): กรอกชื่อโดเมนที่ต้องการเช่น
laravel.servbay.demo
ServBay จะเพิ่มรายการนี้ลงในไฟล์ hosts ให้โดยอัตโนมัติ - ไดเร็กทอรีเว็บรูท (Document Root): เลือกไปยังโฟลเดอร์
public
ของโปรเจกต์ Laravel เช่น/Applications/ServBay/www/your-laravel-project/public
- เว็บเซิร์ฟเวอร์ (Web Server): เลือก
Caddy
- เวอร์ชัน PHP (PHP Version): เลือกเวอร์ชัน PHP ตรงกับโปรเจกต์ของคุณ
- ประเภทแอปพลิเคชัน (Application Type): เลือก
Laravel
นี่คือจุดสำคัญที่ทำให้ ServBay ตั้งค่าให้อัตโนมัติ
- โดเมน (Domain): กรอกชื่อโดเมนที่ต้องการเช่น
- คลิก "บันทึก" หรือ "เพิ่ม" เพื่อยืนยัน
เสร็จสิ้นทุกขั้นตอนแล้ว ServBay จะสร้างโปรไฟล์ Caddy ให้กับเว็บไซต์ laravel.servbay.demo
โดยอัตโนมัติ ตั้งค่าชี้ไปยังโฟลเดอร์ public
ควบคุมกฎ Rewrite และส่งต่อคำขอ PHP อย่างครบถ้วน สามารถเข้าเว็บไซต์ได้ทันทีที่ http://laravel.servbay.demo
ผ่านเว็บเบราว์เซอร์
ตัวอย่างไฟล์ตั้งค่า Caddy (เพื่อความเข้าใจ, ServBay จะสร้างให้อัตโนมัติ)
สำหรับผู้ที่อยากเข้าใจเบื้องหลัง ตัวอย่างไฟล์ตั้งค่า Caddy ต่อไปนี้จะเทียบเท่าสิ่งที่ ServBay สร้างให้อัตโนมัติ คุณไม่จำเป็นต้องสร้างหรือแก้ไขไฟล์นี้เอง
bash
laravel.servbay.demo {
# 设置网站根目录,指向 public 目录
root * /Applications/ServBay/www/your-laravel-project/public
# 配置 PHP FastCGI 处理
# ServBay 会根据您的 PHP 版本和配置自动设置正确的 socket 路径
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# 启用文件服务,处理静态文件
file_server
# Laravel 的主要 Rewrite 规则:如果请求的不是实际文件或目录,则重写到 index.php
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ย้ายเว็บไซต์ WordPress ไปยัง Caddy
สมมติว่าคุณมีเว็บไซต์ WordPress ซึ่งเคยตั้งค่าด้วย Apache ตามนี้
ตัวอย่างการตั้งค่า Apache แบบทั่วไป (นอกเหนือจาก ServBay)
ตัวอย่างนี้ใช้ Apache VirtualHost สำหรับ WordPress โดยเว็บรูทจะชี้ไปที่ไดเร็กทอรีที่ติดตั้ง WordPress และอาศัยการ Rewrite ในไฟล์ .htaccess
เพื่อเปิดใช้ลิงก์ถาวร
apache
<VirtualHost *:80>
ServerName wordpress.demo
DocumentRoot /path/to/your/wordpress
<Directory /path/to/your/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# 通常还会配置 PHP 处理方式
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ทำให้ WordPress ทำงานบน ServBay (ใช้ Caddy)
เช่นเดียวกับ Laravel คุณไม่จำเป็นต้องตั้งค่า Caddy ด้วยตนเอง เมื่อใช้ WordPress กับ Caddy ใน ServBay เพราะ ServBay จะตรวจจับความต้องการของ WordPress และสร้างค่าตั้งค่าให้อัตโนมัติ
ขั้นตอนการใช้งานจริง:
- คัดลอกไฟล์ของโปรเจกต์ WordPress ลงในโฟลเดอร์ย่อยของเว็บรูทใน ServBay เช่น
/Applications/ServBay/www/your-wordpress-site
ให้แน่ใจว่าไฟล์และโฟลเดอร์อย่างindex.php
,wp-admin
,wp-includes
อยู่ในเส้นทางนี้ - เปิดแอป ServBay
- ไปยังหน้าจัดการ "เว็บไซต์" (Websites)
- คลิก "เพิ่มเว็บไซต์"
- ตั้งค่าดังนี้:
- โดเมน (Domain): เช่น
wordpress.servbay.demo
- ไดเร็กทอรีเว็บรูท (Document Root): ระบุโฟลเดอร์รูท WordPress เช่น
/Applications/ServBay/www/your-wordpress-site
- เว็บเซิร์ฟเวอร์ (Web Server): เลือก
Caddy
- เวอร์ชัน PHP (PHP Version): เลือกเวอร์ชันตามที่โปรเจกต์ต้องการ
- ประเภทแอปพลิเคชัน (Application Type): เลือก
WordPress
- โดเมน (Domain): เช่น
- กด "บันทึก" หรือ "เพิ่ม" เพื่อเสร็จสิ้น
ServBay จะสร้างค่าตั้งค่า Caddy และกำหนดโดเมน, ไดเร็กทอรีเว็บรูท, กฎ Rewrite (เพิ่ม URL ถาวร), การส่งต่อ PHP ตามที่ต้องการ เพียงเปิดเว็บเบราว์เซอร์ไปที่ http://wordpress.servbay.demo
ก็สามารถใช้งาน WordPress และลิงก์ถาวรได้ทันที
ตัวอย่างไฟล์ตั้งค่า Caddy (เพื่อความเข้าใจ, ServBay จะสร้างให้อัตโนมัติ)
ต่อไปนี้เป็นตัวอย่างไฟล์ตั้งค่าที่เทียบเท่า ServBay สร้างให้อัตโนมัติสำหรับ WordPress ไม่จำเป็นต้องสร้างหรือแก้ไขเอง
bash
wordpress.servbay.demo {
# 设置网站根目录
root * /Applications/ServBay/www/your-wordpress-site
# 配置 PHP FastCGI 处理
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# 启用文件服务
file_server
# WordPress 的主要 Rewrite 规则:实现固定链接
# 如果请求的不是实际文件或目录,则重写到 index.php
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
สรุป
การย้ายเว็บไซต์ Laravel หรือ WordPress ที่ตั้งค่าบน Apache เดิม มาใช้งานกับ Caddy ใน ServBay ทำได้สะดวกรวดเร็ว เพราะ ServBay มีระบบรองรับสำหรับแอปยอดนิยมในตัว คุณจึงไม่ต้องแปลงไฟล์ .htaccess
หรือโครงสร้าง VirtualHost ของ Apache ให้กลายเป็นไฟล์ Caddy ด้วยตนเอง เพียงแต่กำหนดข้อมูลเว็บไซต์ที่ "เว็บไซต์ (Websites)" ของแอป ServBay ให้ครบถ้วน เลือกชื่อโดเมน กำหนดไดเร็กทอรีเว็บรูท เลือก Caddy เป็นเว็บเซิร์ฟเวอร์ และเลือกประเภทแอปพลิเคชัน (เช่น Laravel หรือ WordPress) แล้ว ServBay จะตั้งค่า Caddy ให้ครบถ้วนโดยอัตโนมัติ แม้กฎ Rewrite ที่ซับซ้อนก็ไม่ใช่ปัญหา
การตั้งค่าโดยอัตโนมัติแบบนี้ช่วยให้ขั้นตอนการย้ายและเตรียมสภาพแวดล้อมการพัฒนาในเครื่องง่ายอย่างมาก ให้คุณโฟกัสกับโค้ดและการพัฒนาจริง มากกว่าการจัดการกับไฟล์ตั้งค่าเซิร์ฟเวอร์