[注:測試主機已設置好軟件源,虛擬主機默認是root用戶登陸]php
[]:~/tmp# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 9.9 (stretch) Release: 9.9 Codename: stretch []:~/tmp#
[docker+] php-7.3.6 redis-5.0.5 +主從 memcached-1.5.16 openresty-1.15.8.1(nginx+lua) mysql-8.0.16 +主從 mongodb-4.0.10
(mysql選擇的是debian、x6四、server版)html
https://www.php.net/distributions/php-7.3.6.tar.xz http://download.redis.io/releases/redis-5.0.5.tar.gz https://memcached.org/files/memcached-1.5.16.tar.gz # https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-server-dbgsym_8.0.16-2debian9_amd64.deb https://openresty.org/download/openresty-1.15.8.1.tar.gz https://fastdl.mongodb.org/src/mongodb-src-r4.0.10.tar.gz
[這裏是後期的註釋]沒用到,文章是一邊寫一邊發的。mysql
以前編譯安裝時的參數:linux
PHP: apt-get install curl libxml2-dev libssl-dev libzip4 libzip-dev libbz2-dev libjpeg-dev libpng-dev libxpm-dev libfreetype6-dev libgmp-dev libgmp3-dev libcurl4-gnutls-dev librecode-dev libreadline-dev libtidy-dev libxslt1-dev -y OpenResty: apt-get install libpcre3-dev libssl-dev perl make build-essential curl -y
環境搭建使用docker,參考相應官網:《Debian安裝Docker》、《使用清華源安裝docker》。準備安裝腳本:nginx
[]:~/tmp# vim docker_install.sh #!/bin/bash #1. 卸載舊版本 apt-get remove docker docker-engine docker.io #2. 安裝依賴 apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y #3. curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - #4. x86_64添加軟件倉庫 add-apt-repository "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -cs) stable" #5. 更新源並安裝 apt-get update && apt-get install docker-ce -y
第一步準備完成。git
[]:~/tmp# chmod +x docker_install.sh && ./docker_install.sh # 下載官方備用 []:~/tmp# docker pull php:7.3 && docker pull mysql:8.0 && docker pull redis:5.0
目標是對官方安裝自定義插件,參考官方:《alpine安裝php》。github
[]:~/tmp# mkdir -p dk/php []:~/tmp# vim dk/php/Dockerfile # php7.3.5; Feb 7, 2019 link: https://github.com/docker-library/php/blob/master/7.3/alpine3.9/fpm/Dockerfile # Base images 基礎鏡像+阿里源 FROM alpine:3.9 #MAINTAINER 維護者信息 MAINTAINER cffycls@foxmail.com # dependencies required for running "phpize" ENV PHP_VERSION 7.3.6 ENV PHP_URL https://secure.php.net/get/php-$PHP_VERSION.tar.xz/from/this/mirror ENV PHPIZE_DEPS \ autoconf \ dpkg-dev dpkg \ file \ g++ \ gcc \ libc-dev \ make \ pkgconf \ re2c RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \ && apk update \ && addgroup -g 82 -S web \ && adduser -u 82 -D -S -G web web \ && mkdir -p "/usr/local/etc/php/conf.d" && mkdir -p "/var/www/html" \ && chown www-data:www-data /var/www/html && chmod 777 /var/www/html \ && apk add --no-cache \ ca-certificates \ curl \ tar \ xz \ openssl \ wget \ && apk add --no-cache --virtual .build-deps \ $PHPIZE_DEPS \ argon2-dev \ coreutils \ curl-dev \ libedit-dev \ libsodium-dev \ libxml2-dev \ openssl-dev \ sqlite-dev \ libjpeg-turbo-dev \ libpng-dev \ gd-dev \ gettext-dev \ freetype-dev \ libxpm-dev COPY php.tar.xz php.tar.xz RUN set -x \ # 下載過慢 # && wget -O php.tar.xz "$PHP_URL" \ && tar -Jxf php.tar.xz && cd php-$PHP_VERSION && ./configure \ --prefix="/usr/local/php" \ --with-config-file-path="/usr/local/php/etc" \ --with-config-file-scan-dir="/usr/local/php/etc/conf.d" \ \ --enable-option-checking=fatal \ --with-mhash \ \ --enable-ftp \ --enable-exif \ --enable-mbregex \ --enable-mbstring \ --enable-mysqlnd \ --enable-sysvmsg \ --enable-opcache \ --enable-pcntl \ --enable-sockets \ --enable-sysvsem \ --enable-xml \ --with-curl \ --with-libedit \ --with-openssl \ --with-zlib \ --with-pcre-regex \ --with-pear \ --with-libxml-dir=/usr \ --with-gd=/usr \ --with-jpeg-dir \ --with-freetype-dir \ --with-xpm-dir \ --with-png-dir \ --with-gettext \ --with-mhash \ --with-iconv \ --disable-fileinfo \ \ --enable-fpm --with-fpm-user=web --with-fpm-group=www-data --disable-cgi \ && make -j "$(nproc)" \ && find -type f -name '*.a' -delete \ && make install \ # && make clean \ && cd ../ && rm -rf php-$PHP_VERSION.tar.xz php-$PHP_VERSION #其餘插件安裝,能夠下載源碼編譯,這裏使用 RUN set -x \ # libevent && wget "https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz" \ && tar -zxf libevent-2.1.8-stable.tar.gz && cd libevent-2.1.8-stable && ./configure --prefix=/usr && make && make install && cd ../ \ && wget "http://pecl.php.net/get/event-2.4.3.tgz" && tar -zxf event-2.4.3.tgz && cd event-2.4.3 && /usr/local/php/bin/phpize \ && ./configure --with-event-libevent-dir=/usr --with-php-config=/usr/local/php/bin/php-config && make && make install && cd ../ \ && rm -rf libevent-2.1.8-stable.tar.gz libevent-2.1.8-stable event-2.4.3.tgz event-2.4.3 \ \ # libuuid && wget "http://nchc.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz" \ && tar -zxf libuuid-1.0.3.tar.gz && cd libuuid-1.0.3 && ./configure --prefix=/usr && make && make install && cd ../ \ && wget http://pecl.php.net/get/uuid-1.0.4.tgz && tar zxf uuid-1.0.4.tgz && cd uuid-1.0.4 && /usr/local/php/bin/phpize \ && ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install && cd ../ \ && rm -rf libuuid-1.0.3.tar.gz libuuid-1.0.3 uuid-1.0.4.tgz uuid-1.0.4 \ \ # && wget "https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz" \ # && tar -zxf libmemcached-1.0.18.tar.gz && cd libmemcached-1.0.18 && ./configure --prefix=/usr && make && make install && cd ../ \ # && wget -O "http://pecl.php.net/get/memcached-3.1.3.tgz" \ # && tar -zxf memcached-3.1.3 && cd memcached-3.1.3 && ./configure --with-event-libevent-dir=/usr --with-php-config=/usr/local/php/bin/php-config && make && make install && cd ../ \ \ && runDeps="$( \ scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ | tr ',' '\n' \ | sort -u \ | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ )" \ && apk add --no-cache $runDeps \ \ && /usr/local/php/bin/pecl update-channels \ # others of necessary && /usr/local/php/bin/pecl install igbinary swoole event uuid inotify redis \ # memcached && rm -rf /tmp/pear ~/.pearrc WORKDIR /usr/local/php/bin []:~/tmp#
這裏參照官方始終沒法構建成功,後面繼續。web