8

(ZEND フレームワークに基づく) サイトがあり、1and1 サーバーでホストされています。

1and1 サーバーは、PHP バージョン 5.2.17 および 5.4.5 を使用します。いくつかのファイルにのみ PHP バージョン 5.4.5 を使用する必要があります。これは、PHP 5.4.5 を使用すると他のファイルの一部でエラーが表示されますが、PHP 5.2.17 を使用すると正常に実行されるためです。

私の .htaccess ファイルでは、PHP 5.2.17 を使用するために以下の行が以前に書かれていました。

AddType x-mapp-php5 .php

PHP 5.4.5 を使用するには、以下の行を使用する必要があります (このコードの使用方法については、1and1 FAQ ページを参照してください)。

AddHandler x-mapp-php6 .php

よくある質問の URL:

これらの特定のファイルのみに PHP 5.4.5 を使用する方法はありますか?

.htaccess で以下の行を使用しようとしましたが、機能しません:

AddType x-mapp-php5 .php
AddHandler x-mapp-php6 FilenameController.php

編集

5.2 コードを編集しようとしました。PEAR パッケージを使用して、PHP 5.2.17 で正常に動作する Excel シートを作成していますが、PHP 5.4.5 では以下のエラーが表示されます。

致命的なエラー: _PEAR_call_destructors() を再宣言できません

補遺

この.htaccessファイルへの変更

AddType x-mapp-php5 .php 
AddHandler x-mapp-php6 .php6 
SetEnv APPLICATION_ENV development 
Options -MultiViews 
<IfModule mod_rewrite.c> 
  RewriteEngine On 
  RewriteBase / 

  RewriteRule ^FilenameController\.php$ FilenameController.php6  [L] 

  RewriteCond %{REQUEST_FILENAME} -s [OR]
  RewriteCond %{REQUEST_FILENAME} -l [OR] 
  RewriteCond %{REQUEST_FILENAME} -d 
  RewriteRule ^.*$ - [NC,L] 

  RewriteRule ^.*$ index.php [NC,L] 
</IfModule>

FilenameController.php のファイル名を FilenameController.php6 に変更し、生成されたページにアクセスしようとすると、404「ページが見つかりません」エラーが生成されます。

4

2 に答える 2

5

なぜだけではないのですか

AddHandler x-mapp-php6 .php6

5.4 スクリプトの名前を php6 に変更しますか? .htaccess ファイルで次のことを行うことで、これをユーザーから隠すこともできます。

RewriteEngine On
RewriteBase   /
RewriteRule   ^FilenameController\.php$   FilenameController.php6 [L]

これにより、その 1 つのスクリプト ファイルの拡張子が .php6 に内部的に変更されます。:-)

ただし、強調しておきたいのは、使用するスクリプト エンジンは、ファイルごとではなく、要求ごとにしか選択できないということです。例: http:/yourdomain.com/FilenameController.phpPHP 5.4 RTS によって処理され、含まれるすべてのファイルは PHP 5.4 を使用してコンパイルおよび実行されます。http:/yourdomain.com/index.phpPHP 5.2 RTS によって処理され、含まれるすべてのファイルは PHP 5.2 を使用してコンパイルおよび実行されます。

5.4 を使用してアプリケーション内のファイルをコンパイルし、5.2 を使用して残りをコンパイルすることはできません。

于 2012-08-18T00:55:24.713 に答える
1

1and1 サーバーは、PHP バージョン 5.2.17 および PHP バージョン 5.4.5 を使用します。

これの詳細が知りたいです。

php を Apache モジュール (mod_php) として実行すると仮定すると、Apache の同じインストールで一度に実行できるバージョンは 1 つだけです。サーバーで両方を同時に使用することさえ許可されていますか? おそらく、Apache を再起動して、別のバージョンで実行することができます。その場合、CGI を介して php をセットアップしたくないので、実際にこれを回避する方法を構成することはできません。

于 2012-08-21T08:06:06.437 に答える