目录
以下示例为在win10上搭建mymps,
一、将mymps项目代码拷贝到Apache服务器hotdocs目录下(如hotdocs/mymps58)
二、运行http://localhsot:{apache_listen_port}/mymps58/install/index.php
注:修改php.ini设置:short_open_tag=On
设置数据库连接、管理员信息
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\programs\Apache24\htdocs\mymps58\install\index.php on line 310
系统前台地址 : http://localhost:8888/mymps58/index.php
系统后台地址 : http://localhost:8888/mymps58/admin/index.php
mymps官方论坛 : http://bbs.mymps.com.cn
三、后台管理界面
四、前台界面
五、后续操作
安装完成后:
- 删除install目录
- 重命名admin目录
六、定制界面
根目录下 erweima.gif 可替换为自己的微信公众号二维码图片,尺寸为175×175
根目录下 erweima_kf.gif 可替换为自己的微信客服二维码图片,尺寸为175×175
根目录下 logo.gif 可替换为自己的网站logo图片,尺寸为205×65
其他教程请自行前往官方查看 https://www.mayicms.com/jiaocheng/
七、封装Docker镜像
参考:
Dockerhub - php
直接使用php-apache官方镜像启动失败
docker pull php:5.6-apache
使用镜像启动后,初始安装界面可以出现,但是在设置完Mysql连接信息后,单击下一步跳转到大白页(无反应),查看install/index.php中步骤5中猜测应该是php连接mysql异常导致
# Dockerfile
# 依赖php官方apache镜像
FROM php:5.6-apache
# 拷贝php初始设置文件(开启short_open_tag)
COPY php.ini /usr/local/etc/php/php.ini
# 拷贝mymps源代码
COPY mymps58/ /var/www/html/
RUN chmod -R 777 /var/www/html/
在启动后遇到的问题如下:
(1)初始安装界面可以出现,但是在设置完Mysql连接信息后,单击下一步跳转到大白页(无反应),查看install/index.php中步骤5中猜测应该是php连接mysql异常导致(需安装mysql模块)
(2)官方php-apache镜像如下报错(需安装rewrite模块):https://blog.csdn.net/wang02011/article/details/8205903
(3)前台首页二维码图片显示不出来,具体调用二维码图片URL报错如下(需安装gd模块):
综上,在查了很多资料,最终参考: github-docker-php-issues 215中描述自制镜像如下:
# docker php-apache 基础镜像(安装mysql、gd等模块)
FROM php:5.6-apache
MAINTAINER "luohq <luohq@meixing.com>"
# 拷贝php.ini(打开short_open_tag=On)
COPY php.ini /usr/local/etc/php/
# 安装php模块(mysql、gd(需支持freetype、jpeg)、rewrite等,且mymps依赖mysql模块,仅安装mysqli会出现之前的白页问题)
RUN apt-get update && \
apt-get install -y libfreetype6-dev libjpeg62-turbo-dev && \
docker-php-ext-install mysql mysqli && \
docker-php-ext-install mbstring && \
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \
docker-php-ext-install gd && \
a2enmod rewrite
RUN chmod 777 -R /var/www
# 构建命令
docker build -t php:5.6-apache-ext .
# mymps基础镜像
# 依赖上一步构建的php:5.6-apache-ext镜像
FROM php:5.6-apache-ext
# 拷贝mymps源代码
COPY mymps58/ /var/www/html/
# 拷贝phpinfo.php界面
COPY phpinfo.php /var/www/html/phpinfo.php
# 赋权文件、安装php-gd
RUN chmod -R 777 /var/www/html
# 构建命令
docker build -t mymps:5.8 .
# 启动mymps命令
docker run -dit -p 8888:80 --name mymps58 mymps:5.8
docker run -dit -p 8888:80 --name mymps58 -v /luo/data/mymps58:/var/www/html xxx/mymps:5.8
期间也在github也在dockerhub上找寻了一款php+apache+mysql整合在一起的镜像,该镜像缺少gd模块,也无法使用,不过其github上Dockerfile源码可供参考。
docker pull pensiero/apache-php-mysql:php5.6
对于该镜像Dockerfile源码可参见:
https://github.com/pensiero/dockerfile-apache-php/blob/feature/php56/Dockerfile
https://github.com/pensiero/dockerfile-apache-php-mysql/blob/php56/Dockerfile
注:
ubuntu修改apache2默认document root参见:Ubuntu 如何修改 Apache2网站根目录和默认网页
八、话外音
我在制作docker php镜像的过程中遇到N多问题,后来运维小伙伴帮忙做了个基础镜像,非常秀,直接就启动成功了。
运维小伙伴在基础ubuntu docker镜像中通过LNMP一键脚本很方便的就做出了镜像:
# 安装lnmp环境
wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./install.sh lnmp
# 安装lamp环境
wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./install.sh lamp
之后直接用运维小伙伴给的镜像制作Dockerfile如下:
# 基础镜像(这个基础镜像是运维直接做好给我的内部镜像)
FROM apache2.4-php5.6:v1
# 拷贝mymps源代码
COPY mymps58/ /home/wwwroot/default/
# 赋权文件、安装php-gd
RUN chmod -R 777 /home/wwwroot/default
# 启动命令
CMD ["/usr/local/apache/bin/apachectl", "-D", "FOREGROUND"]