Cek Kebutuhan
Aplikasi Laravel yang kehilangan satu ekstensi PHP biasanya gagal sebagai 500 kosong dengan alasan sebenarnya terkubur di laravel.log. Requirements check di baris setiap proyek mencari celah seperti itu sebelum kamu mengalaminya, dan menawarkan perbaikan sekali klik kalau Rezure bisa melakukannya.
Klik ikon Requirements check proyek ("Check this project's PHP extension requirements"). Dialog menampilkan "Asking PHP…" selama berjalan, lalu satu bagian per pengecekan. Pengecekan yang tidak relevan untuk proyek tidak ditampilkan.
Ekstensi PHP
Rezure membaca entri ext-* di composer.json proyek (baik require maupun require-dev), dan membandingkannya dengan yang benar-benar dimuat PHP, memakai pengaturan yang sama dengan web server.
| Hasil | Arti |
|---|---|
| "PHP X has everything this project asks for." | Tidak ada yang hilang. |
| "PHP X is missing a, b." | Ekstensi itu dibutuhkan tetapi tidak dimuat. |
| "This project doesn't require any PHP extension explicitly." | composer.json tidak punya entri ext-*. |
| "No composer.json here, so there's nothing to check." | Bukan proyek Composer. |
Setiap ekstensi mendapat ✓ atau !; kebutuhan dari require-dev ditandai dev only dan tidak dihitung sebagai hilang.
Memperbaikinya:
- Untuk kebanyakan ekstensi, perbaikannya cukup toggle: buka Ekstensi PHP, pilih versi PHP yang sama, aktifkan ekstensinya, lalu restart PHP.
- Untuk tiga ekstensi yang tidak dibawa PHP (redis, pdo_sqlsrv, dan sqlsrv), dialog punya tombol Install yang mengunduh build yang sudah diverifikasi checksum-nya. Restart layanan PHP setelahnya supaya situs yang sedang berjalan ikut memakainya.
HTTPS dari PHP
Pengecekan ini selalu berjalan. PHP membuat request uji ke https://repo.packagist.org dan melaporkan apakah verifikasi sertifikat berfungsi.
- "HTTPS calls from PHP verify certificates.": semuanya baik.
- Pesan tentang cURL error 60: PHP tidak punya bundel CA untuk memverifikasi sertifikat, jadi setiap panggilan HTTPS keluar (Composer, API pembayaran, OAuth) gagal. Klik Download CA bundle (atau Update CA bundle), lalu restart PHP. Lihat Konfigurasi PHP.
- "Couldn't reach the internet to test HTTPS…": pengujian sama sekali tidak bisa tersambung; cek koneksimu lalu jalankan lagi.
Email
Ditampilkan saat .env proyek mengirim email lewat SMTP ke host lokal atau ke mailpit.
MAIL_HOST=mailpitadalah hostname Docker milik Laravel Sail dan tidak ada di luar Docker. AturMAIL_HOST=127.0.0.1.- Port selain 1025 (
.envdefault Laravel memakai 2525) mendapat saran untuk mengaturMAIL_PORT=1025. - Mailpit yang belum terpasang atau belum berjalan mendapat Install and start Mailpit atau Start Mailpit.
- Saat semuanya cocok: "Mail this project sends is caught by Mailpit." dengan Open inbox.
Lihat Mailpit.
PostgreSQL
Ditampilkan saat .env berisi DB_CONNECTION=pgsql.
pdo_pgsqlmati → Turn on pdo_pgsql. Ekstensi ini dibawa PHP tetapi mati secara default, dan tanpanya Laravel gagal dengan "could not find driver".- PostgreSQL belum terpasang atau belum berjalan → Install PostgreSQL atau Start PostgreSQL.
DB_PORTbukan 5432 → aturDB_PORT=5432.- Username bukan role di server → atur
DB_USERNAME=root(ataupostgres); password apa pun bisa. - Saat siap: "PostgreSQL is ready: this project uses Rezure's server as root."
Lihat PostgreSQL.
SQL Server
Ditampilkan saat .env berisi DB_CONNECTION=sqlsrv.
pdo_sqlsrvtidak dimuat → Install pdo_sqlsrv.- Tidak ada driver ODBC → Install ODBC Driver (dialog lisensi Microsoft muncul dulu, lalu satu prompt administrator).
DB_HOSTberisi(localdb)\Rezuretetapi LocalDB belum terpasang → Install LocalDB.- LocalDB dengan nilai di
DB_PORT→ kosongkanDB_PORT=. Kalau tidak, Laravel menambahkan,1433, padahal LocalDB tidak mendengarkan di sana. - ODBC Driver 18 tanpa konfigurasi trust sertifikat → catatan untuk menghapus komentar
'trust_server_certificate'diconfig/database.phpdan mengaturDB_TRUST_SERVER_CERTIFICATE=true. - Saat siap: "SQL Server is ready: this project uses Rezure's LocalDB." atau "PHP can reach SQL Server at {host}."
Lihat SQL Server.
Batasan
- Berjalan dengan PHP aktif global, bahkan untuk proyek yang dikunci ke versi lain. Untuk proyek yang dikunci, cek ekstensinya dengan
php -mdi terminal proyek. - Hanya koneksi default yang dicek: apa pun isi
DB_CONNECTION. Koneksi tambahan diconfig/database.phptidak dicek. composer.jsonyang rusak dianggap "tidak ada yang perlu dicek".- Petunjuk di dialog tentang menambahkan baris
extension=ke file.iniberasal dari sebelum ada halaman Ekstensi PHP; pakai toggle di sana saja.
Terkait
- Ekstensi PHP: nyalakan dan matikan ekstensi per versi
- Contekan .env Laravel: nilai yang benar untuk setiap engine
- Log: saat pengecekan lolos tetapi situs tetap gagal