本文操作环境:macos10.15系统,php5.6版,macbook pro 2020电脑。
docker怎么安装php项目?
使用docker快速搭建php开发环境
最近有个同事找过来,希望我对在很早之前写的一个php网站上增加一些功能,当时开发使用xampp构建的本地开发环境,但是现在我的笔记本电脑已经更新,没有当时的开发环境。本着尽量不往电脑上装无用软件的原则,想到能不能用docker来构建本地开发环境,因此本文介绍了如何基于docker来快速构建本地php开发环境,供有需要的同学参考使用。
目录
前期准备编排文件运行效果安装扩展参考资料本文基于 5.6-fpm-alpine3.8 以及 ngingx 搭建mac 下的php开发环境。
前期准备首先下载所需要的镜像文件
$ docker pull php:5.6-fpm-alpine3.8$ docker pull nginx$ docker pull mysql
用户需要到hub.docker.com,搜索php并通过tags找到自己希望安装的版本,我的项目因为开发时间比较久了,不能够支持最新的php,所以安装的是5.6版本。
我们需要准备一个工作目录,例如lnmp,在工作目录下准备网站根目录、nginx配置文件目录、nginx日志目录。
$ mkdir lnmp$ cd lnmp$ mkdir -p nginx/www nginx/logs nginx/conf
在新建的 www 目录中新建 index.php 文件,用来检测 php 环境是否搭建成功。
<?php phpinfo();?>
在nginx/conf目录下准备nginx的配置文件php.conf。
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param script_filename /www/$fastcgi_script_name; include fastcgi_params; }}
编排文件在工作目录下创建docker-compose.yml编排文件。
关于docker-compose的详细介绍可以参考我之前的文章docker-compose 使用介绍。
version: 2.1services: nginx: image: nginx ports: - 80:80 volumes: - ~/projects/sh-valley/docker-conf/lnmp/nginx/www:/usr/share/nginx/html - ~/projects/sh-valley/docker-conf/lnmp/nginx/conf:/etc/nginx/conf.d - ~/projects/sh-valley/docker-conf/lnmp/nginx/logs:/var/log/nginx networks: - lnmp-network php: image: php:5.6-fpm-alpine3.8 volumes: - ~/projects/sh-valley/docker-conf/lnmp/nginx/www:/www networks: - lnmp-network mysql: image: mysql ports: - 3306:3306 environment: - mysql_root_password=123456 networks: - lnmp-networknetworks: lnmp-network:
至此,我们完成了所有的准备工作,马上可以启动查看效果。
运行效果$ docker-compose up -dcreating network lnmp_php-network with the default drivercreating lnmp_nginx_1 ... donecreating lnmp_php_1 ... done
马上就能看到熟悉的phpinfo界面了。
安装扩展默认php镜像中提供的扩展比较少,缺少诸如mysql、gd2等常用的扩展,这样我们就需要自己安装并启用扩展。
首先进入到php容器,用php -m命令查看本地有什么扩展。
可以使用docker-php-ext-install命令来安装扩展。
$ docker-php-ext-install mysql
扩展安装好之后就可以在php.ini中启用。我们从phpinfo中可以看到,容器环境下默认的php.ini没有启用,可以从/usr/local/etc/php下将php.ini-development拷贝为php.ini。通过修改php.ini中配置,启用自己需要的扩展。下面是几个扩展安装的命令,供大家参考。
docker-php-ext-source 在容器中创建一个/usr/src/php目录docker-php-ext-enable启用php扩展,省去我们手工编辑php.ini的过程docker-php-ext-install安装并启用php扩展docker-php-ext-configure经常与docker-php-ext-install搭配,在需要自定义扩展的配置时使用推荐学习:《php视频教程》
以上就是docker怎么安装php项目的详细内容。
