Cara Menggunakan PHP 4.4.9 (FastCGI) Dengan Apache &ISPConfig 3 (Debian Wheezy)
Sejak ISPConfig 3.0.5, dimungkinkan untuk menggunakan beberapa versi PHP pada satu server dan memilih versi PHP yang optimal untuk sebuah situs web. Jika Anda memiliki beberapa situs web yang sangat lama di server Anda, mereka mungkin tidak bekerja dengan PHP5, tetapi hanya dengan PHP4. Tutorial ini menunjukkan bagaimana membangun PHP 4.4.9 sebagai versi FastCGI untuk digunakan dengan Apache2 di server Debian Wheezy. Versi PHP ini dapat digunakan bersama dengan PHP default (diinstal melalui apt) di ISPConfig.
Saya tidak memberikan jaminan apa pun bahwa ini akan berhasil untuk Anda!
1 Catatan Awal
PHP-FPM tidak tersedia untuk PHP4, oleh karena itu saya hanya menjelaskan cara membangun versi FastCGI dari PHP4. FastCGI hanya tersedia untuk server Apache, oleh karena itu Anda tidak dapat menggunakannya dengan nginx..
2 Membangun PHP 4.4.9 (FastCGI)
Instal prasyarat untuk membangun dari kode sumber:
apt-get install build-essential
PHP 4.4.9 tidak akan dikompilasi dengan versi OpenSSL modern, oleh karena itu kita perlu menginstal versi OpenSSL yang lebih lama (0.9.8x) terlebih dahulu:
cd /tmp
wget http://www.openssl.org/source/openssl-0.9.8x.tar.gz
tar xvfz openssl-0.9.8x.tar.gz
cd openssl -0.9.8x
./config --prefix=/usr/local/openssl-0.9.8
make
make install
Unduh dan ekstrak PHP 4.4.9:
mkdir /opt/phpfcgi-4.4.9
mkdir /usr/local/src/php4-build
cd /usr/local/src/php4-build
wget http://de. php.net/get/php-4.4.9.tar.bz2/from/this/mirror -O php-4.4.9.tar.bz2
tar jxf php-4.4.9.tar.bz2
cd php-4.4.9/
Buat beberapa symlink yang diperlukan:
ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/
ln -s /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/
ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 /usr/lib/
ln -s /usr/lib/x86_64-linux-gnu/libexpat.so /usr/ lib/
ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so /usr/lib/libmysqlclient.so
mkdir /usr/kerberos
ln -s /usr/ lib/x86_64-linux-gnu /usr/kerberos/lib
Selanjutnya kita harus menonaktifkan fungsi mysql_drop_db dan mysql_create_db karena jika tidak, Anda akan mendapatkan kesalahan ini saat mencoba membangun PHP 4.4.9:
kesalahan:referensi tidak terdefinisi ke 'mysql_drop_db'
kesalahan:referensi tidak terdefinisi ke 'mysql_create_db'
Buka /usr/local/src/php4-build/php-4.4.9/ext/mysql/php_mysql.c...
vi /usr/local/src/php4-build/php-4.4.9/ext/mysql/php_mysql.c
... dan pergi ke baris 1131. Dari sana, beri komentar pada kedua fungsi:
[...] /*PHP_FUNCTION(mysql_create_db) { zval **db, **mysql_link; int id; php_mysql_conn *mysql; switch(ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &db)==FAILURE) { RETURN_FALSE; } id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); CHECK_LINK(id); break; case 2: if (zend_get_parameters_ex(2, &db, &mysql_link)==FAILURE) { RETURN_FALSE; } id = -1; break; default: WRONG_PARAM_COUNT; break; } php_error_docref(NULL TSRMLS_CC, E_NOTICE, "This function is deprecated, please use mysql_query() to issue a SQL CREATE DATABASE statement instead."); ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", le_link, le_plink); PHPMY_UNBUFFERED_QUERY_CHECK(); convert_to_string_ex(db); if (mysql_create_db(&mysql->conn, Z_STRVAL_PP(db))==0) { RETURN_TRUE; } else { RETURN_FALSE; } }*/ /* }}} */ /* {{{ proto bool mysql_drop_db(string database_name [, int link_identifier]) Drops (delete) a MySQL database */ /*PHP_FUNCTION(mysql_drop_db) { zval **db, **mysql_link; int id; php_mysql_conn *mysql; switch(ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &db)==FAILURE) { RETURN_FALSE; } id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU); CHECK_LINK(id); break; case 2: if (zend_get_parameters_ex(2, &db, &mysql_link)==FAILURE) { RETURN_FALSE; } id = -1; break; default: WRONG_PARAM_COUNT; break; } php_error_docref(NULL TSRMLS_CC, E_NOTICE, "This function is deprecated, please use mysql_query() to issue a SQL DROP DATABASE statement instead."); ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", le_link, le_plink); convert_to_string_ex(db); if (mysql_drop_db(&mysql->conn, Z_STRVAL_PP(db))==0) { RETURN_TRUE; } else { RETURN_FALSE; } }*/ /* }}} */ [...] |
Instal prasyarat untuk membangun PHP5 (dalam kasus kami ini juga mencakup prasyarat untuk membangun PHP4):
apt-get build-dep php5
Konfigurasi dan build PHP 4.4.9 sebagai berikut (Anda dapat menyesuaikan perintah ./configure dengan kebutuhan Anda, lihat
./configure --help
untuk melihat semua opsi yang tersedia; jika Anda menggunakan perintah ./configure yang berbeda, ada kemungkinan perpustakaan tambahan diperlukan, atau proses pembangunan akan gagal):
./configure \
--prefix=/opt/phpfcgi-4.4.9 \
--with-pdo-pgsql \
--with-zlib-dir \
- -with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable- kalender \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
-- aktifkan-socket \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
-- with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql=/usr \
--with-mysql-sock =/var/run/mysqld/mysqld.sock \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable- gd-native-ttf \
--with-openssl=/usr/local/openssl-0.9.8 \
--with-openssl-dir=/usr/local/openssl-0.9.8 \
--with-libdir=/lib/x86_64-linux-gnu \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--dengan-kerberos \
--dengan- gettext \
--with-expat-dir=/usr \
--enable-fastcgi
Sakelar terakhir (--enable-fastcgi) memastikan versi PHP ini akan bekerja dengan FastCGI.
buat
buat pasang
Salin php.ini ke lokasi yang benar:
cp /usr/local/src/php4-build/php-4.4.9/php.ini-recommended /opt/phpfcgi-4.4.9/lib/php.ini
Itu saja - sekarang kita akan menambahkan modul APC ke instalasi PHP 4.4.9 kita:
cd /tmp
wget http://pecl.php.net/get/APC-3.0.19.tgz
tar xvfz APC-3.0.19.tgz
cd APC-3.0.19
/opt/phpfcgi-4.4.9/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/opt/phpfcgi-4.4. 9/bin/php-config
make
make install
Setelah itu, buka /opt/phpfcgi-4.4.9/lib/php.ini...
vi /opt/phpfcgi-4.4.9/lib/php.ini
... dan atur extension_dir ="/opt/phpfcgi-4.4.9/lib/php/extensions/no-debug-non-zts-20020429" dan tambahkan baris extension=apc.so di akhir file (Anda juga dapat mengonfigurasi beberapa pengaturan APC tambahan):
[...] extension_dir = "/opt/phpfcgi-4.4.9/lib/php/extensions/no-debug-non-zts-20020429" [...] extension=apc.so apc.enabled=1 apc.shm_segments=1 apc.shm_size=512 apc.ttl=0 apc.user_ttl=600 apc.gc_ttl=600 apc.enable_cli=1 apc.mmap_file_mask=/tmp/apc.XXXXXX ;apc.mmap_file_mask=/dev/zero ;apc.shm_segments = 5 |
Di ISPConfig 3.0.5, Anda dapat mengonfigurasi versi PHP baru di bawah Sistem> Versi PHP Tambahan. Pada tab Name, Anda cukup mengisi nama untuk versi PHP (misalnya PHP 4.4.9) - versi PHP ini akan terdaftar di bawah nama ini di pengaturan situs web di ISPConfig:
Buka tab FastCGI Settings (tab Pengaturan PHP-FPM dapat dikosongkan) dan isi kolom sebagai berikut:
Jika semuanya berfungsi seperti yang diharapkan, Anda sekarang dapat memilih PHP 4.4.9 untuk situs web di ISPConfig. Anda dapat memeriksa versi PHP situs web dengan membuat file PHP dengan phpinfo(); fungsi di dalamnya dan memanggil file itu di browser Anda:
3 Tautan
- PHP:http://www.php.net/
- ISPConfig:http://www.ispconfig.org/
- Ubuntu:http://www.ubuntu.com/
Tentang Penulis

Falko Timme adalah pemilik Timme Hosting (hosting web nginx ultra-cepat). Dia adalah pengelola utama HowtoForge (sejak 2005) dan salah satu pengembang inti ISPConfig (sejak 2000). Dia juga berkontribusi pada buku O'Reilly "Linux System Administration".