同じApacheコンテナーに2つのphpアプリケーションがあり、それらの1つをサブフォルダーではなくルートドメイン経由でアクセスできる必要があるため、ポートで実行しようとしています。
Apache仮想ホストを使用して試行したポート8060でアプリケーションを実行したいのですが、ページが読み込まれません( http://192.168.99.100:8060/ )接続と表示されます拒否した。ただし、通常のルートIP- http://192.168.99.1 は正常に機能します。私のドッカーファイルは次のとおりです
version: '3.2'
services:
php-Apache:
build:
context: ./Apache-php
ports:
- 80:80
- 8060:8060
expose:
- '8060'
volumes:
- ./DocumentRoot:/var/www/html:z
私のApache設定
<VirtualHost *:60>
DocumentRoot /var/www/html/api
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
どんな助けでも大歓迎です。
これが解決策です-ステップバイステップ:
ステップ1:
追加/更新extra_hosts
、hostname
、domainname
およびdocker-compose.yml
で、私の場合は、PORT 80
で実行しています。 。
これが、php
サービスがdocker-compose.yml
ファイルでどのように見えるかです。
php:
build: .
image: php:7.2-Apache
working_dir: /var/www/html
volumes:
- ./:/var/www/html
- ./php.ini:/usr/local/etc/php/php.ini
extra_hosts:
- "lara.local:127.0.0.1"
hostname: lara.local
domainname: local
ports:
- 80:80
environment:
- "DB_PORT=3306"
- "DB_Host=database"
ステップ2:
次の行でhosts
ファイルを更新します:
127.0.0.1 lara.local
ステップ3:このコマンドを実行してホスト名をテストします
docker exec -it <your-php-container-name> hostname
出力lara.local
が表示されたら、準備完了です。
ステップ4:アプリを再構築
docker-compose build
ステップ5:サービスを開始し、アプリがhttp://lara.local
で実行されていることを確認します
docker-compose up -d
注:8080
などの別のポートを使用している場合は、http://lara.local:8080
になります。
PS。
DocumentRoot
を変更する場合は、SSHでコンテナとcd /etc/Apache2/sites-available/000-default.conf
に移動し、必要に応じてDocumentRootパスを変更します。