微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

docker怎么安装php项目

docker安装PHP项目的方法:1、下载所需要的镜像文件;2、在Nginx/conf目录下准备Nginx配置文件PHP.conf;3、创建docker-compose.yml编排文件;4、安装扩展即可。

本文操作环境: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.1
services:
    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-network
networks: 
    lnmp-network:

至此,我们完成了所有的准备工作,马上可以启动查看效果

运行效果

$ docker-compose up -d
Creating network lnmp_PHP-network with the default driver
Creating lnmp_Nginx_1 ... done
Creating 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教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