我将使用docker和nginx设置一个非常简单的php页面。
源文件可以在这里找到:
文件夹配方02中的https://github.com/ikknd/docker-study
1.创建项目文件夹设置:
/var/www/docker-study.loc/recipe-02
-> /docker
-> /php
在“ php”文件夹中,我将创建执行phpinfo()的index.php文件。
2.在“ docker”文件夹中创建nginx config site.conf:
server {
server_name myapp.loc;
root /var/www/myapp;
index index.php index.html index.htm;
access_log /var/log/nginx/back-access.log;
error_log /var/log/nginx/back- error .log;
location / {
try_files $uri $uri / /index.php? $query_string ;
}
# PHP-FPM Configuration Nginx
location ~ \.php$ {
try_files $uri = 404 ;
fastcgi_split_path_info ^(.+\.php)(/.+)$ ;
fastcgi_pass php: 9000 ;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param REQUEST_URI $request_uri ;
fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name ;
fastcgi_param PATH_INFO $fastcgi_path_info ;
}
}
fastcgi_pass php:9000;
-这就是告诉nginx如何连接到php容器的原因
3.在主机上编辑/ etc / hosts文件,并添加一条记录:
127.0.0.1 myapp.loc
4.在“ docker”文件夹中创建docker-compose.yml文件:
version: "3.7"
services:
web:
image: nginx:1.17
ports:
- 80 :80
volumes:
- /var/www/docker-study.loc/recipe-02/php:/var/www/myapp
- /var/www/docker-study.loc/recipe-02/docker/site.conf:/etc/nginx/conf.d/site.conf
depends_on:
- php
php:
image: php:7.2-fpm
volumes:
- /var/www/docker-study.loc/recipe-02/php:/var/www/myapp
- /var/www/docker-study.loc/recipe-02/docker/php.ini:/usr/local/etc/php/php.ini
我在这里做几件事:
- 我使用自己的php.ini文件,将其复制到php容器中,因此,如果需要更改某些设置,只需在php.ini中进行更改并重新启动容器
- 如果我在index.php文件中的php代码中进行了更改,则无需重新启动容器,更改将在重新加载浏览器页面后立即应用。
- “ depends_on”-阻止容器在它所依赖的其他容器之前启动
5.转到/var/www/docker-study.loc/recipe-02/docker/并执行:
docker-compose up -d
如果现在在浏览器中尝试myapp.loc/
,我将看到php info结果。
From: https://hackernoon.com/nginx-php-docker-how-to-get-php-page-up-with-local-domain-name-ho3x33f6