GVKun编程网logo

docker nginx+php-fpm+mysql

14

如果您对dockernginx+php-fpm+mysql感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于dockernginx+php-fpm+mysql的详细内容,并且为

如果您对docker nginx+php-fpm+mysql感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于docker nginx+php-fpm+mysql的详细内容,并且为您提供关于docker - nginx+php+php-mysql(扩展)、docker Nginx PHP-FPM单机多站点布署的方法、Docker php-fpm / nginx设置:php-fpm空白500,没有错误日志、Docker 下 安装php7.2-fpm,nginx的有价值信息。

本文目录一览:

docker nginx+php-fpm+mysql

docker nginx+php-fpm+mysql

 docker run -p 3306:3306 --name mysql56  -v /usr/local/docker/mysql56/conf:/etc/mysql/conf.d -v /usr/local/docker/mysql56/logs:/logs -v /usr/local/docker/mysql56/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6 --innodb-flush-method=O_DSYNC --innodb-use-native-aio=0

docker run --name php7.1 -v /www:/var/www/html -p 9000:9000 -d --link mysql56:db php:7.1-fpm

 

 

 

docker run -d -p 80:80 -p81:81 -p82:82 -p83:83 -p84:84 -p85:85 -p86:86 -p87:87 -p88:88 -p89:89 -p90:90 -p91:91 -p92:92 -p93:93 -p94:94 -p95:95 -p96:96 -p97:97 -p98:98 -p99:99 --name nginx -v /www:/var/www/html -v /usr/local/docker/nginx/conf/conf.d:/etc/nginx/conf.d -v /usr/local/docker/nginx/logs:/var/log/nginx  --link php7.1:php7.1 nginx

如果docker ps发现nginx未启动, 执行 su -c "setenforce 0" (临时方式关闭selinux,每次容器重启前都要执行),不要添加 --privileged=true(要不然可能有文件权限问题)

 可以选择永久关闭selinux

cp /etc/selinux/config /etc/selinux/config.bak
# cat /etc/selinux/config
# 更改setlinux级别
sed -i ''s/SELINUX=enforcing/\SELINUX=permissive/'' /etc/selinux/config
   #  ==> vim /etc/selinux/config/  --> SELINUX=permissive
[效果同上] # SELINUX参数enforcing代表打开,disabled代表关闭 # 查看selinux状态: getenforce

  

 

 

 

 

 

安装php扩展:

 

 

docker exec -it php容器id /bin/bash

使用  docker-php-ext-install pdo_mysql 进行安装

 

 

 

插件安装可参考:

# Notice:
# 1. Mcrypt was DEPRECATED in PHP 7.1.0, and REMOVED in PHP 7.2.0.
# 2. opcache requires PHP version >= 7.0.0.
# 3. soap requires libxml2-dev.
# 4. xml, xmlrpc, wddx require libxml2-dev and libxslt-dev.
# 5. Line `&& :\` is just for better reading and do nothing.
RUN apt-get update \
    && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install gd \
    && :\
    && apt-get install -y libicu-dev \
    && docker-php-ext-install intl \
    && :\
    && apt-get install -y libxml2-dev \
    && apt-get install -y libxslt-dev \
    && docker-php-ext-install soap \
    && docker-php-ext-install xsl \
    && docker-php-ext-install xmlrpc \
    && docker-php-ext-install wddx \
    && :\
    && apt-get install -y libbz2-dev \
    && docker-php-ext-install bz2 \
    && :\
    && docker-php-ext-install zip \
    && docker-php-ext-install pcntl \
    && docker-php-ext-install pdo_mysql \
    && docker-php-ext-install mysqli \
    && docker-php-ext-install mbstring \
    && docker-php-ext-install exif \
    && docker-php-ext-install bcmath \
    && docker-php-ext-install calendar \
    && docker-php-ext-install sockets \
    && docker-php-ext-install gettext \
    && docker-php-ext-install shmop \
    && docker-php-ext-install sysvmsg \
    && docker-php-ext-install sysvsem \
    && docker-php-ext-install sysvshm \
    && docker-php-ext-install opcache
    #&& docker-php-ext-install pdo_firebird \
    #&& docker-php-ext-install pdo_dblib \
    #&& docker-php-ext-install pdo_oci \
    #&& docker-php-ext-install pdo_odbc \
    #&& docker-php-ext-install pdo_pgsql \
    #&& docker-php-ext-install pgsql \
    #&& docker-php-ext-install oci8 \
    #&& docker-php-ext-install odbc \
    #&& docker-php-ext-install dba \
    #&& docker-php-ext-install interbase \
    #&& :\
    #&& apt-get install -y libmcrypt-dev \
    #&& docker-php-ext-install mcrypt \
    #&& :\
    #&& apt-get install -y curl \
    #&& apt-get install -y libcurl3 \
    #&& apt-get install -y libcurl4-openssl-dev \
    #&& docker-php-ext-install curl \
    #&& :\
    #&& apt-get install -y libreadline-dev \
    #&& docker-php-ext-install readline \
    #&& :\
    #&& apt-get install -y libsnmp-dev \
    #&& apt-get install -y snmp \
    #&& docker-php-ext-install snmp \
    #&& :\
    #&& apt-get install -y libpspell-dev \
    #&& apt-get install -y aspell-en \
    #&& docker-php-ext-install pspell \
    #&& :\
    #&& apt-get install -y librecode0 \
    #&& apt-get install -y librecode-dev \
    #&& docker-php-ext-install recode \
    #&& :\
    #&& apt-get install -y libtidy-dev \
    #&& docker-php-ext-install tidy \
    #&& :\
    #&& apt-get install -y libgmp-dev \
    #&& ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \
    #&& docker-php-ext-install gmp \
    #&& :\
    #&& apt-get install -y postgresql-client \
    #&& apt-get install -y mysql-client \
    #&& :\
    #&& apt-get install -y libc-client-dev \
    #&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
    #&& docker-php-ext-install imap \
    #&& :\
    #&& apt-get install -y libldb-dev \
    #&& apt-get install -y libldap2-dev \
    #&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu \
    #&& docker-php-ext-install ldap \

  

