2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DockerでLAMP環境(CentOS7 Apache PHP8.0 MySQL8)の構築 M1 Intel 対応

Last updated at Posted at 2022-06-23

動作環境

OS: mac
CPU: M1、intel 対応
Dockerが導入されていることが前提
Dockerアプリからのインストールはこちらから

構築内容

Centos7
Apache
PHP v8
phpMyAdmin
MySQL v8
Composer
Node.js v16
gulp

参考

GitHub centos7_php8
↑ をクローンすれば手っ取り早いです。

ディレクトリ構造

.
├── Dockerfile
├── README.md
├── copy
│   ├── httpd.conf
│   ├── my.cnf
│   ├── php.ini
│   ├── phpMyAdmin.conf
│   └── v_host.conf
├── docker-compose.yml
└── html
    ├── php_error.log
    └── phpinfo

docker-compose.ymlの内容

#docker-composeで使用するバージョン
version: '3.8'

# dbデータの保存場所。(ホストからは見えない)
volumes:
  mysql-data:

services:
 #サービスの名前
  centos:
    build: .
    ports:
    - 8281:81
    - 8282:82
    - 8283:83
    - 8284:84
    - 8285:85
    - 8286:86
    - 8287:87
    - 8290:90
    - 8291:91
    - 28000:8000
    - 28001:8001
    - 28002:8002
    - 28003:8003
    - 28004:8004
    - 6001:6001
    volumes:
    - ./html:/var/www/html:cached
    - mysql-data:/var/lib/mysql
    working_dir: /var/www/html
    tty: true
    platform: linux/x86_64
    privileged: true  
    command: /sbin/init  

cpuがintel版の場合は 以下をコメントアウト

# platform: linux/x86_64

Dockerfileの内容

FROM centos:7

RUN yum update -y && \
    yum install -y httpd

# Apache自動起動
RUN systemctl enable httpd.service

# PHP  
RUN yum install -y epel-release
RUN yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

# yum-utils パッケージをインストールすると yum-config-manager コマンドが使えるようになる。
RUN yum -y install yum-utils && \ 
    yum-config-manager --enable remi

#php8
RUN yum -y install --enablerepo=remi,epel,remi-php80 php php-mysqlnd php-mbstring php-gd php-xml php-xmlrpc php-pecl-mcrypt php-fpm php-opcache php-apcu php-pear php-pdo php-zip php-unzip php-pecl-zip phpMyAdmin

# MySQL 5.7 > 8.0
# RUN yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm && \
RUN yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm && \
    yum -y install mysql-community-server

# MySQL 自動起動
RUN systemctl enable mysqld

# RUN yum -y install mod_ssl && \
# yum -y install firewalld && \
# yum -y install certbot python2-certbot-apache

# composer 導入
RUN curl -sS https://getcomposer.org/installer | php && \
    mv composer.phar /usr/local/bin/composer

# composer バージョン変更
# RUN composer self-update 1.8.3

# Git
# RUN yum -y install git

# node.js 導入
# RUN curl -fsSL https://rpm.nodesource.com/setup_16.x
RUN yum install -y https://rpm.nodesource.com/pub_16.x/el/9/x86_64/nodesource-release-el9-1.noarch.rpm

# lsof は、サーバーで特定のポート番号を待ち受けているかどうか、指定ファイルは誰が読み込んでいるのかを調べる
RUN yum install -y nodejs \
    yum install -y vim \
    yum -y install lsof

# グローバル にgulpを導入
RUN npm install -g gulp

# ホストで用意した設定ファイルを反映
COPY ./copy/httpd.conf /etc/httpd/conf/httpd.conf
COPY ./copy/v_host.conf /etc/httpd/conf.d/v_host.conf
COPY ./copy/php.ini /etc/php.ini
COPY ./copy/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf

# MySQLの設定
# COPY ./copy/my.cnf /etc/my.cnf

# ディレクトリの所有者、グループを変更する。
# RUN chown apache:apache /var/www/html/php_error.log


#公開ポート番号
EXPOSE 80

DockerでCentOSを使ったLAMP環境構築

コマンド ビルドして起動

$ docker-compose up -d

アクセス方法

*ポート番号はdocker-compose.ymlに設定されているポート番号を利用

  http://localhost:ポート番号/

コンテナに入る

サービス名はDockerfileで記載してある「centos」

$ docker-compose exec サービス名 bash

ポートの追加方法

例:92番ポートを通す方法


centos7/copy/v_host.confに以下を追加

<VirtualHost *:92>
DocumentRoot /var/www/html/site92 #ポートを通すパスを指定
ServerName localhost92
</VirtualHost>

centos7/copy/httpd.confに以下を追加
の編集

Listen 92

centos7/docker-compose.ymlに以下を追加

ports:
- 8092:92

コマンド 再度ビルドして起動

$ docker-compose up --build -d

MySQLのパスワード変更

初期パスワード確認

$ cat /var/log/mysqld.log | grep password

パスワードポリシー変更

# コマンドラインの場合
$ echo -e "validate_password.check_user_name=OFF\nvalidate_password.length=4\nvalidate_password.mixed_case_count=0\nvalidate_password.number_count=0\nvalidate_password.special_char_count=0\nvalidate_password.policy=LOW\n" >> /etc/my.cnf


# /etc/my.cnf をvimなどで編集する場合
$ vim /etc/my.cnf

# Password policy change
validate_password.check_user_name=OFF 
validate_password.length=4
validate_password.mixed_case_count=0
validate_password.number_count=0
validate_password.special_char_count=0
validate_password.policy=LOW

パスワード変更

$ ALTER USER 'root'@'localhost' identified BY 'root';
2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?