参考:

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的了

备注:

  1. 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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