docker - nginx+php+php-mysql(扩展)

docker - nginx+php+php-mysql(扩展)

Docker 安装 Nginx(https://www.runoob.com/docker/docker-install-nginx.html)

Docker 安装 PHP(https://www.runoob.com/docker/docker-install-php.html)

注意:配置nginx.conf文件时

location ~ \.php$ { fastcgi_pass php:9000; //指的是容器名 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; include fastcgi_params; }

docker 中安装PHP扩展(https://blog.csdn.net/bbwangj/article/details/81474915)

可以通过两种方式实现
1.pecl pdo_msql

方式二:
docker-php-ext-install pdo pdo_mysql
如果报 /usr/local/bin/docker-php-ext-enable: cannot create /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini: Directory nonexistent
解决方案:
直接在/usr/local/etc/php目录下面新建 conf.d目录和对应的docker-php-ext-pdo_msql.ini文件
其中docker-php-ext-pdo_msql.ini的内容为:
extension=pdo_mysql.so

docker Nginx PHP-FPM单机多站点布署的方法

docker Nginx PHP-FPM单机多站点布署的方法

网上尝试过各种方法,处理单机中单NGINX容器,单PHP-FPM容器布署多站点,均无法成功。

经过反思总结,目前共实施两种方法成功:

  • 单Nginx,多PHP-FPM
  • 单Nginx,单PHP-FPM

单Nginx,多PHP-FPM

docker-compose.yml

version: ''2''
 
services:
  nginx-1.15.1:
    image: nginx:laster
    ports:
      - "80:80"
    volumes:
      - ./htdocs:/usr/local/nginx/html
      - ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./etc/nginx/conf.d:/etc/nginx/conf.d
      - ./log/nginx:/var/log/nginx
    networks:
      - leoedu-network
  php-fpm-a:
    image: php-fpm:laster
    volumes:
      - ./htdocs/a.com:/var/www/html
    networks:
      - leoedu-network
  php-fpm-b:
    image: php-fpm:laster
    volumes:
      - ./htdocs/b.com:/var/www/html
    networks:
      - leoedu-network
 
networks:
  leoedu-network:
    driver: bridge

nginx配置文件:

server {
  listen    80;
  charset utf-8;
  server_name a.com;
 
  root /usr/local/nginx/html/a.com;
  index index.html index.htm index.php;
 
  error_log /var/log/nginx/a.com-error.log;
  access_log /var/log/nginx/a.com-access.log;
 
 
  location ~ \.php$ {
    fastcgi_pass  php-fpm-a:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include    fastcgi_params;
  }
}

单Nginx,单PHP-FPM

docker-compose.yml

version: ''2''
 
services:
  nginx-1.15.1:
    image: nginx:laster
    ports:
      - "80:80"
    volumes:
      - ./htdocs:/usr/local/nginx/html
      - ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./etc/nginx/conf.d:/etc/nginx/conf.d
      - ./log/nginx:/var/log/nginx
    networks:
      - leoedu-network
  php-fpm-7.2.5:
    image: php-fpm:laster
    volumes:
      - ./htdocs:/var/www/html
    networks:
      - leoedu-network
networks:
  leoedu-network:
    driver: bridge

NGINX配置关键点在于:

astcgi_param SCRIPT_FILENAME /var/www/html/nick.com/$fastcgi_script_name;

具体原因,回头有空补上,此篇纯做记录

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:
  • WordPress中开启多站点支持及Nginx的重写规则配置
  • Nginx 配置多站点vhost 的方法
  • Nginx+Tomcat多站点部署的方法
  • 详解实现Nginx+Tomcat实现单IP、多域名、多站点的访问
  • Nginx 的多站点配置方案
  • Nginx 多站点配置实例详解
  • 详解Nginx配置多站点需要踩的坑
  • 详解阿里云nginx服务器多站点的配置
  • nginx 负载均衡 多站点共享Session
  • nginx 多站点配置方法集合
  • Nginx环境下WordPress的多站点功能配置详解

Docker php-fpm / nginx设置:php-fpm空白500,没有错误日志

Docker php-fpm / nginx设置:php-fpm空白500,没有错误日志

项目的Git回购: https : //github.com/tombusby/docker-laravel-experiments (写作时的HEAD是823fd22)。

这是我的docker-compose.yml:

Nginx: image: Nginx:stable volumes: - ./Nginx.conf:/etc/Nginx/conf.d/default.conf:ro volumes_from: - PHP links: - PHP:PHP ports: - 80:80 PHP: image: PHP:5.6-fpm volumes: - ./src:/var/www/html expose: - 9000

进入src /我创build了一个新的laravel项目。 这一切都正常工作,如果我换了一个基本的echo "hello world"; index.PHP echo "hello world"; 如果我使用echo "called";exit(); 我可以确定laravel的index.PHP部分是否被执行。

它死于第53行:

当我使用命名pipe道作为日志文件并删除并重新创buildpipe道时,Nginx会发生什么?

production.log空的Rails 4 / Capistrano / Passenger / Nginx服务器(数字海洋)

Windows服务正在运行但事件日志无法正常工作

如何通过uwsgi强制应用程序的标准输出日志?

每次按下某个键(不pipe哪个窗口都有焦点),函数callback?

$response = $kernel->handle( $request = IlluminateHttpRequest::capture() );

我不知道为什么会发生这种情况,我已经尝试使用docker exec -it <cid> bash来查看我的PHP-fpm容器中是否有错误日志。 所有日志都被redirect到stderr / stdout(由docker收集)。

以下是Docker收集的输出:

PHP_1 | 172.17.0.3 - 06/May/2016:12:09:34 +0000 "GET /index.PHP" 500 Nginx_1 | 192.168.99.1 - - [06/May/2016:12:09:34 +0000] "GET /index.PHP HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/50.0.2661.94 Safari/537.36" "-"

正如你所看到的,“500”几乎没有什么能帮我弄清楚为什么会出现错误,但是我找不到任何获取堆栈跟踪的方法,或者像apache的PHP扩展所产生的正确的错误日志。

为什么Django向我发送无效的HTTP_HOST头与我的服务器IP?

如何在Linux上loggingcpu,内存和带宽?

如何在Perl中处理来自连续过程pipe道的更新

为AWS服务器(非EC2实例)configurationWindows服务器的CloudWatch日志监视

测量来自Apache访问日志的stream量

根据我们在freenode上的## PHP的讨论…

你的问题是,PHP.ini设置“log_errors”设置为关。

你的选择是:

在PHP.ini中设置log_errors = On

在你的池配置中设置PHP_admin_flag [log_errors] = On(对于基于PHP:5.6-fpm docker容器PHP:5.6-fpm ,位于/usr/local/etc/PHP-fpm.conf文件中)

或者可能在.user.ini中设置log_errors = On(PHP的per-dir配置,类似于.htaccess)

正如我可以看到你的Mac正在运行的请求,Mac上建立的码头环境也? 如果可以的话,通过在PHP-fpm容器上运行bash,试图写入暴露的卷? (容器上的/var/www/html )

Docker 下 安装php7.2-fpm,nginx

Docker 下 安装php7.2-fpm,nginx

假设已经安装docker

安装php-fpm,nginx docker pull php:7.2-fpm docker pull nginx

运行: docker run --name a0e46664f823 -d -v /usr/local/etc/php/7.2/:/Users/kopa/Documents/docker/www/:ro php:7.2-fpm

说明:a0e46664f823 是容器的CONTAINER ID , /usr/local/etc/php/7.2/是本地 php 文件的存储目录,/var/www/html 是容器内 php 文件的存储目录,ro 表示只读

运行:

docker run --name kopa-nginx -p 80:80 -d -v /Users/kopa/Documents/docker/www:/usr/share/nginx/html:ro -v /Users/kopa/Documents/docker/nginx/conf.d:/etc/nginx/conf.d:ro --link php-fpm:php nginx

说明:

-p 80:80 用于添加端口映射,把 php-fpm 中的 80 端口暴露出来。
/Users/kopa/Documents/docker/www 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
/Users/kopa/Documents/docker/nginx/conf.d 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
--link php-fpm:php 把 dream-php 的网络并入 kopa-nginx,并通过修改 kopa-nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。

参考:https://segmentfault.com/a/1190000007056245

我们今天的关于docker nginx+php-fpm+mysql的分享就到这里,谢谢您的阅读,如果想了解更多关于docker - nginx+php+php-mysql(扩展)、docker Nginx PHP-FPM单机多站点布署的方法、Docker php-fpm / nginx设置:php-fpm空白500,没有错误日志、Docker 下 安装php7.2-fpm,nginx的相关信息,可以在本站进行搜索。

本文标签: