加入收藏 | 设为首页 | 会员中心 | 我要投稿 吉安站长网 (https://www.0796zz.com.cn/)- 科技、图像处理、媒体智能、办公协同、操作系统!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php使用pecl方式安装扩展操作示例

发布时间:2022-08-03 10:48:23 所属栏目:PHP教程 来源:互联网
导读:在本篇文章里小编给大家整理了关于docker-compose部署php项目的相关实例以及代码内容,有需要的朋友们可以学习参考下。 1.制定特定扩展的PHP镜像 sudo mkdir -p /www/docker sudo cd /www/docker sudo vi Dockerfile FROM php:7.2-fpm-alpine MAINTAINER dia
    在本篇文章里小编给大家整理了关于docker-compose部署php项目的相关实例以及代码内容,有需要的朋友们可以学习参考下。
 
    1.制定特定扩展的PHP镜像
 
    sudo mkdir -p /www/docker
 
    sudo cd /www/docker
 
    sudo vi Dockerfile
 
    FROM php:7.2-fpm-alpine
    
    MAINTAINER diaocheweide
    
    RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
    
    RUN apk update && apk add --no-cache --virtual .build-deps
    
        $PHPIZE_DEPS
    
        curl-dev
    
        imagemagick-dev
    
        libtool
    
        libxml2-dev
    
        postgresql-dev
    
        sqlite-dev
    
        libmcrypt-dev
    
        freetype-dev
    
        libjpeg-turbo-dev
    
        libpng-dev
    
      && apk add --no-cache
    
        curl
    
        imagemagick mysql-client
    
        postgresql-libs
    
      && pecl install imagick
    
      && pecl install mcrypt-1.0.1
    
      && docker-php-ext-install zip
    
      && docker-php-ext-install pdo_mysql
    
      && docker-php-ext-install opcache
    
      && docker-php-ext-install mysqli
    
      && docker-php-ext-enable mcrypt
    
      && docker-php-ext-enable imagick
    
      && docker-php-ext-install
    
        curl
    
        mbstring
    
        pdo
    
        pdo_mysql
    
        pdo_pgsql
    
        pdo_sqlite
    
        pcntl
    
        tokenizer
    
        xml
    
        zip
    
        && docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" iconv
    
      && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
    
      && docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" gd
    
      && pecl install -o -f redis
    
      && rm -rf /tmp/pear
    
      && docker-php-ext-enable redis
    
      && rm -r /var/cache/apk/*
    
    EXPOSE 9000
    2.编写yml文件
 
    sudo vi docker-compose.yml
 
    version: '3.1'
    
    services:
    
     nginx:
    
      image: nginx
    
      container_name: nginx
    
      restart: always
    
      ports:
    
       - "80:80"
    
       - "443:443"
    
      volumes:
    
       - /www/data/nginx/conf.d:/etc/nginx/conf.d
    
       - /www/default:/www/default
    
      networks:
    
       csl:
    
        ipv4_address: 172.18.0.2
    
       
    
     php:
    
      image: php:7.2-fpm-alpine-dcwd
    
      container_name: php7.2
    
      restart: always
    
      volumes:
    
       - /www/default:/www/default
    
      networks:
    
       csl:
    
        ipv4_address: 172.18.0.3 mysql5:
    
      image: mysql:5.7
    
      container_name: mysql5
    
      restart: always
    
      ports:
    
       - "3306:3306"
    
      environment:
    
       MYSQL_ROOT_PASSWORD: thisyourpassword
    
      volumes:
    
       - /www/data/mysql/mysql5:/var/lib/mysql #- /www/data/mysql/mysql5/conf/my.cnf:/etc/my.cnf
    
       #- /www/data/mysql/mysql5/init:/docker-entrypoint-initdb.d
    
      networks:
    
       csl:
    
        ipv4_address: 172.18.0.4 mysql8:
    
      image: mysql:8
    
      container_name: mysql8
    
      restart: always
    
      environment:
    
       MYSQL_ROOT_PASSWORD: thisyourpassword
    
      volumes:
    
       - /www/data/mysql/mysql8:/var/lib/mysql networks:
    
       csl:
    
        ipv4_address: 172.18.0.5
    
    networks:
    
     csl:
    
      driver: bridge
    
      ipam:
    
       config:
    
        - subnet: 172.18.0.0/16
    3.配置default.conf文件
 
    sudo vi /www/data/nginx/default.conf
 
    server {
    
      listen    80;
    
      server_name localhost;
    
      #charset koi8-r;
    
      #access_log /var/log/nginx/host.access.log main;
    
      location / {
    
        root  /www/default;
    
        index index.php index.html index.htm;
    
      }
    
      #error_page 404       /404.html;
    
      # redirect server error pages to the static page /50x.html
    
      #
    
      error_page  500 502 503 504 /50x.html;
    
      location = /50x.html {
    
        root  /usr/share/nginx/html;
    
      }
    
      # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    
      #
    
      #location ~ .php$ {
    
      #  proxy_pass  http://127.0.0.1;
    
      #}
    
      # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    
      #
    
      location ~ .php$ {
    
        root      /www/default;
    
        fastcgi_pass  php7.2:9000;#php容器名或者php容器ip
    
        fastcgi_index index.php;
    
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
        include    fastcgi_params;
    
      }
    
      # deny access to .htaccess files, if Apache's document root
    
      # concurs with nginx's one
    
      #
    
      #location ~ /.ht {
    
      #  deny all;
    
      #}
    
    }
    4.修改mysql允许远程连接并新建数据库
 
    docker exec -it mysql5 bash
    
    mysql -u root -p
    
    use mysql;
    
    update user set host='%' where user='root';
    
    flush privileges;
    5.创建并且启动容器
 
    docker-compose up -d
 
    6.新建index.php测试mysql连接
 
    <?php
    
    $con = mysqli_connect("172.18.0.4", "root", "thisyourpassword", "shop");
    
    if ($con) {
    
      echo '连接 MYSQL 成功';
    
    } else {
    
      echo "连接 MySQL 失败: " . mysqli_connect_error();
    
    } mysqli_close($con);

(编辑:吉安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读