日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

docker中lnmp访问php页面,Docker下部署LNMP工作环境的教程(详细步骤)

發布時間:2024/9/19 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker中lnmp访问php页面,Docker下部署LNMP工作环境的教程(详细步骤) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章給大家帶來的內容是關于Docker下部署LNMP工作環境的教程(詳細步驟),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

普通PC環境也可以用以下配置,只是MYSQL那里換回mysql官方版本就可以。

Docker 安裝$ curl -sSL get.docker.com | sudo sh

工作目錄

/lnmp/conf 存放虛擬主機配置

/lnmp/data/mysql 存放mysql數據庫數據

/lnmp/log 存放nginx、mysql日志

/lnmp/workspace 存放各種項目文件

/lnmp/.env 啟動docker時的環境變量配置

/lnmp/docker-compose.yml 構建時的配置文件

/lnmp/php/Dockerfile 編譯PHP配置文件

構建Nginx

創建項目

先創建一個靜態文件index.html

/lnmp/workspace/default/index.html

Document

Hello, Docker!

添加構建時的環境變量

編輯.env文件SOURCE_DIR=./workspace

HTTP_HOST=80

NGINX_VERSION=alpine

NGINX_CONFD_DIR=./conf/conf.d

NGINX_CONF_FILE=./conf/nginx.conf

NGINX_LOG_DIR=./log

SOURCE_DIR=./workspace workspace文件夾掛載到nginx下的 /var/www/html

HTTP_HOST=80 宿主機的80端口映射到nginx下的80端口

NGINX_VERSION=alpine nginx鏡像使用alpine版本

NGINX_CONFD_DIR=./conf/conf.d conf.d文件夾掛載到nginx下的/etc/nginx/conf.d

NGINX_CONF_FILE=./conf/nginx.conf nginx.conf掛載nginx的 /etc/nginx/nginx.conf

NGINX_LOG_DIR=./log

Nginx.conf

創建/lnmp/conf/nginx.conf文件user nginx;

worker_processes 1;

pid /var/run/nginx.pid;

error_log /var/log/nginx/nginx.error.log warn;

events {

worker_connections 1024;

}

http {

include /etc/nginx/mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/nginx.access.log main;

sendfile on;

#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d/*.conf;

}

配置虛擬主機

創建/lnmp/conf/conf.d/default.conf文件

注意: root下的路徑必須是以/var/www/html開頭,default是我們本地workspace下的一個文件夾server {

listen 80;

server_name localhost default-server;

root /var/www/html/default;

index index.php index.html index.htm;

access_log /var/log/nginx/nginx.localhost.access.log main;

error_log /var/log/nginx/nginx.localhost.error.log warn;

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

}

構建Nginx配置

編輯 docker-composer.yml

以下的${}都是上面.env文件里配置的變量version: "3"

services:

nginx:

image: nginx:${NGINX_VERSION}

ports:

- ${HTTP_HOST}:80

volumes:

- ${SOURCE_DIR}:/var/www/html/:rw

- ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw

- ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro

- ${NGINX_LOG_DIR}:/var/log/nginx/:rw

restart: always

啟動Nginx

運行命令之后,訪問樹莓派的IP,正常的話會顯示 Hello, Docker!$ docker-compose up

構建PHP

編輯/lnmp/.env添加PHP構建變量PHP_CONFIG_FILE=./conf/php.ini

PHP_FPM_CONFIG_FILE=./conf/php-fpm.conf

因php.ini配置有點長,可以在下面地址復制

php.ini

php-fpm.conf

添加Dockerfile

/lnmp/php/DockerfileARG PHP_VERSION

FROM php:${PHP_VERSION}-fpm

RUN apt update

RUN apt-get install -y \

libfreetype6-dev \

libjpeg62-turbo-dev \

libmcrypt-dev \

libpng-dev \

unixodbc-dev \

gcc g++ make autoconf libc-dev pkg-config

添加構建PHP

編輯 /lnmp/docker-compose.yml文件version: "3"

services:

nginx:

image: nginx:${NGINX_VERSION}

ports:

- ${HTTP_HOST}:80

volumes:

- ${SOURCE_DIR}:/var/www/html/:rw

- ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw

- ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro

- ${NGINX_LOG_DIR}:/var/log/nginx/:rw

restart: always

php:

build:

context: ./php

args:

PHP_VERSION: 7.2

volumes:

- ${SOURCE_DIR}:/var/www/html/:rw

- ${PHP_PHP_CONFIG_FILE}:/usr/local/etc/php/php.ini:ro

- ${PHP_FPM_CONFIG_FILE}:/usr/local/etc/php-fpm.d/www.conf:rw

cap_add:

- SYS_PTRACE

restart: always

networks:

- default

虛擬主機支持PHP解析

/lnmp/conf/conf.d/default.conf

下面fastcgi_pass php:9000的php,是指上面docker-compose.yml的一個service名稱,可以用來針對某個項目指定PHP版本#...其它代碼

location ~ \.php$ {

fastcgi_pass php:9000;

fastcgi_index index.php;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

添加文件

/lnmp/workspace/default/index.php<?php

echo ‘Hello, PHP!’;

啟動預覽

如果之前沒有終止進程的, 可以ctrl + c終止之后再運行下面的命令。

如無意外,訪問樹莓派的IP會顯示 Hello, PHP!.$ docker-compose up

添加PHP擴展

/lnmp/.env 添加變量,下面以swoole擴展演示,其它的擴展參考下面的操作就可以PHP_SWOOLE_VERSION=4.2.10

/lnmp/docker-compose.yml 添加變量php:

build:

context: ./php

args:

PHP_VERSION: 7.2

PHP_SWOOLE: ${PHP_SWOOLE_VERSION}

/lnmp/php/Dockerfile 下載并編譯swoole# ...其它代碼

ARG PHP_SWOOLE=false

RUN if [ ${PHP_SWOOLE} != false ]; then \

curl -O http://pecl.php.net/get/swoole-${PHP_SWOOLE}.tgz -L \

&& pecl install swoole-${PHP_SWOOLE}.tgz \

&& docker-php-ext-enable swoole \

;fi

重新編譯

注意:Dockerfile有改動的話,必須加--build重新編譯一次, 不然docker-compose up的時候不會生效$ docker-compose up --build

預覽

編輯/lnmp/workspace/default/index.php保存,訪問樹莓派的IP,不出意外你可以找到swoole的擴展<?php

phpinfo();

構建MYSQL

MYSQL持久化

Docker容器服務刪除了,保證數據不會丟失

創建/lnmp/data/mysql文件夾

構建時變量

編輯/lnmp/.env文件,添加mysql服務端口、登錄密碼與數據持久化文件夾。MYSQL_HOST_PORT=3306

MYSQL_PASSWORD=1234

MYSQL_DATA_DIR=./data/mysql

構建配置version: "3"

services:

#... 其它代碼

mysql:

image: tobi312/rpi-mysql

ports:

- ${MYSQL_HOST_PORT}:3306

volumes:

- ${MYSQL_DATA_DIR}:/var/lib/mysql:rw

environment:

MYSQL_ROOT_PASSWORD: "${MYSQL_PASSWORD}"

啟動

啟動后,用數據連接工具測試,鏈接地址:樹莓派IP 端口:3306 用戶名:root 密碼:1234$ docker-compose up

到此為止,屬于你自己的LNMP工作環境已經做好了。

總結

以上是生活随笔為你收集整理的docker中lnmp访问php页面,Docker下部署LNMP工作环境的教程(详细步骤)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。