首頁 >後端開發 >php教程 >PHP本機開發環境docker安裝

PHP本機開發環境docker安裝

不言
不言原創
2018-05-09 10:14:394570瀏覽

這篇文章主要介紹了關於PHP本機開發環境docker安裝,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

docker php 本機開發環境

魯迅:不想打產品的程式設計師,不是好銷售

前言

很多人在配置docker的時候,會因為不了解他裡面的目錄結構,配置問題,從而會導致很多不明白的地方。

但是,小伙子,你看這篇文章,你就看對了。我會用「短小精悍」的語言快速的帶你入docker 坑。可能文章裡面,寫的有什麼跟你的價值觀不對的地方,請用你的小拳拳砸你的ctrl F4 。我是一個經不起罵的人,如果你罵我  (我會給你機會罵我?先打死再說)(手動滑稽)。

強烈建議 csdn 加入emoji表情。

mysql安裝正文

mysql 安裝相對來說簡單很多

[root@test app]#  docker pull mysql:5.7
[root@test app]#   docker run - -name mysql_server -p 3308:3308 -e MYSQL\_ROOT\_PASSWORD=123456 -d mysql:5.7
命令解释 

# -e 内置环境变量 这里是给ROOT 帐号设置密码
没了。

但是,我們安裝需要先安裝mysql 再安裝php  因為容器之間,需要–link 來讓兩個容器之間有互動通訊。否則。嘿嘿,你懂的。 php 裡面連不了mysql  。命令解釋,下文全部會有。 。

php安裝正文

1.準備工作

因為題主的電腦是ubuntu 系統,所以該篇的一些命令,統一為ubuntu 除了安裝之外,貌似也沒啥不相容其他系統的了。
docker安裝,
windows安裝
linux
mac

1、docker環境
2、php:7.2.4-fpm映像(這個要針對你專案的環境)官方鏡像
3、MySql  官方鏡像(看你自己心情裝不裝)

(滑稽) 有些讀者可能會問,為什麼不要nginx|apache ,因為簡化你的操作。讓你更快的入門安裝,還有就是讓你更快的寫入程式碼。

當你下載好了docker ,開啟docker

PHP本機開發環境docker安裝
當docker開啟後,docker version列印Server訊息,沒有開啟則不列印。
請開啟docker

2.開始

1、[root@test app]# docker pull php:7.2.5-fpm              #docker pull 镜像,从docker镜像中拉取某个镜像 
2、[root@test app]# docker images                          #docker 当前所有的镜像名字 imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/php       7.2.5-fpm           e6970efc6d34        3 days ago          367 MB
3、[root@test app]# docker run -d -p 8080:8080 --link mysql_server:mysql_server -v ~/app:/app -w /app php:7.2.5-fpm php -S 0.0.0.0:8080 -t /app 
命令解释
# -d 后台默认启动
# -p 映射端口8080 映射到本机8080  使用方式 本地端口:容器端口
# -v 挂在目录 ~/app 挂载到容器里面 /app目录 
# -w 工作目录 /app目录 相当于cd (在这里,我们可以不用)
# --link  连接容器    容器名:内部使用的名字  
# php:7.2.5-fpm 镜像名
# php -S 0.0.0.0:8080 -t /app  php自带cli Server  用这个可以免除nginx|apache 安装,指定端口为8080 。
4、[root@test app]# docker ps   #查看正在运行的容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
9354f9338e29        php:7.2.5-fpm       "docker-php-entryp..."   4 minutes ago       Up 4 minutes        0.0.0.0:8080->8080/tcp, 9000/tcp   naughty_fermi

这里我们可以看出,NAMES 下是容器名,当我们没有指定的时候,docker 会自动创建一个容器名。
PORTS 端口,0.0.0.0:8080->8080/tcp 本机8080 映射到容器8080

3.測試:

我們在app目錄下新建一個index.php

<?php 
phpinfo();

打開127.0.0.1:8080 即可看到我們熟悉的phpinfo

4.安裝擴充功能

