CentOS7基于Docker安装nginx+php+mysql+redis+adminer运行环境

Docker   2023-12-11 17:17   158   0  

安装基本配置:

yum install git
yum install php-pear php-devel


关闭防火墙:

sudo systemctl stop firewalld
sudo systemctl disable firewalld


配置yum阿里云镜像:

yum-config-manager --add-repo  
原yum配置:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo


安装docker:

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin


安装docker-compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose//添加执行权限


启动docker:

systemctl start docker


运行redisinight:

docker run -d --name redisinsight -v redisinsight:/db -p 8005:8001 redislabs/redisinsight


运行portainer:

docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest


克隆项目并安装启动Docker:

git clone https://gitee.com/wupz/dnmp.git
cd dnmp


修改文件docker-compose.yml:

将nginx下的里8000:8000端口被占用改为80:8000,
nginx:
    depends_on:
      - mysql
      - redis     
    image: nginx:stable
    container_name: nginx
    ports:
        - "80:8000"
        - "8001:8001"
    restart: always
    volumes:
        - ./data/www:/var/www/html
        - ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf
        - ./conf/nginx/conf.d:/etc/nginx/conf.d
        - ./logs/nginx:/var/log/nginx


查看redis密码Support@2022:

redis:
    image: redis:5
    container_name: redis
    command: redis-server --appendonly yes --requirepass Support@2022
    restart: always
    volumes:   
      - ./data/redis:/data


其他配置php,mysql,adminer参数和挂载信息对应查询docker-compose.yml文件。


拉取镜像及启动Docker:

docker-compose up


访问:http://0.0.0.0/


进入php容器安装扩展:

docker exec -it php /bin/bash
docker-php-ext-install mysql
docker-php-ext-install mysqli
docker-php-ext-install pdo_mysql
docker-php-ext-install redis
docker-php-ext-install bcmath
docker-php-ext-install mbstring
docker-php-ext-install opcache


安装composer

docker exec -it php /bin/bash
docker exec -it php bash
curl -sS https://getcomposer.org/installer | php
mv compose.phar /usr/local/bin/composer
//方法一
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
//方法二
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
mv composer.phar /usr/local/bin/composer
//更新版本
composer selfupdate   #经常执行保持Composer一直是最新版本


Docker容器内安装:

docker-php-ext-install 命令
docker-php-ext-install #查看可用的安装包
docker-php-ext-install sockets #安装包
docker-php-ext-install -j$(nproc)   #直接向脚本提供系统可用的物理线程数,通常为cpu核数
//默认可用的安装扩展
amqp bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter 
ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mongodb mysqli 
oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql 
phar posix pspell readline recode redis reflection session shmop simplexml snmp soap sockets sodium spl 
standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zend_test zip
//安装基础插件
docker-php-ext-install opcache pdo pdo_mysql mysqli
//安装redis扩展
参考 https://www.cnblogs.com/coolr/p/14762878.html
php的redis包 https://pecl.php.net/package/redis


安装和编译Redis:

curl -L -o /tmp/redis.tar https://pecl.php.net/get/redis-5.3.5.tgz
tar -zxvf /tmp/redis.tar
cd /tmp/redis-5.3.5
cp -r /tmp/redis-5.3.5 /usr/src/php/ext/redis 
cd /usr/src/php/ext/redis
docker-php-ext-install redis  
php --ri redis 或者  php -m


pecl安装Redis:

pecl install -o -f redis && rm -rf /tmp/pear && docker-php-ext-enable redis 
php -m
安装amqp扩展
https://blog.csdn.net/u012160319/article/details/107991828
pecl install amqp


查看版本 https://pecl.php.net/package/amqp:

curl -L -o /tmp/amqp.tar https://pecl.php.net/get/amqp-1.10.2.tgz
tar -zxvf /tmp/amqp.tar
cp -r /tmp/amqp-1.10.2 /usr/src/php/ext/amqp
cd /usr/src/php/ext/amqp
docker-php-ext-installamqp
docker-php-ext-enable amqp


安装rabbitmq扩展:

apt-get install librabbitmq-dev
apt-get update


安装zip扩展所需的依赖扩展:

apt-get update && apt-get install -y zlib1g-dev && apt-get install -y libzip-dev
docker-php-ext-install zip


安装mongodb扩展:

curl -L -o /tmp/mongodb.tar  https://pecl.php.net/get/mongodb-1.12.1.tgz
tar -zxvf /tmp/mongodb.tar
cp -r /tmp/mongodb-1.12.1 /usr/src/php/ext/mongodb
rm -rf /tmp/mongodb-1.12.1
cd /usr/src/php/ext/mongodb
docker-php-ext-install mongodb


安装gd扩展:

#apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev
#docker-php-ext-install gd
#gd2安装 包含jpeg,webp支持
apt-get install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev libmcrypt-dev  libjpeg62-turbo-dev \
  && docker-php-source extract \
  && cd /usr/src/php/ext/gd  \
  && docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2   \
  && docker-php-ext-install gd


安装zip扩展:

apt-get update  
apt-get install -y zlib1g-dev libzip-dev
docker-php-ext-install zip


安装bcmath扩展:

docker-php-ext-install bcmath
docker-php-ext-install -j$(nproc) bcmath


安装soap扩展:

apt-get install libxml2-dev
#centos安装 yum install libxml2-devel
docker-php-ext-install soap


docker-compose.yml文件全部代码:

version: '3'

services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    volumes:
      - ./data/mysql:/var/lib/mysql
      - ./conf/mysql:/etc/mysql/conf.d
    restart: always
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: Support@2022
      MYSQL_DATABASE: laravel
      MYSQL_USER: laravel
      MYSQL_PASSWORD: Laravel@Support

  redis:
    image: redis:5
    container_name: redis
    command: redis-server --appendonly yes --requirepass Support@2022
    restart: always
    volumes:   
      - ./data/redis:/data

  adminer:
    depends_on:
      - mysql
    image: adminer:latest
    container_name: adminer
    command: php -S 0.0.0.0:8080 -t /var/www/html
    restart: always

  php:
    depends_on:
      - mysql
      - redis
    build: ./conf/php74/
    image: dump-php-fpm:0.0.1
    container_name: php
    restart: always
    volumes:
      - ./data/www:/var/www/html
      - ./conf/php74/php.ini:/usr/local/etc/php/php.ini
      - ./conf/php74/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf

  nginx:
    depends_on:
      - mysql
      - redis     
    image: nginx:stable
    container_name: nginx
    ports:
        - "8000:8000"
        - "8001:8001"
    restart: always
    volumes:
        - ./data/www:/var/www/html
        - ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf
        - ./conf/nginx/conf.d:/etc/nginx/conf.d
        - ./logs/nginx:/var/log/nginx



博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。