我在同一个apache容器中有两个php应用程序,我试图在一个端口上运行其中一个,因为它需要通过根域而不是子文件夹进行访问.

我想在端口8060上运行应用程序,我已经try 过使用apache虚拟主机,但它不会加载页面(http://192.168.99.100:8060/),它只是说连接被拒绝.然而,正常的根ip-http://192.168.99.100工作正常.

version: '3.2'
  services:
    php-apache:
      build:
        context: ./apache-php
      ports:
        - 80:80
        - 8060:8060

      expose:
        - '8060'
      volumes:
        - ./DocumentRoot:/var/www/html:z

我的apache配置

<VirtualHost *:60>
    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>

任何帮助都将不胜感激.

推荐答案

多亏了@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>

目录 struct

apache-php
   ¬ sqlite3_ext
   ¬ 000-default.conf (Apache配置)
   ¬ Dockerfile
   ¬ php.ini
docker compose .yml

Dockerfile

FROM php:7.2.1-apache
RUN docker-php-ext-install pdo pdo_mysql mysqli

# Enable apache rewrite
COPY 000-default.conf /etc/apache2/sites-available/000-default.conf

#Install spatialite and create symlink for libproj.so.0
COPY sqlite3_ext /etc/sqlite3_ext
RUN apt-get update && apt-get -y install gdal-bin
RUN ln -s /usr/lib/x86_64-linux-gnu/libproj.so.12 /usr/lib/x86_64-linux-gnu/libproj.so.0

#Install gd library for images
RUN apt-get install libpng-dev libfreetype6-dev libjpeg62-turbo-dev -qy \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install gd

#Copy php ini
COPY php.ini /usr/local/etc/php/php.ini
RUN a2enmod rewrite

Laravel相关问答推荐

URL类图中的循环关系

如何重置laravel ui密码

Laravel mail send Amazon SES不再支持TLS 1.0和TLS 1.1连接

Laravel 9 中使用 WHERE 子句的列的 SUM

导出所有客户端不起作用,文件保存时没有名称和扩展名

验证错误后的 Laravel 自定义重定向

Laravel 5.3:语法错误或访问冲突:1463 HAVING 子句中使用了非分组字段距离

语法错误或访问冲突:1115 未知字符集:utf8mb4

如何判断用户Electron邮件是否已存在

安卓 retrofit |发布自定义对象(将 json 发送到服务器)

将 Laravel MYSQL 更改为 utf8mb4 以在现有数据库中支持表情符号

Laravel 中的合同和 PHP 中的接口有什么区别?

在 Laravel 中无效后防止重定向到主页

Laravel 5:完整性约束违规:1452 无法添加或更新子行:外键约束失败

如何将 Facebook PHP SDK 与 Laravel 5.4 集成?

使用 Laravel 创建新项目会引发异常

反向代理后面的 Laravel 路由

Laravel 删除集合中的第一项

Laravel 如何在 Eloquent 模型中添加自定义函数?

Laravel 验证用户名不允许有空格