当前位置: 首页 > news >正文

【开源电商网站】(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进行配置,设置自定义的镜像,安装插件,增加汉化包,支持中文界面汉化。

项目相关代代码地址 相关内容&#xff1a; https://blog.csdn.net/freewebsys/category_12461196.html 原文地址&#xff1a; https://blog.csdn.net/freewebsys/article/details/133666433 包括以下运行的详细代码&#xff1a; https://gitee.com/study-demo-all/oscommerc…...

HTML5开发实例-3D全景(ThreeJs全景Demo) 详解(图)

前言 在现在市面上很多全景H5的环境下,要实现全景的方式有很多,可以用css3直接构建也可以用基于threeJs的库来实现,还有很多别的制作全景的软件使用 本教学适用于未开发过3D全景的工程狮 如果觉得内容太无聊可以直接跳到最后 下载代码 理论 整个3D全景所用的相关理论就…...

springboot项目静态资源映射

1. springboot项目静态资源映射 import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import...

【Linux初阶】多线程1 | 页表的索引作用,线程基础(优缺点、异常、用途),线程VS进程,线程控制,C++多线程引入

文章目录 ☀️一、深入理解页表☀️二、Linux线程概念&#x1f33b;1.什么是线程&#xff08;重点&#xff09;⚡&#xff08;1&#xff09;线程的概念⚡&#xff08;2&#xff09;线程库初识 &#x1f33b;2.线程的优点&#x1f33b;3.线程的缺点&#x1f33b;4.线程异常&…...

Flink--9、双流联结(窗口联结、间隔联结)

星光下的赶路人star的个人主页 我还有改变的可能性&#xff0c;一想起这点&#xff0c;我就心潮澎湃 文章目录 1、基于时间的合流——双流联结&#xff08;Join&#xff09;1.1 窗口联结&#xff08;Window Join&#xff09;1.2 间隔联结&#xff08;Interval Join&#xff09;…...

家政服务行业做开发微信小程序可以实现什么功能

家政服务行业开发微信小程序可以实现多种功能&#xff0c;从而提升服务品质和效率&#xff0c;下面我们来详细介绍一些可能实现的功能。 一、展示服务信息 家政服务微信小程序可以展示各种服务信息&#xff0c;包括各类家政服务项目、价格、服务流程、服务人员信息等。用户可以…...

20哈希表-三数之和

目录 LeetCode之路——15. 三数之和 分析&#xff1a; 官方题解&#xff1a; LeetCode之路——15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nu…...

JVM 运行时数据区和垃圾收集算法

在 《深入理解 Java 虚拟机》一书中&#xff0c;作者将运行时数据区和垃圾收集算法放在开头章节&#xff0c;说明了这两个知识点是进一步学习 JVM 的基础知识点&#xff0c;相比后续的 垃圾收集器和 JMM&#xff0c;它也更加的简单。 运行时数据区 运行时数据区是《Java 虚拟…...

Java基于SpringBoot的高校招生系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 简介系统设计思路1 数据库设计2 系统整体设计 系统详细设计1系统功能模块2. 管理员功能模块3学生…...

6. Python使用Asyncio开发TCP服务器简单案例

1. 说明 在Python中开发TCP/IP服务器有两种方式&#xff0c;一种使用Socket&#xff0c;需要在py文件中引入对应的socket包&#xff0c;这种方式只能执行单项任务&#xff1b;另一种方式使用Asyncio异步编程&#xff0c;可以一次创建多个服务器执行不同的任务。 2. 接口说明 …...

景联文科技:AI大模型强势赋能,助力自动驾驶迭代升级

我国一直以来都将自动驾驶作为新兴产业发展的重点领域之一&#xff0c;工信部等相关部委出台了一系列自动驾驶发展战略、规划和标准&#xff0c;一些地方政府也在积极开展关于自动驾驶的地方立法&#xff0c;为自动驾驶技术的研发和应用提供更加具体的法律保障。例如&#xff0…...

多周期CPU设计

多周期CPU设计 指令类型clock skew 指令类型 在计算机体系结构中&#xff0c;指令可以分为不同的类型&#xff0c;通常有R-type、I-type和J-type指令。 R-type指令&#xff08;Register-type指令&#xff09;&#xff1a; R-type指令通常用于执行寄存器之间的操作&#xff0c;…...

Go 复合类型之字典类型介绍

Go 复合类型之字典类型介绍 文章目录 Go 复合类型之字典类型介绍一、map类型介绍1.1 什么是 map 类型&#xff1f;1.2 map 类型特性 二.map 变量的声明和初始化2.1 方法一&#xff1a;使用 make 函数声明和初始化&#xff08;推荐&#xff09;2.2 方法二&#xff1a;使用复合字…...

对于无法直接获取URL的数据爬虫

在爬学校安全教育题库的时候发现题库分页实际上执行了一段js代码&#xff0c;如下图所示 点击下一页时是执行了函数doPostBack&#xff0c;查看页面源码如下 点击下一页后这段js提交了一个表单&#xff0c;随后后端返回对应数据&#xff0c;一开始尝试分析获取对应两个参数&a…...

35.树与二叉树练习(1)(王道第5章综合练习)

【所用的树&#xff0c;队列&#xff0c;栈的基本操作详见上一节代码】 试题1&#xff08;王道5.3.3节第3题&#xff09;&#xff1a; 编写后序遍历二叉树的非递归算法。 参考&#xff1a;34.二叉链树的C语言实现_北京地铁1号线的博客-CSDN博客https://blog.csdn.net/qq_547…...

JSON数据处理工具-在线工具箱网站tool.qqmu.com的使用指南

导语&#xff1a;无论是处理JSON数据、进行文本数字处理、解码加密还是使用站长工具&#xff0c;我们都希望能够找到一个功能强大、简便易用的在线平台。tool.qqmu.com作为一款瑞士军刀般的在线工具箱网站&#xff0c;满足了众多用户的需求。本文将介绍tool.qqmu.com的多项功能…...

leetcode:190. 颠倒二进制位

一、题目&#xff1a; 函数原型&#xff1a; uint32_t reverseBits(uint32_t n) 解释&#xff1a;uint32是无符号int或short的别称&#xff0c;传入的参数是一个32位二进制串&#xff0c;返回值是该32位二进制串逆序后的十进制值 二、思路&#xff1a; 实际上并不需要真的去逆…...

Spring Cloud--@RefreshScope动态刷新的注意事项

原文网址&#xff1a;Spring Cloud--RefreshScope动态刷新的注意事项_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Spring Cloud的RefreshScope动态刷新的注意事项。 不用RefreshScope也能动态刷新 Spring Cloud的默认实现了动态刷新&#xff0c;不加RefreshScope就能实现动态…...

visual-studio-code通过跳板机连接远程服务器的配置操作

step1:在本机上生成私钥和公钥 sh-keygen -t rsa -C “your_emailxxx.com”生成的两个默认文件中&#xff0c;id_rsa.pub是公钥&#xff0c;id_rsa是私钥 step2:在vscode安装Remote-SSH插件 step3:将本机生成的私钥和公钥上传服务器上 把本机生成的rsa_id.pub公钥上传至服务…...

LuatOS-SOC接口文档(air780E)-- gpio - GPIO操作

常量 常量 类型 解释 gpio.LOW number 低电平 gpio.HIGH number 高电平 gpio.PULLUP number 上拉 gpio.PULLDOWN number 下拉 gpio.RISING number 上升沿触发 gpio.FALLING number 下降沿触发 gpio.BOTH number 双向触发,部分设备支持 gpio.HIGH_IRQ …...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...