利用dockerfile基于centos搭建php环境连接数据库mysql
时间: 2023-08-03 13:41:32 浏览: 120
docker安装centos7,并安装mysql
5星 · 资源好评率100%
好的,以下是在CentOS下使用Dockerfile搭建PHP环境并连接MySQL数据库的步骤:
1. 创建一个空目录,比如myphp,在该目录下新建一个名为Dockerfile的文件。
2. 在Dockerfile中输入以下内容:
```
FROM centos:latest
MAINTAINER yourname
# 安装必要的软件包和PHP扩展
RUN yum -y update && \
yum -y install epel-release && \
yum -y install httpd php php-mysqlnd php-gd php-xml php-mbstring && \
yum clean all
# 复制PHP配置文件
COPY php.ini /etc/php.ini
# 复制项目文件到容器中
COPY myproject /var/www/html/
# 开放80端口
EXPOSE 80
# 容器启动后执行的命令
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
```
上述Dockerfile主要完成以下功能:
- 基于最新版的CentOS镜像创建一个新的镜像;
- 安装必要的软件包和PHP扩展;
- 复制PHP配置文件;
- 复制项目文件到容器中;
- 开放80端口;
- 容器启动后执行httpd命令。
3. 在该目录下新建一个名为php.ini的文件,内容如下:
```
[mysql]
mysql.allow_persistent = Off
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket = /var/lib/mysql/mysql.sock
```
上述php.ini文件主要设置MySQL的连接参数。
4. 在该目录下新建一个名为myproject的目录,并在该目录下新建一个名为index.php的文件,内容如下:
```
<?php
$servername = "mysql";
$username = "root";
$password = "password";
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
```
上述index.php文件主要完成以下功能:
- 设置MySQL的连接参数;
- 创建MySQL连接;
- 检测连接是否成功;
- 输出连接成功信息。
5. 在该目录下打开命令行终端,运行以下命令构建镜像:
```
docker build -t myphp .
```
上述命令将使用当前目录下的Dockerfile文件构建一个名为myphp的镜像。
6. 运行以下命令启动容器:
```
docker run -d --name myphp -p 80:80 myphp
```
上述命令将使用myphp镜像启动一个名为myphp的容器,并将容器的80端口映射到主机的80端口。
7. 访问http://localhost/,应该可以看到连接成功的信息。
注意:在上述代码中,MySQL的连接参数是硬编码在代码中的,实际应用中应该将这些参数存储在环境变量中。
阅读全文