一、拉取带httpd服务的centos镜像到本地
命令:
docker pull freedoms1988/centos7-httpd2.4-sshd
解释:
docker pull【拉取命令】 freedoms1988/centos7-httpd2.4-sshd【远程镜像名】
二、启动带httpd的centos容器
命令:
docker run -d -p 10022:22 -p 8080:80 -v /Users/freedoms/work/Docker/httpd/www:/usr/local/apache2/htdocs freedoms1988/centos7-httpd2.4-sshd /usr/local/sbin/httpd.sh
解释:
docker run【运行命令】 -d【后台运行参数】 -p 10022:22【端口映射:宿主机10022到docker22】 -p 8080:80【端口映射:宿主机8080到docker80】 -v /Users/freedoms/work/Docker/httpd/www:/usr/local/apache2/htdocs【目录映射:宿主机:docker】 freedoms1988/centos7-httpd2.4-sshd【镜像名称】 /usr/local/sbin/httpd.sh【运行镜像时运行脚本】
三、登录容器
命令:
ssh root@localhost -p 10022
解释:
ssh root【用户】@localhost【主机】 -p 10022【端口号】
四、下载并解压php
命令:
1、cd /usr/local/src
2、wget [http://hk2.php.net/get/php-7.2.1.tar.gz/from/this/mirror](http://hk2.php.net/get/php-7.2.1.tar.gz/from/this/mirror)
3、mv mirror php-7.2.1.tar.gz
4、tar -zxvf php-7.2.1.tar.gz
解释:
1、进入源码暂存目录
2、下载php7.2.1
3、修改名称
4、解压
五、下载php编译依赖
命令:
1、cd php-7.2.1
2、yum install -y epel-release make perl perl-devel libxml2-devel openssl-devel bzip2-devel libjpeg libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
解释:
1、进入php7.2.1目录
2、yum install【安装命令】 -y【自动确认参数】epel-release make perl perl-devel libxml2-devel openssl-devel bzip2-devel libjpeg libjpeg-devel libpng-devel freetype-devel libmcrypt-devel【软件名称】
六、下载并解压mysql用作php编译
命令:
1、wget [http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz](http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz)
2、tar -zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
3、mv ./mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
解释:
1、下载mysql5.6
2、解压
3、拷贝mysql目录到安装路径下
七、php编译
命令:
1、cd php-7.2.1
2、./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6
3、make && make install
解释:
1、进入php7.2.1路径
2、配置编译参数,安装路径
3、编译并安装
八、测试编译结果
命令:
ll /usr/local/apache2/modules/libphp7.so
结果:
应打印libphp7.so保存目录
九、配置httpd
操作:
1、vim /usr/local/apache2/conf/httpd.conf
2、AddType application/x-gzip .gz .tgz下添加AddType application/x-httpd-php .php
3、<IfModule dir_module> DirectoryIndex index.html </IfModule>修改为<IfModule dir_module> DirectoryIndex index.html index.htm index.php </IfModule>
4、检查ServerName www.example.com:80应改为ServerName localhost:80
5、/usr/local/apache2/bin/apachectl -k graceful 使配置生效
十、测试
操作:
1、在宿主机 /Users/freedoms/work/Docker/httpd/www中建立测试项目文件夹并编辑phpinfo文件
2、在宿主机浏览器中访问http://localhost:8080/{项目文件夹名称}/test.php
3、浏览器应显示phpinfo信息
十一、将镜像打包后,提交到DockerHub
见向DockerHub私有库中提交镜像
十二、Dockerfile
见GitHub或DockerHub
网友评论