LAMP是目前比較流行的web框架,即Linux+Apache+Mysql+PHP的網站架構方案。docker是目前非常流行的虛擬化應用容器,可以為任何應用創建一個輕量級、可移植的容器。現在我們就來通過docker來部署LAMP環境,並且搭建wordpress博客系統來測試。
1、下載mysql、php-apache鏡像
docker pull mysql docker pull php:7.2-apache
創建自定義網絡lamp
docker network create lamp
docker network ls
2、創建生成mysql、httpd-php容器的腳本
vim docker_lamp.sh
#!/bin/bash function mysql() { docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.5 \ -v /data/docker/mysql/data:/var/lib/mysql \ -v /data/docker/mysql/conf:/etc/mysql/conf.d -v /data/docker/mysql/logs:/logs } function httpd_php() { docker run --name httpd-php --net lamp -p 80:80 \ -v /data/docker/httpd/conf:/etc/apache2/sites-enabled \ -v /data/docker/www:/var/www/html \ -v /data/docker/httpd/logs:/var/log/apache2 \ -d php:7.2-apache } $1
3、啟動mysql、httpd-php容器
sh docker_lamp.sh mysql
sh docker_lamp.sh httpd_php
4、寫一個php的首頁文件來進行測試
echo "<?php phpinfo(); ?>" > /data/docker/www/index.php
通過瀏覽器訪問http://10.0.0.11
5、下載wordpress博客系統
wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz tar -zxvf wordpress-4.9.4-zh_CN.tar.gz -C /data/docker/www/
6、配置wordpress博客
瀏覽器訪問http://10.0.0.11/wordpress
有個報錯
7、修改wp-config-sample.php配置
cd /data/docker/www/wordpress/
vim wp-config-sample.php #修改以下內容
/** WordPress數據庫的名稱 */ define('DB_NAME', 'wordpress'); /** MySQL數據庫用戶名 */ define('DB_USER', 'root'); /** MySQL數據庫密碼 */ define('DB_PASSWORD', '123456'); /** MySQL主機 */ define('DB_HOST', '10.0.0.11'); /** 創建數據表時默認的文字編碼 */ define('DB_CHARSET', 'utf8'); /** 數據庫整理類型。如不確定請勿更改 */ define('DB_COLLATE', '');
再用瀏覽器訪問http://10.0.0.11/wordpress
查閱資料后發現,原來從PHP5.0開始就不推薦使用mysql_connect()函數了,而到了php7.0則直接廢棄了該函數,替代的函數是mysqli_connect(),終於找到問題原因了。
8、Call to undefined function mysql_connect()問題解決方法
進入到mysql容器里安裝mysqli擴展
docker exec -it httpd-php /bin/bash apt-get update apt-get install libpng-dev cd /usr/local/bin/ ./docker-php-ext-install gd mysqli ./docker-php-ext-enable gd mysqli exit docker restart httpd-php
編寫一個測試連接mysql的php
vim /data/docker/www/test.php
<?php echo "Hello PHP<br/>"; $conn = mysqli_connect("10.0.0.11","root","123456"); if(!$conn){ echo "連接數據庫失敗"; }else{ echo "連接數據庫成功"; } phpinfo(); ?>
修改wp-db.php文件,將mysql_connect替換為mysqli_connect
cd /data/docker/www/wordpress/ sed -i "s/mysql_connect/mysqli_connect/g" wp-includes/wp-db.php mv wp-config.php wp-config-sample.php
9、重新配置wordpress博客
按前面的步驟填寫完連接mysql的配置信息后,看到如下頁面,表示mysql連接成功。
需要手工創建wp-config.php文件,將以上信息貼入wp-config.php文件中
vim /data/docker/www/wordpress/wp-config.php
然后點擊“現在安裝”,出現以下頁面
輸入完以上信息后,點擊“安裝WordPress”