web-dev-qa-db-ja.com

コマンドラインから実行されたphp-iとブラウザから実行されたphpinfoは異なるphpパラメータを表示します

私の問題は、php -iを実行すると、phpバージョンがphp 5.4として表示され、ロードされた構成ファイルが/usr/local/lib/php.iniとして表示されることです。コマンドラインからスクリプトphpinfo.phpを実行すると、php5.3とロードされた設定ファイルが/etc/php.iniとして表示されます。

デフォルトのPHPインタープリターをphp5.3として有効にするにはどうすればよいですか?

Php 5.3はPDOとpdo_mysqlで構成されているため、5.3が必要です。php5.4が構成されていない場合、php 5.3のzendバージョンは220090626ですが、php5.4のzendバージョンは220090525です。

ブラウザからPHPスクリプトを実行しようとすると、php 5.4(PDO拡張子がない)でコンパイルされ、未定義のPDOとして致命的なエラーがスローされます。

スクリプト用にphp5.3をロードするようにApacheを設定するにはどうすればよいですか。

phpinfo.phpスクリプトは次のとおりです

<?php
phpinfo();
?>
1
prashanthp

Php.iniは/ usr/local/libにありますか?それは完全に間違っているので、パッケージマネージャーはそのファイルをそこに置きません。

ホスト上にローカルに構築されたphpのコピーが必要です。 which phpそれがどこにあるかを示します。 which -a phpは、$ PATHにあるインストールされているすべてのバージョンのphpを表示します。実行php -vそれぞれについて、バージョンを確認します。

不要なバージョンを削除すると、php5.3が残ります。それらを削除できない場合は、$ PATHを変更して、必要なものが最初に来るようにします。 PATH=/usr/bin:/usr/local/bin/usr/local/bin/phpの代わりに/ usr/bin/phpが必要な場合。または、シェルエイリアスを定義します。

alias php=/usr/bin/php

phpと入力すると常にそのバージョンが実行されるように、シェルの起動ファイル(〜/ .bashrcまたは〜/ .profile)に配置します。

2
Andrew Schulman