如果您对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+php-mysql(扩展)
- docker Nginx PHP-FPM单机多站点布署的方法
- Docker php-fpm / nginx设置:php-fpm空白500,没有错误日志
- Docker 下 安装php7.2-fpm,nginx
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(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单机多站点布署的方法
网上尝试过各种方法,处理单机中单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,没有错误日志
项目的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
安装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的相关信息,可以在本站进行搜索。
本文标签: