使用 docker 搭建 lnmp

使用 docker 搭建 lnmp

1. 创建 php

## 先创建一个 php 将 php.ini 拿出来
docker run -d --name php php:7.1-fpm
docker cp php:/usr/local/etc/php/php.ini-development /usr/local/php/etc/php.ini
## 书写 dockerFile
-------------------------------------
#基于镜像文件php:7.1-fpm构建
FROM php:7.1-fpm
#复制上下文目录的php配置文件
COPY php.ini /usr/local/etc/php/php.ini 
#使用镜像提供的安装扩展的快捷操作安装pdo_mysql扩展
RUN docker-php-ext-install pdo_mysql 
-------------------------------------
docker build -t php:lnmp -f /var/docker/lnmp/php_dockerfile .
docker run -d --name php -p 9000:9000 -v /opt/www:/www php:lnmp  # 注意 /www 为网络文件目录,html php等

2. 确保在同一网络下

docker network create --driver bridge lnmp #新建一个桥接网卡,名为lnmp
docker network connect lnmp php #php容器连接网卡lnmp
docker network connect lnmp nginx #nginx容器连接网卡lnmp
docker network ls #查看网卡列表
docker network inspect lnmp #查看网卡lnmp详情

3. 修改配置文件

server {
    listen       80;
    location / {
        root   /www;
        index  index.php index.html index.htm;
    }
    location ~ \.php$ {
        root           /www;
        fastcgi_pass   php:9000;  # php 为容器名
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}




-----------------------------
<?php		# 编写 index.php 测试
phpinfo();
-----------------------------

4. 创建 mariadb

docker run -d --name db --network lnmp -p 3306:3306 -v /opt/db_data:/var/lib/mysql -v /opt/db_conf:/etc/mysql --env MARIADB_USER=admin --env MARIADB_PASSWORD=1 --env MARIADB_ROOT_PASSWORD=1  mariadb:10.5
## 检测

create table student(
        id int not null primary key auto_increment comment '主键ID',
        name varchar(20) not null comment '姓名',
        age int not null comment '年龄'
)engine=InnoDB default charset=utf8 comment '学生数据表';
 
insert into student(name, age) values('小明', 18);
insert into student(name, age) values('啊俊', 28);
-------------------------------------
<?php
$dsn = 'mysql:dbname=test;host=mysql';
$user = 'root';
$password = '123456';
 
try {
    $dbh = new PDO($dsn, $user, $password);
    $sql = 'SELECT * FROM student where id=?';
    $sth = $dbh->prepare($sql);
    $sth->execute([2]);
    $result = $sth->fetch(PDO::FETCH_ASSOC);
    var_dump($result);
} catch (PDOException $e) {
    echo 'Error: ' . $e->getMessage();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值