CentOS

■OSバージョン
#cat /etc/redhat-release 
cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

■httpd
#インストール
yum -y install httpd
#バージョン
httpd -version

■サービス
service hypervkvpd status
#サービス名は /etc/init.d/

■サービスの自動起動設定
chkconfig hypervkvpd on

■古いCentOSでyumを実行するとエラーになるとき
・バージョンを確認
$ cat /etc/redhat-release

・設定を編集
vi /etc/yum.repos.d/CentOS-Base.repo
yy ・・・カーソルのある行をコピー
p ・・・カーソルの次にペースト
行頭にカーソルを置きyy→p ・・・一行コピーしてその行に追加
dd ・・・カーソルのある行を削除
i ・・・入力モードに変更

#mirrorlist=http://mirrorlist. ・・・全てコメントアウト
#baseurl=http://mirror.cent ・・・全てコメントアウト(になっている)

以下を追加
baseurl=http://vault.centos.org/5.10/os/$basearch/
baseurl=http://vault.centos.org/5.10/updates/$basearch/
baseurl=http://vault.centos.org/5.10/extras/$basearch/
baseurl=http://vault.centos.org/5.10/centosplus/$basearch/
baseurl=http://vault.centos.org/5.10/contrib/$basearch/

[ESC] ・・・コマンドモードに変更
:w  ・・・上書き
:q  ・・・終了
:q!  ・・・書き込みを行わずに終了


CentOSでどうしても古いバージョンを使うとき

Docker で PHP

■イメージ作成
参考:Docker for Windows、Dockerfileを試してみる

○Dockerfileを作成

FROM php:7.1-apache

# PHPモジュールインストール
RUN docker-php-ext-install -j$(nproc) pdo_mysql

○イメージ作成
> cd [Dockerfileのフォルダパス]
> docker build ./ -t php_test  ・・・名前を指定

SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host
とエラーが出るができているっぽい。
> docker images

○実行

docker run d p 80:80 v ./html:/var/www/html name php-test  php_test

docker run -p 8080:80 -v ./html:/var/www/html -it php_test bash

■Docker Compose
参考)Docker (とDocker Compose) を使用して環境に依存しない開発環境を構築する

○docker-compose.yml 作成

version: '3'
services: 
 php:
 image: php:7.1-apache
 volumes:
 - ./:/var/www/html
 ports:
 - 8080:80
 db:
 image: mysql:5.7
 environment:
 MYSQL_ROOT_PASSWORD: password

○起動
> cd [docker-compose.ymlのフォルダパス]
> docker-compose up -d  ・・・バックグラウンドで起動

Cannot create container for service php: b’Drive has not been shared’
とエラーが出た場合はDockerのsettingsでドライブの共有設定しておく

○確認
docker-compose ps

○接続
docker exec -it <コンテナ名> /bin/bash

○終了
docker-compose down

○ホストからHTTPアクセス
カレントフォルダにindex.phpを作成

 <? php
phpinfo();

http://localhost:8080/index.php

○PHPコンテナからDBコンテナへアクセス

<?php

 $dbh = new PDO('mysql:dbname=test;host=test_db_1', root', 'password');

Docker で CentOS

○イメージをダウンロード
> docker pull centos:latest

○確認
> docker ps

○起動
> docker run -it centos bin/bash
(CentOS シェル起動)
# ls
# id
# exit ・・・CentOS停止。変更は消える。

○バックグラウンド起動
> docker run -i -d -t centos /bin/bash
> docker exec -it 98130fd /bin/bash  ・・・新しいプロセスを起動し接続するのでexec推奨
# exit  ・・・起動したプロセスが終了するので、CentOSは停止しない
(# ps  で確認すると attachはPID=1に接続しているが、execは他のPIDになっている)

> docker attach 98130fd ・・・CentOSに接続
#  CTRL+p、CTRL+q ・・・CentOSから抜ける。誤ってExitするとCentOSが終了し、再度attachできない)

■イメージ作成
○Dockerfile作成(UTF-8)

# ベースイメージの指定
FROM centos:latest

# 作者情報
MAINTAINER TestProject test-project@test.com

RUN echo hello ヤッホー
RUN ["echo", "こんにちは yahoo"]

# httpdをインストール
RUN yum -y install httpd

# httpd実行
CMD ["/usr/sbin/httpd","-D","FOREGROUND"]

○イメージ作成
docker build ./ -t centos_test

○履歴
docker history centos_test

 

○実行

docker run -d -p 80:80 centos_test