Jika Anda bekerja dengan PHP, dan Anda ingin memiliki satu proses per container, maka saya sarankan menggunakan Nginx dan menggunakan PHP-FPM, karena konfigurasinya jauh lebih mudah daripada Apache untuk jenis pengaturan ini (setidaknya itulah yang saya 'telah ditemukan).
Anda perlu memastikan bahwa Anda memiliki volume bersama yang sama untuk wadah Nginx dan PHP. Dalam volume itu Anda akan memiliki index.php
. Berikut adalah contoh kasar docker-compose.yml:
services:
php7:
image: "php:7.1.10-fpm"
container_name: "prefix-php"
volumes:
- "./your/local/dir:/var/www/html"
nginx:
image: "nginx:1.13.6"
container_name: "prefix-nginx"
ports:
- "80:80"
- "443:443"
links:
- "php7"
volumes:
- "./your/local/dir:/var/www/html"
Anda kemudian akan menjalankan perintah berikut ini di direktori tempat docker-compose.yml
filenya adalah:
$ docker-compose -p prefix
Alasan untuk "awalan" adalah karena Anda membuat pengelompokan proyek untuk container Anda agar tidak bentrok dengan nama container lainnya.
Tentu saja Anda memerlukan konfigurasi situs nginx yang mengarah ke /var/www/html
. Anda akan memiliki sedikit atau tidak ada persyaratan konfigurasi untuk wadah php-fpm.
Catatan tambahan tentang konfigurasi nginx. Docker-compose.yml di atas tidak lengkap tanpa referensi wadah php dalam konfigurasi nginx. Ini akan terlihat seperti ini (secara kasar):
server {
listen 80 default_server;
# ...more config, like root, index, server_name, etc
location ~* \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass prefix-php:9000; # Note the container name here.
fastcgi_index index.php;
fastcgi_hide_header X-Powered-By;
fastcgi_read_timeout 300s;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# ...more rules
}
Anda akan melihat saya menamai wadah "php7", Anda sebenarnya bisa menambahkan wadah "php5" lain ke docker-compose.yml
ini dan kemudian itu memungkinkan Anda untuk menentukan situs nginx yang menggunakan versi PHP yang berbeda, semuanya berjalan pada pengaturan komposisi buruh pelabuhan yang sama.
Saya menghargai bahwa ini tidak secara langsung menjawab pertanyaan Anda karena tidak menyelesaikannya menggunakan Apache, tetapi ini merupakan alternatif untuk dipertimbangkan.
Semoga ini setidaknya memberi Anda ide untuk membantu menyelesaikan penyiapan Anda.