`
xieye
  • 浏览: 835621 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

用docker搭建php开发环境

阅读更多
今天是2018.06.19

docker搭建php系列文章
用docker搭建php开发环境
用docker搭建php开发环境(2)
用docker搭建php开发环境(3)

本文主要参考了:
https://www.goozp.com/article/77.html
原作者:
咖灰怪’s Blog

总体来说,利用docker安装php环境分为两步。
1.安装docker。
2、安装docker下的php开发环境。

中间的坑有无数。

1、安装docker

官方的文档其实已经非常详细了。
我在附件中也直接提供。

我的电脑是win7,需要使用虚拟机,官方的安装包里全都有。

安装程序名为 DockerToolbox.exe(https://docs.docker.com/toolbox/toolbox_install_windows/,这个是网址,点击页面的 get docker toolbox for windows这个大按钮,即可下载。)
基本按照默认即可(记住你的安装程序路径),为了防雷,需要先删除本机已经装好的git,和虚拟机。

安装完毕,生成三个快捷方式,打开Docker Quickstart Terminal,

初始化,初始化也是个大难点。
点击Docker Quickstart Terminal图标开始初始化,会有一个cmd窗口出现。

注意点:
注意点 1、boot2docker.iso文件总会自动远程下载,,最佳策略,中止安装,把安装程序路径下的boot2docker.iso拷贝到C:\Users\<UserName>\.docker\machine\cache中(总之,这个应该拷贝的目的地是可以通过cmd窗口看到的路径),然后把网线拔了,然后再次初始化动作。

额外说明,其实如果想要最新的iso也行,方法是:
https://api.github.com/repos/boot2docker/boot2docker/releases/latest
根据上面这个网址,找到html_url字段,然后用迅雷下载。


注意点 2、虚拟化设置
有可能需要改笔记本或者台式机的bios设置。
进去BIOS (惠普的电脑开机的时候 长按ESC进入BIOS)设置 Virtualization为enable。

这一步不同的机子不一样,只要进去了BIOS自己找这个设置在哪里。


假定你已经安装成功了,就能看到大鲸鱼。
执行命令
docker --version
可以看到你安装的docker的版本。我的是 18.03


2、安装php
如前所述。是参考了他人的文章,
(1)安装前的配置
1、配置虚拟机的80和windows宿主机的80端口相连。
双击虚拟机图标。
菜单设置 - 网络 - 网卡1 - 连接方式 NAT - 端口转发 - 右边添加按钮,名称自己起,协议tcp,主机ip127.0.0.1,主机端口80,子系统端口80

注意这里,主机指windows宿主机,子系统指虚拟机。

2、配置虚拟机的一个目录和windows宿主机的一个目录相连。
共享文件夹这么设置。
首先本地D:\ lenovo_d \ docker_study ,建立这个文件夹。
然后
虚拟机菜单 - 设置 - 共享文件夹 - 固定分配 - 添加按钮 - 名称 docker_study 路径,就是上面的本地路径。自动挂载是,访问权限,完全。

然后呢,自己测试一下,看在window宿主机的d盘目录下建立文件,是否在虚拟机里能看到这个文件。

可能需要重启虚拟机。


3、使用putty连接docker。
为了更象在linux里使用docker,我使用了putty这个工具。
网上可以下载到,解压后即可使用。
下载地址:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
随便zip也行,或者msi也行。32也行,64也行,都能用。

ip
127.0.0.1
端口:
打开虚拟机图标,查看设置-网络- 端口转发 - ssh的主机端口。
账号填写docker,密码是tcuser。

点击login即可登陆虚拟机里的docker。
下文说的docker里,就是指打开putty登陆后的窗口。

4、不是必须步骤,仅供参考。
现在,如果想要虚拟机的文件放在非c盘。
转移docker文件到D盘。
为避免c盘越来越大,可以转移虚拟机镜像到D盘。
首先,在资源管理器里面给D盘加目录D:\docker_machine,然后把C盘下面目录的machine这个目录剪切到D:\docker_machine下,
然后,在cmd命令行
mklink /J C:\Users\Administrator\.docker\machine  D:\docker_machine\machine

这样,C盘那个目录就只是链接而已,不占用硬盘空间。


(2)安装docker-compose
这个东东,是相当于docker的强化命令。因为,docker下,通常会同时运行几个容器,例如对于php,来说,有php-fpm,nginx,mysql,redis这个地球人都知道的四大必备工具。

docker下,执行命令
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

sudo chmod +x  /usr/local/bin/docker-compose



(3)php开发环境
本机,docker_study目录下建立 D:\lenovo_d\docker_study\zphal 目录
然后下载https://github.com/ZpGuo/zPhal-dockerfiles
点击下载zip文件,下载后,解压,再放到zphal目录下。

进入docker,
cd zphal/files

wget https://pecl.php.net/get/redis-3.1.6.tgz -O php/pkg/redis.tgz

然后,自己下载php自己的composer,版本1.6.5,需自己番 qiang,或者从我这篇文章的附件获取。文件名是composer.phar.拷贝到和redis.tgz一样的目录。


修改 D:\lenovo_d\docker_study\zphal\files\php\Dockerfile
把下面的话删除掉。
# Install Phalcon extensions
RUN cd /home \
    && tar -zxvf cphalcon.tar.gz \
    && mv cphalcon-* phalcon \
    && cd phalcon/build \
    && ./install \
    && echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/phalcon.ini


把下面的话删除掉。
COPY ./pkg/cphalcon.tar.gz /home/cphalcon.tar.gz


把下面的话删除掉。
rm rm -f /home/cphalcon.tar.gz 


然后再加上composer的配置,完整版如下:
FROM php:7.2-fpm
MAINTAINER goozp "gzp@goozp.com"

# set timezome
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# Install package and PHP Core extensions
RUN apt-get update && apt-get install -y \
        git \
        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 -j$(nproc) gd \
        && docker-php-ext-install zip \
        && docker-php-ext-install pdo_mysql \
        && docker-php-ext-install opcache \
        && docker-php-ext-install mysqli \
        && rm -r /var/lib/apt/lists/*

# Copy extensions had downloaded
COPY ./pkg/redis.tgz /home/redis.tgz
COPY ./pkg/composer.phar /usr/local/bin/composer

# Install PECL extensions (Redis)
RUN pecl install /home/redis.tgz && echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini


# Install Composer
ENV COMPOSER_HOME /root/composer
# RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
ENV PATH $COMPOSER_HOME/vendor/bin:$PATH

RUN chmod a+x /usr/local/bin/composer
RUN rm -f /home/redis.tgz  

WORKDIR /data

# Write Permission
RUN usermod -u 1000 www-data




然后,在
D:\lenovo_d\docker_study\zphal\app 目录下建立一个index.php
内容是
<?php
phpinfo();


准备工作已经差不多了。

但是还需要修改国内仓库地址
sudo vi /var/lib/boot2docker/profile

在--label provider=virtualbox的下一行添加:
--registry-mirror=https://registry.docker-cn.com
3.重启docker

需要先执行
docker-compose build这个命令。

最后执行
docker-compose up -d


此时,容器都已正常启动。


最后,在宿主机打开浏览器
http://localhost/index.php

如果一切顺利(基本是不可能的),就会出现php的页面啦。

关闭容器,使用
docker-compose down这个命令。



0
0
分享到:
评论

相关推荐

    Docker创建php开发环境遇到的权限问题解决方案.docx

    本文主要解决的是在使用 Docker 搭建 PHP 开发环境时遇到的权限问题。具体表现为:当我们将宿主机上的代码目录挂载到 Docker 容器中时,由于宿主机与容器内的文件系统用户权限不同,导致容器内的 PHP 应用无法正常...

    docker 快速搭建php环境 docker包,一键启动开发环境

    docker 快速搭建php环境 docker包,一键启动开发环境,docker 快速搭建php环境 docker包,一键启动开发环境

    docker-compose快速搭建lnmp开发环境

    快速的搭建一个php开发环境,镜像包括php,mysql,nginx,适合php的开发者

    docker搭建适合thinkphp5的lnmp+redis开发环境

    docker搭建适合thinkphp5的lnmp+redis开发环境,nginx版本为最新版本 php版本为7.3 mysql版本为5.7 需要先安装了composer 和docker环境 在html目录下面执行composer update下载第三方开发包 之后执行docker-compose ...

    Docker的完整PHP开发环境。-PHP开发

    基于Docker的完整PHP开发环境。 支持各种通用服务,所有这些都预先配置为提供完整PHP开发环境。 首先使用Docker-然后再了解它! 基于Docker的完整PHP开发环境。 支持各种通用服务,所有这些都预先配置为提供完整PHP...

    Ubuntu下搭建PHP开发环境

    在Ubuntu操作系统上搭建PHP开发环境是一项常见的任务,尤其对于开发者来说,这有助于创建和测试基于PHP的Web应用程序。本文将详细介绍如何在Ubuntu上配置Apache服务器、安装MySQL数据库、添加PHP支持以及部署...

    docker搭建适合thinkphp6的lnmp+redis开发环境

    docker搭建适合thinkphp6的lnmp+redis开发环境,nginx版本为最新版本 php版本为7.3 mysql版本为5.7 redis版本为5.0,thinkphp6的代码放到html目录下面 执行docker-compose up -d ,启动容器

    docker-compose搭建php7.4(swoole+swoole-loader+dg)+mysql5.7环境

    本教程将详细解释如何使用docker-compose搭建一个包含PHP 7.4(集成Swoole和Swoole Loader扩展)以及MySQL 5.7的开发环境。 首先,让我们了解Docker。Docker是一种开源的应用容器引擎,它允许开发者打包他们的应用...

    使用 Docker 搭建 Laravel 本地环境的教程详解

    Homestead 是一个官方预封装的 Vagrant Box,也就是一个虚拟机,但是跟 docker 比,它占用体积太大,启动速度慢,同时响应速度很慢,现在有了 docker 这种更好的方式,可以轻松方便的搭建整套 PHP 开发环境。...

    docker下一键自动部署PHP环境

    docker下 搭建 PHP+mysql+redis+nginx 开发环境, 并实现一键自动化部署,保证了在各个平台上的一致性,既方便又高效。

    LAMP环境安装 linux + apache + mysql + php

    本文详细介绍了如何在Linux环境下搭建LAMP环境,包括卸载旧版本、系统环境部署及调整、安装所需开发包以及具体组件的安装过程。遵循以上步骤,您可以成功地在自己的Linux系统上搭建起一套完整的LAMP环境,从而支持...

    保姆级docker搭建php7.4(redis+swoole+swoole-loader+dg)服务

    【标题】中的“保姆级docker搭建php7.4(redis+swoole+swoole-loader+dg)服务”是指通过Docker容器技术,详细指导如何构建一个包含PHP 7.4、Redis、Swoole以及Swoole Loader和Docker Compose配置的服务器环境。...

Global site tag (gtag.js) - Google Analytics