【开源电商网站】(2),使用docker-compose和dockerfile进行配置,设置自定义的镜像,安装插件,增加汉化包,支持中文界面汉化。

本文主要是介绍【开源电商网站】(2),使用docker-compose和dockerfile进行配置,设置自定义的镜像,安装插件,增加汉化包,支持中文界面汉化。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目相关代代码地址

相关内容:
https://blog.csdn.net/freewebsys/category_12461196.html

原文地址:
https://blog.csdn.net/freewebsys/article/details/133666433

包括以下运行的详细代码:
https://gitee.com/study-demo-all/oscommerce2-study

视频教程:

https://www.bilibili.com/video/BV1kB4y1Z7HS/?vd_source=4b290247452adda4e56d84b659b0c8a2

1,使用dockerfile进行构建

首先是镜像的选择,统一使用debian的基础镜像,库安装方便。同时镜像也比较小。
常用的命令也非常熟悉。

相关的debian版本:

Debian 11 “Bullseye” To be defined: roughly July 2024 to June 2026

https://wiki.debian.org/LTS
在这里插入图片描述

2,然后就使用到了docker-compose的 build 命令

build: ./dir 是个文件夹
里面需要有个文件叫 Dockerfile, 才可以。

对于php-fpm来说是:

############### 使用 php:7-fpm 版本 ###############php-fpm:restart: alwaysbuild: ./php-fpm-bullseye-mysqlimage: php-fpm-bullseye-mysqlcontainer_name: php-fpm

其中需要使用 php7会有一些警告。配置下就可以。
但是php8 不能运行了一个函数报错了:


Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc() in /var/www/html/includes/functions/compatibility.php:46 Stack trace: #0 /var/www/html/includes/application_top.php(41): require() #1 /var/www/html/index.php(13): require('/var/www/html/i...') #2 {main} thrown in /var/www/html/includes/functions/compatibility.php on line 46

可以安装成功,但是不能运行。
The PHP function get_magic_quotes_gpc() was deprecated in PHP 7.4 and removed in PHP 8.

也就是最高的版本就是 php7 才可以运行osc项目。

3,其中的dockerfile

# 只能使用最新的 PHP7 版本
FROM php:7-fpm-bullseyeRUN sed -i "s/deb.debian.org/mirrors.aliyun.com/g" /etc/apt/sources.list &&  apt update && \apt -y install wget libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev libc-client-dev libkrb5-dev libzip-dev && \docker-php-ext-configure gd --with-jpeg=/usr/include --with-freetype=/usr/include/ && \docker-php-ext-install gd && docker-php-ext-enable gd && \docker-php-ext-install mysqli && docker-php-ext-enable mysqli && apt clean 

然后执行执行 docker-compose up -d 就可以同时构建镜像,然后再运行。

本地就会有个镜像:

$ docker images 
REPOSITORY                         TAG              IMAGE ID       CREATED         SIZE
php-fpm-bullseye-mysql             latest           8c83373ac361   9 hours ago     491MB

4,最后启动成功了

在这里插入图片描述

5,完整的docker-compose文件:

## 启动命令:
## docker-compose up -d -f docker-compose-mysql.ymlversion: "3"
services:################## mysql 数据库 5.7 版本 ##################mysql-osc:restart: alwaysimage: mysql:5.7container_name: mysql-oscports:- "3306:3306"volumes:- "./data/mysql/data:/var/lib/mysql"- "./mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf"#- "./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql"- "./mysql/connDB.sh:/connDB.sh"environment:MYSQL_ROOT_PASSWORD: mysqloscMYSQL_DATABASE: oscTZ: Asia/Shanghaicommand: ['--character-set-server=utf8mb4','--collation-server=utf8mb4_general_ci','--max_connections=3000']############### 使用 php:7-fpm 版本 ###############php-fpm:restart: alwaysbuild: ./php-fpm-bullseye-mysqlimage: php-fpm-bullseye-mysqlcontainer_name: php-fpmports:- "9000:9000"volumes:- "./oscommerce2-2.3.4/catalog:/var/www/html"- "./php/php-fpm.conf:/usr/local/etc/php-fpm.conf"links:- mysql-osc:mysql-osc############### 使用 nginx 版本 ###############nginx-osc:restart: alwaysimage: nginx:bullseyecontainer_name: nginx-oscports:- "8080:8080"volumes:- "./oscommerce2-2.3.4/catalog:/var/www/html"- "./data/nginx/logs:/data/logs"- "./nginx/nginx.conf:/etc/nginx/conf.d/default.conf"links:- php-fpm:php-fpm

6,汉化包

版本虽然古老但是也是支持汉化的。
也可以搜索到相关的汉化包:

