GNU/Linux >> Belajar Linux >  >> Panels >> Panels

Cara Menggunakan PHP 4.4.9 (FastCGI) Dengan Apache &ISPConfig 3 (Debian Wheezy)

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:

  • 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".


Panels
  1. Cara Membangun PHP 5.6 (PHP-FPM &FastCGI) dengan Zend OPcache Dan APCu Untuk ISPConfig 3 Di Debian 7 (Wheezy)

  2. Iklan Paksa Di ISPConfig Dengan Debian Etch

  3. Cara menggunakan EasyApache 3 dengan WHM/cPanel

  1. Cara menginstal PHP 7 (PHP-FPM &FastCGI) untuk ISPConfig 3 di Debian 8 (Jessie)

  2. Cara Setup Opencart dengan LAMP (PHP, Apache, Mariadb) di Debian 11

  3. Bagaimana Agar Apache Menggunakan Php 7.0 (bukan 7.1)?

  1. Cara menginstal PHP 7 sebagai PHP-FPM &FastCGI untuk ISPConfig 3 di Debian 8 (Jessie)

  2. Cara menginstal PHP 7.1.16 sebagai PHP-FPM &FastCGI untuk ISPConfig 3.1 di Debian 8 (Jessie)

  3. Cara menginstal PHP 7.1, 7.2 dan 5.6 sebagai PHP-FPM &FastCGI untuk ISPConfig 3 di Debian 9