置くだけ
ini_set("default_socket_timeout", 2);
PDO()接続文字列の前。
(Windowsでテスト済みですが、Linuxでも問題ありません。)
なぜですか?
マニュアルでこれを追いかける:
mysqlndドライバーは、基になる接続にソケットを使用します。タイムアウトを設定するには、ソケット(ストリーム)タイムアウト関数を使用する必要があります。 (参照:http://php.net/manual/en/mysqlnd.notes。 php )
より詳細な制御が必要な場合は、実際のソケットをより具体的に制御できる可能性があります。これはUNIXのみであるため、テストしていません。 mysqlndが使用するソケットを設定するには、ini設定を使用してソケットを指定できます(参照: http://php.net/manual/en/ref.pdo-mysql.connection.php )
http://phpを参照してください。 net / manual / en / ref.pdo-mysql.php#ini.pdo-mysql.default-socket その設定について
その後、 http://phpを使用してタイムアウトを設定できる場合があります。 .net / manual / en / function.stream-set-timeout.php
しかし、おそらくデフォルトを設定し、完了したらリセットする方が簡単です...