I have a project and I want to up multiple server with different environment locally to have it communicate with each other.
To achieve this, I have tried to up two containers named php-fpm and php-fpm-web. They both share a same codebase. Besides that, I have an Apache2 with the following settings.
<VirtualHost *:80>
ServerName laravel.local
DocumentRoot /var/www/laravel/public
<Directory "/var/www/laravel/public">
...
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName another.laravel.local
DocumentRoot /var/www/laravel/public
<Directory "/var/www/laravel/public">
...
</Directory>
<FilesMatch \.php$>
# Apache 2.4.10+ can proxy to unix socket
SetHandler "proxy:php-fpm-web:9000|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
But I receive a 500 Internal Error from Apache2 in the "another.laravel.local".
To achieve same codebase with different environment, I use
<VirtualHost *:80>
ServerName another.laravel.local
DocumentRoot /var/www/laravel/public
<Directory "/var/www/laravel/public">
...
</Directory>
<FilesMatch \.php$>
SetEnv DB_DATABASE "db_name"
SetEnv DB_USERNAME "user"
</FilesMatch>
</VirtualHost>
So that when the another.laravel.local is loaded, the environment variable would be injected to the php in runtime.