Membina & Memasang Modul PHP Tersuai dalam ServBay (macOS)
ServBay ialah persekitaran pembangunan web tempatan yang komprehensif direka khusus untuk macOS, merangkumi pelbagai pakej untuk memenuhi keperluan pembangun web moden. Ia diprapasang dengan PHP, Node.js, Python, Go, Java, pelbagai pangkalan data (MySQL, PostgreSQL, MongoDB), cache (Redis), serta pelayan web (Caddy, Nginx, Apache). Setiap pakej disokong pelbagai versi, membolehkan anda menukar persekitaran dengan fleksibel mengikut keperluan projek.
Walaupun ServBay telah menyepadukan banyak modul PHP yang biasa digunakan, dalam sesetengah senario pembangunan, anda mungkin perlu membina dan memasang modul PHP tambahan untuk memperluaskan keupayaan PHP atau menyepadukan servis pihak ketiga tertentu.
Dokumen ini menyediakan panduan terperinci mengenai cara untuk membina dan memasang modul tersuai untuk versi PHP anda dalam persekitaran ServBay. Sebagai contoh, kita akan menerangkan proses membina modul pemprosesan imej imagick
dan pemacu pangkalan data Microsoft SQL Server sqlsrv
untuk membantu anda menambah fungsi yang diperlukan ke dalam persekitaran PHP dalam ServBay.
Prasyarat
Nota Penting
Sebelum membina sebarang modul PHP, langkah paling kritikal ialah melakukan inisialisasi persekitaran pembinaan serta menetapkan pembolehubah persekitaran sistem anda mengikut panduan rasmi ServBay. Ini merupakan asas utama kepada kejayaan proses pembinaan semua pakej ServBay (termasuk modul PHP). Sekiranya langkah ini diabaikan atau tidak dilakukan dengan betul, proses pembinaan akan hampir pasti gagal—cth. perintah, pustaka, atau fail header tidak dijumpai.
Skrip inisialisasi persekitaran pembinaan ServBay akan menetapkan pembolehubah penting seperti PATH
(menuju alat binaan dalaman ServBay), SERVBAY_PACKAGE_FULL_PATH
(direktori akar pakej ServBay) dan CPU_NUMBER
(untuk binaan berbilang teras). Pembolehubah ini sangat kritikal untuk perintah pembinaan seterusnya.
Untuk langkah terperinci tentang inisialisasi persekitaran pembinaan ServBay, rujuk dokumen: Kompilasi Semula dengan ServBay. Sila pastikan anda benar-benar faham dan ikut sepenuhnya semua langkah yang dinyatakan dalam dokumen tersebut.
Sebelum meneruskan, pastikan anda telah berjaya menginisialisasi persekitaran pembinaan ServBay dan pembolehubah persekitaran berkaitan telah diset dengan betul dalam sesi terminal semasa.
Kepentingan Menentukan Versi PHP
Salah satu ciri utama ServBay ialah kebolehannya menyokong pelbagai versi PHP yang dijalankan serentak pada satu sistem. Ini memberi fleksibiliti penuh untuk menukar persekitaran PHP bagi setiap projek. Namun, apabila membina modul PHP, anda MESTI melakukan proses ini untuk versi PHP tertentu. Alat utama seperti phpize
dan php-config
adalah khusus untuk setiap versi PHP.
phpize
: Skrip ini menyediakan persekitaran pembinaan untuk sambungan PHP, membaca failconfig.m4
dan menghasilkan skripconfigure
.php-config
: Menyediakan maklumat konfigurasi terperinci untuk versi PHP tertentu, termasuk flag penyusun, direktori termasuk, direktori pustaka, direktori pemasangan sambungan, dsb.—yang digunakanconfigure
untuk memastikan modul boleh dibina dan dipaut dengan betul.
Justeru, apabila melaksanakan phpize
, php-config
, atau perintah berkaitan binaan PHP, anda mesti menentukan laluan penuh ke alat untuk versi PHP tujuan. Contohnya, untuk PHP 8.3 dalam ServBay, gunakan /Applications/ServBay/package/php/8.3/current/bin/phpize
dan /Applications/ServBay/package/php/8.3/current/bin/php-config
. Memastikan laluan tepat akan mengelakkan masalah ketidakserasian dan ralat masa bina atau masa larian.
Segala contoh dalam dokumen ini akan menggunakan PHP 8.3 dalam ServBay sebagai contoh. Sila tukarkan laluan perintah mengikut versi PHP sebenar yang anda gunakan di persekitaran ServBay anda.
Membina Modul PHP imagick
Modul imagick
ialah sambungan PHP yang popular, berasaskan pustaka ImageMagick, menawarkan pelbagai fungsi pemprosesan imej canggih. Dengan imagick
, anda boleh melaksanakan penskalaan, memangkas, penukaran format, menambah watermark, penggabungan imej, dan banyak lagi di dalam PHP. Berikut adalah langkah terperinci untuk membina dan memasang modul imagick
pada versi PHP pilihan dalam ServBay:
Langkah 1: Pasang Pustaka ImageMagick (Kebergantungan)
Modul PHP imagick
bergantung kepada pustaka ImageMagick yang mesti dipasang pada sistem. Disarankan guna Homebrew sebagai pengurus pakej pada macOS. Jika anda belum memasang Homebrew, lawati laman web rasmi Homebrew untuk panduan pemasangan.
Buka Terminal dan jalankan perintah berikut:
bash
brew install imagemagick
1
Langkah 2: Muat turun Kod Sumber Modul imagick
Muat turun sumber modul imagick
dari laman rasmi PECL. Pergi ke PECL imagick page untuk mencari versi yang dikehendaki (biasanya pilih versi stabil terkini) dan salin pautan muat turun. Contoh berikut menggunakan versi 3.7.0
:
bash
wget https://pecl.php.net/get/imagick-3.7.0.tgz
1
Langkah 3: Ekstrak Sumber & Masuk Direktorinya
Selepas muat turun, ekstrak fail sumber dan masuki direktori sumber:
bash
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
1
2
2
Langkah 4: Sediakan Persekitaran Pembinaan (phpize)
Dari direktori sumber, gunakan phpize
untuk versi PHP sasaran dengan laluan penuh. Anggapkan anda membina untuk PHP 8.3 dan pembolehubah persekitaran SERVBAY_PACKAGE_FULL_PATH
telah diset:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
1
Selepas berjaya, beberapa fail pembinaan akan dijana.
Langkah 5: Konfigurasi Pilihan Bina
Jalankan configure
dengan parameter --with-php-config
untuk versi PHP sasaran:
bash
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
1
configure
akan mengesan pustaka ImageMagick dan header yang diperlukan. Jika berlaku ralat, selalunya kebergantungan tidak dijumpai atau laluan tak betul.
Langkah 6: Bina & Pasang Modul
Jika konfigurasi berjaya dan Makefile
dijana, teruskan membina dan memasang:
bash
make -j ${CPU_NUMBER}
make install
1
2
2
make install
akan menyalin fail imagick.so
ke direktori sambungan PHP standard untuk versi PHP berkenaan (cth. /Applications/ServBay/package/php/8.3/current/lib/php/extensions/no-debug-non-zts-YYYYMMDD/
).
Langkah 7: Aktifkan Modul
Selepas pemasangan, aktifkan modul dalam fail konfigurasi PHP untuk versi berkenaan melalui UI ServBay:
- Buka aplikasi ServBay
- Navigasi menu kiri:
Bahasa
-PHP
-PHP 8.3
- Pilih tab
PHP
, skrol ke bahagian akhir, dalam “Parameter Tambahan”, masukkanextension=imagick.so
- Klik
Simpan
; proses PHP akan dimulakan semula secara automatik.
Langkah 8: Sahkan Modul Dimuatkan
Selepas modul diaktifkan, mulakan semula pakej PHP dalam ServBay untuk pastikan konfigurasi baru berkuat kuasa. Anda boleh lakukan ini melalui panel kawalan ServBay atau alat command line ServBay.
Kemudian, jalankan perintah:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagick
1
Pastikan anda menggunakan fail laku PHP versi tepat dari ServBay. Jika imagick
dipaparkan, modul telah berjaya dimuatkan.
Untuk pengesahan lanjut, cipta fail PHP (cth. info.php
) di direktori root web anda:
php
<?php phpinfo(); ?>
1
Layari http://localhost/info.php
dan cari "imagick" pada halaman tersebut untuk semakan lanjut.
Membina Modul PHP sqlsrv/pdo_sqlsrv
Modul sqlsrv
dan pdo_sqlsrv
ialah sambungan rasmi untuk berinteraksi dengan Microsoft SQL Server dalam PHP, bergantung kepada pemacu ODBC Microsoft.
Nota: Prasyarat Penting
Untuk membina dan memasang modul sqlsrv
pada macOS, anda WAJIB memasang pemacu ODBC SQL Server Microsoft (msodbcsql18
) serta alat command line berkaitan (mssql-tools18
). Pakej ini tidak disertakan oleh ServBay dan perlu dipasang secara manual.
Disyorkan guna Homebrew. Jika belum, pasang Homebrew melalui laman rasmi.
Untuk pemasangan, jalankan perintah berikut (setuju EULA dengan HOMEBREW_ACCEPT_EULA=Y
):
bash
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools18
1
2
3
2
3
Pastikan semua kebergantungan ini telah dipasang SEBELUM binaan. Biasanya, ia akan dipasang pada /opt/homebrew/
(Apple Silicon) atau /usr/local/
(Intel). Pastikan laluan yang betul digunakan.
Petua
sqlsrv
dan pdo_sqlsrv
ialah dua modul berbeza dan mesti dibina secara berasingan, tetapi proses pembinaannya serupa—contoh di bawah untuk sqlsrv
.
Langkah 1: Pasang Pemacu ODBC Microsoft & Alat Berkaitan
(Pastikan langkah ini dilakukan seperti diterangkan dalam prasyarat di atas.)
Langkah 2: Dapatkan Kod Sumber Modul sqlsrv
Muat turun sumber sqlsrv
dan pdo_sqlsrv
dari PECL:
bash
wget https://pecl.php.net/get/sqlsrv-5.12.0.tgz # sqlsrv
wget https://pecl.php.net/get/pdo_sqlsrv-5.12.0.tgz # pdo_sqlsrv
1
2
2
Langkah 3: Ekstrak & Masuk ke Direktori Sumber
bash
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# Untuk pdo_sqlsrv, ulang langkah ini; di sini hanya ditunjukkan untuk sqlsrv.
1
2
3
4
2
3
4
Langkah 4: Sediakan Persekitaran Bina (phpize)
Gunakan phpize
versi PHP sasaran secara penuh:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
1
Langkah 5: Konfigurasi Pilihan Bina (Sertakan Laluan Kebergantungan)
Sebelum jalankan ./configure
, tetapkan LDFLAGS
dan CPPFLAGS
untuk memastikan pustaka dan fail header ODBC serta unixODBC dari Homebrew dikenali. Lokasi laluan bergantung pada seni bina cip anda.
Contoh (/opt/homebrew
digunakan untuk Mac Apple Silicon):
bash
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}"
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
1
2
3
2
3
LDFLAGS
: Tentukan laluan pustaka.CPPFLAGS
: Tentukan laluan header termasuk unixODBC.
Langkah 6: Bina & Pasang Modul
bash
make -j ${CPU_NUMBER}
make install
1
2
2
Fail sqlsrv.so
dan (jika berkenaan) pdo_sqlsrv.so
akan dipasang ke direktori sambungan PHP yang sesuai.
Langkah 7: Aktifkan Modul
Selepas pemasangan, aktifkan melalui UI ServBay:
- Buka aplikasi ServBay
- Navigasi menu kiri:
Bahasa
-PHP
-PHP 8.3
- Pilih tab
PHP
, skrol ke bawah, dalam “Parameter Tambahan”, masukkanextension=sqlsrv.so
danextension=pdo_sqlsrv.so
- Klik
Simpan
untuk hidupkan semula PHP.
Langkah 8: Sahkan Modul Dimuatkan
Selepas diaktifkan, mulakan semula pakej PHP. Sahkan modul telah dimuatkan:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep sqlsrv
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep pdo_sqlsrv
1
2
2
Jika modul dipaparkan dalam output, ia telah berjaya dimuatkan. Anda juga boleh menyemak menggunakan phpinfo()
.
Soalan Lazim (FAQ)
- S: Semasa bina keluar ralat "Cannot find autoconf" atau serupa?
- J: Ini biasanya kerana persekitaran binaan ServBay tidak diinisialisasi dengan betul. Sila semak semula bahagian prasyarat dan ikut panduan dalam Kompilasi Semula dengan ServBay. Pastikan alat binaan seperti autoconf, automake, libtool telah dipasang dan berada dalam PATH.
- S:
configure
gagal, ralat pustaka atau fail header tidak ditemui?- J: Modul kebergantungan sistem mungkin tidak dipasang, atau laluan ditetapkan tidak betul.
- Untuk
imagick
, pastikan ImageMagick lengkap dengan fail pembangunan telah dipasang:brew install imagemagick
. - Untuk
sqlsrv
, pasti telah memasang Microsoft ODBC driver (msodbcsql18
) danmssql-tools18
mengikut prasyarat, dan semak semulaLDFLAGS
danCPPFLAGS
. - Semak sama ada laluan Homebrew telah dimasukkan dalam persekitaran pembinaan ServBay atau perlu dodakan secara manual ke dalam
PATH
.
- Untuk
- J: Modul kebergantungan sistem mungkin tidak dipasang, atau laluan ditetapkan tidak betul.
- S:
make
ataumake install
gagal?- J: Boleh disebabkan oleh:
- Kurang kebergantungan: Semak mesej ralat; pasang apa yang perlu.
- Parameter konfigurasi salah: Semak semula
--with-php-config
. - Isu hak milik/fail: Proses pemasangan menyalin fail ke direktori PHP ServBay; mungkin perlukan
sudo make install
(guna dengan berhati-hati). - Kod sumber rosak: Muat turun semula sumber modul.
- J: Boleh disebabkan oleh:
- S: Fail modul
.so
wujud & diaktifkan dalam.ini
, tapi tidak kelihatan dalamphp -m
atauphpinfo()
?- J:
- Paling biasa: PHP belum dimulakan semula. Anda mesti mulakan semula pakej PHP dalam ServBay, BUKAN sekadar pelayan web seperti Caddy/Nginx.
- Sintaks
.ini
salah: Semak ejaan dan format. - Direktori sambungan salah: Pastikan
extension_dir
dalamphp.ini
menunjuk ke direktori yang betul. - Fail modul rosak atau tidak serasi: Cuba bina semula; pastikan versi kod sumber serasi dengan PHP anda. Periksa log ralat PHP di direktori log ServBay.
- J:
Rumusan
Dengan mengikuti panduan terperinci ini, anda seharusnya berjaya membina dan memasang modul PHP tersuai seperti imagick
dan sqlsrv
dalam persekitaran pembangunan tempatan ServBay di macOS. Kunci kepada kejayaan ialah:
- Inisialisasi penuh & betul persekitaran binaan ServBay terlebih dahulu.
- Gunakan laluan yang TEPAT untuk phpize & php-config mengikut versi PHP sasaran.
- Selesaikan semua kebergantungan modul (cth. ImageMagick, Microsoft ODBC driver), dan tentukan laluan dalam pembolehubah persekitaran atau parameter
./configure
semasa pembinaan. - Aktifkan modul melalui fail
.ini
menggunakanextension=namamodul.so
. - Mulakan semula pakej PHP dalam ServBay supaya sambungan baru dimuatkan.
Sebagai persekitaran pembangunan tempatan yang menyeluruh, ServBay menawarkan fleksibiliti tinggi untuk memenuhi keperluan pembangunan anda. Selain binaan modul PHP, ServBay turut menyokong serta telah praintegrasi pelbagai teknologi lain seperti MySQL, PostgreSQL, MongoDB, Redis, Caddy, Nginx, Apache, Node.js, Python, Go, Java, .NET, Ruby, dan Rust. Ia juga menawarkan pelbagai ciri praktikal tambahan seperti permohonan sijil SSL sebenar melalui ACME, konfigurasi CORS mudah, sandaran automatik (termasuk tetapan, laman web, pangkalan data, sijil SSL), tetapan semula kata laluan root DB, serta sokongan ServBay User CA & ServBay Public CA untuk pembangunan HTTPS tempatan.
Semoga panduan ini membantu anda menambah fungsi yang diperlukan ke dalam persekitaran PHP ServBay, seterusnya menjadikan pembangunan web anda lebih efektif. Jika anda menghadapi isu lain, rujuk dokumentasi rasmi atau sumber komuniti ServBay.