首頁 >後端開發 >PHP問題 >docker怎麼安裝php項目

docker怎麼安裝php項目

藏色散人
藏色散人原創
2021-12-21 10:27:494580瀏覽

docker安裝php專案的方法:1、下載所需的映像檔;2、在nginx/conf目錄下準備nginx的設定檔php.conf;3、建立docker-compose.yml編排檔案; 4、安裝擴充功能即可。

docker怎麼安裝php項目

本文操作環境: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影片教學

以上是docker怎麼安裝php項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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