如果不需要安裝擴展,請看注意! ! !

這裡我們講解2種方式安裝拓展

1.進入容器裡面安裝擴充功能

一、查看docker容器名稱

[root@test app]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
9354f9338e29        php:7.2.5-fpm       "docker-php-entryp..."   31 minutes ago      Up 31 minutes       0.0.0.0:8080->8080/tcp, 9000/tcp   naughty_fermi

我們在這裡看到了docker 名字為naughty_fermi
二、進入容器

1.进入容器
[root@test app]# docker exec -i -t naughty_fermi /bin/bash
root@9354f9338e29:/app# 
#这样子,看到我们就进入了正在运行的容器命令解释
# docker exec  进入正在使用的容器
# -i :即使没有附加也保持STDIN 打开 一般和-t合作使用
# -t :分配一个伪终端  一般和-i 合作使用  
# /bin/bash 打开交互式终端终端
2. [root@test app]# docker- 按两下tab 可以看到
docker-php-entrypoint     docker-php-ext-configure  docker-php-ext-enable     docker-php-ext-install    docker-php-source 

#docker 根据一些常用库 已经给我们写好了一些脚本 docker -php  github 地址[github]( 
3.安装扩展 
举例:sockets 
[root@test app]#  docker-php-ext-install sockets 
静静等待他编译安装
[root@test app]# php -m  # 就能够看到sockets库了。
4.退出容器 
退出容器的方法有点特殊,需要ctrl+p  再crtl + q 这样,才能在后台继续挂起

root@9354f9338e29:/app# [root@test app]# 
[root@test app]# 
4.我们需要重启一下我们cli server 
[root@test app]# ps -ef | grep php 
root     11840 11808  0 17:04 ?        00:00:00 php -S 0.0.0.0:8080 -t /app
root     14923  9900  0 17:54 pts/1    00:00:00 grep --color=auto php

找到我们的 php cli-server pid 为11840 docker 里面的这些进程,是在本机里面能够看到的。这里是解释 [解释](http://dockone.io/question/529)
我们回到了我们的本机上。
[root@test app]# kill -9 11840  # 杀死我们的进程
因为我们杀死了我们的进程,所以 php 也会自动关闭

我们从新开启这个 容器 

比如 上面可以看到 我们NAMES 为 naughty_fermi
[root@test app]# docker start naughty_fermi 这样就开启了这个扩展

這樣我們的擴充就已經安裝好了

注意:有一些擴充功能是需要一些依賴的,在我們安裝一些拓展,前面或許需要一部分依賴。 php程式碼裡面連接,mysql host 就不能用127.0.0.1 或是localhost 了。把連結換成 mysql_server    mysql 的容器名字。

2.外部安裝拓展

1. [root@test app]
#  docker exec -d naughty_fermi docker-php-ext-install opcache#这里我们用opcache 为例
docker exec 不用解释了吧。上面有
# -d 后台默认
# 容器名 后面是在容器里面运行的 命令
2.重复内部安装的 4操作 就可以了cli-server 和php-fpm 类似,每次新增扩展 都需要重新启动一下。

當我們第一次設定好了之後,後面就需要docker start 容器名稱來開啟,這裡來講解幾個指令

1、docker start 容器名稱開啟容器
2、docker stop 容器名稱停止容器
3、docker kill   容器名稱殺死容器

在docker run 裡面可以指定- -name 容器名字來為容器取名字例如

docker run -d -p 8080:8080 - -name php_server  -v ~/app:/app -w /app php:7.2.5-fpm php -S 0.0. 0.0:8080 -t /app  
這樣,我們容器名字 就可以自己定義了

其他的,有什麼問題,寄email給我吧。我的郵件是

uyy2244@gmail.com

記得請詳細說明問題哦。否則 不予理睬。 。

謹記:此文章只適用於本機開發環境。

以上就是本篇文章的全部內容了,更多相關內容請關注PHP中文網。

相關推薦:

php本地開發環境搭建最好用的6個開發環境推薦


以上是PHP本機開發環境docker安裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn