aliyun CentOS7 服务器下使用docker centos8 镜像 配置nginx+php+mysql
为了学习web开发相关内容,在windows上已经实现的基础上,打算在Linux服务器上部署一下开发环境,web服务器选择的是nginx.由于docker的使用优势,菜鸟开始了一系列的探索,然后把探索过程总结如下,为了下次能够更好的搭建环境。
整体思路与结构如下:
目录
一.开启阿里云服务器对应端口(百度智能云不需要)
- 使用阿里云服务器时候,需要注意下,所有的端口的使用,都需要在控制台中的安全组配置中进行设置,页面如图1所示:
进入安全组配置后,进入图
- 进入安全配置组后,进入图2页面,点击配置规则:
- 然后找到如图3所示界面,进行端口设置。
- 设置完以后就可以使用服务器对应的端口了。
二. 创建容器(前提是docker已经安装完成)
- 查看docker信息:docker info (如图4)
- 拉取镜像:docker pull centos(默认最新版,这里是centOS8)
- 查看镜像:docker images
-
建立一个centOS8用于nginx+php+mysql的容器:
# docker run --privileged -ti --name centos-npm -p 3307:3306 -p 5022:22 -p 8001:80 -d centos /usr/sbin/init
--name centos-npm 容器命名 ; -p 3307:3306 3307端口映射到3306用于mysql -p 5022:22 用于开启ssh ;
-p 8001:80 用于nginx ; --privileged 和最后的 /init 一定要加上,不然容器内 不能使用systemctl \ service 命令,也就会导致nginx、mysql等服务无法开启的情况,会出现以下图5的情况:
- 查看正在运行的容器 docker ps 刚才创建的centos-npm容器如图6所示
图6 - 进入容器:docker exec -it centos-npm /bin/bash
三. 容器内安装nginx+php-fpm+mysql
- yum update
- yum install gcc
- yum install gcc-c++
- yum insyall XXXXX(不知名环境、工具)
- yum -y install which (用于查看软件安装位置)
以上是更新以下yum,然后安装一些必备的东西,不是很懂,也是参考别人的,可以自行百度。
以下的软件安装都使用yum
1.安装nginx
- 安装nginx : yum install nginx
- 启动nginx: systemctl start nginx
- 除了systemctl start nginx之外,常用的相关命令还有systemctl stop nginx、systemctl restart nginx、systemctl status nginx测试nginx是否安装成功
- 浏览器输入ip地址或者域名(记得加上宿主机,也就是服务器的映射端口,我这里是8001),如下图7所示,则安装成功。
-
查找nginx的所有配置文件:
运行:rpm -ql nginx 找到nginx 的配置文件路径是
/etc/nginx/nginx.conf 运行 vi /etc/nginx/nginx.conf 修改配置文件,添加如图8所示红框内的内容:
图8 -
以上设置使得nginx 可以和php联系起来,就是可以让前端传送给nginx的东西,使用php解析
感觉此刻水平有限,描述不清楚,一样不理解的,可以阅读以下连接的内容:
https://www.zybuluo.com/phper/note/50231
我看完这感觉会有点明白,为什么需要配置。
2.安装php-fpm
- yum install php php-fpm
-
编辑PHP的配置文件,/etc/php.ini,注意去掉分号注释
vim /etc/php.ini 将 ;cgi.fix_pathinfo=1 改为 cgi.fix_pathinfo=0
-
编辑PHP-FPM配置文件
vim /etc/php-fpm.d/www.conf
将 user = apache group = apache 改为 user = nginx group = nginx
-
启动PHP—FPM
systemctl start php-fpm
-
设置开机启动
systemctl enable php-fpm
-
确保Nginx配置文件修该之后,重启Nginx
systemctl restart nginx
-
在/usr/share/nginx/html/目录下创建phpinfo.php
内容如下:
<?php phpinfo();?>浏览器上输入ip/phpinfo.php,如果出现如下图9界面,说明PHP和Nginx均安装和配置成功。
图9
3.安装mysql
- yum install mysql
- yum install mysql-server
- 初始化:mysqld --initialize
- 启动服务:systemctl start mysql
- 设置开机启动: systemctl daemon-reload
- 查看运行状态: systemctl status mysqld
- 设置密码为123456(默认密码为空):mysqladmin -u root password 123456
- 进入mysql: mysql -u root -p
- 设置远程连接:
- 创建远程操作账户,进行远程访问的授权,并更新权限,依次执行以下代码:
create user 'root'@'%' identified with mysql_native_password by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
- 如果创建远程账号的密码错了:
查询用户表和主机权限命令:
use mysql
select user, host from mysql.user;
删除root这个远程访问用户:delete from mysql.user where user = 'root' and host = '%';
更新权限命令: flush privileges;
. 重新创建远程操作账户,进行远程访问的授权并更新权限,依次执行以下代码:
create user 'root'@'%' identified with mysql_native_password by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
- 使用Navicat远程连接,如图10所示,端口处填写映射端口3307,结果连接成功:
到此,就大功告成了!
接下来就是需要探索下
1.docker build \commit 制作镜像;
2.使用dockerfile 创建容器,制作镜像;
3.移植容器到其他服务器上。