使用docker搭建Nginx + PHP + mysql环境
2024-08-26
110
Nginx+PHP+Mysql是比较常用的网站环境,使用docker布置网站环境也是比较常用的方式,以下就给大家介绍如果使用docker来搭建Nginx+PHP+Mysql的运行环境。
前提准备:macOs环境、docker环境(安装docker可以百度,对mac版本有要求)
首先拉取三个镜像:
docker pull mysql:5.7
docker pull php:fpm
docker pull nginx:latest
查看一下拉取的所有镜像:
首先我们安装msyql,然后安装php,这样可以将mysql和php连接起来,最后装nginx,nginx把php连接起来就好啦。
安装mysql
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql_server mysql:5.7 # (这里是构建容器)
docker exec -it mysql_server /bin/bash # (进入容器,进入之后要对用户授权,允许用户远程访问)
mysql -u root -p 123456 # (进入mysql命令行模式)
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 123456; # (授权)
GRANT ALL PRIVILEGES ON *.* TO root@% IDENTIFIED BY 123456; #(授权)
GRANT ALL PRIVILEGES ON *.* TO root@127.0.0.1 IDENTIFIED BY 123456; #(授权)
FLUSH PRIVILEGES; #(使权限生效)
可以使用Navicat工具查看mysql 首先要找到mysql的IP,如下命令
docker inspect mysql_server
至此,mysql就安装完成啦
安装PHP
~/Document/self_work 是我自己文件目录,大家可根据自己情况修改
docker run --name php_server -p 9000:9000 -v ~/Documents/self_work/wwwroot/:/var/www/wwwroot --link mysql_server:mysql -v ~/Documents/self_work/env/phpfile/:/usr/local/etc/php -d php:fpm # (这里是构建容器)
docker exec -it php_server /bin/bash # (登录容器)
docker-php-ext-install pdo_mysql #(安装php扩展,可以使用这种方式安装 安装方式很多,不一一赘述)
安装nginx
配置文件目录:~/Documents/self_work/env/nginx/conf/conf.d/ 注意conf.d 是个文件夹
docker run --name nginx_server -p 8181:80 -v ~/Documents/self_work/wwwroot:/var/wwwroot --link php_server:phpfpm -d nginx:latest #(构建容器,将nginx和php连接起来)
映射容器中的phpfpm和mysql都为固定,不能修改!
测试
在宿主机 ~/Documents/self_work/wwwroot/目录下修改 index.php 文件。
?php echo phpinfo();
访问:http://localhost:8083/
测试mysql 链接
修改 index.php
?php
//echo phpinfo();
$dbms=mysql; //数据库类型
$host=your_mysql; //数据库主机名,此处写mysql 容器的名字
$dbport = 3306;
$dbName=mysql; //使用的数据库
$user=root; //数据库连接用户名
$pass=123456; //对应的密码
$dsn=$dbms:host=$host;port=$dbport;dbname=$dbName;
try {
$dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象
echo successfulbr/;
//你还可以进行一次搜索操作
// foreach ($dbh-query(SELECT * from user) as $row) {
// print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
// }
$dbh = null;
} catch (PDOException $e) {
die (Error!: . $e-getMessage() . br/);
}
参考:https://cloud.tencent.com/developer/article/1444280
刷新页面 successful 我们安装成功啦啦啦啦啦
赞一波!3
相关文章
- 【说站】php FastCGI模式如何理解
- 【说站】mysql覆盖索引高性能的探究
- 【说站】php中的SAPI是什么
- 【说站】php中CGI模式的介绍
- 【说站】php FastCGI模式的优缺点
- 【说站】mysql执行计划explain
- 【说站】php有哪些文件包含漏洞
- 【说站】mysql创建索引的三种方式
- 【说站】mysql多表查询如何实现
- 【说站】MySQL中join buffer是什么
- 【说站】mysql有哪些建立索引的方法
- 【说站】mysql表导出的两种方法
- 【说站】如何在mysql表中进行导入
- 【说站】mysql备份恢复策略是什么
- 【说站】mysql有哪些备份数据库的方式
- 【说站】mysql物理备份如何理解
- 【说站】mysql独占写锁是什么
- 【说站】mysql行锁的优缺点
- 【说站】MySQL中的逻辑备份是什么
- 【说站】mysql有哪些数据操作
文章评论
评论问答