本文将介绍如何利用docker搭建php网站的基础环境,包括nginx,php,mysql,你也可以在此基础上安装phpMyAdmin来管理mysql。所有操作均在deepin 15.5 64位桌面版测试通过。
1.基础环境
Linux主机一台
2.Docker安装及配置
2.1.安装Docker
Docker的安装比较简单,参考官方文档的安装方式即可。
2.2.安装Docker Compose
Docker Compose是定义和运行多容器Docker应用程序的工具。Docker Compose的安装也比较简单,参考官方文档安装即可,国内可替换为daocloud镜像源以加速下载。
2.3.加速你的docker
由于众所周知的原因,docker官方镜像的访问速度非常慢,幸运的是,国内很多服务商提供了docker hub加速服务,可采用DaoCloud提供的加速器,官方网址:https://www.daocloud.io/mirror#accelerator-doc。
3.制作docker-compose文件
采用phpdocker.io提供的Generator可以非常方便的生成php基础环境的docker-compose文件。打开phpdocker Generator,根据自己的需要填写信息,或者参考我以下的配置,配置lnmp的基础环境:
Global configuration:
- Project name:
test
(这里填写你的网站) - Base port:
8000
(web服务器默认端口)
PHP configuration:
- PHP Version:
7.2.x
(根据自己的需要选择php版本) - Extensions:
MySQL
(php扩展,按需勾选)
MySQL:
- Enable MySQL:
on
(启用MySQL) - Version:
5.6.x
(选择MySQL版本) - Password for root user:
admin123
(MySQL root用户密码) - Your app's database name:
test
(网站数据库名称) - Your app's database username:
test
(网站数据库用户名) - Your app's database password:
test123
(网站数据库密码)
其余选项保持默认,如下图:
然后点页面下方的“Generate project archive”下载配置文件并解压,新建一个public文件夹(这个public就是网站的根目录):
在public
路径下新建一个index.php
文件,并将以下内容写入:
<?php
echo phpinfo();
?>
在此路径打开终端,输入docker-compose up -d
,等容器全部运行后,打开localhost:8000
测试一下:
4.安装phpMyAdmin
为了更方便的管理数据库,我们还可以在上文的基础上添加phpMyAdmin。这里我们同样采用docker的方式来安装phpMyAdmin。
用编辑器打开docker-compose.yml
:
###############################################################################
# Generated on phpdocker.io #
###############################################################################
version: "3.1"
services:
mysql:
image: mysql:5.6
container_name: test-mysql
working_dir: /application
volumes:
- .:/application
environment:
- MYSQL_ROOT_PASSWORD=admin123
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test123
ports:
- "127.0.0.2:3306:3306"
webserver:
image: nginx:alpine
container_name: test-webserver
working_dir: /application
volumes:
- .:/application
- ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "127.0.0.2:80:80"
php-fpm:
build: phpdocker/php-fpm
container_name: test-php-fpm
working_dir: /application
volumes:
- .:/application
- ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: test-phpmyadmin
environment:
- PMA_HOST=mysql
- PMA_USER=root
- PMA_PASSWORD=admin123
restart: always
ports:
- 127.0.0.2:8000:80
volumes:
- /sessions
depends_on:
- mysql
这里我把nginx的端口映射修改为了127.0.0.2:80
,MySQL的端口映射修改为了127.0.0.2:3306
,phpMyAdmin的端口映射为127.0.0.2:8000
,然后保存,在此路径再次打开终端,先执行docker-compose down
停止并删除此网站的所有docker容器(这并不会删除public以及phpdocker目录下的文件),然后再次执行docker-compose up -d
,现在打开127.0.0.2:8000
和127.0.0.2
,就可以分别访问phpmyadmin和我们的网站了:
结语:容器化技术可以帮助我们轻松便捷的配置软件开发和生产环境,解决开发机和生产机环境依赖及基础环境等问题,可以将软件和环境一起打包,并且相比传统虚拟机而言十分节省系统资源,详细的介绍请参考:What is docker?
东哥我要交换友链~|´・ω・)ノ
朋友 交换链接吗
ok
😂