https://hub.docker.com/_/php/
应用: basic-> 添加服务: httpd
镜像: php:5.6.40-apache-stretch or 91.cndo.org:5000/http:httpd56-20190101
卷:
/data/site:/data/site
/data/file:/data/file
/data/docker/apache/vhost:/etc/apache2/sites-enabled:ro
/data/docker/nginx/php/php.ini:/usr/local/etc/php/conf.d/uploads.ini:ro
apachectl -v # 查看apache版本
php -v # 查看php版本
/usr/sbin/apache2 -k restart # -k start|restart|graceful|graceful-stop|stop # apache命令
/usr/local/etc/php-fpm.conf # php配置
netstat -ant | grep 9000 # 验证php进程,是否成功开启
which php # 查找php地址
/usr/local/bin/phpize
/usr/local/bin/php-config
进入容器安装php扩展: http://pecl.php.net/
apt-get update -y; # 更新软件信息数据库
apt-get install -y wget vim net-tools cron curl git cmake build-essential autoconf automake libtool zlib1g-dev zip openssl libssl-dev libpcre3 libpcre3-dev libfreetype6-dev libfontconfig1-dev libgpm-dev fontconfig gcc make autoconf libc6-dev pkg-config libmcrypt-dev libmemcached-dev zlib1g-dev bzip2 libbz2-dev libxml2-dev libfreetype6-dev libjpeg62-turbo-dev libpng-dev libpcre3-dev libbz2-dev libxml2-dev mcrypt;
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime;
apt-get dist-upgrade -y; # 这一步安装所有可用更新,包括新内核
apt-get upgrade -y; # 进行系统升级
apt autoremove; # Debian系统中删除过时/不需要的软件包。
apt clean;
cat /etc/debian_version; # 查看内核版本
修改php上传大小:
vi /data/docker/nginx/php/php.ini
allow_url_fopen = On
file_uploads = On
memory_limit = 10240M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 60
激活apache mod_rewrite模块:
a2enmod rewrite
a2enmod proxy
a2enmod proxy_ajp
a2enmod proxy_http
a2enmod vhost_alias
a2enmod proxy_balancer
service apache2 restart # 重启
安装:pdo_mysql mysqli fileinfo opcache # mysql php5需要
docker-php-ext-install gettext bz2 pdo_mysql mysql mysqli fileinfo soap opcache bcmath gettext sockets exif iconv mbstring bz2;
安装:phpredis https://github.com/phpredis/phpredis/releases
curl -L -o phpredis.tar.gz https://github.com/phpredis/phpredis/archive/4.3.0.tar.gz
tar xfz phpredis.tar.gz
rm -rf phpredis.tar.gz
mkdir -p /usr/src/php/ext
mv phpredis-4.3.0 /usr/src/php/ext/redis
docker-php-ext-install redis
安装: mcrypt https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/
wget https://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
wget https://nchc.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
wget https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar -xzvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8
./configure --disable-posix-threads --enable-static && make && make install
docker-php-ext-install mcrypt
cd ../
安装:imagemagick https://www.imagemagick.org/script/download.php
curl -L -o ImageMagick.tar.gz https://www.imagemagick.org/download/ImageMagick.tar.gz
tar xfz ImageMagick.tar.gz && rm -rf ImageMagick.tar.gz
cd ImageMagick-7.1.1-4 && ./configure && make && make install && ldconfig /usr/local/lib
cd ../
安装:imagick https://pecl.php.net/package/imagick
curl -L -o imagick.tgz https://pecl.php.net/get/imagick-3.7.0.tgz
tar zxvf imagick.tgz && rm -rf imagick.tgz
mkdir -p /usr/src/php/ext
mv imagick-3.7.0 /usr/src/php/ext/imagick
docker-php-ext-install imagick
安装freetype https://download.savannah.gnu.org/releases/freetype/
wget https://download.savannah.gnu.org/releases/freetype/freetype-2.13.0.tar.gz
tar -xzvf freetype-2.13.0.tar.gz;
cd freetype-2.13.0;
-cd freetype-2.13.0;
./configure --prefix=/usr/local/freetype --without-harfbuzz;
make clean # 可以忽略, 之前有安装记录,重装之用
make; make install;
whereis freetype # 验证
cd ../
安装jpeg库 http://www.ijg.org/
wget http://www.ijg.org/files/jpegsrc.v9e.tar.gz;
tar -xzvf jpegsrc.v9e.tar.gz;
cd jpeg-9c;
./configure --enable-shared --enable-static --prefix=/usr/local/libjpeg
make clean # 可以忽略, 之前有安装记录,重装之用
make; make install;
whereis libjpeg; # 验证
cd ../
安装png库 https://sourceforge.net/projects/libpng/files/
wget https://nchc.dl.sourceforge.net/project/libpng/libpng16/1.6.39/libpng-1.6.39.tar.gz
tar -xzvf libpng-1.6.39.tar.gz;
cd libpng-1.6.39;
./configure --prefix=/usr/local/libpng --enable-shared;
make clean # 可以忽略, 之前有安装记录,重装之用
make; make install;ldconfig;
whereis libpng; # 验证
cd ../
安装fontconfig
# apt-get install libfreetype6-dev libfontconfig1-dev libgpm-dev
# apt-get install fontconfig
whereis fontconfig; # 验证 ; /usr/share/fontconfig
安装:gd https://github.com/libgd/libgd/releases
apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev libpcre3-dev zlib1g-dev libbz2-dev libxml2-dev mcrypt
wget https://github.com/libgd/libgd/releases/download/gd-2.3.3/libgd-2.3.3.tar.gz
tar xfz libgd-2.3.3.tar.gz && rm -rf libgd-2.3.3.tar.gz
cd libgd-2.3.3
./configure --prefix=/usr/local/libgd --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg --with-fontconfig=/usr/share/fontconfig;
make && make install
docker-php-ext-install gd zip gettext bz2 iconv
cd ../
设置php.ini:
cd /usr/local/etc/php/
cp php.ini-production php.ini
sed -i 's~;date.timezone =~date.timezone = "Asia/Shanghai"~g' /usr/local/etc/php/php.ini
sed -i 's~;session.save_path = "/tmp"~session.save_path = "/tmp"~g' /usr/local/etc/php/php.ini
sed -i 's~display_errors = Off~display_errors = On~g' /usr/local/etc/php/php.ini
sed -i 's~short_open_tag = Off~short_open_tag = On~g' /usr/local/etc/php/php.ini
安装: memcached https://pecl.php.net/package/memcached
# apt-get install -y libmemcached-dev zlib1g-dev
pecl install memcached-2.2.0 # 支持php5.6
docker-php-ext-enable memcached
echo extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/memcached.so > /usr/local/etc/php/conf.d/docker-php-ext-memcached.ini
安装ionCube:
php -i | grep extension_dir # 查看PHP存放模块的目录
cd /data/file/soft/src/
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xvfz ioncube_loaders_lin_x86-64.tar.gz
cd ioncube
cp ioncube_loader_lin_5.6.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
echo zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/ioncube_loader_lin_5.6.so >> /usr/local/etc/php/php.ini
安装分词:scws,php-scws: https://abc.htmltoo.com/thread-44748.htm
cd /data/file/soft/src/scws;
wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2;
wget http://www.xunsearch.com/scws/down/scws-dict-chs-gbk.tar.bz2;
wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2;
tar xvjf scws-1.2.3.tar.bz2;
tar xvjf scws-dict-chs-gbk.tar.bz2;
tar xvjf scws-dict-chs-utf8.tar.bz2;
cd scws-1.2.3
./configure --prefix=/usr/local/scws ; make ; make install
ls -al /usr/local/scws/lib/libscws.la; # 执行下面命令看看文件是否存在
/usr/local/scws/bin/scws -h # 试试执行 scws-cli 文件
cd ../;
cp -a dict.utf8.xdb /usr/local/scws/etc/;
cp -a dict.xdb /usr/local/scws/etc/;
安装php分词:php-scws
cd scws-1.2.3
cp -a phpext /usr/src/php/ext/
cd /usr/src/php/ext
mv phpext scws
docker-php-ext-install scws
清理:
apt autoremove
apt clean
rm -rf /usr/src/php/ext/*
rm -rf /var/www/html/*