1

ローカル開発の Google App PHP サーバーから Google Cloud SQL に接続しようとしています。しかし、PHP は functionmysql_connectを認識せず、クラスも認識せず、PDO クラスに接続しようとするとmysqli例外が発生します。could not find driver


次のコマンドを使用して、開発用 PHP サーバーを実行します。

"C:\Users\pasha\appengine-php-sdk-1.8.0\google_appengine\dev_appserver.py" --php_executable_path="C:\Users\pasha\php\php-cgi.exe" C:\Work\gaetest\


app.yamlファイルの内容は次のとおりです。

application: gaetest
version: 1
runtime: php
api_version: 1

handlers:

- url: /(.*)
  script: app/\1

テスト スクリプトは次のとおりです。

define('MYSQL_HOST', "/cloudsql/sample-project:sample-sql-instance");
define('MYSQL_LOGIN', "sample-login");
define('MYSQL_PASSWORD', "sample-pass");
define('MYSQL_DB', "sample-db");

echo "\nfunction_exists('mysql_connect'):\n"; 
var_dump(function_exists('mysql_connect'));

echo "\nclass_exists('mysqli'):\n"; 
var_dump(class_exists('mysqli'));   

try{

    echo "\nUse PDO\n";
    $db = new PDO(
        'mysql:unix_socket='.MYSQL_HOST.';dbname='.MYSQL_DB.';charset=utf8',
        MYSQL_LOGIN,
        MYSQL_PASSWORD
    );
}catch(Exception $e){
    var_dump($e->__toString());
}

テスト スクリプトの出力:

function_exists('mysql_connect'):
bool(false)

class_exists('mysqli'):
bool(false)

Use PDO
string(371) "exception 'PDOException' with message 'could not find driver' in C:\Work\gaetest\app\test.php:19
Stack trace:
#0 C:\Work\gaetest\app\test.php(19): PDO->__construct('mysql:unix_sock...', 'sample-login', 'sample-pass')
#1 C:\Users\pasha\appengine-php-sdk-1.8.0\google_appengine\google\appengine\tools\devappserver2\php\setup.php(45): require('C:\Work\gaetest...')
#2 {main}"

PHP 開発サーバーから Google Cloud SQL を使用するにはどうすればよいですか? ありがとうございました。

4

5 に答える 5

1

次の手順に従います。

https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_PHP

ただし、次の構成コマンドを使用する必要があります。

./configure --prefix=$PWD/installdir --enable-bcmath --with-mysql --with-pdo-mysql

事後的に構成コマンドを実行できるかもしれませんが、よくわかりません TBH

于 2014-06-05T18:02:10.247 に答える
0

問題を売却しました。

  1. フォルダ内php.ini-developmentのファイルの名前をphpphp.ini
  2. 次に、必要な拡張機能を有効にしましたphp.ini
  3. の行のコメントを外したextension_dir = "ext"のでphp.ini、php は拡張機能を認識できるようになりました。

それで全部です。ありがとうございました。

于 2013-06-12T10:18:03.367 に答える
0

ローカル環境に mysql および mysqli 拡張機能をインストールする必要があるようです。

于 2013-06-11T06:31:33.690 に答える