安装基本配置:
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
进入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