開発環境を「Local by Flywheel」に変えてみた。その2。

Docker for Windows 上の既存サイトを Local by Flywheel にインポートするとき、何点か設定変更した箇所があったのでメモしておきます。

メモは以下の設定のときの説明です。
ユーザー名:aaaa
ローカルサイトドメイン:bbbb.dev
ローカルサイトパス:C:\Users\aaaa\Local Sites\bbbb

Adminer を使ってsql データをインポートするとエラー

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.

でエラーログは以下の通り。
C:\Users\aaaa\Local Sites\bbbb\logs\apache\error.log

[Tue Sep 05 06:24:52.854148 2017] [fcgid:warn] [pid 2169:tid 140388924913408] [client 172.17.0.1:60716] mod_fcgid: HTTP request length 135104 (so far) exceeds MaxRequestLen (131072), referer: http://bbbb.dev/local-adminer-S1mzMTjKb.php?username=&db=bbbb&import=

mod_fcgid では、「FcgidMaxRequestLen」の設定で、HTTP のリクエストの長さの上限を設定するようになっています。
mod_fcgid のバージョン2.3.6以降では、デフォルトでは131072バイトです。
そのため、sql データをインポートすると、上限を超えてしまってエラーが起こっていました。

Apache の httpd.conf に MaxRequestLen の行を追加して、上限を 1000MB にしました。
C:\Users\aaaa\Local Sites\bbbb\conf\apache\apache2.conf
に以下を追加。

タイムアウト対策で以下の行も追加しています。
FcgidIOTimeout 300
デフォルトは40秒です。

以上は CGI版FastCGI のときです。

SQLSTATE[HY000] [2002] No such file or directory エラー

Search-Replace-DB-master で sql データ書き換えの実行時、
SQLSTATE[HY000] [2002] No such file or directory
が出たとき、config.php を以下の通り書き換えます。

define( 'DB_HOST', 'localhost' );

define( 'DB_HOST', '127.0.0.1' );

多分これが原因と思われます。

注意:サーバー名に "localhost" や "localhost:port" を指定した場合、MySQL クライアントライブラリはそれをオーバーライドし、 ローカルソケット(Windows では名前つきパイプ)に接続しようとします。
TCP/IP を用いたい場合は、"localhost" のかわりに "127.0.0.1" を用いてください。
もし MySQL クライアントライブラリが 間違ったローカルソケットへ接続しようとしている場合、これを修正するには PHP 設定の に正しいパスを 指定したうえでサーバー名を空白にしておくべきです。

php.ini の設定

ターゲットサーバーの環境に合わせて適切に設定します。
例えば、date.timezone とか。
C:\Users\aaaa\Local Sites\bbbb\conf\php\phpバージョン\php.ini

Adminer のバージョンアップ&日本語化

最新版 Adminer 4.3.1 をダウンロード

local-adminer.php にリネーム

C:\Users\aaaa\AppData\Local\Programs\local-by-flywheel\resources\extraResources\environments\shared\local-adminer.php
C:\Users\aaaa\AppData\Roaming\Local by Flywheel\environments\custom\components-core\scripts\local-adminer.php
と置き換える。

置き換え後に新しく作成したサイトは Adminer 4.3.1 にバージョンアップします。