用docker搭建php开发环境 _PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > 用docker搭建php开发环境

用docker搭建php开发环境

 2019/1/8 15:38:58  xieye  程序员俱乐部  我要评论(0)
  • 摘要:今天是2018.06.19docker搭建php系列文章用docker搭建php开发环境用docker搭建php开发环境(2)用docker搭建php开发环境(3)本文主要参考了:https://www.goozp.com/article/77.html原作者:咖灰怪’sBlog总体来说,利用docker安装php环境分为两步。1.安装docker。2、安装docker下的php开发环境。中间的坑有无数。1、安装docker官方的文档其实已经非常详细了。我在附件中也直接提供。我的电脑是win7
  • 标签:
今天是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下,执行命令
class="java" name="code">
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这个命令。



  • docker_practice.zip (5 MB)
  • 下载次数: 3
  • composer.zip (444 KB)
  • 下载次数: 1
  • 相关文章
发表评论
用户名: 匿名