参考:
https://www.cnblogs.com/cocowool/p/docker-php-dev.html
需求
由于我需要搭建的是项目使用的是php5.4所以我这需要调整下
步骤:
1:准备资料
1.1 文件目录为:
--www
----conf
--------php.conf
----logs
----web
--------index.php
1.2 php.conf内容为:
server { ?? ?listen?? ?80; ?? ?server_name?? ?localhost;
?? ?location / { ?? ??? ?root?? ?/usr/share/nginx/html; ?? ??? ?index?? ?index.html index.htm index.php; ?? ?}
?? ?error_page?? ?500 502 503 504?? ?/50x.html; ?? ?location = /50x.html { ?? ??? ?root?? ?/usr/share/nginx/html; ?? ?}
?? ?location ~ \.php$ { ?? ??? ?fastcgi_pass?? ?php:9000; ?? ??? ?fastcgi_index?? ?index.php; ?? ??? ?fastcgi_param?? ?SCRIPT_FILENAME?? ?/web/$fastcgi_script_name; ?? ??? ?include?? ??? ?fastcgi_params; ?? ?} }
1.3 index.php内容为:
<?php
? phpinfo();
?>
1.4?docker-compose.yml 文件内容为
version: "2.3"
services:
nginx:
image: nginx
privileged: true
ports:
- "80:80"
volumes:
- /www/web:/usr/share/nginx/html
- /www/conf:/etc/nginx/conf.d
- /www/logs:/var/log/nginx
networks:
- web-net
php:
image: sugenk/php5.4-fpm
privileged: true
volumes:
- /www/web:/web
networks:
- web-net
mysql:
image: mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
networks:
- web-net
networks:
web-net:
2:执行
到目录下www下执行下列命令
docker-compose up -d
其中 -d表示在后台运行
3:验证
打开浏览器输入http://{服务器IP}/index.php?
,可以看到php是5.4的了
备注:
- docker镜像搜索地址,
https://hub.docker.com/,我搜索使用的是php5.4-fpm。
迭代二
测试php链接mysql
步骤一:由于docker-compose 里容器之间可以通过容器名称来连接,所以网站数据库配置文件使用mysql:3306。下面新建文件dbtest.php
<?php
$servername = "mysql:3306";
$username = "root";
$password = "root";
// 创建连接
//$conn = new mysqli($servername, $username, $password);
$mysql_server_name = 'mysql'; //改成自己的mysql数据库服务器
$mysql_username = 'root'; //改成自己的mysql数据库用户名
$mysql_password = 'root'; //改成自己的mysql数据库密码
$mysql_database = 'sys'; //改成自己的mysql数据库名
$conn=mysqli_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database); //连接数据库
//连接数据库错误提示
if (mysqli_connect_errno($conn)) {
die("连接 MySQL 失败: " . mysqli_connect_error());
}else{
mysqli_query($conn,"set names utf8"); //数据库编码格式
header ( "Content-type:text/html;charset=utf-8" ); //统一输出编码为utf-8
$con = mysqli_connect ( $servername, $username, $password ); //数据库连接
if (mysqli_select_db ( $con, 'sys' )) {
echo "数据库ok";
} else {
echo '数据库错误';
}
}
?>
步骤二:
新建验证,浏览器输入:http://服务器IP/dbtest.php
|