Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menggunakan aplikasi php dengan docker

Bagaimana untuk menggunakan aplikasi php dengan docker

藏色散人
藏色散人asal
2022-11-22 10:06:215205semak imbas

Cara untuk menggunakan aplikasi PHP dengan docker: 1. Cipta tapak projek web PHP asas1 dan bungkusnya ke dalam imej 2. Gunakan pelayan web terbina dalam PHP dalam imej untuk menyediakan perkhidmatan luaran; Letakkannya pada mesin hos Pasang direktori projek ke direktori kerja bekas 4. Jalankan php dalam mod fpm.

Bagaimana untuk menggunakan aplikasi php dengan docker

Persekitaran pengendalian tutorial ini: sistem Windows 7, Docker versi 20.10.11, komputer Dell G3.

Bagaimanakah docker menggunakan aplikasi php?

Gunakan docker untuk membungkus dan menggunakan aplikasi PHP

Apabila pembangunan projek selesai secara beransur-ansur, anda perlu bersedia untuk penggunaan kluster berskala besar, persekitaran berulang pemasangan, konfigurasi dan Walaupun kerja memuat naik kod sumber tidak sukar, ia membosankan, membosankan dan tidak cekap Jika versi keluaran projek dibungkus ke dalam imej docker yang sepadan, kita hanya perlu menarik imej, mencipta bekas dan memulakan bekas. pada setiap pelayan aplikasi ( Dengan tiga baris arahan yang sangat mudah, Walle dan Jenkins boleh mengautomasikannya dengan mudah dan sepenuhnya).

Mari kita fikirkan cara untuk membungkus projek php ke dalam imej docker.

Imej php docker yang ringkas

Buat tapak projek web php asas1, pakejkannya ke dalam imej dan gunakan pelayan web terbina dalam php dalam imej untuk menyediakan perkhidmatan luaran.

# 创建项目
mkdir /src/site1 && cd /src/site1
# 写一个简单的 php 页面
vim index.php
<?php
echo "hello docker";
:wq
 
# 编写项目的 Dockerfile
vim Dockerfile
# 拉取 php-cli 镜像
FROM php:7.2-cli
# copy 项目源文件到镜像
COPY . /apps/site1
# 切换 pwd
WORKDIR /apps/site1
# 执行启动命令 使用 php 内置 web 服务器
CMD ["php", "-S 0.0.0.0:80", "-t ./"]
:wq
 
# 使用 Dockerfile 创建镜像 site1 版本号为 1.0.0
docker build -t php-site1:1.0.0 .
 
# 查看镜像
docker images
 
# 创建容器
docker run -it -d \
-p 8081:80 \
--name php_site1_1.0.0 \
php-site1:1.0.0
 
# 查看活动的容器
docker ps
 
# 访问 php 应用
curl -X GET http://localhost:8081/index.php

Pemasangan lanjutan

Imej php docker menggunakan debian sebagai sistem secara lalai dan kita boleh menggunakan imej alpine yang lebih padat. Seterusnya kami memasang sambungan swoole/redis (sambungan lain yang biasa digunakan, imej php rasmi telah dipasang).

vim server.php

<?php
$httpServer = new Swoole\Http\Server("0.0.0.0", 80);
 
$httpServer->set([
    &#39;worker_num&#39;  => 1,
]);
 
$httpServer->on("start", function ($server) {
    echo "Swoole http server is started at http://0.0.0.0:80" . PHP_EOL;
});
 
$httpServer->on("request", function ($request, $response) {
    // 模拟业务耗时 体验下 swoole 的协程并发
    Swoole\Coroutine::sleep(2);
 
    $response->header("Content-Type", "text/plain");
    $response->end("Hello World");
});
 
$httpServer->start();
vim Dockerfile
 
FROM php:7.2-cli-alpine
# 更新下 apk 的源
RUN sed -i &#39;s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g&#39; /etc/apk/repositories
RUN apk update && apk upgrade
RUN apk add m4 make autoconf gcc g++ linux-headers pcre
RUN pecl install swoole \
    && pecl install redis
RUN docker-php-ext-enable swoole \
    && docker-php-ext-enable redis
COPY . /apps/site2
WORKDIR /apps/site2
ENTRYPOINT ["php", "server.php"]

Imej pakej

docker build -t php-site2:1.0.0 .
docker images

Buat bekas

# 创建容器
docker run -it -d \
-p 8082:80
--name php_site2_1.0.0
php-site2:1.0.0
 
# 查看容器
docker ps
 
# 并发压测 swoole 的协程模式可实现EventLoop异步非阻塞IO
ab -c 100 -n 1000 http://localhost:8081/

Jika anda ingin memetakan projek pada hos , anda boleh

docker run -it -d \
-p 80:80
-v $PWD:/apps/site2
--name php_site2_1.0.0
php-site2:1.0.0

untuk melekapkan direktori projek pada hos ke direktori kerja bekas, yang bersamaan dengan menggunakan bekas sebagai persekitaran masa jalan.

php:7.2-apache
php:{PHP_VERSION}-apache,以 Apache + MOD_PHP 模式运行容器。

docker run -it -d \
--name php-mod-alpine \
-p 8083:80 \
-v $PWD:/var/www/html
php:7.2-apache

vim index.php

<?php
echo "hello docker";
:wq
 
curl -X GET http://localhost:8083/index.php
php:7.2-fpm-apline
php:{PHP_VERSION}-fpm

php:{PHP_VERSION}-fpm-apline

Untuk php berjalan dalam mod fpm, anda boleh memilih OS apline

docker run -it -d \
--name php-fpm-alpine \
-p 9000:9000 \
php:7.2-fpm-apline

Disyorkan pembelajaran :《tutorial video PHP

Atas ialah kandungan terperinci Bagaimana untuk menggunakan aplikasi php dengan docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn