我在同一个apache容器中有两个php应用程序,我试图在端口上运行其中的一个,因为它需要通过根域而不是子文件夹进行访问。
我想在端口8060上运行该应用程序,我曾尝试使用apache虚拟主机来运行该应用程序,但它不会加载仅表示连接被拒绝的页面(http://192.168.99.100:8060/)。但是,普通的根ip-http://192.168.99.100可以正常工作。 我的docker文件如下
String PLATE = "PLATE1";
Optional<Integer> parkingSpaceId = zone1.entrySet().stream() // stream all of the entries in the zone1 Map
.filter(e -> e.getValue().equals()) // filter out all that don't have the correct plate
.findFirst() // there should be 0 or 1 of these, so we can stop as soon as we find the first one
if (parkingSpaceId.isPresent()) {
zone1.remove(parkingSpaceId.get()); // remove that space from the map
} else {
System.out.println("That number plate doesn't exist!");
}
我的Apache配置
version: '3.2'
services:
php-apache:
build:
context: ./apache-php
ports:
- 80:80
- 8060:8060
expose:
- '8060'
volumes:
- ./DocumentRoot:/var/www/html:z
任何帮助将不胜感激。
答案 0 :(得分:0)
感谢@David Maze,我发现了在我的apache配置顶部添加了listen指令并更改了端口号的问题。
docker-compose.yml
version: '3.2'
services:
php-apache:
build:
context: ./apache-php
ports:
- 80:80
- 8060:8060
volumes:
- ./DocumentRoot:/var/www/html:z
Apache配置
Listen 80
Listen 8060
<VirtualHost *:8060>
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 :(得分:0)
这是一个解决方案-逐步:
步骤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路径。