DANNY:
SAPI dan Versi PHP di server hosting berjalan dalam mode (SAPI) apa? Di server hosting, PHP berjalan dalam mode CGI untuk security/privacy antaraccount. Skrip berjalan dengan sebagai Unix user masing-masing ("USER" atau "cgi-USER"). Namun Anda tidak perlu menaruh baris "#!/usr/bin/php" maupun melakukan chmod 755 atau chmod +x pada file-file skrip PHP Anda. Cukup upload saja. Berapa versi PHP yang didukung? Baik PHP4 maupun PHP5 tersedia di server, karena banyak aplikasi yang masih membutuhkan PHP4 dan tidak kompatibel dengan PHP5 (dan sebaliknya). Anda dapat memilih untuk menggunakan PHP4 atau PHP5 untuk setiap subdomain. Caranya, login ke control panel lalu pilih spanel:Subdomain Manager, lalu klik Prefs pada subdomain yang dimaksud. Akan ada pilihan ingin menggunakan PHP4 atau PHP5.
Versi PHP default yang berjalan jika Anda tidak mengesetnya dengan cara di atas adalah PHP5. Sebaiknya versi PHP mana yang saya gunakan? 4 atau 5? Saat ini sebaiknya sebisa mungkin menggunakan versi 5, karena versi 4 telah dihentikan dukungan resminya oleh PHP Group. Konfigurasi Apakah saya dapat mengedit php.ini? Ya. Anda dapat menciptakan php.ini sendiri untuk setiap subdomain. Caranya:
* dari Spanel buka menu Subdomain Manager
* pilih subdomain yang diinginkan lalu klik "Setting" pada kolom Pilihan
* pada bagian "php ini tersendiri" klik Buat php.ini atau Sunting php.ini jika php.ini sudah pernah dibuat
* edit / tambahkan baris sintaks yang diperlukan
* klik Simpan
Atau cara lainnya, taruhlah file php.ini di subdirektori sites/<NAMASITE>/etc/ Anda. Sintaks file php.ini dapat dilihat di manual PHP. Silakan merujuk ke
http://php.net/
Catatan: jika Anda menjalankan skrip PHP lewat command line, maka lokasi php.ini tersendiri ini harus disebutkan denga opsi -c. Contoh:
$ php5 -c ../etc skripku.php $ cd admin $ php5 -c ../../etc skrip2.php
Jika tidak menyebutkan opsi -c, maka skrip command line Anda akan menggunakan php.ini default sistem (di /etc/php5). Apakah saya dapat menggunakan php_flag di .htaccess Maaf, php_flag tidak didukung. Sebagai gantinya, gunakan php.ini per-subdomain (lihat jawaban pertanyaan sebelumnya).
Extension Extension apa yang tersedia di server hosting? Untuk melihat daftar extension lengkap yang tersedia di server, dapat dilakukan dengan melihat output phpinfo(), atau mengintip direktori library PHP di /usr/lib/php4 dan /usr/lib/php5 (namun cara kedua ini kurang lengkap, karena ada juga extension yang terbuilt-in dan tidak di file *.so terpisah).
Berikut ini isi /usr/lib/php4 saat artikel ini ditulis Jun 2008 (dapat berubah sewaktu-waktu, bergantung versi terakhir PHP4; dan ini belum termasuk extension-extension yang built-in seperti ftp, openssl, pcre, dll).
curl.so domxml.so gd.so imagick.so imap.so isis.so json.so ldap.so mcal.so mcrypt.so mhash.so mysql.so odbc.so pgsql.so php_mapscript.so pspell.so recode.so snmp.so sqlite3.so sqlite.so suhosin.so syck.so xslt.so isis.so
Dan ini isi /usr/lib/php5:
curl.so ffmpeg.so gd.so imagick.so imap.so isis.so json.so ldap.so mcrypt.so mhash.so mysqli.so mysql.so odbc.so pdo_mysql.so pdo_odbc.so pdo_pgsql.so pdo.so pdo_sqlite.so pgsql.so php_mapscript.so pspell.so recode.so snmp.so sqlite3.so sqlite.so suhosin.so syck.so tidy.so xmlrpc.so xsl.so isis.so
Beberapa extension lain dapat kami instal per request (berdasarkan permintaan) klien, contohnya saat ini antara lain: ffmpeg.so. Mengapa saat saya memanggil fungsi GD, atau PostgreSQL, dll, seperti imagecreatefronpng() muncul error undefined function? Mengapa extension gd, dll tidak tersedia? Sebetulnya extension gd, dll tersedia di server, namun tidak diload secara default. Defaultnya, hanya extension mysql dan suhosin saja (mysql.so, suhosin.so) yang diload otomatis, untuk mempercepat eksekusi server, karena hanya extension mysql-lah yang dipakai oleh lebih dari 80-90% skrip PHP, dan extension suhosin diload untuk memproteksi skrip. Jika Anda ingin menggunakan fungsi-fungsi extension lain, contohnya gd (mis: fungsi imagecreatefrompng()) maka Anda dapat menggunakan salah satu dari dua cara:
Pertama, meload secara manual di awal skrip. Tambahkan:
if (!extension_loaded('gd')) dl('gd.so');
di awal skrip Anda, sebelum menggunakan fungsi-fungsi gd. Ganti gd.so dengan extension lain yang dikehendaki. Jika ingin meload lebih dari satu extension, cukup tambahkan lagi perintah dl(...) seperti di atas.
Kedua, membuat php.ini sendiri lalu menambahkan extension=... Lihat bagian sebelumnya tentang cara membuat php.ini, lalu tambahkan baris ini:
extension=gd.so
di file php.ini. Jika ingin meload lebih dari satu extension, cukup tambahkan lagi baris extension=... seperti di atas. Jangan lupa pastikan baris extension=mysql.so juga tetap ada pada file php.ini Anda jika Anda ingin menggunakan fungsi-fungsi MySQL. Apakah PDO (PHP Data Objects) didukung? Ya, Anda dapat menambahkan baris berikut pada php.ini Anda:
extension=pdo.so extension=pdo_mysql.so
Catatan: PDO hanya tersedia di PHP5. Anda perlu mengeset agar situs Anda menggunakan PHP5 dan bukan PHP4. Caranya, silakan lihat bagian sebelumnya. Jika anda menggunakan framework php seperti PRADO, anda perlu gunakan fasilitas ini . Apakah allow_url_fopen dinonaktifkan? Saya mencoba menghidupkan lewat baris 'allow_url_fopen=1' di php.ini saya tapi tetap tidak bisa? Demi keamanan (karena remote include merupakan salah satu lubang terumum pada aplikasi web), PHP di server hosting dilindungi oleh suhosin, sehingga allow_url_fopen by default dinonaktifkan. Dan jika Anda hidupkan pun belum akan membuat Anda bisa melakukan remote fopen/include. Anda masih harus mengizinkan situs-situs tertentu yang ingin diakses ke dalam whitelist.
Jika Anda membutuhkan fitur remote fopen/include PHP, untuk mengaktifkannya Anda dapat menambahkan dua baris berikut ke php.ini Anda:
allow_url_fopen=1 suhosin.executor.include.whitelist=http://SITE1,http://SITE2...
di mana SITE1, SITE2 adalah nama host yang ingin agar dapat digunakan untuk remote fopen/include.
Catatan: demi keamanan, hanya daftarkan situs yang ingin Anda gunakan saja pada SITE1, SITE2, dst. Ini melindungi Anda dari exploit yang mengambil skrip trojan/worm dari situs asing.
Catatan: Risiko keamanan karena remote include pada website Anda ditanggung oleh Anda sendiri. Harap berhati-hati. Apakah saya dapat menginstal extension custom saya sendiri? Bisa. Caranya:
1. Kompile. Kompilelah extension Anda di sistem yang sama dengan sistem yang digunakan server hosting saat ini (mis: server hosting saat artikel ini ditulis menggunakan OS Debian/Linux Etch 4.0, maka Anda perlu mengkompile extension PHP tersebut di sistem operasi yang sama).
Jika Anda tidak memiliki akses ke sistem lain bersistem operasi sama, Anda dapat meminta pada staf technical support untuk membukakan sementara akses ke kompiler C (seperti gcc) agar dapat mengompile extension Anda di server hosting kami.
2. Upload. Uploadlah extension hasil kompilasi Anda (*.so) ke server. Direktori yang dianjurkan adalah di sites/NAMASITE/etc/.
3. Load. Anda dapat me-load extension ini dengan:
ini_set('extension_dir', '/u/UNIXUSER/sites/NAMASITE/etc:' . ini_get('extension_dir')); dl('NAMAEXTENSION.so');
Atau bisa juga Anda mengeset extension_dir dari php.ini Anda (lihat jawaban pertanyaan lain untuk mengetahui cara membuat php.ini sendiri).
Artikel referensi: Struktur direktori Spanel, Kompiler C. Paket PEAR apa saja yang didukung? Ada banyak (setidaknya puluhan) yang telah diinstal di server hosting. Anda dapat melihatnya dengan mengetikkan perintah "pear list" di shell SSH.
Encoder Apakah Zend Optimizer didukung? Ya. Anda dapat menjalankan skrip-skrip yang diencode dengan Zend Guard / Zend Encoder. Silakan lihat instruksi detilnya di sini: Zend Optimizer. Apakah Ioncube PHP Loader didukung? Ya. Anda dapat menjalankan skrip-skrip yang diencode dengan Ioncube PHP Encoder. Silakan lihat instruksi detilnya di sini: Ioncube PHP Encoder. Apakah EAccelerator didukung? Ya. Anda dapat menjalankan skrip-skrip yang diencode untuk EAccelerator. Silakan lihat instruksi detilnya di sini: EAccelerator.
Lain-lain Ekstensi file apa yang dijalankan sebagai PHP? Defaultnya, file-file berakhiran .php, .php3, .phtml akan dieksekusi oleh PHP interpreter. Anda dapat menambahkan sendiri ekstensi lain, misalnya agar *.abc juga dijalankan sebagai PHP, tambahkan ini di file .htaccess Anda:
AddType application/x-httpd-php .abc
Bahkan file HTML pun bisa saja Anda lewatkan ke PHP, dengan menambahkan baris ini di .htaccess:
AddType application/x-httpd-php .html
Frase kunci:
* Akhiran file
* Membuat file berakhiran .html diproses oleh PHP
thanx to