陈奇网络工作室

docker如何安装php-fpm服务/扩展/配置

服务器

本文主要介绍了docker如何安装php-fpm服务器/扩展/配置。 内容简单易懂,请学习一下。 学习结束后一定会有收获。 以下,让编辑一起看看吧。

在mac上用brew安装php56时,由于openssl是1.1版,出现了各种谷歌无法处理的错误,非常辛苦。 现在,我们使用docker创建php56-fpm服务容器,nginx直接连接到主机。

PHP文档中心主页

创建容器

#创建容器

文档运行- d\\ \

--name php56-fpm \\\\

-p 9056:9000 \\\\& quot;

-v /home/wwwroot:/var/www/html

--privileged=true

php:5.6-fpm

注意:

/var/www/html是php docker镜像的工作目录。

-v /home/wwwroot:/var/www/html的作用是将宿主机的站点目录装载到容器中。 例如,如果是/home/wwwroot/siteA,则容器中的访问位置为/var/www/html/siteA。

当nignx转发php请求时,已执行的脚本名称SCRIPT_NAME和脚本文件名SCRIPT_FILENAME将被转发给fpm,fpm将去读取脚本的执行。

使用fpm容器时,必须注意nginx传输的SCRIPT_FILENAME是否为fpm容器中的有效站点路径。 如果nginx的根无法直接映射到fpm容器的站点根,则必须在php location中将其重新定义为fpm容器的站点根。 现在,fpm可以正确读取脚本。

也就是说,将主机上的/home/wwwroot/sitea/public/index.PHP转换为/var/www/html/sitea/public/index.PHP以获取fpm 否则,将向文件not found报告

因此,在nginx上配置服务器时,请注意以下卷路径转换:

服务器{

listen 8056

.

#宿主机的站点根目录

root /home/wwwroot/siteA/public;

location至* ( ^ [/] *.PHP ) [/|$] {

#容器中的站点根目录

root /var/www/html/siteA/public;

pass_proxy: 127.0.0.1:9056;

include fastcgi.conf;

}

}

但是,这没有问题,因为一般大家都是docker nginx docker php-fpm,两个容器都统一映射了站点目录。 当nginx首次直接安装在主机上并传输php请求时,此处的nginx需要重新定义站点的根目录。

登记容器

#检查容器是否正在运行

文档PS

#登记容器

docker exec-it PHP 56-fpm/bin/bash

php的docker镜像基于ubuntu,可以使用apt-get安装所需的工具,如vim/vi lrzsz net-tools。

在使用apt-get安装工具之前,必须在update中更新源代码

#否则为apt-get E: Unable to locate package

获取更新

apt-get安装vim

安装php/pecl扩展

安装php扩展

也就是说,php官方扩展,例如shomp这样的具有但默认不开启的扩展。

#确认附带了这些扩展功能

cd /usr/local/php/ext ls -l

#安装扩展功能

dcoker-php-ext-install shmop

安装pecl扩展

需要注意的是,由于容器安装了pecl,因此只需直接用pecl安装即可,并扩展了对php版本的支持。

docker-php-ext-enable的主要用途是生成扩展配置文件和向/usr/local/etc/PHP/conf.d/docker-PHP-ext-{ extname }.ini

# igbinary php5.6的最高版本为2.0.8

pecl install igbinary-2.0.8

docker-php-ext-enable igbinary

# phpRedis php5.6的最高版本为4.3.0

pecl install redis-4.3.0

docker-php-ext-enable redis

# swoole php5.6的最高版本为2.0.11

pcel install swoole-2.0.11

docker-php-ext-enable swoole

php/php-fpm配置

/usr/local/etc是php容器的配置目录,包含php和php-fpm配置文件。 配置目录的结构如下:

root @ aa 739592 b 579:/usr/local # tree etc /

etc/

|-- pear.conf

|-- php # php配置目录

| |-- conf.d # php扩展配置

| | |-- docker-php-ext-shmop.ini

| |-- php.ini # cp上的php.ini-development/production

| |-- php.ini-development

| |-- php.ini-production

|-- php-fpm.conf # php-fpm配置附带的主要是php-fpm.d的部署

|-- PHP-fpm.conf.default # PHP-fpm配置主体与php-fpm.d/www.conf一致

|-- php-fpm.d # php-fpm的扩展配置

|-- docker.conf

|-- www.conf # php-fpm配置主体模式或max/min children在这里

|-- zz-docker.conf

您可以将主机的配置目录映射到容器的/usr/local/etc,但请注意,主机的配置目录与容器的现有配置目录匹配,或者直接在容器中编辑配置文件。 根据docker的理念,为了发挥docker容器的可复用性,必须在主机上将配置文件映射到容器的配置目录。

将宿主机的php配置文件映射到容器

- v/opt/docker/conf/PHP/PHP.ini:/usr/local/etc/PHP/PHP.ini

- v/opt/docker/conf/PHP/PHP-fpm.ini:/usr/local/etc/PHP-fpm.d/www/conf

常见问题

1、文件不基础

无法将在nginx上指定的站点根目录直接映射到fpm容器。 在location中重新指定fpm容器的站点根目录。

2、apt-get E: Unable to locate package

只需运行apt-get update来刷新源代码即可。

3、容器承诺

工作目录:/var/www/html建议您将宿主机的站点目录映射到此目录

配置目录:/usr/local/etc注意配置目录结构

php扩展目录:用于查看/usr/local/PHP/extPHP附带的扩展包。 使用docker-php-ext-install安装很简单

以上是关于docker如何安装php-fpm服务/扩展/配置的内容。 如果你掌握了知识和技能,你就可以分享它并向更多的人展示。

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3