Membina dan Memasang Modul PHP Tersuai dalam ServBay
ServBay ialah persekitaran pembangunan web tempatan yang berkuasa untuk macOS dan Windows, disertakan dengan pelbagai pakej untuk memenuhi keperluan pembangun web moden. ServBay memuatkan pelbagai versi PHP, Node.js, Python, Go, Java, pelbagai pangkalan data (MySQL, PostgreSQL, MongoDB), sistem cache (Redis), dan pelayan web (Caddy, Nginx, Apache). Anda boleh bertukar antara versi yang berbeza dengan mudah mengikut keperluan projek anda.
Walaupun ServBay sudah menyediakan banyak modul PHP yang biasa digunakan, dalam sesetengah senario pembangunan anda mungkin perlu membina dan memasang modul PHP tambahan untuk memperluas fungsi PHP atau mengintegrasi dengan servis pihak ketiga.
Dokumen ini ialah panduan terperinci tentang cara membina dan memasang modul PHP tersuai bagi versi PHP yang anda gunakan dalam ServBay. Sebagai contoh, kami akan membina modul pemprosesan imej popular imagick dan modul pemacu pangkalan data Microsoft SQL Server sqlsrv, menerangkan langkah-langkahnya satu persatu supaya anda boleh menambah ciri yang diperlukan ke persekitaran PHP anda dalam ServBay.
Prasyarat
Penting
Sebelum mula membina mana-mana modul PHP, langkah paling kritikal ialah mengikut dokumentasi rasmi ServBay untuk inisialisasi persekitaran pembinaan dan menetapkan pembolehubah sistem dengan betul. Langkah ini sangat penting untuk memastikan proses membina pakej ServBay (termasuk modul PHP) berjalan lancar. Jika diabaikan atau dilakukan dengan salah, anda berisiko tinggi mengalami kegagalan semasa membina, contohnya ralat seperti 'command not found', gagal menemukan library atau fail header.
Skrip inisialisasi persekitaran pembinaan ServBay akan menetapkan beberapa pembolehubah penting seperti PATH (penunjuk ke alat binaan dalam ServBay), SERVBAY_PACKAGE_FULL_PATH (penunjuk ke direktori root pakej ServBay) dan CPU_NUMBER (untuk pembinaan pelbagai teras). Pembolehubah-pembolehubah ini perlu untuk menjalankan arahan pembinaan seterusnya.
Untuk arahan inisialisasi secara terperinci, sila rujuk dokumen: Pembinaan Semula Pakej menggunakan ServBay. Pastikan anda faham sepenuhnya dan telah mengikuti panduan dengan teliti.
Sebelum meneruskan pembinaan modul, pastikan anda telah berjaya inisialisasikan persekitaran pembinaan ServBay dan semua pembolehubah berkaitan telah ditetapkan dengan betul dalam sesi baris arahan anda.
Kepentingan Menetapkan Versi PHP
Ciri utama ServBay ialah membolehkan anda memasang dan menggunakan banyak versi PHP dalam satu sistem. Fleksibiliti ini membolehkan anda bertukar persekitaran PHP mengikut projek dengan mudah. Bagaimanapun, apabila membina modul PHP, anda mesti membinanya untuk versi PHP tertentu. Dua alat kritikal yang digunakan untuk persediaan pembinaan dan mendapatkan konfigurasi versi ialah phpize dan php-config, yang berkait rapat dengan versi PHP yang anda sasarkan.
phpize: Skrip untuk inisialisasi persekitaran pembinaan modul sambungan PHP. Ia membaca failconfig.m4dan menjana skripconfigure, sebagai langkah utama membina perisian C/C++.php-config: Skrip yang memberi info terperinci tentang konfigurasi pemasangan PHP versi tertentu, termasuk flags pembina, direktori library, direktori fail header, direktori pemasangan sambungan. Skripconfigureakan menggunakanphp-configuntuk mendapat maklumat ini supaya modul dapat dibina dan dipaut dengan betul.
Jadi, setiap kali menggunakan phpize, php-config atau sebarang arahan pembinaan berkaitan, anda mesti menetapkan laluan penuh untuk versi PHP sasaran.
Contoh Laluan
Anda ingin membina modul untuk PHP 8.3 dalam ServBay:
macOS:
phpize:/Applications/ServBay/package/php/8.3/current/bin/phpizephp-config:/Applications/ServBay/package/php/8.3/current/bin/php-config
Windows:
phpize:C:\ServBay\package\php\8.3\current\bin\phpizephp-config:C:\ServBay\package\php\8.3\current\bin\php-config
Menetapkan laluan dan versi yang betul memastikan modul yang dibina serasi dengan PHP sasaran anda, mengelak ralat masa pembinaan atau run-time seperti 'symbol not found'.
Dokumen ini akan menggunakan PHP 8.3 dalam ServBay sebagai contoh. Ketika praktik, gantikan laluan dengan versi PHP sebenar yang anda gunakan dalam ServBay.
Membina Modul PHP imagick
Modul imagick ialah sambungan popular yang berasaskan library ImageMagick, membolehkan pelbagai fungsi pemprosesan imej seperti resize, crop, tukar format, watermark, dan komposisi imej. Berikut langkah-langkah terperinci membina dan memasang imagick untuk PHP dalam ServBay:
Langkah 1: Pasang Library ImageMagick
imagick bergantung kepada library ImageMagick pada sistem anda.
macOS
Disyorkan guna Homebrew, pengurus pakej popular untuk macOS. Jika Homebrew belum dipasang, lawati laman web rasmi Homebrew untuk panduan.
Buka terminal dan jalankan:
bash
brew install imagemagick1
Windows
Pengguna Windows perlu muat turun dan pasang ImageMagick secara manual. Kunjungi halaman muat turun rasmi ImageMagick dan pilih versi sesuai.
Pastikan anda memilih versi dengan library pembangunan, dan tambah laluan pemasangan ke pembolehubah sistem.
Langkah 2: Dapatkan Kod Sumber imagick
Seterusnya, muat turun kod sumber modul imagick dari laman rasmi PECL. Layari halaman PECL imagick dan pilih versi yang diperlukan (biasanya versi stabil terkini). Contoh:
bash
wget https://pecl.php.net/get/imagick-3.7.0.tgz1
Langkah 3: Ekstrak Kod Sumber dan Masuk Direktori
Selepas muat turun, ekstrak dan masuk ke direktori kod sumber:
bash
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.01
2
2
Langkah 4: Sediakan Persekitaran (phpize)
Dalam direktori kod sumber modul, gunakan alat phpize dari versi PHP sasaran (laluan mesti spesifik seperti dinyatakan sebelumnya). Contoh untuk PHP 8.3 dan pembolehubah SERVBAY_PACKAGE_FULL_PATH telah ditetapkan:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize1
Jika berjaya, ia akan menjana skrip configure dan fail binaan lain, menunjukkan persekitaran pembinaan sedia.
Langkah 5: Konfigurasi Pilihan Pembinaan
Jalankan skrip configure dan nyatakan laluan php-config untuk versi PHP sasaran melalui parameter --with-php-config:
bash
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config1
configure akan mencari library ImageMagick serta fail header, dan menjana fail Makefile untuk pembinaan. Jika gagal, selalunya kerana kebergantungan belum dipasang atau laluan salah.
Langkah 6: Bina dan Pasang Modul
Selepas berjaya konfigurasi, gunakan:
bash
make -j ${CPU_NUMBER}
make install1
2
2
make install akan salin sambungan yang dibina ke direktori standard sambungan untuk PHP versi tersebut dalam ServBay:
- macOS:
/Applications/ServBay/package/php/8.3/current/lib/php/extensions/no-debug-non-zts-YYYYMMDD/ - Windows:
C:\ServBay\package\php\8.3\current\lib\php\extensions\no-debug-non-zts-YYYYMMDD\
Laluan tepat bergantung kepada versi PHP dan pilihan pembinaan.
Langkah 7: Aktifkan Modul
Setelah modul dipasang, aktifkan melalui GUI ServBay:
- Buka aplikasi ServBay
- Navigasi ke
Bahasa-PHP-PHP 8.3 - Pilih tab
PHP, skrol ke bawah dan pada "Parameter Tambahan", masukkanextension=imagick.so - Klik
Simpan, proses PHP akan dimuat semula membaca modul baru

Langkah 8: Sahkan Pengaktifan Modul
Selepas aktifkan, mulakan semula pakej PHP dalam ServBay supaya konfigurasi baru berkuatkuasa. Anda boleh gunakan panel ServBay atau alat baris arahan ServBay (rujuk dokumentasi untuk arahan spesifik).
Untuk menyemak modul dimuat, gunakan:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagick1
Pastikan anda menggunakan command PHP versi spesifik ServBay. -m senaraikan modul yang telah dimuatkan. Jika berjaya, imagick akan terpapar dalam output.
Kaedah semakan lanjut: cipta fail PHP (contoh info.php) dalam direktori root web anda, masukkan <?php phpinfo(); ?> dan akses melalui pelayar pada http://localhost/info.php atau domain ServBay anda.
- macOS:
/Applications/ServBay/www - Windows:
C:\ServBay\www
Cari "imagick" dalam halaman output untuk mengesahkan dan lihat info konfigurasi serta versinya.
Membina Modul PHP sqlsrv/pdo_sqlsrv
Modul sqlsrv dan pdo_sqlsrv ialah sambungan rasmi PHP untuk berhubung dan beroperasi dengan pangkalan data Microsoft SQL Server, bergantung pada pemacu ODBC daripada Microsoft. Untuk gunakan SQL Server dalam persekitaran PHP ServBay, anda mesti membina dan memasang modul ini terlebih dahulu. Berikut langkah-langkahnya:
Nota: Prasyarat Penting
Sebelum membina sqlsrv, anda mesti pasang pemacu ODBC dan alat berkaitan daripada Microsoft. Ia tidak disediakan bersama ServBay dan perlu dipasang secara manual.
macOS
Guna Homebrew untuk pemasangan kebergantungan. Jika belum dipasang Homebrew, lawati laman rasmi Homebrew.
Arahan Homebrew untuk pasang pemacu ODBC dan alat Microsoft (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-tools181
2
3
2
3
Biasanya ia akan dipasang dalam /opt/homebrew/ (Apple Silicon) atau /usr/local/ (Intel Macs). Pastikan laluan diambil semasa pembinaan.
Windows
Muat turun dan pasang dari laman rasmi Microsoft:
- Microsoft ODBC Driver for SQL Server
- Pilih dan pasang versi yang sesuai dengan sistem anda
- Pastikan pemacu dipasang dengan betul dan dapat dikesan
Pastikan semua kebergantungan telah dipasang sebelum membina sqlsrv.
Tip
sqlsrv dan pdo_sqlsrv ialah modul berasingan yang perlu dibina secara berasingan, tetapi langkahnya hampir sama. Contoh berikut untuk sqlsrv.
Langkah 1: Pasang Pemacu ODBC dan Alat Microsoft
(Pastikan langkah prasyarat di atas telah diikuti.)
Langkah 2: Dapatkan Kod Sumber sqlsrv
Muat turun modul sqlsrv dan pdo_sqlsrv dari laman PECL. Contoh:
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_sqlsrv1
2
2
Langkah 3: Ekstrak Kod Sumber dan Masuk Direktori
Ekstrak dan masuk ke direktori kod sumber:
bash
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# pdo_sqlsrv sama, contoh ini untuk sqlsrv sahaja1
2
3
4
2
3
4
Langkah 4: Sediakan Persekitaran (phpize)
Gunakan alat phpize yang bersesuaian:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize1
Langkah 5: Konfigurasi Pembinaan (termasuk laluan kebergantungan)
Sebelum jalankan ./configure, set pembolehubah LDFLAGS dan CPPFLAGS untuk tentukan laluan library dan header yang dipasang Homebrew. Pastikan anda guna laluan yang sesuai dengan sistem (contoh /opt/homebrew untuk Apple Silicon Mac):
bash
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}" # Pastikan /opt/homebrew/include disertakan
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config1
2
3
2
3
LDFLAGS: laluan library (-L/opt/homebrew/lib)CPPFLAGS: laluan header (-I/opt/homebrew/opt/unixodbc/include,-I/opt/homebrew/include). Kekalkan${LDFLAGS}dan${CPPFLAGS}untuk flags lain dari ServBay.
Langkah 6: Bina dan Pasang Modul
Selepas Makefile dijana:
bash
make -j ${CPU_NUMBER}
make install1
2
2
Sambungan sqlsrv.so dan pdo_sqlsrv.so (jika dibina bersama) akan disalin ke direktori sambungan untuk PHP versi ServBay anda.
Langkah 7: Aktifkan Modul
Aktifkan modul menggunakan GUI ServBay:
- Buka aplikasi ServBay
- Navigasi ke
Bahasa-PHP-PHP 8.3 - Pada tab
PHP, skrol ke bawah dan dalam "Parameter Tambahan", tambah:extension=sqlsrv.sodanextension=pdo_sqlsrv.so - Klik
Simpan, proses PHP akan dimuat semula

