Migrasi Laman Web NGINX ke Caddy di ServBay
ServBay ialah persekitaran pembangunan web tempatan yang berkuasa, mengintegrasikan pelbagai pelayan web popular seperti Caddy, NGINX, dan Apache. ServBay telah membuat prakonfigurasi peraturan URL Rewrite yang lazim digunakan untuk pelayan ini—terutama Caddy dan NGINX—bagi memudahkan proses penyediaan untuk pembangun.
Dokumen ini menyediakan panduan terperinci tentang cara memindahkan laman web NGINX anda ke pelayan Caddy yang dibina dalam ServBay dengan lancar. Kami akan menggunakan contoh kerangka PHP yang popular, Laravel dan sistem pengurusan kandungan WordPress, untuk menerangkan keseluruhan proses migrasi.
Sokongan Menyeluruh ServBay untuk Pelayan Web
ServBay menyokong sepenuhnya Caddy, NGINX dan Apache, membolehkan anda menukar pelayan web utama dengan fleksibel mengikut keperluan projek. Rujuk dokumen Cara Menukar Pelayan Web Utama untuk maklumat lanjut.
Ringkasan
Migrasi laman web dari satu pelayan web ke pelayan lain melibatkan pemindahan fail konfigurasi serta fail laman. Dalam ServBay, proses migrasi ke Caddy sangat mudah. Untuk kebanyakan rangka kerja PHP dan sistem CMS (seperti Laravel, WordPress, Symfony, CodeIgniter, Drupal, Joomla dan lain-lain), ServBay sudah menyediakan sokongan sedia guna di mana anda tidak perlu menulis atau mengubah konfigurasi Caddy secara manual. Caddyfile akan dijana secara automatik oleh ServBay berdasarkan tetapan laman yang anda buat di GUI.
Persediaan Sebelum Migrasi
Pastikan anda melakukan langkah berikut sebelum memulakan migrasi:
- Sandarkan fail laman web: Lakukan sandaran penuh semua fail dan folder di direktori root laman anda.
- Sandarkan pangkalan data: Simpan salinan pangkalan data yang digunakan oleh laman web anda (seperti MySQL, PostgreSQL, MongoDB, dsb.). ServBay menyediakan alat pengurusan pangkalan data terbina dalam dan juga menyokong sandaran manual.
- Pasang ServBay: Pastikan ServBay telah dipasang dan berjalan di macOS anda.
- Pastikan lokasi fail: Letakkan fail laman web anda dalam direktori root laman web ServBay—
/Applications/ServBay/www
—atau subdirektorinya. Sebagai contoh, jika projek anda bernamamyproject
, letakkan di/Applications/ServBay/www/myproject
.
Cara Caddy Berfungsi di ServBay
Memahami bagaimana ServBay mengurus konfigurasi Caddy adalah penting untuk proses migrasi. Tidak seperti pengurusan Caddyfile secara manual, ServBay membolehkan anda menambah dan mengkonfigurasi laman terus melalui antara muka grafik (GUI). Apabila anda menambah laman dan memilih Caddy sebagai pelayan web, ServBay akan secara automatik menjana dan menguruskan snippet Caddyfile berdasarkan domain, root direktori laman, versi PHP dan parameter lain yang anda tetapkan. Snippet ini akan dimasukkan ke Caddyfile utama oleh ServBay untuk memastikan laman berjalan seperti sepatutnya.
Dengan kata lain, penambahan laman melalui GUI ServBay telah melengkapkan konfigurasi Caddy, tanpa perlu sebarang penyuntingan fail .caddyfile
atau fail teks lain secara manual.
Langkah Migrasi
Migrasi laman web NGINX ke Caddy di ServBay sangat mudah:
- Mulakan ServBay: Pastikan aplikasi ServBay sedang berjalan.
- Letak fail laman web: Salin atau pindahkan semua fail laman NGINX anda (termasuk kod aplikasi, imej, CSS, JS, dll.) ke dalam folder baru di root laman ServBay, seperti
/Applications/ServBay/www/your-site-name
. - Tambah laman melalui GUI ServBay:
- Buka aplikasi ServBay.
- Navigasi ke bahagian “Websites”.
- Klik butang “Tambah Website”.
- Isi maklumat laman:
- Domain: Masukkan domain yang anda ingin gunakan secara tempatan, misalnya
your-site-name.servbay.demo
. - Root Website: Pilih direktori di mana anda letakkan fail laman pada langkah 2, contohnya
/Applications/ServBay/www/your-site-name
. - Pelayan Web: Pilih
Caddy
. - Versi PHP: Pilih versi PHP yang diperlukan untuk laman anda.
- Domain: Masukkan domain yang anda ingin gunakan secara tempatan, misalnya
- Klik butang “Simpan” atau “Cipta”.
- Sahkan laman web: ServBay akan menambah domain baru ini ke fail hosts tempatan anda dan mengkonfigurasi Caddy. Lawati domain yang anda tetapkan (contoh:
http://your-site-name.servbay.demo
) dalam pelayar untuk memastikan laman dimuatkan dengan betul. - Konfigurasi pangkalan data: Jika laman anda memerlukan pangkalan data, pastikan servis pangkalan data yang berkaitan (MySQL, PostgreSQL, dsb.) telah diaktifkan dalam ServBay, dan maklumat sambungan (alamat biasanya
127.0.0.1
ataulocalhost
, nama pengguna dan kata laluan) dikemaskini dalam fail konfigurasi laman anda.
Contoh: Migrasi Laman Laravel
Konfigurasi NGINX Tipikal (Untuk Rujukan Sahaja)
Berikut ialah contoh konfigurasi NGINX biasa untuk laman Laravel, menunjukkan cara root, fail masuk (index.php
) dan pemprosesan PHP FastCGI dikonfigurasi:
nginx
server {
listen 80;
server_name laravel.servbay.demo; # Contoh domain tajaan ServBay
root /Applications/ServBay/www/laravel/public; # Arahkan ke direktori public Laravel
index index.php index.html index.htm;
location / {
# Cuba akses fail atau folder secara langsung, jika tiada, hala semula ke index.php
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# Konfigurasi pemprosesan PHP FastCGI
include fastcgi_params;
# Laluan socket PHP-CGI lalai ServBay
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Halang akses ke fail tersembunyi
deny all;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Konfigurasi Caddy Di ServBay (Jana Automatik, Tiada Penulisan Manual Diperlukan)
Tiada Keperluan Konfigurasi Caddyfile Manual
Di ServBay, anda tidak perlu mencipta atau mengubah Caddyfile untuk fungsi di atas. GUI ServBay akan menjana konfigurasi Caddy yang diperlukan secara automatik berdasarkan tetapan ketika laman ditambah. Contoh di bawah hanya untuk memperjelas bagaimana ServBay mengendalikan konfigurasi seperti NGINX, membantu anda memahami prinsip kerjanya.
Berikut ialah potongan konfigurasi Caddy yang dijana secara automatik oleh ServBay untuk laman Laravel di atas (versi ringkas; konfigurasi sebenar mungkin lebih terperinci):
bash
# Konfigurasi ini diuruskan secara automatik oleh ServBay
laravel.servbay.demo {
# Tetapkan root direktori laman
root * /Applications/ServBay/www/laravel/public
# Konfigurasi pemprosesan PHP FastCGI, laluan ke socket PHP-CGI ServBay
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Aktifkan servis fail
file_server
# Pemadanan untuk fail bukan statik
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Hala semula kepada index.php untuk bukan-fail statik
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
Langkah Migrasi Laravel:
- Salin projek Laravel anda ke
/Applications/ServBay/www/laravel
. - Pastikan direktori
laravel/public
adalah pintu masuk laman. - Tambah laman baru dalam GUI ServBay: domain
laravel.servbay.demo
, root laman/Applications/ServBay/www/laravel/public
, pelayan web pilihCaddy
. - Tetapkan maklumat sambungan pangkalan data dengan betul dalam fail
.env
Laravel. - Akses
http://laravel.servbay.demo
untuk menguji laman.
Contoh: Migrasi Laman WordPress
Konfigurasi NGINX Tipikal (Untuk Rujukan Sahaja)
Berikut contoh konfigurasi NGINX biasa untuk WordPress:
nginx
server {
listen 80;
server_name wordpress.servbay.demo; # Contoh domain tajaan ServBay
root /Applications/ServBay/www/wordpress; # Arahkan ke direktori pemasangan WordPress
index index.php index.html index.htm;
location / {
# Peraturan permalink WordPress
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# Konfigurasi pemprosesan PHP FastCGI
include fastcgi_params;
# Laluan socket PHP-CGI lalai ServBay
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Halang akses ke fail tersembunyi
deny all;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Konfigurasi Caddy Di ServBay (Jana Automatik, Tiada Penulisan Manual Diperlukan)
Tiada Keperluan Konfigurasi Caddyfile Manual
Bagi WordPress juga, ServBay akan mengurus konfigurasi Caddy secara automatik melalui GUI. Contoh di bawah hanya untuk memperjelas bagaimana fungsi permalink WordPress diimplementasikan.
Berikut ialah contoh snippet konfigurasi Caddy yang dijana untuk laman WordPress:
bash
# Konfigurasi ini diuruskan secara automatik oleh ServBay
wordpress.servbay.demo {
# Tetapkan root direktori laman
root * /Applications/ServBay/www/wordpress
# Konfigurasi pemprosesan PHP FastCGI
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Aktifkan servis fail
file_server
# Pemadanan untuk fail bukan statik
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Hala semula kepada index.php untuk permalink
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
Langkah Migrasi WordPress:
- Salin semua fail WordPress ke
/Applications/ServBay/www/wordpress
. - Tambah laman baru dalam GUI ServBay: domain
wordpress.servbay.demo
, root laman/Applications/ServBay/www/wordpress
, pelayan web pilihCaddy
. - Tetapkan maklumat sambungan pangkalan data yang betul dalam fail
wp-config.php
WordPress. - Lawati
http://wordpress.servbay.demo
untuk ujian. Jika terdapat isu permalink, biasanya ia sudah diselesaikan oleh peraturan Rewrite dari ServBay; semak tetapan "Settings" > "Permalinks" di WordPress.
Perhatian
- Sambungan Pangkalan Data: Pastikan anda mengemaskini maklumat sambungan pangkalan data laman selepas migrasi untuk menunjuk ke servis pangkalan data yang berjalan dalam ServBay.
- Pemboleh Ubah Persekitaran: Jika aplikasi anda bergantung pada pemboleh ubah persekitaran khusus, pastikan ia sudah diset di persekitaran ServBay (contohnya melalui fail
.env
PHP atau kaedah konfigurasi ServBay). - Konfigurasi NGINX Kompleks: Contoh dalam dokumen ini diasaskan kepada konfigurasi Laravel dan WordPress yang tipikal. Jika anda menggunakan konfigurasi NGINX yang sangat kompleks, tersuai, atau tidak lazim, konfigurasi automatik ServBay mungkin tidak mencukupi sepenuhnya. Dalam kes tersebut, rujuk dokumentasi rasmi Caddy serta gunakan titik lanjutan konfigurasi yang disediakan ServBay (jika ada), atau fahami logik auto-generasi ServBay untuk memperibadikan konfigurasi anda. Namun, untuk kebanyakan aplikasi standard, auto-konfigurasi ServBay sudah memadai.
- HTTPS/SSL: ServBay menyokong HTTPS untuk laman tempatan anda. Anda boleh menjana dan mempercayai sijil SSL tempatan menggunakan ServBay User CA atau ServBay Public CA tanpa perlu konfigurasi manual arahan TLS untuk Caddy.
Kesimpulan
Migrasi laman web NGINX ke pelayan Caddy dalam ServBay adalah proses yang dipermudahkan, terima kasih kepada pengurusan automatik konfigurasi Caddy oleh ServBay. Untuk aplikasi popular seperti Laravel dan WordPress, anda hanya perlu meletakkan fail pada direktori yang dinyatakan dan menambah laman melalui GUI ServBay. ServBay akan secara automatik mengurus peraturan URL Rewrite, PHP FastCGI dan tetapan berkaitan, membolehkan anda melancarkan laman dengan Caddy di persekitaran tempatan dengan pantas.