Docker php安裝擴(kuò)展步驟詳解

這篇主要介紹Docker的PHP容器中自帶的幾個(gè)特殊命令來(lái)安裝擴(kuò)展。

  • docker-php-source
  • docker-php-ext-install
  • docker-php-ext-enable
  • docker-php-ext-configure

以上命令需要在容器內(nèi)運(yùn)行,也可以在Dockerfile中的RUN命令中進(jìn)行使用。

docker-php-sourec 初始化php源碼目錄

初始化源碼目錄

docker-php-source extract 

運(yùn)行上面命令后,會(huì)在/usr/src目錄下生成一個(gè)php源碼目錄

案例:

### 運(yùn)行docker-php-source前的目錄結(jié)構(gòu)
root@dec18099fa25:~# cd /usr/src/
root@dec18099fa25:/usr/src# ls -l 
total 12184
-rw-r--r-- 1 root root 12472236 Jan 10  2019 php.tar.xz
-rw-r--r-- 1 root root      455 Jan 10  2019 php.tar.xz.asc

### 執(zhí)行命令
root@dec18099fa25:/usr/src# docker-php-source extract

### 執(zhí)行后的目錄結(jié)構(gòu)
root@dec18099fa25:/usr/src# ls -l
total 12188
drwxr-xr-x 14 root root     4096 Jan  8 12:07 php   # <--就多了這個(gè)源碼目錄
-rw-r--r--  1 root root 12472236 Jan 10  2019 php.tar.xz
-rw-r--r--  1 root root      455 Jan 10  2019 php.tar.xz.asc

清除源碼目錄

docker-php-source delete 

可以在安裝好擴(kuò)展之后運(yùn)行,可以釋放磁盤(pán)空間。

docker-php-ext-enable 啟用擴(kuò)展

這個(gè)命令是用來(lái)啟用PHP擴(kuò)展的。我們使用pecl安裝PHP擴(kuò)展的時(shí)候,默認(rèn)是沒(méi)有啟用這個(gè)擴(kuò)展的,如果想要使用這個(gè)擴(kuò)展必須要在php.ini這個(gè)配置文件中去配置一下才能使用這個(gè)PHP擴(kuò)展。而 docker-php-ext-enable 這個(gè)命令則是自動(dòng)給我們來(lái)啟動(dòng)PHP擴(kuò)展的,不需要你去php.ini這個(gè)配置文件中去配置。

### 啟用redis擴(kuò)展
root@dec18099fa25:/usr/src# docker-php-ext-enable redis

docker-php-ext-install 安裝并啟用擴(kuò)展

docker-php-ext-install "源碼包目錄名"

注意事項(xiàng):

  • “源碼包”需要放在/usr/src/php/ext目錄下;
  • 默認(rèn)情況下無(wú)/usr/src/php這個(gè)目錄,需要先運(yùn)行docker-php-source extract生成;
  • docker-php-ext-install安裝的擴(kuò)展,會(huì)自動(dòng)調(diào)用docker-php-ext-enable來(lái)啟用擴(kuò)展;
  • 卸載擴(kuò)展,直接刪除/usr/local/etc/php/conf.d對(duì)應(yīng)的配置文件即可。

案例:

### 下載redis擴(kuò)展源碼
root@dec18099fa25:/tmp# curl -L -o ./redis-4.3.0.tgz https://pecl.php.net/get/redis-4.3.0.tgz

### 解壓源碼 
root@dec18099fa25:/tmp# tar xvf redis-4.3.0.tgz

### 將源碼包移至/usr/src/php/ext/,并命名為phpredis
root@dec18099fa25:/tmp# mv redis-4.3.0 /usr/src/php/ext/phpredis

### 安裝phpredis目錄中的擴(kuò)展
root@dec18099fa25:/tmp# docker-php-ext-install phpredis

### 檢查redis擴(kuò)展是否已經(jīng)安裝成功
root@dec18099fa25:/tmp# php -m

docker-php-ext-configure 為擴(kuò)展設(shè)置自定義configure參數(shù)

例如安裝gd圖像擴(kuò)展,Dockerfile如下所示:

FROM php:7.4-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容