在Docker使用CentOS系統安裝Apache+PHP+Mysql

(一)準備容器

下載centos的印像檔

#sudo docker pull centos

建立centos的容器,命名為abc(可以自訂名稱),為了可以執行systemd須加上--privileged,且執行/usr/sbin/init

sudo docker run -itd --privileged --name abc centos /usr/sbin/init

執行名稱為abc的容器的bash

sudo docker exec -it abc bash

(二)安裝httpd+php+mysql

安裝Apache

#yum install httpd

安裝service指令的套件與啟動Apache

#yum install initscripts

#service httpd start

查詢套件與安裝netstat指令的套件,確定80 port是否開啟

#yum provides ifconfig

#yum install net-tools

#netstat -na

開機時啟用httpd

#chkconfig httpd on

(三)安裝PHP

#yum install php

#yum install php-mysqlnd php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-pecl-zip php-json

啟用php-fpm與httpd

#service php-fpm start

#service httpd restart

開機時啟用php-fpm

#chkconfig php-fpm on

在/var/www/html/,新增檔案phpinfo.php

<?php

phpinfo()

?>

#curl http://127.0.0.1/phpinfo.php,是否看到php中所有已經啟用的模組。

(四)安裝並設定Mysql

#yum install mysql

#yum install mysql-server

#service mysqld start

更新Mysql的安全性

#mysql_secure_installation

預設開機啟用Mysql

#chkconfig mysqld on

(五)安裝phpMyAdmin

切換到網站資料夾下

#cd /var/www/html

從官方網站下載最新版phpMyAdmin

#wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.tar.gz

解壓縮

#tar -zxvf phpMyAdmin-5.0.4-all-languages.tar.gz

重新命名資料夾

#mv phpMyAdmin-5.0.4-all-languages phpMyAdmin

複製設定檔

#cp config.sample.inc.php config.inc.php

編輯設定檔

#vi config.inc.php

$cfg['blowfish_secret'] = ''

將網站https://phpsolved.com/phpmyadmin-blowfish-secret-generator/ 產生blowfish加密字串貼入上方設定。

新增.htaccess,限制使用者IP與限制瀏覽資料夾與檔案

order allow,deny

deny from All

allow from 192.168.x.x/24

Options All -Indexes

瀏覽http://127.0.0.1/phpMyAdmin/,應該可以看到登入畫面,使用Mysql帳號與密碼登入

(六)建立印像檔

#sudo docker commit 容器名稱 使用者名稱/centos:apache-php-mysql

從印像檔建立容器

#sudo docker run -it -d --privileges --name 容器名稱 -p 808:80 使用者名稱/centos:apache-php-mysql /usr/sbin/init

執行容器的bash

#sudo docker exec -it 容器名稱 bash