私はAWSからGCEへのシステム移行に問題があることに少し不満を持っています。ubuntuでGCEインスタンスのPHPを使ってmysql dbに接続できない
私はec-2インスタンスをamazon Webサービス上で実行しており、完全に動作し構成されています。
問題はGoogleがスタートアップの特別プランに100.000ドルのクレジットを提供しているということです。私の会社のCEOはマイグレーションを求めるので、ここにいます。
ubuntu 14.04 LTSのインスタンスではすべて実行しており、ほぼ完全に設定していますが、私はMysql dbに接続するなどの単純なタスクを達成できないため、ほとんど言っています。
まず、私はリモートサーバーでこの問題を抱えていますが、私はローカルで数百回、そしてもちろんawsでテストしました。それは、生産状態に現在あるので、私は問題が何であるか、または場所を正確見当もつかない
マイGCEの設定:。
OS:Ubun TU 14.04 LTS HHD:30ギガバイト持続SSDディスク CPU:2X RAM:7.5 GB ゾーン:ヨーロッパ-west1-C 静的IP
だから、私は、魔法のようにすべての作品をランプとphpMyAdminのインストール。リモートクライアントからMysql dbへのルートアクセスを無効にし、phpとapacheモジュールを設定しました。
Webアプリケーションは、PHP(Slim)に基づいたRest Apiで、今述べたようにAWSで作業しています。
dbからデータを取得する必要のないエンドポイントを呼び出すと、正常に動作します。エンドポイントがdbにアクセスしようとしたときに問題が発生します。その場合、リクエストは応答しません。リクエストを中止するまで、ロードは永久に続きます。 phpmyadminを使ってすべてのデータを操作することができます。これは、mysqliと同じようにdbにアクセスします。
ログを確認しても、何も印刷されません。 「locahost」ホストパラメータを変更した場合にのみ、「XXX.XXX.XXX.XXX上のNo mysql db」(IP)というログが出力されます。
config.phpファイル
define('DB_USERNAME', 'user');
define('DB_PASSWORD', 'pass');
define('DB_HOST', 'localhost');
define('DB_NAME', 'db_name');
DbConnect.php
function connect() {
include_once dirname(__FILE__) . '/Config.php';
// Connecting to mysql database
$this->conn = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
// Check for database connection error
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
/* change character set to utf8 */
if (!$this->conn->set_charset("utf8")) {
echo "Error loading character set utf8: " . $this->conn->error;
}
// returing connection resource
return $this->conn;
}
は、すべてのヘルプは大歓迎です!
私はそれを言及するのを忘れ、私はまた、IPをバインドしようとしました。結果は似ています:localhostの場合、決して応答が来るのを待っています。my.cnfファイルのバインドされたIPを介してアクセスしようとすると、同じ結果が返されます。私はIPをバインド解除すると例外を返します "アドレスXXX.XXXのNo db ........."ありがとうとにかく;-) – SvOzMaS
ファイアウォールがサーバーへの接続をブロックしていない場合は、 ufwやiptablesなど? https://help.ubuntu.com/12.04/serverguide/firewall.html – ironpilot