Langkah 8: Sahkan Pengaktifan Modul
Selepas aktifkan, mulakan semula pakej PHP supaya konfigurasi baru berkuatkuasa.
Periksa modul dengan:
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_sqlsrv1
2
2
Jika berjaya, sqlsrv dan pdo_sqlsrv akan kelihatan dalam output. Anda juga boleh sahkan melalui fungsi phpinfo().
Soalan Lazim (FAQ)
- Q: Kenapa ralat "Cannot find autoconf" atau seumpamanya semasa membina?
- A: Hampir pasti persekitaran pembinaan ServBay belum diinisialisasi dengan sempurna. Sila rujuk bahagian "Prasyarat", dan ikut arahan Pembinaan Semula Pakej menggunakan ServBay untuk sediakan persekitaran. Pastikan alat bina seperti autoconf, automake, libtool dipasang dan pembolehubah ditetapkan. Jalankan skrip inisialisasi ServBay, dan mulakan semula terminal jika perlu.
- Q: Skrip
configuregagal, tidak jumpa library atau fail header?- A: Ini bermakna kebergantungan utama belum dipasang atau laluan salah.
- Untuk
imagick, pastikan library pembangunan ImageMagick telah dipasang. Guna:brew install imagemagick. - Untuk
sqlsrv, pastikan anda telah guna Homebrew untuk memasang pemacu ODBC (msodbcsql18) danmssql-tools18. Sejak sebelum./configure, pastikanLDFLAGSdanCPPFLAGStelah diset dengan laluan ke library dan header berkaitan (/opt/homebrew/lib,/opt/homebrew/opt/unixodbc/include). - Semak sama ada laluan bin daripada Homebrew telah ditambah ke
PATHpersekitaran ServBay jika perlu.
- Untuk
- A: Ini bermakna kebergantungan utama belum dipasang atau laluan salah.
- Q: Kegagalan semasa
makeataumake install?- A: Ada pelbagai sebab:
- Kurang kebergantungan: Rujuk output ralat, biasanya menyatakan library atau fail yang hilang. Pasang mengikut keperluan.
- Set konfigurasi salah: Semasa
configuresemak parameter, terutamanya laluan--with-php-configmesti betul. - Isu hak akses: Salinan ke direktori sambungan mungkin perlukan hak istimewa jika persekitaran ServBay tidak atur permission dengan betul. Cuba
sudo make install(gunakan dengan berhati-hati). - Kod sumber bermasalah: Semak kod sumber, muat turun semula sekiranya rosak.
- A: Ada pelbagai sebab:
- Q: Fail modul
.sosudah ada dalam direktori sambungan dan telah diaktifkan di.ini, tapi tiada dalamphp -matauphpinfo()?- A:
- Alasan paling utama: Pakej PHP ServBay belum dimulakan semula. Pastikan selepas ubah
.ini, anda memulakan semula PHP (bukan sekadar refresh laman web atau restart pelayan web). - Kesalahan sintaks
.ini: Pastikan arahan korrect (extension=modulename.so) dan tiada format salah. - Laluan direktori sambungan salah: Semak seting
extension_dirdalamphp.ini.make installakan ikut laluan dariphp-config --extension-dir. - Modul tidak serasi atau rosak: Bina semula dan pastikan versi kod sumber sesuai dengan versi PHP. Semak log PHP (biasanya di direktori log dalam ServBay) untuk info lanjut.
- Alasan paling utama: Pakej PHP ServBay belum dimulakan semula. Pastikan selepas ubah
- A:
Rumusan
Dengan mengikuti langkah-langkah terperinci ini, anda sepatutnya boleh membina dan memasang modul PHP tersuai seperti imagick dan sqlsrv dalam persekitaran pembangunan ServBay. Perkara utama yang perlu anda beri perhatian:
- Inisialisasi persekitaran pembinaan ServBay dengan tepat – asas utama untuk kelancaran proses berikutnya.
- Tentukan dan guna laluan versi PHP yang tepat – sentiasa gunakan laluan penuh untuk
phpizedanphp-config. - Tangani kebergantungan luaran modul – pasang library dan alat sistem yang diperlukan (cth. ImageMagick, Microsoft ODBC), dan tetapkan pembolehubah (cth.
LDFLAGS,CPPFLAGS) dengan betul semasa konfigurasi. - Aktifkan modul dengan betul – tambah arahan ke fail
.iniyang sesuai dalam direktoriconf.dversi PHP sasaran. - Mulakan semula pakej PHP dalam ServBay – pastikan konfigurasi & modul baru benar-benar dimuat.
Selain sokongan untuk pembinaan modul PHP, ServBay menyediakan pelbagai teknologi pra-integrasi seperti MySQL, PostgreSQL, MongoDB, Redis, Caddy, Nginx, Apache, Node.js, Python, Go, Java, .NET, Ruby, Rust dan lebih banyak lagi, serta ciri-ciri berguna seperti pendaftaran SSL sebenar melalui ACME, tetapan CORS mudah, backup automatik (termasuk setting, laman web, pangkalan data, SSL), reset kata laluan root pangkalan data, ServBay User CA dan Public CA untuk pembangunan HTTPS tempatan, dan lain-lain – semuanya demi memudahkan dan menyempurnakan aliran kerja pembangunan tempatan anda.
Semoga panduan ini dapat membantu anda berjaya menambah ciri yang diperlukan kepada persekitaran PHP ServBay bagi pembangunan web anda. Jika berdepan masalah lain, rujuk dokumentasi rasmi ServBay atau sumber sokongan komuniti.