汉化后的效果:
在这里插入图片描述
解压缩安装到admin目录下面:
然后就是增加配置,发现需要增加类目和产品描述,否则产品也不展示:

2 代表是中文数据,插入结算货币和语言:


INSERT INTO currencies VALUES (3,'Chinese RMB','CNY','¥','','.',',','2','1.0000', now());
INSERT INTO languages VALUES (2,'简体中文','cn','icon.gif','chinese',0);INSERT INTO categories_description VALUES ( '1', '2', '硬件');
INSERT INTO categories_description VALUES ( '2', '2', '软件');
INSERT INTO categories_description VALUES ( '3', '2', 'DVD电影');
INSERT INTO categories_description VALUES ( '4', '2', '显卡');
INSERT INTO categories_description VALUES ( '5', '2', '打印机');
INSERT INTO categories_description VALUES ( '6', '2', '显示器');
INSERT INTO categories_description VALUES ( '7', '2', '扬声器');
INSERT INTO categories_description VALUES ( '8', '2', '键盘');
INSERT INTO categories_description VALUES ( '9', '2', '鼠标');
INSERT INTO categories_description VALUES ( '10', '2', '动作');
INSERT INTO categories_description VALUES ( '11', '2', '科幻');
INSERT INTO categories_description VALUES ( '12', '2', '喜剧');
INSERT INTO categories_description VALUES ( '13', '2', '卡通');
INSERT INTO categories_description VALUES ( '14', '2', '惊悚');
INSERT INTO categories_description VALUES ( '15', '2', '戏剧');
INSERT INTO categories_description VALUES ( '16', '2', '内存');
INSERT INTO categories_description VALUES ( '17', '2', 'CD-ROM 驱动器');
INSERT INTO categories_description VALUES ( '18', '2', '模拟');
INSERT INTO categories_description VALUES ( '19', '2', '动作');
INSERT INTO categories_description VALUES ( '20', '2', '策略');
INSERT INTO categories_description VALUES ( '21', '2', '配件');INSERT INTO products_description VALUES (1,2,'Matrox G200 MMS','加强了其在多监视器领域的领先地位,Matrox Graphics Inc.再次开发出业界最灵活、最先进的解决方案。向您介绍新的 Matrox G200 多监视器系列;首款支持单个 8 英寸 PCI 主板上最多四个 DVI 数字平板显示器的显卡。随着金融工作场所对数字平板显示器的需求不断增长,Matrox G200 MMS 成为灵活解决方案的终极选择。Matrox G200 MMS 还支持数字显示工作组(DDWG)创建的新数字视频接口(DVI),旨在促进数字平板显示器的采用。其他配置包括复合视频捕获能力和内置电视调谐器,使 Matrox G200 MMS 成为满足商务需求的完整解决方案。基于获奖的 MGA-G200 图形芯片,Matrox G200多监视器系列提供卓越的2D/3D图形加速功能,满足诸如实时股票报价(Versus)、实时视频流(Reuters 和 Bloombergs)、多个窗口应用程序、文字处理、电子表格以及 CAD 等商务应用的需求。','www.matrox.com/mga/products/g200_mms/home.cfm',0);
INSERT INTO products_description VALUES (2,2,'Matrox G400 32MB','<strong>Dramatically Different High Performance Graphics</strong><br /><br />Introducing the Millennium G400 Series - a dramatically different, high performance graphics experience. Armed with the industry\'s fastest graphics chip, the Millennium G400 Series takes explosive acceleration two steps further by adding unprecedented image quality, along with the most versatile display options for all your 3D, 2D and DVD applications. As the most powerful and innovative tools in your PC\'s arsenal, the Millennium G400 Series will not only change the way you see graphics, but will revolutionize the way you use your computer.<br /><br /><strong>Key features:</strong><ul><li>New Matrox G400 256-bit DualBus graphics chip</li><li>Explosive 3D, 2D and DVD performance</li><li>DualHead Display</li><li>Superior DVD and TV output</li><li>3D Environment-Mapped Bump Mapping</li><li>Vibrant Color Quality rendering </li><li>UltraSharp DAC of up to 360 MHz</li><li>3D Rendering Array Processor</li><li>Support for 16 or 32 MB of memory</li></ul>','www.matrox.com/mga/products/mill_g400/home.htm',0);
....

也就是 categories_description products_description 类目和产品描述都需要输入英文信息才可以。
只是翻译了第一条数据,其他的数据没有翻译,直接拷贝的才可以。

效果是:

在这里插入图片描述

7,总结

汉化的入口在语言上面:

在这里插入图片描述
然后就可以切换英文和中文信息了。

这篇关于【开源电商网站】(2),使用docker-compose和dockerfile进行配置,设置自定义的镜像,安装插件,增加汉化包,支持中文界面汉化。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/190927

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java