首页 >

学无止境

  • Docker构建PHP环境(三)之PHP7.2

    贾磊 贾磊

    发布时间: 2018-12-25 15:13:27 分类:Docker
    1、拉取php镜像
    docker pull php:7.2-fpm

    2、创建项目目录

    mkdir -p /wwwroot/server/project
    mkdir php-fpm && cd php-fpm (在server下目录安装)
    mkdir logs

    3、运行一个临时php容器
    docker run --name testphp -d php:7.2-fpm

    4、复制php配置文件等

    docker cp testphp:/usr/local/etc/php $PWD/php
    cd php && cp php.ini-development php.ini
    cd ..(返回php-fpm目录下)

    5、运行新的php容器
    docker run -p 9000:9000 --name php7.2 -v /wwwroot/server/project:/www -v $PWD/php:/usr/local/etc/php 
    -v $PWD/logs:/phplogs --link mysql:mysql --link redis:redis  -d php:7.2-fpm

    运行成功后删除testphp:  docker rm -f testphp
    *注:(--link参数:把php和mysql还有reids建立连接,当你用php连接mysql的时候host地址可以添mysql, redis同理)
  • Docker构建PHP环境(四)之Nginx

    贾磊 贾磊

    发布时间: 2018-12-25 15:13:34 分类:Docker
    1、拉取nginx镜像

    docker pull nginx

    2、创建nginx目录
    mkdir nginx && cd nginx (在server下目录安装)

    3、运行一个临时nginx容器

    docker run -it --name testnginx -p 80:80 -d nginx

    4、把里面的默认文件copy出来nginx.conf
    docker cp testnginx:/etc/nginx/nginx.conf nginx.conf

    5、删除临时文件

    docker rm -f testnginx

    6、运行新的nginx容器

    docker run -p 80:80 --name mynginx -v /wwwroot/server/project:/www -v $PWD/conf.d:/etc/nginx/conf.d 
    -v $PWD/logs:/wwwlogs -v $PWD/nginx.conf:/etc/nginx/nginx.conf --link php7.2  -d nginx

    7、修改nginx配置文件
    cd conf.d
    vim default.conf
    加入你的server配置文件一下是我的配置
    server {
     
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
     
        # For https
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server ipv6only=on;
        # ssl_certificate /etc/nginx/ssl/default.crt;
        # ssl_certificate_key /etc/nginx/ssl/default.key;
     
    server_name localhost;
    ###注意 这里写的是nginx容器中的目录
        root /www;
        index index.php index.html index.htm;
     
        location / {
             try_files $uri $uri/ /index.php$is_args$args;
        }
     
        location ~ \.php$ {
            try_files $uri /index.php =404;
            #php7.2就是你安装php的时候link的名字
            fastcgi_pass php7.2:9000;
            fastcgi_index index.php;
            fastcgi_buffers 16 16k;
            fastcgi_buffer_size 32k;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            #fixes timeouts
            fastcgi_read_timeout 600;
            include fastcgi_params;
        }
     
        location ~ /\.ht {
            deny all;
        }
     
        location /.well-known/acme-challenge/ {
            root /var/www/letsencrypt/;
            log_not_found off;
        }
    }

    8、重启nginx

    docker restart mynginx

    9、测试

    cd /wwwroot/server/project
    echo '<?php \n phpinfo();'>> index.php

    10、访问你的服务器
    image.png
  • Docker构建PHP环境(五)之扩展安装

    贾磊 贾磊

    发布时间: 2018-12-25 15:59:23 分类:Docker
    1、进入php容器

    docker exec -it php7.2 /bin/bash (这里容器的名称请自行替换)

    2、安装mysqli和pdo_mysql
    docker-php-ext-install mysqli pdo_mysql

    * doker-php-ext-install 仅支持部分核心扩展的安装
    3、安装GD


    安装GD的时候会提示这样的错误image.png1) 安装依赖
    apt-get update -y && apt-get install -y libpng-dev
    2)
    docker-php-ext-install gd
    4、安装phpredis

    用docker安装方式安装不了redis

    image.png
    用以下方式安装
    curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz

    cd /tmp && tar zxvf redis.tar.gz
    mv /tmp/phpredis-3.1.3 /usr/src/php/ext/redis(如果提示目录不存在先执行一次docker-php-ext-install)
    docker-php-ext-install redis

    ctrl+d 退出容器,然后重启php容器服务
    docker restart php7.2

    image.pngimage.pngimage.pngimage.png
  • Docker构建PHP环境(六)之使用mysqli

    贾磊 贾磊

    发布时间: 2018-12-25 15:31:08 分类:Docker
    1、由于MySQL8.0+用户验证方式变了,所以修改你登录用户的验证方式进入mysql容器 登录mysql,修改root用户
    image.png
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
    2、创建数据库和测试表
    create database test;
    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) NOT NULL DEFAULT '',
       PRIMARY KEY (`id`)
     ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
    INSERT INTO `user` VALUES ('1', 'zhangsan');
    INSERT INTO `user` VALUES ('2', 'lisi');
    INSERT INTO `user` VALUES ('3', 'wangermazi');
    flush privileges;
    3、退出容器,重启mysql容器
    docker restart mysql
    cd /wwwroot/server/project/
    vim index.php
    4、写入以下测试代码
    image.png

    5、访问数据image.png