我尝试使用Docker构建了PHP学习环境

首先

大家好,你们觉得设置环境是不是很麻烦?
我觉得很麻烦。

我曾有一个学习PHP的机会,但因为不想搭建环境,所以决定使用Docker。

要做的事情 zuò de shì

在《PHP7+MariaDB/MySQL主要笔记》一书中,我们使用了一个名为XAMPP的软件包,但是我们可以通过Docker来复制环境。

    • PHP:7.4を使えるようにする

 

    • Apacheを使えるようにする

 

    • MariaDBを使えるようにする

 

    この本ではメールを用いるためメールサーバを立ち上げる

请注意:本文仅介绍如何构建类似于XAMPP的环境的步骤,不提供详细的解释等。(未来是否会补充说明还未确定)

行动环境

M1 MacBook Air(MacOS 13.1)上的Docker。

文件结构

PHP
├ php
│  └ dockerfile
├ mysql
│  ├ init/
│  └ mysqld_charset.cnf
├ source/
└ docker-compose.yml

编写Compose文件

首先,我们需要编写一个作为所有基础的compose文件。
关于apache,有一个名为php:7.4-apache的容器镜像,将PHP:7.4和apache集成在一起,我们将使用它。

version: '3'
services:

  #php用コンテナ
  php:
    container_name: php-apache
    build: ./php
    volumes:
      - ./sorce:/var/www/html
    ports:
      - 8080:80
    depends_on:
      - mysql

  #MariaDB用コンテナ
  mysql:
    container_name: mariaDB
    image: mariadb:latest
    volumes:
      - ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf
      - ./mysql/init:/docker-entrypoint-initdb.d
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=admin

  #mailコンテナ
  #メールアドレス:nobody@example.com
  mail:
    container_name: mail
    image: djfarrelly/maildev
    ports:
      - "1080:80"
      - "1025:1025"

来源/

请将要显示的PHP文件放在这里。

php (only need one option) –

PHP/

在这里放置用于配置php-apache容器的文件。

FROM php:7.4-apache

RUN apt-get update && apt-get install -y libonig-dev && \
apt install -y ssmtp && \
docker-php-ext-install pdo_mysql mysqli mbstring

RUN apt-get install -y --no-install-recommends libc-client-dev libkrb5-dev \
    && PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
    && docker-php-ext-install imap

ENV APACHE_DOCUMENT_ROOT /var/www/html/htdocs

RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf

此 Dockerfile 将完成所需驱动程序和模块的安装以及 Apache 的设置。

MySQL是一个关系型数据库管理系统。

本地化为中文:在这里放置MariaDB容器的配置文件。因为在docker-compose.yml中已经写了所需的信息,所以不需要Dockerfile。

我会将MariaDB的设置文件放置在别处。

[mysql]
default-character-set=utf8mb4
[mysqld]
character_set_server=utf8mb4
character_set_filesystem=utf8mb4
collation-server=utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
init_connect='SET collation_connection = utf8mb4_general_ci'
skip-character-set-client-handshake

这样一来,MariaDB 就能够处理日语了。

开始/初始

请把我想要在数据库启动时加载的SQL文件放在这里。

做完

只需将其在Docker中启动,就可以构建类似于XAMPP的PHP开发环境。

请参照以下内容,并只提供一个选择。

PHP: 7.4-Apache 的版本

 

邮件开发者

 

广告
将在 10 秒后关闭
bannerAds