Docker如何快速搭建LNMP环境(最新)
作者:HarryPoFly 发布时间:2023-07-31 16:42:53
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Mysql?
1.拉取mysql镜像
docker pull mysql:5.6
2.运行启动mysql容器
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=xy123456 --name xy_mysql mysql:5.6
参数说明:
-d 让容器在后台运动
-p 添加主机到容器的端口映射
-e 设置mysql环境变量,设置root的初始密码
–name 给容器取名字
最后一个参数是镜像名称,为拉取镜像的名称
二、安装php-fpm
1.拉取php-fpm镜像
docker pull php:7.0-fpm
也可拉docker pull php:7.4.20-fpm docker pull php:7.3.28-fpm 这些版本在仓库里都是存在,放心拉
2.运行启动php-fpm容器
docker run -d -v D:/docker/nginx:/var/www/html -p 9000:9000 --link xy_mysql:mysql --name xy_phpfpm php:7.0-fpm
参数说明:
-d 让容器在后台运动
-p 添加主机到容器的端口映射
-v 添加目录映射,主机上的D:/docker/nginx映射到/var/www/html ,即同步目录下内容.'D:/docker/nginx'这个主机下的目录你直接复制你想要
写代码的目录即可,$PWD如果有效的话是指当前目录,我是因为使用此参数报错,所以直接复制粘贴了路径.
–name 给容器取名字
–link 与另外一个容器建立联系,这样可以在当前容器去使用另一个容器的服务
最后一个参数是镜像名称,为拉取镜像的名称
3.进入php-fpm容器
docker exec -it xy_phpfpm bash
参数说明
-t 在容器里生产一个伪终端
-i 对容器内的标准输入 (STDIN) 进行交互
在/var/www/html/下创建一个index.php文件后,你会发现本地也会有,这就同步了,因为启动容器时已经把主机和容器相应的目录进行
映射了;
4.安装pdo_mysql模块
因之后要使用pdo模块进行测试,所以安装pdo_mysql模块.
docker-php-ext-install pdo_mysql
php -m 打印查看是否安装成功;
这样安装之后在phpinfo()打印后不一定会显示扩展,之后测试会有修改的步骤
三、安装nginx
1.拉取nginx镜像
docker pull nginx:1.10.3
2.运行nginx容器
docker run -d -p 80:80 -v D:/docker/nginx:/var/www/html --link xy_phpfpm:phpfpm --name xy_nginx nginx:1.10.3
3.进入nginx容器,修改nginx配置文件让他支持php
docker exec -it xy_nginx bash
这里推荐去 /etc/nginx/conf.d/default.conf下去更改;
fastcgi_pass 写php:7.0-fpm:9000 别写起的别名可能会失效;
root写成之前php容器设置的代码目录;
4.测试安装是否成功
修改index.php代码
<?php
phpinfo();
这个在使用之前安装的命令之后phpinfo()并没有mysql,需要进入php.ini中去更改
5.修改配置
docker exec -it xy_phpfpm bash
这个容器中php.ini 在/usr/local/etc/php下 php.ini-development php.ini-production
这两个文件就是php.ini 文件是一模一样 看名字就知道什么意思了
把extension=php_pdo_mysql.dll扩展放开就可以
6.链接mysql测试
修改index.php代码
try {
$con = new PDO('mysql:host=xy_mysql;dbname=mysql', 'root', 'xy123456');
$con->query('SET NAMES UTF8');
$res = $con->query('select * from user');
while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
// echo "id:{$row['id']} name:{$row['name']}";
print_r($row);
}
} catch (PDOException $e) {
echo '错误原因:' . $e->getMessage();
}
如果没报错,则为成功
来源:https://blog.csdn.net/sinat_33801009/article/details/118222960
猜你喜欢
- 一、事件背景:由于工作需要使用vscode远程连接到Ubuntu。(具体连接方法可百度,本文仅限分享其中遇到的问题)二、问题现象:在这过程中
- 开始我也不知道什么是网站地图,有人问我,把我问的一楞一楞的,主要是不理解呀。后来我在网上找,查询看看到底是什么意思?他的意思解释如下:什么是
- 服务器安全一直以来都是大家关注的一个热门话题,虽然服务器安全问题很棘手,不过我们也并非无计可施。我想各位朋友可从以下几个方面着手,就能够做到
- ldd 查看程序依赖库ldd作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。示例:查看test程序运
- 在我未成熟的程序思考能力下,我首先否定了重写程序这个方法,再次否定了将PHPWind的验证方法引入到最土的方法,最后想出一个折中的办法,将两
- 【虚拟机】VirtualBox简体中文版下载安装使用图解教程此教程用的是VirtualBox 4.1.2.74291版本。运行环境:WinX
- 前言在我们开发测试过程中,需要频繁的更新docker镜像,然而默认情况下,docker的2375端口是关闭的,下面介绍如何打开端口。1、打开
- Lunarpages是一家成立于2000年的美国虚拟主机商,在短短的9年时间内,服务的全球客户总数已超过20万。这其中最大的原因就是Luna
- WordPress系统本身,默认安装的情况下使用默认模板,实际上对搜索引擎并不友好,并没有针对搜索引擎进行很好的设计,下面我介绍一些方法可以
- 确切的说,第一次知道网络是在1999年的某一天。由于我生活在一个很偏僻的地方,那里很落后,所以知道1999年的某一天,一次偶然的机会得到一张
- 如果您为您的机器设定过internet连线那麽您一定接触过DNS了但DNS又是什麽东东呢说穿了DNS是用来帮助记忆网路地址的完全是为了迁就人
- 下面我讲一下站外优化,一个个的打字大家别嫌慢。站外优化最主要的就是友情链接,这在所有的优化中是比较关键的。链接这里有一个怎么选择的问题。首面
- ubuntu安装pycharm的方法如下所示:1. 下载http://www.jetbrains.com/pycharm/download/
- 纵观网络安全攻击的各种方式方法,其中DDoS类的攻击会给你的网络系统造成更大的危害。因此,了解DDoS,了解它的工作原理及防范措施,是一个计
- 曾经有一个网站,拥有高质量的流量,每天Google AdSense收入却不高,后来经Google AdSense小组帮助优化广告之后,每天G
- Web应用服务器优化方法 在对Web服务器进行优化时要根据真实的Web应用系统的情况和特征来采取有针对性地优化方案。首先根据不同的网络特性来
- 如果你想要为CentOS 7中的某个网络接口设置静态IP地址,有几种不同的方法,这取决于你是否想要使用网络管理器。网络管理器(Network
- SEO服务中,与客户罪有应得争议的就是具体排名是否可以保证。有时你可能会看到一些SEOer的广告,说可以保证排名,保证排在第一,或者第二。我
- 一抬头,又是窗外朦朦,不知多少人家,此时梦中。多少草根站长,此时挑灯夜战。回首间,已埋在Admin5近两年。虽然钱赚的不多,但是阅历增加无数
- 很多的时候,大家发现了没? 一样的程序,一样的行业,为什么别人成功了,为什么人家能赚到钱,能买车,能给员工开工资。自己却过得紧巴巴? 突然醒