Luk*_*e.T 13 php apache laravel docker
我在同一个 apache 容器中有两个 php 应用程序,我试图在端口上运行其中一个,因为它需要通过根域而不是子文件夹访问。
我想在端口 8060 上运行应用程序,我已经尝试使用 apache 虚拟主机,但它不会加载页面(http://192.168.99.100:8060/)它只是说连接被拒绝。然而,正常的 root ip - http://192.168.99.100工作正常。我的docker文件如下
version: '3.2'
services:
php-apache:
build:
context: ./apache-php
ports:
- 80:80
- 8060:8060
expose:
- '8060'
volumes:
- ./DocumentRoot:/var/www/html:z
Run Code Online (Sandbox Code Playgroud)
我的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>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。
Har*_*val 13
这是一个解决方案 - 一步一步:
第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"
Run Code Online (Sandbox Code Playgroud)
第 2 步: 使用以下行
更新您的hosts文件:
127.0.0.1 lara.local
Run Code Online (Sandbox Code Playgroud)
第 3 步:通过运行此命令测试我们的主机名
docker exec -it <your-php-container-name> hostname
Run Code Online (Sandbox Code Playgroud)
如果您看到输出,lara.local那么您就可以开始了!
第 4 步:重建应用
docker-compose build
Run Code Online (Sandbox Code Playgroud)
第 5 步:启动服务并检查应用程序正在运行http://lara.local
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
注意:例如,如果您使用不同的端口,8080那么它将是http://lara.local:8080
附注。如果您想将
DocumentRootthen ssh更改为您的容器并cd /etc/apache2/sites-available/000-default.conf根据您的需要更改 DocumentRoot 路径。
感谢@David Maze,我发现了问题,我将监听指令添加到我的 apache 配置的顶部并更改了端口号。
docker-compose.yml
version: '3.2'
services:
php-apache:
build:
context: ./apache-php
ports:
- 80:80
- 8060:8060
volumes:
- ./DocumentRoot:/var/www/html:z
Run Code Online (Sandbox Code Playgroud)
阿帕奇配置
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>
Run Code Online (Sandbox Code Playgroud)
目录结构
apache-php
¬ sqlite3_ext
¬ 000-default.conf (Apache config)
¬ Dockerfile
¬ php.ini
docker-compose.yml
Run Code Online (Sandbox Code Playgroud)
文件
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26981 次 |
| 最近记录: |