はじめに
LaraDock環境で、Apacheのコンテナを起動しようとした時に、ポートエラーが発生した時の対処方法を記載する。
エラー文
laradockフォルダ下で、以下のコマンドを実行する。
コマンド
docker-compose stop apache2
上記のコマンドを実行すると、下記のようなエラー文が出力されることがある。 エラー文1、apache関係でエラーが発生していることが予想がつきます。
エラー文1
Recreating laradock_apache2_1 ... error
次に、下記のようなエラー文2が発生していたら、そのポート番号が他で使ってるので使えないよって意味です。(今回は、ポート番号443が使われてるって意味)
エラー文2
ERROR: for apache2 Cannot start service apache2:
driver failed programming external connectivity
on endpoint laradock_apache2_1
Bind for 0.0.0.0:443 failed: port is already allocated
ポート確認
エラー文で出たポートが本当に使われているか確認する方法を記載します。
下記のコマンドを実行すると、実際に使われているプロセスが出力されます。
出力されれば、そのポートは使用されているということなので、別ポートを使いましょう。
コマンド
sudo lsof -i:443
出力結果
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
LINE 256 Ozon 25u IPv4 XXXXXXX 0t0 TCP XX(ESTABLISHED)
ポート変更
[.env]ファイル内で、使用ポートが設定できるので、お好みのエディタでファイルを修正する。
.envファイル修正前
<前略>
### APACHE ################################################
APACHE_HOST_HTTP_PORT=80
APACHE_HOST_HTTPS_PORT=443
APACHE_HOST_LOG_PATH=./logs/apache2
APACHE_SITES_PATH=./apache2/sites
APACHE_PHP_UPSTREAM_CONTAINER=php-fpm
APACHE_PHP_UPSTREAM_PORT=9000
APACHE_PHP_UPSTREAM_TIMEOUT=60
APACHE_DOCUMENT_ROOT=/var/www/
<後略>
↓[.env]ファイル修正
今回は、ポート番号444に修正したが、使用していないポートだったら別の番号でも大丈夫だと思われます。
.envファイル修正後
<前略>
### APACHE ################################################
APACHE_HOST_HTTP_PORT=80
APACHE_HOST_HTTPS_PORT=444
APACHE_HOST_LOG_PATH=./logs/apache2
APACHE_SITES_PATH=./apache2/sites
APACHE_PHP_UPSTREAM_CONTAINER=php-fpm
APACHE_PHP_UPSTREAM_PORT=9000
APACHE_PHP_UPSTREAM_TIMEOUT=60
APACHE_DOCUMENT_ROOT=/var/www/
<後略>
動作確認
ポート番号を変更したら、下記のコマンドを実行する。
コマンド
docker-compose up --build -d apache2
上記コマンドを実行後に、下記が出力されれば、Apacheのコンテナの起動に成功しています。
出力結果
Starting baa402ff5c7c_laradock_apache2_1 ... done