我的正式服正在运行具有经典结构Db-Container、Server-Container和Php-Fpm容器的Docker。
我想做的是将来源分开,以便为项目的三个主要部分提供不同的容器。现在他们以旧的方式工作,比如mydomain.com/index主网站,mydomain.com/api和mydomain.com/adm其他服务。
如何设置Apache虚拟主机以映射这样的请求?
mydomain.com -> fcgi://siteFpm:9000
mydomain.com/api -> fcgi://apiFpm:9000
mydomain.com/cms -> fcgi://cmsFpm:9000
谢啦
在conf文件或vhosts文件中使用docker compose expose和FastCgiExternalServer
(请注意,这是我将采取并仍在研究的一种方法。我将根据我了解的更多信息进行更新。但希望它也能为您提供一个操作大纲。我会更新我的答案,而不是空洞的promise,请参见下面的示例:在漫游虚拟机(windows 7主机下)上运行灯堆栈,完整说明?)
安装docker compose,它使用docker compose提供了一种正式的标准化方法来批量/自动运行docker容器。yml
文件,而不是使用命令行docker
命令分别启动每个命令。
在docker-compose.yml
文件中,定义php-fpm服务,例如:
服务:
使用EXPOSE
关键字语句/指令将php fpm的端口提供给apache。
本文展示了一个expose
的示例:一台主机中的多个AMP版本,其中示例docker组合。yml
包含以下公开语句:
expose:
- "3306"
-这使sql数据库可用于其他docker容器。
您还需要确保php文件对php和apache容器都可用-CREDIT:https://stackoverflow.com/a/40449377/227926
然后,相同的公开:
端口,以及服务名称将需要从vhost文件或conf文件中的ApacheFastCgiExtranalServer
指令中引用。我认为,选择vhost文件或conf文件来放入指令似乎是个人偏好,尽管研究可能会揭示其中一个更适合您的情况的差异。
conf文件中的示例如下所示:
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
我应该把这个放在什么conf文件中?
回答:有几个选项(如上所述),更详细地说,这些选项是(假设Ubunut/DebianLinux是Apache运行的操作系统):-httpd.conf-000-default.conf(默认vhost)(在站点可用)-yoursite.conf(在站点可用)-和(例如) /etc/apache2/conf-available/php5.6-fpm.conf
这些conf文件位于何处?
答:在apache docker容器中。您将需要使用docker compose。定义服务后,将所述设置添加(注入)到容器中的yml文件。您可以从docket compose中执行。yml是将文本插入配置文件的标准linux命令。
您应该自动添加这些设置,而不是在容器中手动编辑Apache配置文件,因为:1)自动意味着设置是可重复的,因此可以用于开发工作流中的不同平台:dev、qa、uat、,现场/生产2)无需人工操作3)Docker容器是短暂的,因为它们可以被销毁和重新创建。任何持久性数据都应该保存在它们之外—在主机中—(docker文件中的配置、docker composer文件、单独文件夹中的资产(图像)、容器外部和主机上的数据库存储。
FastCgiExternalServer指令示例:
关于conf文件和Apache的Debian/Ubuntu约定的参考
关于PHP-FPM的讨论https://serverfault.com/questions/645755/differences-and-dis-advanages-between-fast-cgi-cgi-mod-php-suphp-php-fpm
关于docker-file.yml语句的有用相关信息
关于将不同容器一起运行的类似讨论
-我发现shiftRows函数存在一个导致excel中断的错误。https://bz.apache.org/bugzilla/show_bug.cgi?id=57423我不确定这是否已经修复。我已经在bugzilla上添加了一个评论来进一步了解这一点。 如果满足特定的单元格值条件,我正尝试从excel文件中删除行(而不是删除的内容)。 我成功地实现了这一点,但问题是它破坏了我的excel并且当我重
我有这样Apache Cxf maven插件配置: 我基本上有两个问题,也许有人可以回答:
我想使用Docker,以便能够运行一个需要PHP5.3的旧应用程序,同时在我的主机服务器上还有我的其他网站,在主机Apache上运行。 所以我有一个网站。com,siteB。com,siteC。com运行在主机上,使用主机Apache/PHP/MySQL服务器,我有siteZ。com,安装在Docker容器中,该容器应使用容器的Apache/PHP,而不是主机MySQL服务器。 这是我想获得的架构
我现在有一个列表的sql server 的数据库表,然后有一个用户提交的数据库表,想要实现的话就是,用户提交完毕后给第一张表的一个字段变为true,就是不同用户看到的列表字段不一样,只有提交表单后的用户,他的列表特定字段才会变为true,用户未提交就为false 想要实现的话就是,用户提交完毕后给第一张表的一个字段变为true,就是不同用户看到的列表字段不一样,只有提交表单后的用户,他的列表特定字
我一直在使用ApacheOpenNLP进行一些功能测试,它具有句子检测、标记化和名称实体识别的功能。现在,当我开始查看UIMA文档时,它出现在UIMA主页——“语言识别”上= 这表明我可以使用UIMA完成与OpenNLP相同的任务。两者都有什么附加功能?我是这个领域的新手,请帮助我了解两者的用途和功能视角。
我想用不同的命令启动已停止的Docker容器,因为默认命令崩溃——这意味着我不能启动容器,然后使用“docker exec”。 基本上,我想开始一个外壳,这样我就可以检查容器的内容。 幸运的是,我用-it选项创建了这个容器!