|
@@ -1,4 +1,4 @@
|
|
|
-## 配置 Docker 容器 nginx-php-fpm7.3 镜像
|
|
|
+## 基于官方 debian 配置 Docker 容器 nginx-php-fpm7.3 镜像
|
|
|
|
|
|
```
|
|
|
# 下载 nginx-php-fpm7.3 项目源码
|
|
@@ -21,7 +21,7 @@ docker exec -it nginx-php bash
|
|
|
### https://hub.docker.com/ 登陆、建立公共容器 ,先构造容器,再推送到远程
|
|
|
```
|
|
|
docker login
|
|
|
-Username: hongwenjun Password: xxxxx
|
|
|
+Username: hongwenjun Password: ******
|
|
|
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
|
|
|
|
|
|
vim Dockerfile
|
|
@@ -34,132 +34,64 @@ docker push hongwenjun/nginx-php
|
|
|
|
|
|
### 启动 nginx-php-fpm7.3 容器
|
|
|
```
|
|
|
-docker run -d -p 80:80 --name nginx-php \
|
|
|
- --cpus 0.5 --restart=always \
|
|
|
- -v /var/www/html:/var/www/html \
|
|
|
+docker run -d -p 80:80 -p 443:443 \
|
|
|
+ --cpus 0.8 --restart=always \
|
|
|
+ -v /var/www/html:/var/www/html \
|
|
|
+ -v /var/log:/var/log \
|
|
|
+ --name nginx-php \
|
|
|
hongwenjun/nginx-php
|
|
|
```
|
|
|
-
|
|
|
-----
|
|
|
|
|
|
## Dockerfile 文件 使用 supervisor 启动 php-fpm 和 nginx 服务
|
|
|
```
|
|
|
-FROM debian
|
|
|
-CMD bash
|
|
|
-RUN apt update -y && apt install -y nginx php-fpm supervisor && \
|
|
|
- echo "<?php phpinfo(); ?>" > /var/www/html/index.php && \
|
|
|
- mkdir -p /var/run/php /run/php
|
|
|
+FROM debian
|
|
|
+RUN apt update -y && \
|
|
|
+ apt install -y --no-install-recommends nginx php-fpm supervisor && \
|
|
|
+ mkdir -p /var/run/php /run/php && \
|
|
|
+ rm -rf /var/lib/apt/lists/* && \
|
|
|
+ rm -rf /var/cache/apt && \
|
|
|
+ echo "<?php phpinfo(); ?>" > /var/www/html/index.php && \
|
|
|
+ printf '#!/bin/bash\n\n# Start supervisord and services\nexec /usr/bin/supervisord -n -c /etc/supervisord.conf\n' \
|
|
|
+ > /start.sh && chmod +x /start.sh
|
|
|
|
|
|
COPY ./default /etc/nginx/sites-enabled/default
|
|
|
COPY ./supervisord.conf /etc/supervisord.conf
|
|
|
-ADD ./start.sh /
|
|
|
|
|
|
-VOLUME [/var/www/html /etc/nginx/sites-enabled]
|
|
|
+VOLUME [/var/www/html /etc/nginx/sites-enabled /var/log]
|
|
|
EXPOSE 80/tcp 443/tcp
|
|
|
|
|
|
CMD ["/start.sh"]
|
|
|
|
|
|
-
|
|
|
```
|
|
|
|
|
|
-----
|
|
|
|
|
|
## default 是 debian nginx 默认配置修改成启用 php-fpm
|
|
|
```
|
|
|
-# /etc/nginx/sites-enabled/default
|
|
|
-
|
|
|
-##
|
|
|
-# You should look at the following URL's in order to grasp a solid understanding
|
|
|
-# of Nginx configuration files in order to fully unleash the power of Nginx.
|
|
|
-# https://www.nginx.com/resources/wiki/start/
|
|
|
-# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
|
|
|
-# https://wiki.debian.org/Nginx/DirectoryStructure
|
|
|
-#
|
|
|
-# In most cases, administrators will remove this file from sites-enabled/ and
|
|
|
-# leave it as reference inside of sites-available where it will continue to be
|
|
|
-# updated by the nginx packaging team.
|
|
|
-#
|
|
|
-# This file will automatically load configuration files provided by other
|
|
|
-# applications, such as Drupal or Wordpress. These applications will be made
|
|
|
-# available underneath a path with that package name, such as /drupal8.
|
|
|
-#
|
|
|
-# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
|
|
|
-##
|
|
|
-
|
|
|
-# Default server configuration
|
|
|
-#
|
|
|
+# /etc/nginx/sites-enabled/default
|
|
|
server {
|
|
|
listen 80 default_server;
|
|
|
listen [::]:80 default_server;
|
|
|
|
|
|
- # SSL configuration
|
|
|
- #
|
|
|
# listen 443 ssl default_server;
|
|
|
# listen [::]:443 ssl default_server;
|
|
|
- #
|
|
|
- # Note: You should disable gzip for SSL traffic.
|
|
|
- # See: https://bugs.debian.org/773332
|
|
|
- #
|
|
|
- # Read up on ssl_ciphers to ensure a secure configuration.
|
|
|
- # See: https://bugs.debian.org/765782
|
|
|
- #
|
|
|
- # Self signed certs generated by the ssl-cert package
|
|
|
- # Don't use them in a production server!
|
|
|
- #
|
|
|
- # include snippets/snakeoil.conf;
|
|
|
|
|
|
root /var/www/html;
|
|
|
-
|
|
|
- # Add index.php to the list if you are using PHP
|
|
|
index index.html index.php index.nginx-debian.html;
|
|
|
-
|
|
|
server_name _;
|
|
|
|
|
|
location / {
|
|
|
- # First attempt to serve request as file, then
|
|
|
- # as directory, then fall back to displaying a 404.
|
|
|
try_files $uri $uri/ =404;
|
|
|
}
|
|
|
|
|
|
# pass PHP scripts to FastCGI server
|
|
|
- #
|
|
|
location ~ .*\.php(\/.*)*$ {
|
|
|
include snippets/fastcgi-php.conf;
|
|
|
- #
|
|
|
# # With php-fpm (or other unix sockets):
|
|
|
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
|
|
|
- # # With php-cgi (or other tcp sockets):
|
|
|
- # fastcgi_pass 127.0.0.1:9000;
|
|
|
}
|
|
|
|
|
|
- # deny access to .htaccess files, if Apache's document root
|
|
|
- # concurs with nginx's one
|
|
|
- #
|
|
|
- #location ~ /\.ht {
|
|
|
- # deny all;
|
|
|
- #}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-# Virtual Host configuration for example.com
|
|
|
-#
|
|
|
-# You can move that to a different file under sites-available/ and symlink that
|
|
|
-# to sites-enabled/ to enable it.
|
|
|
-#
|
|
|
-#server {
|
|
|
-# listen 80;
|
|
|
-# listen [::]:80;
|
|
|
-#
|
|
|
-# server_name example.com;
|
|
|
-#
|
|
|
-# root /var/www/example.com;
|
|
|
-# index index.html;
|
|
|
-#
|
|
|
-# location / {
|
|
|
-# try_files $uri $uri/ =404;
|
|
|
-# }
|
|
|
-#}
|
|
|
-
|
|
|
-
|
|
|
```
|
|
|
|