web-dev-qa-db-ja.com

PHPおよびAmazonEC2サーバー上のMYSQL

クラスの1つのファイナル用にphpファイルを表示するようにAmazonサーバーをセットアップしようとしています。 このチュートリアル に従って設定しましたが、コードを実行しようとすると、「致命的なエラー:クラス 'PDO'が見つかりません」というメッセージが表示されます。

Sudo yum install php-pdoを実行しようとしましたが、Error: php56-common conflicts with php-common-5.3.29-1.8.amzn1.x86_64というエラーが発生します。php.iniファイルを変更するようにというメッセージをいくつか読みましたが、その方法がわかりません。

また、mysql_connectcommandを使用してこれを試しましたが、同様のエラーが発生します。

編集:php5.3を削除しようとしましたが、インストールされていないと表示されるため、php *を削除してphp56をインストールしましたが、以前にインストールしようとしたときと同じものが表示されます。補足として、サーバー上でコードを実行する簡単な方法がある場合は、Amazonインスタンス上にある必要はありません。

2
user320422

これは私にも起こります。問題は、Amazonが古いバージョンのphp/mysqlをインストールしようとしているということです。インストールする必要のあるバージョンを指定する必要があります。 php 5.6用のphp-mysqlをインストールするには、このコマンドを発行します。 Sudo yum -y install php56-mysqlnd

必要に応じて、古いバージョンをインストールできます。

4
shobi

まず、PHPがどのようにコンパイルされているかを確認し、そこに新しい.phpファイルを作成します。

<?php echo phpinfo(); ?> 

そのファイルをブラウザで実行すると、上部にPHPが '--enable-pdo = shared'、 '-with-pdo-mysql = sharedのようなフラグでコンパイルされたかどうかがわかります'、' --with-pdo-sqlite = shared '

コンパイルされている場合は、php.iniファイルで有効にする必要があります。そのファイルがどこにあるかを見つけることができます:

find / -name 'php.ini'

そのファイルを次のように編集します。

vi /path/to/that/php.ini 

次に、次のものが含まれていることを確認します。

extension=pdo.so
extension=pdo_mysql.so

この変更を有効にするには、webserver/phpを再起動することを忘れないでください。

2
JayMcTee