Cách chuyển website Apache sang Caddy
ServBay cung cấp các máy chủ web như Caddy, Nginx và Apache, cho phép người dùng linh hoạt lựa chọn theo nhu cầu dự án. Đối với hầu hết các framework PHP và hệ quản trị nội dung CMS, ServBay đã cấu hình sẵn quy tắc URL Rewrite cho Caddy và Nginx, bạn thường không cần phải tự cấu hình thêm.
Tài liệu này hướng dẫn bạn cách chuyển trang web cấu hình Apache sang chạy trên máy chủ Caddy tích hợp trong môi trường phát triển local của ServBay. Chúng ta sẽ lấy ví dụ với các dự án phổ biến như Laravel và WordPress.
Về hỗ trợ Apache của ServBay
ServBay hoàn toàn hỗ trợ Apache làm máy chủ web. Nếu bạn muốn chuyển máy chủ web mặc định của ServBay sang Apache, hoặc muốn tìm hiểu cách cấu hình website Apache trên ServBay, hãy tham khảo tài liệu: Cách chuyển máy chủ web mặc định sang Apache. Nội dung dưới đây tập trung vào việc chuyển website đang dùng cấu hình Apache sang chạy trên môi trường Caddy của ServBay.
Tổng quan
Việc chuyển website từ máy chủ web này sang máy chủ khác chủ yếu liên quan đến việc điều chỉnh cấu hình và tệp của nó. ServBay cho phép bạn dùng Caddy làm máy chủ web và đã tích hợp sẵn hỗ trợ cho hầu hết các framework PHP và CMS, nghĩa là ServBay tự động xử lý cấu hình cần thiết bao gồm các quy tắc Rewrite. Nhờ đó, việc chuyển một website cấu hình trên Apache sang môi trường Caddy của ServBay rất đơn giản: chủ yếu chỉ cần bạn “thêm website” đúng cách vào ServBay.
Chuẩn bị trước khi chuyển đổi
Trước khi tiến hành bất kỳ thay đổi nào, hãy đảm bảo bạn đã thực hiện các bước chuẩn bị sau:
- Sao lưu tập tin: Sao lưu toàn bộ mã nguồn, hình ảnh, file upload… của website.
- Sao lưu cơ sở dữ liệu: Xuất và sao lưu toàn bộ database website. ServBay hỗ trợ nhiều hệ quản trị cơ sở dữ liệu như MySQL, PostgreSQL, MongoDB..., hãy dùng công cụ phù hợp để backup.
- Kiểm tra cài đặt ServBay: Đảm bảo bạn đã cài đặt và khởi động ServBay trên macOS.
- Đảm bảo Caddy đã bật: Trong ứng dụng ServBay, kiểm tra gói Caddy đã được kích hoạt.
Chuyển website Laravel sang Caddy
Giả sử bạn có một website Laravel đang dùng cấu hình Apache như sau:
Ví dụ cấu hình Apache điển hình (môi trường ngoài ServBay)
Dưới đây là ví dụ cấu hình Apache VirtualHost cho một website Laravel ngoài môi trường ServBay. Lưu ý DocumentRoot
trỏ đến thư mục public
và các quy tắc Rewrite được bật qua AllowOverride All
để sử dụng file .htaccess
.
<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>
# Thường cấu hình cách xử lý PHP, ví dụ qua FPM hoặc mod_php
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Chạy website Laravel này trên ServBay (dùng Caddy)
Với ServBay, bạn không cần chuyển đổi hay viết lại cấu hình Apache trên thành file cấu hình Caddy. Triết lý của ServBay là đơn giản hóa cấu hình môi trường phát triển. Đối với các framework phổ biến như Laravel, khi bạn thêm website, ServBay sẽ tự động sinh cấu hình Caddy đúng chuẩn, bao gồm chỉ định thư mục public
và xử lý quy tắc Rewrite.
Các bước thực hiện:
- Sao chép toàn bộ mã nguồn dự án Laravel vào một thư mục con trong thư mục gốc website của ServBay, ví dụ:
/Applications/ServBay/www/your-laravel-project
. Đảm bảo thư mụcpublic
nằm đúng trong đường dẫn này. - Mở ứng dụng ServBay.
- Truy cập giao diện quản lý “Website”.
- Nhấn nút “Thêm website”.
- Trong cửa sổ cấu hình:
- Domain: Nhập tên miền muốn truy cập, ví dụ
laravel.servbay.demo
. ServBay sẽ tự động thêm tên miền này vào hosts của máy. - Document Root: Nhấn nút duyệt thư mục, chọn thư mục
public
của dự án Laravel, ví dụ:/Applications/ServBay/www/your-laravel-project/public
. - Web Server: Chọn
Caddy
. - PHP Version: Chọn phiên bản PHP phù hợp với dự án.
- Application Type: Chọn
Laravel
. Đây là chìa khóa để ServBay tự động cấu hình đúng.
- Domain: Nhập tên miền muốn truy cập, ví dụ
- Nhấn “Lưu” hoặc “Thêm”.
Hoàn thành các bước trên, ServBay sẽ tự động tạo cấu hình Caddy cho website laravel.servbay.demo
, xử lý đầy đủ trỏ đến thư mục public
, URL rewrite cũng như chuyển tiếp request PHP. Bây giờ, bạn có thể truy cập http://laravel.servbay.demo
từ trình duyệt để chạy website Laravel.
Ví dụ cấu hình Caddy tương đương (chỉ tham khảo, ServBay tự sinh)
Để bạn hiểu ServBay sẽ tự động xử lý những gì, dưới đây là mẫu cấu hình Caddy lý thuyết tương ứng với yêu cầu của Laravel. Bạn không cần tự tạo hay thay đổi file cấu hình này.
laravel.servbay.demo {
# Chỉ định thư mục gốc website, trỏ tới public
root * /Applications/ServBay/www/your-laravel-project/public
# Xử lý PHP FastCGI
# ServBay sẽ tự đặt đúng đường dẫn socket dựa vào phiên bản PHP bạn chọn
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Bật phục vụ file tĩnh
file_server
# Quy tắc Rewrite chính của Laravel: Nếu không phải file/thư mục thật, chuyển về index.php
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Chuyển website WordPress sang Caddy
Giả sử bạn có một website WordPress với cấu hình Apache như sau:
Ví dụ cấu hình Apache điển hình (môi trường ngoài ServBay)
Dưới đây là cấu hình Apache VirtualHost mẫu cho website WordPress ngoài ServBay. WordPress thường trỏ thư mục gốc đến thư mục cài đặt và phụ thuộc vào các quy tắc Rewrite trong .htaccess
để hỗ trợ permalink.
<VirtualHost *:80>
ServerName wordpress.demo
DocumentRoot /path/to/your/wordpress
<Directory /path/to/your/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Thường cấu hình xử lý PHP
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Chạy website WordPress này trên ServBay (dùng Caddy)
Tương tự Laravel, khi dùng Caddy làm máy chủ web cho WordPress trên ServBay, bạn không cần viết cấu hình Caddy thủ công. ServBay sẽ tự động nhận diện nhu cầu của WordPress và sinh cấu hình phù hợp.
Các bước thực hiện:
- Sao chép toàn bộ mã nguồn dự án WordPress vào một thư mục con của thư mục gốc website ServBay, ví dụ:
/Applications/ServBay/www/your-wordpress-site
. Đảm bảo các file và thư mục nhưindex.php
,wp-admin
,wp-includes
đều có đầy đủ. - Mở ứng dụng ServBay.
- Truy cập giao diện quản lý “Website”.
- Nhấn nút “Thêm website”.
- Trong cửa sổ cấu hình:
- Domain: Nhập tên miền truy cập, ví dụ
wordpress.servbay.demo
. - Document Root: Chọn thư mục gốc của dự án WordPress, ví dụ
/Applications/ServBay/www/your-wordpress-site
. - Web Server: Chọn
Caddy
. - PHP Version: Chọn phiên bản PHP theo nhu cầu dự án.
- Application Type: Chọn
WordPress
.
- Domain: Nhập tên miền truy cập, ví dụ
- Nhấn “Lưu” hoặc “Thêm”.
ServBay sẽ tự sinh cấu hình Caddy phù hợp cho wordpress.servbay.demo
, bao gồm khai báo thư mục gốc, quy tắc URL rewrite (permalink) và chuyển tiếp PHP. Sau đó, bạn đã có thể truy cập http://wordpress.servbay.demo
trên trình duyệt và các đường dẫn permalink của WordPress sẽ hoạt động bình thường.
Ví dụ cấu hình Caddy tương đương (chỉ tham khảo, ServBay tự sinh)
Dưới đây là mẫu cấu hình Caddy lý thuyết cho WordPress. Bạn không cần tự tạo hay sửa nó.
wordpress.servbay.demo {
# Chỉ định thư mục gốc website
root * /Applications/ServBay/www/your-wordpress-site
# Xử lý PHP FastCGI
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Phục vụ file tĩnh
file_server
# Quy tắc Rewrite chính của WordPress: hỗ trợ permalink
# Nếu không phải file/thư mục thật, chuyển về index.php
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Tổng kết
Việc chuyển các website Laravel hay WordPress từ môi trường Apache sang máy chủ Caddy của ServBay cực kỳ đơn giản. Nhờ ServBay đã hỗ trợ sẵn cho các loại ứng dụng phổ biến, bạn không cần tự tay chuyển đổi .htaccess
hay cấu hình VirtualHost của Apache sang cú pháp Caddyfile. Chỉ cần thêm website trên giao diện quản lý của ServBay, nhập đúng domain, thư mục gốc, chọn máy chủ web Caddy và loại ứng dụng tương ứng (Laravel hoặc WordPress), mọi cấu hình cần thiết, kể cả các quy tắc Rewrite phức tạp, sẽ do ServBay tự động đảm nhận.
Cách cấu hình tự động này giúp đơn giản hóa quá trình chuyển đổi và thiết lập môi trường phát triển local, để bạn có thể tập trung vào việc phát triển code thay vì phải tốn thời gian cấu hình máy chủ.