ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Docke 搭建 apache2 + php8 + MySQL8 环境

2022-08-22 20:31:11  阅读:373  来源: 互联网

标签:容器 MySQL8 MySQL apache2 php8 mysql docker php


  • Docker 安装
执行 Docker 安装命令
curl -fsSL https://get.docker.com/ | sh
启动 Docker 服务
sudo service docker start
查看 Docker 是否正常工作
sudo service docker status
0 更改用户权限
sudo groupadd docker # 新建用户组 
sudo gpasswd -a $USER docker #将登录用户加入docker组 
newgrp docker #更新用户组
查看当前镜像
docker images
搜索可用镜像
docker search 名称
下载镜像
docker pull 名称
启动当前镜像
docker run -it -d -p 8000:80 镜像编号/名称 /bin/sh 
-it  #表示用终端操控 
-d #表示后台运行 
-p #表示把容器的 80 端口映射到 物理机的 8000 端口
查看当前运行容器
docker ps
停止当前运行容器
docker stop 容器编号
进入容器内部
docker exec -it 容器编号 bash

 

  • apache2搭建

搜索有关于 apache2 的容器

docker search apache2
0 这里选用第一个的 ubuntu + apache2 环境 下载镜像
docker pull ubuntu/apache2
0 查看镜像
docker images
0 启动 ubuntu/apache2 容器
docker run -it -d -p 8000:80 ubuntu/apache2:latest /bin/sh
并查看当前活跃容器 0 进入容器内部
docker exec -it 2af38a bash
0 开启 apache2 服务
service apache2 start
可以看到成功启动 apache2 服务 0 在物理机上访问
localhost:8000
可以看到 apache2 成功运行 0 在首页下新建php文件
vim /var/www/html/1.php 
# /var/www/html 是网站文件存放路径
如果 vim 提示未安装,则需要先安装
apt update #更新 
apt install vim #安装 vim
1.php 内容如下
<?php phpinfo(); ?>
访问
localhost:8000/1.php
会发现不解析 php    
  • php 搭建
在容器内部直接安装php
apt install php apt install php-mysql
重启 apache2 服务
service apache2 restart
成功解析 php 代码 0  
  • MySQL 搭建
ctrl +d 回到物理机终端 同 apache2 安装 MySQL(这里以MySQL8为例) 运行 MySQL 容器
docker run -it -d -p 3000:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql(编号) /bin/sh 
# -e 默认mysql账号 root 密码 123456
0 进入 MySQL 容器,并开启 MySQL 服务
docker exec -it 4fc917 bash service mysql start
接下来 配置 MySQL 进入MySQL
mysql -u root -p 
# 或者 
mysql
可以直接进入 mysql 更改账号密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
或者可以参试以下方法更改账号密码
cat /etc/mysql/debian.cnf 用debian.cnf里面的用户名和密码来登录 
use mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; 
FLUSH PRIVILEGES; 
sudo service mysql restart
创建远程用户并赋予权限
CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
物理机访问 MySQL,不出意外是能成功访问 Docker 容器内的 MySQL
mysql -uadmin -p123456 -h本机ip -P3000
同理,php访问mysql也是 ip+端口号 这种方式 注:MySQL搭建这部分的更改账号密码可能会出现意外,可以去网上寻找其它方法     这里我为什么不在 ubutn/apache2 容器内部署mysql或者直接用lamp呢,这是因为我尝试了几次,发现,如果 apache2 和 mysql 在同一个容器内,那么 apache2 或者 mysql 总是启动不成功,所以就用了 MySQL独占一个容器的方法。     附:部署文件上传题目的时候,要更改文件上传的目录所属,否则文件上传不上去
chown -R www-data:www-data /var/www/upload

 

标签:容器,MySQL8,MySQL,apache2,php8,mysql,docker,php
来源: https://www.cnblogs.com/xshhc/p/16614123.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有