Google Cloud CDN-如何开启配置使用?
关键字:google cdn如何配置|google cdn
如何配置启用 Google Cloud CDN?
GoogleCloud-谷歌云存储GUI管理工具
X小知识-Windows-服务器-安装32位SQL2005的ASP.NET注册警告解决方法
排除步骤
打开IIS7.0,找到应用程序池。分别在“Classic.NET”和“DefaultAppPool”上点击高级设置,将“启用32位应用程序”的值改为“True”
打开命令提示符,运行命令
cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
使用命令重置IIS:iisreset
重新运行安装程序,发现警告信息已经消除
在安装SQL Server 2005 时出现ASP.Net版本注册要求(警告),提示找不到ASP.Net 在 Microsoft Internet 信息服务(IIS)中的版本注册信息
将64位.net注册到iis上
cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i
注册64位.net不需要卸载32位,注册命令就是上面的命令。
系统默认安装的是64位系统,但是由于客户程序大部分都是在32位.net下开发,
因此默认将iis的.net注册成了32位的版本,方便客户使用。
如运行以上命令安装成功后,需要运行
重新将32位.net注册到iis中
cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
避免32位程序无法在64位.net下运行。默认环境下可以安装成功。
X小知识-Windows-服务器-SQLServer-如何配置Windows 防火墙允许SQL Server的远程连接
在运行SQL Server的服务器上,要找到哪些是SQL Server正在侦听的端口,并将其添加到Windows防火墙的入站例外。
一、需要添加 SQL Server 服务侦听 Windows 防火墙的入站例外,以便客户端可以通过 Windows 防火墙建立 SQL Server 连接的 TCP 端口。 其次,如果不在连接字符串中指定 TCP 端口,SQL Server 不侦听 TCP 1433 端口,就需要添加SQL Server Brower Services侦听的UDP 1434 端口到 Windows 防火墙的入站例外。
二、如何找到SQL Server正在侦听的TCP端口,可以按一下步骤:
1、打开 SQL Server 配置管理器中,从开始->所有程序-> Microsoft SQL Server 2005/2008/2008 R2 ->配置工具;
2、在SQL Server 配置管理器窗口 , 左面板中的SQL 服务器网络配置节点下单击协议的 双击TCP/IP在右面板中,切换到IP 地址选项卡,可以找出所有 SQL Server 侦听的每个 IP 地址的端口或指定端口的所有 IP 地址。
三、如何在Windows防火墙进行端口的配置以允许远程访问,比如:数据库引擎的默认实例端口是1433。
1、在“开始”菜单上,单击“运行”,键入 WF.msc,然后单击“确定”。
2、在“高级安全 Windows 防火墙”的左窗格中,右键单击“入站规则”,然后在操
作窗格中单击“新建规则”。
3、在“规则类型”对话框中,选择“端口”,然后单击“下一步”。
4、在“协议和端口”对话框中,选择 TCP。选择“特定本地端口”,然后键入数据库引擎实例的端口号,例如默认实例的端口号 1433。单击“下一步”。
5、在“操作”对话框中,选择“允许连接”,然后单击“下一步”。
6、在“配置文件”对话框中,选择在你想要连接到数据库引擎时描述计算机连接环境的任何配置文件,然后单击“下一步”。
7、在“名称”对话框中,输入此规则的名称和说明,再单击“完成”。
X小知识-Window-DOS-常用命令
一些常用的DOS命令
命令-打开2个远程桌面窗口
用下面2个命令就可以打开2个远程桌面窗口
mstsc /v 204.74.217.67
mstsc /admin /v 204.74.217.67
命令–关机-重新启动
shutdown -r -t 0
Shutdown -s -t 1
命令-查看应用程序池对应的进程ID
IIS -app
iisapp -a
命令-列出当前的进程列表
tasklist
命令-启动SQL服务命令
net start mssql$sqlexpress
查看主机信息命令
dxdiag
查看网络时候通畅
ping -t www.baidu.com 不停的ping 查看某一时段的网络是否通常
ctrl+c停止
ping -a 解析主机名(netbios) 有些情况下事解析不出来的
ping -l and -n 自定义数据包的大小和数量 65500kb
TTL 路由数
2000 128
9x 32
unix 225
每经过一个路由它的值就会减少1
一些参数的含义
bytes=32 报文中有32个字节的测试数据
time=53ms 往返时间53毫秒
TTL=56 Time to Live,数据包的剩余生存周期值。包在网络中传递时,每过一个路由,TTL减1。
如果你用的是XP,初始TTL应该是128,这个数据就表明包经过了128-56=72个路由。
X小知识-OSS-命令使用汇总
Oss-如何配置ossutil工具?
./ossutil64 config -L ch
此命令设置中文交互的配置界面
https://help.aliyun.com/document_detail/50452.html
Oss-查看命令帮助
./ossutil64 help cp
Oss-从服务器上传单个文件到Oss
./ossutil cp /var/www/html/Films/1010/0591B2BD47C5B745C7E12DA4DA931F3C.mp4 oss://x-images-us/20190107/html/Films/1010/0591B2BD47C5B745C7E12DA4DA931F3C.mp4
或者
上传单个文件到oss上的一个目录
./ossutil cp /var/www/html/Prev.tar.gz oss://x-static-hd-001/20190107/
Oss-上传文件夹
上传文件夹 是否需要先创建好?不需要
官方有文档
https://help.aliyun.com/document_detail/50561.html
./ossutil cp -r /var/www/html/Films/1000 oss://x-static-hd-001/20190107/html/Films/1000
使用bash脚本
#!/bin/bash
./ossutil cp -r /var/www/html/Films/1002 oss://x-films-backup/html/Films/1002
./ossutil cp -r /var/www/html/Films/1003 oss://x-films-backup/html/Films/1003
./ossutil cp -r /var/www/html/Films/1004 oss://x-films-backup/html/Films/1004
Oss-下载单个文件
#!/bin/bash
./ossutil cp oss://x-static-hd-001/1010/0591B2BD47C5B745C7E12DA4DA931F3C.mp4 /var/www/html/Films/1010/0591B2BD47C5B745C7E12DA4DA931F3C.mp4
多个文件依次追加你的命令
Oss-下载整个文件夹
带上rf参数可以关闭消息提示
./ossutil64 cp -r oss://x-images-us/20190107/html/Films/1005 /var/www/html/Films
./ossutil64 cp -r oss://x-images-us/20190107/html/Films/1005 /var/www/html/Films
./ossutil64 cp -r -f oss://n-films-us/Pics /root
Oss-统计文件数量
#!/bin/bash
ls -l /var/www/html/Films/1000 |grep "^-"|wc -l
ls -l /var/www/html/Films/1001 |grep "^-"|wc -l
./ossutil64 ls oss://x-films-hk-02/1011/V1/ -s |grep "oss://"|wc -l
./ossutil64 ls oss://x-films-hk-02/1011/V2/ -s |grep "oss://"|wc -l
OSS-删除文件命令
删除整个文件夹
rm命令 -r -f
强制删除
./ossutil64 rm oss://x-images-us/20191106TBLes/_m/ -r -f
./ossutil64 rm oss://x-images-us/20191106TBLes/_s/ -r -f
./ossutil64 rm oss://x-video-us-001/Pics/1000/ -r -f
X小知识-Windows-服务器-使用小结汇总
自己在工作中经常用到一些cmd的命令,再次总结一下
命令-显示桌面
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
命令-卸载服务
sc delete “服务名称” 来卸载服务
直接进行注册表编辑(不推荐)
打开注册表编辑器,找到下面的键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可
命令-下添加IP的方法
可用IP地址:174.139.111.82-174.139.111.86(共5个可用IP)
子网掩码(Netmask):255.255.255.248
当前网卡连接名称:本地连接 1
首先打开DOS窗口,开始 – 运行 – 输入cmd – 回车
然后输入命令:
for /l %i in (82,1,86) do netsh interface ip add address "本地连接 1" 174.139.111.%i 255.255.255.248
(以上命令可以在本地电脑上修改好后,直接鼠标右键复制,然后在DOS窗口直接鼠标右键粘贴,避免输入错误并且比较省事)
输入完成后直接回车,就能看到在自动一条一条地添加IP了
命令-移动文件
move G:\GoogleVideo\1007\0276450A83B9844190299CA356471EE3.mp4 G:\GoogleVideo\1013\
命令-复制文件-copy
复制一个文件到一个目录去
copy /y G:\MongoDBData\027-xianren\1001\_b\test.txt G:\MongoDBData\out\027-xianren\1001\_b\
复制一个文件到另一个目录并重命名
copy /y G:\MongoDBData\027-xianren\1001\_b\2000.jpg G:\MongoDBData\out\027-xianren\1001\_b\1_2000.jpg
命令-xcopy
复制文件和目录,包括子目录
复制一个文件夹到另一个文件夹
xcopy G:\WebSite\UGG\Sale-UGG-DE-neustiefel.online G:\Web-Copy\WebSite\UGG\Sale-UGG-DE-neustiefel.online\ /d/e/v
注意结尾:”\” 这样就告诉它这是一个目录 ,后面多一个斜杠,让程序知道是目录
/e
复制所有子目录,包括空目录。同时使用 /e、/s 和 /t 命令行选项
/d
/d[:mm-dd-yyyy]
只复制那些在指定日期或指定日期之后更改过的源文件。如果不包括 mm-dd-yyyy 值,xcopy 会复制比现有 Destination 文件新的所有 Source 文件。该命令行选项使您可以更新更改过的文件
/v
验证每个新文件
命令-使用CMD命令-停止-禁用Windows服务
更改服务
sc config 服务名称 start= demand(设置服务为手动启动)
sc config 服务名称 start= disabled(设置服务为禁用)
sc stop/start 服务名称
命令-压缩卷
打开CMD框,输入:diskmgmt.msc,回车
http://jingyan.baidu.com/article/36d6ed1f63b5831bce488373.html
显示端口
输入命令:netstat -ano,列出所有端口的情况,在列表中我们观察被占用的端口,比如是49157,首先找到它。
查看被占用端口对应的PID,输入命令:netstat -aon|findstr “49157”,回车,记下最后一位数字,即PID,这里是2720
继续输入tasklist|findstr “2720”,回车,查看是哪个进程或者程序占用了2720端口,结果是:svchost.exe
打开任务管理器,切换到进程选项卡,在PID一列查看2720对应的进程是谁
结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im Tencentdl.exe
ZenCart系列文章导航
函数学习
- 原创 ZenCart函数-常用的函数
- 原创 ZenCart函数-functions_categories.php
- 原创 ZenCart函数-functions_general.php
- 原创 ZenCart函数-functions_lookups.php
类库学习
- 原创 ZenCart类库-order_total.php解读原理
- 原创 ZenCart类库-payment.php解读实现原理
- 原创 ZenCart类库-shipping.php解读实现原理
数据库学习
原创 ZenCart-数据库处理思路
ZenCart函数-functions_lookups.php
函数:zen_get_info_page
function zen_get_info_page($zf_product_id)
函数说明:根据产品ID 获得产品类型 在计算出产品的页面地址
备注说明:可缓存优化
由于产品具有很多的产品类型 根据产品ID type_handler
先从产品表查询出产品的类型 然后在根据产品的类型 获取产品配置的type_handler
look up the product type from product_id and return an info page name (for template/page handling)
为模板和页面处理
先从products表查询出products_type
然后从TABLE_PRODUCT_TYPES 查询出 type_handler
最后返回$zp_handler->fields[‘type_handler’] . ‘_info’;
可能返回值
product_info
product_music_info
document_general_info
document_product_info
product_free_shipping_info
分类相关函数
zen_get_categories_name
根据分类ID—-获得分类名字
zen_get_category_name
根据分类ID和语言ID—-获取分类的名字信息
zen_get_category_description
根据分类ID和语言ID—-获取分类的描述信息
【注意区分上面两个函数一个是“categories”,一个是“category”】
zen_get_categories_image
根据分类ID—-获得分类的图片名字–数据库categories.categories_image 字段
zen_get_categories_name_from_product
根据产品ID—-获得分类名字【主要是获取主分类的名字】
实现过程:先从TABLE_PRODUCTS表查找出master_categories_id,然后在从TABLE_CATEGORIES_DESCRIPTION表查找categories_name分类的名字
zen_categories_lookup
【终极函数】根据分类ID,字段名称,语言ID
从TABLE_CATEGORIES和TABLE_CATEGORIES_DESCRIPTION查询分类的任意一个字段
比如 zen_categories_lookup(’10’, ‘parent_id’);
以上学习的是分类相关的6个函数,都是非常基础的函数
产品相关的基础函数
zen_products_id_valid($valid_id)
根据产品ID—-检查产品是否存在,返回bool类型
zen_get_products_virtual($lookup)
检查产品是否是一个虚拟产品,TABLE_PRODUCTS表的products_virtual字段,如果products_virtual等于1表示产品是一个虚拟产品,返回bool类型
【此处我设置成引用格式】表示是附属关系
zen_get_products_allow_add_to_cart($lookup)
检查产品是否被允许添加到购物车,是否被允许添加到购物车是通过产品类型控制的,也就是表的TABLE_PRODUCT_TYPES的allow_add_to_cart字段,如果allow_add_to_cart==‘Y’表示产品类型可以被添加到购物车
查找过程:通过产品ID查找products_type,然后通过products_type 查找allow_add_to_cart
zen_get_product_is_always_free_shipping($lookup)
检查一个产品是否总是免邮费TABLE_PRODUCTS表的product_is_always_free_shipping,如果product_is_always_free_shipping==1 表示免邮费,返回bool类型
zen_get_products_category_id($products_id)
根据产品ID—-获得产品的主master_categories_id,在TABLE_PRODUCTS表,返回一个int类型master_categories_id
此函数和zen_get_categories_name_from_product 类似一个返回 master_categories_id 一个返回categories_name
zen_get_products_description($product_id, $language = ”)
根据产品ID和语言ID,从TABLE_PRODUCTS_DESCRIPTION表中获取products_description描述信息
zen_get_products_name($product_id, $language = ”)
根据产品ID和语言ID,从TABLE_PRODUCTS_DESCRIPTION表中获取products_name名字信息
【上面两个函数是姐妹函数】
【再来看一个兄弟函数】
zen_get_products_image($product_id, $width = SMALL_IMAGE_WIDTH, $height = SMALL_IMAGE_HEIGHT)
根据产品ID,并且指定宽度高度,获取产品的图片信息,从TABLE_PRODUCTS表检索products_image,最终返回一个img的标签。此函数调用了zen_get_products_name获得产品名字,作为图片的alt说明
zen_get_products_manufacturers_id($product_id)
根据产品ID—-获得产品的制造商ID
在产品表TABLE_PRODUCTS中有一个manufacturers_id
zen_get_products_manufacturers_image($product_id)
根据产品ID—-获得产品的制造商图片,在TABLE_PRODUCTS表链接TABLE_MANUFACTURERS表,返回manufacturers_image字段
zen_get_products_manufacturers_name($product_id)
根据产品ID—-获得产品的制造商名字,在TABLE_PRODUCTS表链接TABLE_MANUFACTURERS表,返回manufacturers_name字段
【以上三个函数是一家子】
zen_get_manufacturers($manufacturers_array = ”, $have_products = false)
此函数是用来列举制造商,返回字段manufacturers_id和manufacturers_name,这个函数有两个点说明
1–参数manufacturers_array,如果是一个数组,并且数组中已经存在一些值,那么调用之后会将数据库中查询出来的值,和已经存在的值合并返回.
2.$have_products表示是否和TABLE_PRODUCTS联合起来查询,这样筛选出的制造商保证都是有产品的。
现在一共学习产品的8个函数了
继续开始
zen_products_lookup($product_id, $what_field = ‘products_name’, $language = ”)
联合TABLE_PRODUCTS和TABLE_PRODUCTS_DESCRIPTION两张表检索两张表的任意字段,此函数和zen_categories_lookup函数是姐妹函数
我们的产品总是有库存的,让我们看看库存相关的函数
zen_get_products_stock($products_id)
此函数会触发一个通知,暂时是什么我还不清楚。函数内部查找TABLE_PRODUCTS表的products_quantity字段,最终返回一个int类型的数值。函数内部调用了一个zen_get_prid,作用是从购物车id中解析产品ID,比如下面
下面格式的链接
产品ID 是products_id=8:c9f0f895fb98ab9159f51fd0297e236d,zen_get_prid函数就是做了一个内部解析。
zen_check_stock($products_id, $products_quantity)
检查我们的库存,是否到达了一个值,根据产品ID查询我们的数据库,获得实际数量,然后减去$products_quantity得到$stock_left,判断$stock_left是否小于0,如果小于0,表示库存剩余量,返回span标签 附加说明消息。
关于新进产品和即将上架产品定义的时间范围
zen_get_new_date_range($time_limit = false)
zen_get_products_new_timelimit($time_limit = false)
获取最新产品的定义 得到时间条件
zen_get_upcoming_date_range()
关于区域zone函数
关于属性选项函数