doulu6234
2019-02-27 10:39
浏览 53
已采纳

在docker中使用相同代码库的不同服务器

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".

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dqyym3667 2019-02-28 01:40
    已采纳

    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.

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题