GNU/Linux >> Linux の 問題 >  >> Panels >> Panels

PHP 4.4.9(FastCGI)をApacheおよびISPConfig 3(Debian Wheezy)で使用する方法

Apache&ISPConfig 3(Debian Wheezy)でPHP 4.4.9(FastCGI)を使用する方法

ISPConfig 3.0.5以降、1つのサーバーで複数のPHPバージョンを使用して、Webサイトに最適なPHPバージョンを選択することができます。サーバー上に非常に古いWebサイトがある場合、それらはPHP5では機能しない可能性がありますが、PHP4でのみ機能します。このチュートリアルでは、DebianWheezyサーバー上のApache2で使用するFastCGIバージョンとしてPHP4.4.9をビルドする方法を示します。このPHPバージョンは、ISPConfigでデフォルトのPHP(aptを介してインストール)と一緒に使用できます。

これがあなたのために働くという保証はありません!

1予備メモ

PHP-FPMはPHP4では使用できないため、PHP4のFastCGIバージョンを構築する方法について説明します。 FastCGIはApacheサーバーでのみ使用できるため、nginxでは使用できません。

2 PHP 4.4.9(FastCGI)の構築

ソースコードからビルドするための前提条件をインストールします:

apt-get install build-essential

PHP 4.4.9は最新のOpenSSLバージョンではコンパイルされないため、最初に古いバージョンのOpenSSL(0.9.8x)をインストールする必要があります。

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

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/

必要なシンボリックリンクをいくつか作成します:

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

次に、関数mysql_drop_dbとmysql_create_dbを無効にする必要があります。無効にしないと、PHP4.4.9をビルドしようとしたときにこれらのエラーが発生するためです。

エラー:「mysql_drop_db」への未定義の参照
エラー:「mysql_create_db」への未定義の参照

/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

...そして1131行目に移動します。そこから、両方の機能をコメントアウトします。

[...]
/*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;
        }
}*/
/* }}} */
[...]

PHP5を構築するための前提条件をインストールします(この場合、これはPHP4を構築するための前提条件もカバーします):

apt-get build-dep php5

PHP 4.4.9を次のように構成およびビルドします(./configureコマンドは必要に応じて調整できます。

を参照してください。
./configure --help

利用可能なすべてのオプションを表示します。別の./configureコマンドを使用すると、追加のライブラリが必要になる可能性があります。そうしないと、ビルドプロセスが失敗します):

./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-カレンダー\
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- pgsql \
-disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
- enable-sockets \
--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 \
--with-kerberos \
--with- gettext \
--with-expat-dir =/ usr \
--enable-fastcgi

最後のスイッチ(--enable-fastcgi)は、このPHPバージョンがFastCGIで動作することを確認します。

make
make install

php.iniを正しい場所にコピーします:

cp /usr/local/src/php4-build/php-4.4.9/php.ini-recommended /opt/phpfcgi-4.4.9/lib/php.ini

これで、PHP4.4.9のインストールにAPCモジュールを追加します。

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

その後、/ opt / phpfcgi-4.4.9 / lib / php.ini ...

を開きます。
vi /opt/phpfcgi-4.4.9/lib/php.ini

...そしてextension_dir="/opt/phpfcgi-4.4.9/lib/php/extensions/no-debug-non-zts-20020429"を設定し、ファイルの最後にextension =apc.soという行を追加します(追加のAPC設定を構成することもできます):

[...]
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

ISPConfig 3.0.5では、[システム]>[追加のPHPバージョン]で新しいPHPバージョンを構成できます。 [名前]タブで、PHPバージョンの名前を入力するだけです(例:PHP 4.4.9)-このPHPバージョンは、ISPConfigのWebサイト設定でこの名前の下に一覧表示されます:

FastCGI設定タブに移動し(PHP-FPM設定タブは空のままにすることができます)、次のようにフィールドに入力します。

すべてが期待どおりに機能している場合は、ISPConfigのWebサイトにPHP4.4.9を選択できます。 phpinfo()を使用してPHPファイルを作成することにより、WebサイトのPHPバージョンを確認できます。その中で機能し、ブラウザでそのファイルを呼び出します:

  • PHP:http://www.php.net/
  • ISPConfig:http://www.ispconfig.org/
  • Ubuntu:http://www.ubuntu.com/

著者について

FalkoTimmeはの所有者です Timme Hosting(超高速nginx Webホスティング)。彼はHowtoForge(2005年以降)の主任メンテナーであり、ISPConfig(2000年以降)のコア開発者の1人です。彼はまた、O'Reillyの本「LinuxSystemAdministration」にも寄稿しています。


Panels
  1. Debian7(Wheezy)でISPConfig3用のZendOPcacheとAPCuを使用してPHP5.6(PHP-FPM&FastCGI)を構築する方法

  2. DebianEtchを使用したISPConfigでの強制広告

  3. EasyApache3をWHM/cPanelで使用する方法

  1. Debian 8(Jessie)にISPConfig3用のPHP7(PHP-FPM&FastCGI)をインストールする方法

  2. Debian 11でLAMP(PHP、Apache、Mariadb)を使用してOpencartをセットアップする方法

  3. ApacheにPhp7.0(7.1ではない)を使用させる方法は?

  1. PHP7をPHPとしてインストールする方法-Debian8上のISPConfig3用のFPMおよびFastCGI(Jessie)

  2. PHP7.1.16をPHPとしてインストールする方法-Debian8(Jessie)上のISPConfig3.1用のFPMおよびFastCGI

  3. PHP 7.1、7.2、および5.6をPHPとしてインストールする方法-Debian9上のISPConfig3用のFPMおよびFastCGI