网站开发规范

[不指定 2004/12/16 23:57 | by ipaddr ]
(来源:互联网)

总 论

本规范既是一个开发规范,也是一个脚本语言参考,本规范并不是一个一成不变的必须严格遵守的条文,特殊情况下要灵活运用,做一定的变通。但是,请大家千万不要随意更改规范。如果有任何问题,请及时与我联系,我会及时更改本规范的相关代码样例和文档。



基 本 要 求

1. 在网站根目录中开设images common temp 三个子目录,根据需要再开设media 子目录,images目录中放不同栏目的页面都要用到的公共图片,例如公司的标志、banner 条、菜单、按钮等等;common 子目录中放css、js,、php、include 等公共文件;temp 子目录放客户提供的各种文字图片等等原始资料;media 子目录中放flash, avi, quick time 等多媒体文件 。  

2. 在根目录中原则上应该按照首页的栏目结构,给每一个栏目开设一个目录,根据需要在每一个栏目的目录中开设一个images 和media 的子目录用以放置此栏目专有的图片和多媒体文件,如果这个栏目的内容特别多,又分出很多下级栏目,可以相应的再开设其他目录。  

3. temp 目录中的文件往往会比较多,建议以时间为名称开设目录,将客户陆续提供的资料归类整理。  

4. 除非有特殊情况,目录、文件的名称全部用小写英文字母、数字、下划线的组合,其中不得包含汉字、空格和特殊字符;目录的命名请尽量以英文为指导,不到万不得已不要以拼音作为目录名称,经验证明,用拼音命名的目录往往连一个月后的自己都看不懂,  

脚 本 编 写  

我们应该有一个脚本整体风格一致的概念,意思是一个月后和一个月前的你写的脚本风格保持一致,以及同一个工作组中不同的开发人员编写的脚本风格保持一致,因为我们不可能永远孤立的开发,你随时都有可能和三个月前的自己合作(你的客户要求改版),也经常要和工作室中不同的同事共同开发一个项目,还有可能被要求修改已经离职人员开发的脚本,当然你自己也有可能会扔下一个项目给后来的同事。

1. Html 文件的通用模板:








其他meta 标 记


样式表定义

客户端javascript 函数定义及初始化操作


... ...


补充:
为了保证网站能够与下一代的web 语言xml 标准兼容,所有的HTML 标签的属性都要用单引号或者双引号括起,即我们应该写 而不 是 .

2. 允许全文检索的页面,为了使Internet 上的搜索引擎能够有效检索,在频道的首页的html的之间应该加入Keywords 和Description 元标记,例如 :





3. CSS 文件的格式样例代码 :



这里尤其要注意的是a:link a:visited a:hover a:actived 的排列顺序一定要严格照上面的样例代码,否则或多或少会出问题。另外我们规定重定义的最先,伪类其次,自定义最后,便于自己和他人阅读!

为了保证不同浏览器上字号保持一致,字号建议用点数pt和像素px来定义,pt一般使用中文宋体的9pt和11pt,px一般使用中文宋体12px 和14.7px 这是经过优化的字号,黑体字或者宋体字加粗时,一般选用11pt和14.7px 的字号比较合适。

在写 互相嵌套时,严格按照的规范,对于单独的一个 来说, 对齐, 缩进两个半角空格, 中如果还有嵌套的表格,也缩进两个半角空格,如果 中没有任何嵌套的表格, 结束标记应该与  处于同一行,不要换行,

如我们注意在源代码中不应有这样的代码:

 


而应该是这样的:
 

这是因为浏览器认为换行相当于一个半角空格,以上不规范的写法相当于无意中增加一个半角空格,如果确实有必要增加一个半角空格,也应该这样写:

 

属于同一个级别 的  
一定是左首对齐的,另外不允许没有任何内容的空的单元格存在,高度大于等于12px 的单元格应该 在  和  之间写一 个   如果高度小于12px, 则应该 在  和  之间插入一个1*1 大小的透明的gif 图片,这是因为某些浏览器认为空单元格非法而不会予以解释。如果代码顺序较乱,在DW3中可以通过command->apply souce formatting进行重新整理!

5. Width 和height 的写法也有统一的规范,一般情况下只有一列的表格,width 写在
的标签内,只有一行的表格,height 写在  的标签内,多行多列的表格,width 和height 写在第一行或者第一列的  标签内。总之遵循一条原则:不出现多于一个的控制同一个单元格大小的height 和width, 保证任何一个width 和height 都是有效的,也就是你改动代码中任何一个width 和height 的数值,都应该在浏览器中看到变化。做到这一条不容易,需要较长时间的练习和思考。


一 般 原 则

1. 在排布表格之前,请大家一定要好好思考一个最佳的方案,表格的嵌套尽量控制在三层以内,并且应该尽量避免 两个标记,经验表明,这两个标记会带来许多麻烦。

2. 一个网页要尽量避免用整个一张大表格,所有的内容都嵌套在这个大表格之内,因为浏览器在解释页面的元素时,是以表格为单位逐一显示,如果一张网页是嵌套在一个大表格之内,那么很可能造成的后果就是,当浏览者敲入网址,他要先面对一片空白很长时间,然后所有的网页内容同时出现。如果必须这样做,请使用  
标记,以便能够使这个大表格分块显示。

3. 排版中我们经常会遇到需要进行首行缩进的处理,不要使用   或者全角空格来达到效果,规范的做法是在样式表中定义 p { text-indent: 2em; } 然后给每一段加上
标记,注意,一般情况下,请不要省略

结束标记 。

4. 原则上,我们禁止用  来人为干预图片显示的尺寸,而且建议  标签中不要带上width 和height 两个属性,这是因为制作过程中,图片往往需要反复的修改,这样可以避免人为干预图片显示的尺寸,尽可能的发挥浏览器自身的功能;但是这样的一个副作用是当网页还未加载图片时,不会留出图片的站位大小,可能会造成网页在加载过程中抖动(如果图片是插在一个固定大小的表格里的,不会有这个现象),尤其是当图片的尺寸较大时,这种现象会很明显,所以当预料到这种会明显导致网页抖动的情况会发生时,请大家务必在最后给 附上 width 和 height 属性。

5. 为了最大程度的发挥浏览器自动排版的功能,在一段完整的文字中请尽量不要使用
来人工干预分段。

6. 不同语种的文字之间应该有一个半角空格,但避头的符号之前和避尾的符号之后除外汉字之间的标点要用全角标点,英文字母和数字周围的括号应该使用半角括号。

7. 所有的字号都应该用样式表来实现,禁止在页面中出现 标记。

8. 请不要在网页中连续出现多于一个 的   也尽量少使用全角空格(英文字符集下,全角空格会变成乱码),空白应该尽量使用 text-indent, padding, margin, hspace, vspace 以及透明的gif 图片来实现。

9. 中英文混排时,我们尽可能的将英文和数字定义为verdana 和arial 两种字体。

10. 行距建议用百分比来定义,常用的两个行距的值是line-height:120%/150%.

11. 网站中的路径全部采用相对路径,一般链接到某一目录下的缺省文件的链接路径不必写全名,如我们不必这样: 而应该这样:

12、嵌入图形文本的使用较大的字体,建议不要在图形中包括文本。

13、"网页大小"定义为网页的所有文件大小的总和,包括HTML文件和所有的嵌入的对象。用户喜欢快的而不是新奇的站点。对于解调器用户,网页大小保持在34K以下为合适。  

文 件 命 名 原 则

1. 每一个目录中应该包含一个缺省的html 文件,文件名统一用index.htm

2. 件名称统一用小写的英文字母、数字和下划线的组合。

3. 命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个文件的意义,二是当我们在文件夹中使用"按名称排例"的命令时,同一种大类的文件能够排列在一起,以便我们查找、修改、替换、计算负载量等等操作 。

4. 下面以"新闻"(包含"国内新闻"和"国际新闻")这个栏目来说明html 文件的命名原则 :

☆ 在根目录下开设news目 录

☆ 第一条缺省新闻取名index.htm

☆ 所有属于"国内新闻"的新闻依次取名为:china_1.htm, china_2.htm, ...

☆ 所有属于"国际新闻"的新闻依次取名为:internation_1.htm, internation _2.htm, ...

☆ 如果文件的数量是两位数,请将前九个文件命名为:china_01.htm, china_02.htm 以保证所有的文件能够在文件夹中正确排序。

5. 图片的命名原则遵循以下几条规范 :

☆ 名称分为头尾两两部分,用下划线隔开。

☆ 头部分表示此图片的大类性质,例如广告、标志、菜单、按钮等等 。

☆ 一般来说:

放置在页面顶部的广告、装饰图案等长方形的图片我们取名:banner
标志性的图片我们取名为:logo
在页面上位置不固定并且带有链接的小图片我们取名为button
在页面上某一个位置连续出现,性质相同的链接栏目的图片我们取名:menu
装饰用的照片我们取名:pic
不带链接表示标题的图片我们取名:title
依照此原则类推。

☆ 尾部分用来表示图片的具体含义。

☆ 下面是几个样例,大家应该能够一眼看明白图片的意义:
banner_sohu.gif banner_sina.gif menu_aboutus.gif menu_job.gif title_news.gif logo_police.gif logo_national.gif pic_people.jpg pic_hill.jpg.
目录建立的原则:以最少的层次提供最清晰简便的访问结构。

根目录。
根目录指DNS域名服务器指向的索引文件的存放目录。
服务器的ftp上传目录默认为html
 
根目录文件
根目录只允许存放index.html和main.html文件,以及其他必须的系统文件。
 
每个语言版本存放于独立的目录。已有版本语言设置为:
简体中文 \gb
繁体中文 \big5
英 语 \en
日 语 \jp

每个主要功能(主菜单)建立一个相应的独立目录。

根目录下的images为存放公用图片目录,每个目录下私有图片存放于各自独立images目录.
例如:\menu1\images
     \menu2\images

所有的js文件存放在根目录下统一目录\script
所有的CSS文件存放在根目录下的style目录
所有的CGI程序存放在根目录并列目录\cgi_bin目录
head区是指首页HTML代码的和之间的内容。
必须加入的标签

1.公司版权注释

2.网页显示字符集
简体中文:
繁体中文:
英 语:

3.网页制作者信息
webmaster@maketown.com">

4.网站简介


5.搜索关键字


6.网页的css规范

(参见目录及命名规范)

7.网页标题


.可以选择加入的标签

1.设定网页的到期时间。一旦网页过期,必须到服务器上重新调阅。


2.禁止浏览器从本地机的缓存中调阅页面内容。


3.用来防止别人在框架里调用你的页面。


4.自动跳转。

5指时间停留5秒。

5.网页搜索机器人向导.用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。

CONTENT的参数有all,none,index,noindex,follow,nofollow。默认是all。

6.收藏夹图标


所有的javascript的调用尽量采取外部调用.


附标签:
标签不属于head区,这里强调一下,为了保证浏览器的兼容性,必须设置页面背景
网站文件命名规范


文件命名的原则:以最少的字母达到最容易理解的意义。

索引文件统一使用index.html文件名(小写)
index.html文件统一作为"桥页",不制作具体内容,仅仅作为跳转页和meta标签页。主内容页为main.html

按菜单名的英语翻译取单一单词为名称。例如:
关于我们 \aboutus
信息反馈 \feedback
产    品 \product
所有单英文单词文件名都必须为小写,所有组合英文单词文件名第二个起第一个字母大写;
所有文件名字母间连线都为下划线

图片命名原则以图片英语字母为名。大小原则写同上。
例如:网站标志的图片为logo.gif
鼠标感应效果图片命名规范为"图片名+_+on/off"。
例如:menu1_on.gif/menu1_off.gif

五. 其它文件命名规范
1.js的命名原则以功能的英语单词为名。
例如:广告条的js文件名为:ad.js
2.所有的CGI文件后缀为cgi
所有CGI程序的配置文件为config.cgi
网站项目管理规范手册


一.概念

网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。

二.需求分析

项目立项

我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。

客户的需求说明书

第一步是需要客户提供一个完整的需求说明。很多客户对自己的需求并不是很清楚,需要您不断引导和帮助分析。曾经有一次,我问客户:"您做网站的目的是什么?"他回答:"没有目的,只是因为别人都有,我没有!"。这样的客户就需要耐心说明,仔细分析,挖掘出他潜在的,真正的需求。 配合客户写一份详细的,完整的需求说明会花很多时间,但这样做是值得的,而且一定要让客户满意,签字认可。把好这一关,可以杜绝很多因为需求不明或理解偏差造成的失误和项目失败。糟糕的需求说明不可能有高质量的网站。那么需求说明书要达到怎样的标准呢?简单说,包含下面几点:
1.正确性:每个功能必须清楚描写交付的功能;
2.可行性:确保在当前的开发能力和系统环境下可以实现每个需求;
3.必要性:功能是否必须交付,是否可以推迟实现,是否可以在削减开支情况发生时"砍"掉;
4.简明性:不要使用专业的网络术语;
5.检测性:如果开发完毕,客户可以根据需求检测。

三.系统分析

网站总体设计

在拿到客户的需求说明后,并不是直接开始制作,而是需要对项目进行总体设计,详细设计,出一份网站建设方案给客户。总体设计是非常关键的一步。它主要确定:
1.网站需要实现哪些功能;
2.网站开发使用什么软件,在什么样的硬件环境;
3.需要多少人,多少时间;
4.需要遵循的规则和标准有哪些。

同时需要写一份总体规划说明书,包括:
1.网站的栏目和版块;
2.网站的功能和相应的程序;
3.网站的链接结构;
4.如果有数据库,进行数据库的概念设计;
5.网站的交互性和用户友好设计。

网站建设方案

在总体设计出来后,一般需要给客户一个网站建设方案。很多网页制作公司在接洽业务时就被客户要求提供方案。那时的方案一般比较笼统,而且在客户需求不是十分明确的情况下提交方案,往往和实际制作后的结果会有很大差异。所以应该尽量取得客户的理解,在明确需求并总体设计后提交方案,这样对双方都有益处。网站建设方案的包括以下几个部分:
1.客户情况分析;
2.网站需要实现的目的和目标;
3.网站形象说明;
4.网站的栏目版块和结构;
5.网站内容的安排,相互链接关系;
6.使用软件,硬件和技术分析说明;
7.开发时间进度表;
8.宣传推广方案;
9.维护方案;
10.制作费用;
11.本公司简介:成功作品,技术,人才说明等。

当您的方案通过客户的认可,那么恭喜你!您可以开始动手制作网站了。但还不是真正意义上的制作,你需要进行详细设计:

网站详细设计

总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计阶段的任务就是把解法具体化。详细设计主要是针对程序开发部分来说的。但这个阶段的不是真正编写程序,而是设计出程序的详细规格说明。这种规格说明的作用很类似于其他工程领域中工程师经常使用的工程蓝图,它们应该 包含必要的细节,例如:程序界面,表单,需要的数据等。程序员可以根据它们写出实际的程序代码。

四. 项目实施

整体形象设计

在程序员进行详细设计的同时,网页设计师开始设计网站的整体形象和首页。
整体形象设计包括标准字,Logo,标准色彩,广告语等。 首页设计包括版面,色彩,图像,动态效果,图标等风格设计,也包括banner,菜单,标题,版权等模块设计。首页一般设计1-3个不同风格,完成后,供客户选择。
     记住:在客户确定首页风格之后,请客户签字认可。以后不得再对版面风格有大的变动,否则视为第二次设计。

开发制作
到这里,程序员和网页设计师同时进入全力开发阶段,需要提醒的是,测试人员需要随时测试网页与程序,发现Bug立刻记录并反馈修改。不要等到完全制作完毕再测试,这样会浪费大量的时间和精力。项目经理需要经常了解项目进度,协调和沟通程序员与网页设计师的工作。

调试完善

在网站初步完成后,上传到服务器,对网站进行全范围的测试。包括速度,兼容性,交互性,链接正确性,程序健壮性,超流量测试等,发现问题及时解决并记录下来。
为什么要记录文档呢?其实本软件工程本身就是一个文档,是一个不断充实和完善的标准。通过不断的发现问题,解决问题,修改,补充文档,使这个标准越来越规范,越来越工业化。进而使得网站开发趋向规范,趋向合理。

宣传推广

宣传推广的基本方法有:
1.网页里设置适当的META标签;
2.各搜索引擎登录;
3.准备新闻稿件在各新闻公告板发表;
4.合理使用Email邮件列表;
5.广告条交换;
6.付费广告。
至此,网站项目建设完毕,将有关网址,使用操作说明文档等提交客户验收。如果需要维护,另行签定维护项目。

维护

网站成功推出后,长期的维护工作才刚刚开始,我们需要做到的是
1.及时响应客户反馈;例如可以采取Email自动回复功能,然后在1-3个工作日里解决问题,再次回复;
2.网站流量统计分析和相应对策;
3.尽量推广和使用您的网址;
4.网站内容的及时更新和维护。

五.遵循的规范

1.网站建设目录规范
2.网站文件命名规范
3.网站建设尺寸规范
4.网站首页head区代码规范
5.网站连接结构规范
网站建设尺寸规范

页面标准按800*600分辨率制作,实际尺寸为778*434px
1024*768分辨率实际尺寸为:1002*603PX

页面长度原则上不超过3屏,宽度不超过1屏

每个标准页面为A4幅面大小,即8.5X11英寸

全尺寸banner为468*60px,半尺寸banner为234*60px,小banner为88*31px

另外120*90,120*60也是小图标的标准尺寸

每个非首页静态页面含图片字节不超过60K,全尺寸banner不超过14K
 

AWStats分析Apache日志

[不指定 2004/12/16 23:56 | by ipaddr ]


Awstats是一个很好的日志分析工具,开源,速度快,跨平台....

AWstats的官方网站是:http://awstats.sourceforge.net/

安装步骤:

1.下载:

去官方网站下载awstats-6.2.tgz

2.解压安装

#tar zxvf awstats-6.2.tgz
#mv awstats-6.2 /usr/local/apache2/site/stat

3.配置一虚拟主机(将stat.xxx.com指向服务器)

#vi /usr/local/apache2/conf/httpd.conf

加入:


ServerName stat.xxxx.com
DocumentRoot /usr/local/apache2/site/stat

 Options FollowSymLinks
 AllowOverride None
 Order allow,deny
 Allow from all


 Options +ExecCGI



4.配置awstats
#cd  /usr/local/apache2/site/stat/cgi-bin/
#mv awstats-model.conf awstats.conf
#vi awstats.conf
LogFile="/var/log/httpd/access%YY-24%MM-24%DD-24.log"
SiteDomain="xxxx"
DirData="/usr/local/apache2/site/stat/data"
//Apache日志由cronolog轮巡放在/var/log/httpd下面
//mkdir /usr/local/apache2/site/stat/data
//chown apache.apache /usr/local/apache2/site/stat/date

5.测试
运行/usr/local/apache2/site/stat/cgi-bin/awstats.pl -update -config=xxxx
访问:http://stat.xxxx.com/cgi-bin/awstats.pl


6.每天更新统计
vi /etc/crontab
30 2 * * * root /usr/local/apache2/site/stat/cgi-bin/awstats.pl -update -config=xxxx


7.如果访问统计比较重要,不可以公开,可以用Apache认证。

8.哪果访问里,显示的是PERL源文件,则需要设置Apache:

AddHandle cgi-script .pl



Apache 日志分割轮巡

[不指定 2004/12/15 23:56 | by ipaddr ]


Apache默认情况下,是把日志写入一整个文件的,随着防问量增加,这个文件会很大,给备份和轮巡带来了麻烦,可以使用 cronolog来自动分割和轮巡。

1.下载:
到官方网站上下载 1.6.2 版

2.编译:

#tar -xzf cronolog-1.6.2.tar.gz
#cd cronolog-1.6.2
#./configure
#make


3.安装
Copy 到 Apache 的 bin 目录:
#cp src/cronolog /usr/local/apache2/bin/

4.配置
修改Apache 的 httpd.conf文件完成配置:
#vi /usr/local/apache2/conf/httpd.conf
将CustomLog那行改为:
CustomLog "|/usr/local/apache2/bin/cronolog /var/log/httpd/access%y%m%d.log" combined
重启Apache使配置生效
(注意,Custom引号内前面有一个"|",另外,日志是放在/var/log/httpd目录)

5.OK.
所有日志,以access年月日.log(access041216.log)的形式,保存到/var/log/httpd/下面。

如何在RHEL3原带的PHP包上面加装Oracle支持

前提,在Linux下安装好了Oracle,或Oracle Client

RHEL3自带了PHP4,并且,对各种东东支持都很完整,如果你需要功能完整的PHP,又要加上Oracle支持的话,可以这样做:
1.将phpinfo()输出信息里的"configure command"全部拷贝到一个文件php.sh,并且,把所有单引号去掉。
2. RHEL3自带的PHP4支持GD库,IMAP,PCRE之类的,所以,如果你要在新安装的PHP里也支持这些,需要安装以下几个包:
freetype-devel-2.1.4-4.0.i386.rpm
libpng-devel-1.2.2-25.i386.rpm
libjpeg-devel-6b-30.i386.rpm
imap-devel-2002d-9.i386.rpm
pcre-devel-3.9-10.i386.rpm
这些,一般都在RHEL3光盘里可以找到
3.
tar zxvf php-4.3.9.tar.gz
cd php-4.3.9
#copy php.sh to this directory
cp /root/php.sh ./
bash php.sh
执行配置一下,看还有没有什么错误,如果没有错误,说明可以通过了,如果有错误,按提示安装相应的RPM包,一般都在RHEL光盘里有。
4.修改php.sh
在--without-oci8改成:--with-oci8=$ORACLE_HOME --with-oracle=$ORACLE_HOME
5.设置环境变量ORACLE_HOME LD_LIBRARY_PATH
6.再将修改过的php.sh执行一次:
bash php.sh
应该没有错误了,有错误按提示装其它包
7.
make
make install
8.
将/etc/httpd/conf.d/php.conf中的LoadModule注释掉,因为编译安装的PHP也会自动加上这句,两句会重复。

9.修改Apache启动脚本,增加ORACLE_HOME LD_LIBRARY_PATH环境变量
10./etc/init.d/httpd restart
完成。 (一般去掉pcre,ODBC支持)

Oracle9i数据库的启动和停止

[不指定 2004/12/15 23:52 | by ipaddr ]
Oracle9I开始,取消了服务器管理器(svrmgl)和internal用户,数据库的启动和停止都是通过sql*plus来完成!Oracle10g可以通过浏览器来启动和停止数据库服务!这里主要说说9I下的启动和停止服务,下面的命令在8i下也可以使用
要启动或者停止服务,必须拥有sysdba的权限。可以使用两中方式连接
第一种,以sys用户连接
c:>sqlplus sys/change_on_install as sysdba;
进入sql*plus环境;
(注意,ORACLE9I在安装的时候需要你自己设定sys和system的口令,并且不能才用ORACLE9I以前这两个用户的默认口令,这主要是为了保证数据库系统的安全,我为了好记忆,在安装完成后立刻恢复了默认的口令)
第二种:
C:>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 4月 26 09:42:00 2004

Copyright (c) 1982, 2002[/img][/img], Oracle Corporation.  All rights reserved.

SQL> connect /as sysdba
已连接。
SQL>
在进入后就可以进行下面的操作了!
先说关闭数据库
shutdown有四个参数,四个参数的含义如下:
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。
前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!
数据库的启动
数据库启动使用startup命令,它有三种情况
第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!
第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!
第三种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!


另外,在Linux环境下,需要DBA组里的用户登录Sqlplus,再启动或停止,比如:
#su oracle
$cd $ORACLE_HOME/bin
$sqlplus '/ as sysdba'
sql>startup
sql>shutdown



RHEL3下安装Oracle

[不指定 2004/12/15 23:51 | by ipaddr ]
CU中的renxiao2003写的RHEL3下安装Oracle9R2,收集。(有些地方做了些小小的改动)


1、从网上下载redhat Enterprise Linux Advanced Server3的四个安装文件,安装时swap分区设置为内存的二倍。不要采用DHCP设置主机名和IP地址,而是"手工设置"。否则会在安装oracle的时候出现如下错误:
引用:
Thrown when the IP address of a host cannot be determined

出现这个错误将使Oracle不能安装成功。安装RHAS3,可以刻录到光盘安装,也可以从硬盘安装,从硬盘安装RHAS3,请参考:http://bbs.chinaunix.net/forum/viewtopic.php?p=2416942#2416942
2、系统要求:内存最低256(我的就是这么大),建议512M,硬盘空间4G,如果Oracle安装文件存在硬盘,建议5G(在安装操作系统后的剩余空间)。
可以查看内存的大小,用到的命令是:grep MemTotal /proc/meminfo
swap分区在安装操作系统的时候就设定好了,为内存的2倍,当内存达到1G以上时,和内存大小相同就可以了啊。相看交换分区命令是:/sbin/swapon -s
3、检查是否安装以下包:
引用:
#su - root
#rpm -qa|grep compat
compat-db-4.0.14-5.i386
compat-gcc-7.3-2.96.122.i386
compat-gcc-c++-7.3-2.96.122.i386
compat-libstdc++-7.3-2.96.122.i386
compat-libstdc++-devel-7.3-2.96.122.i386
#rpm -qa|grep openmotif21
openmotif21-2.1.30-8.i386
#rpm -qa|grep setarch
setarch-1.3-1.i386
#rpm -qa|grep tcl
tcl-8.3.5-92.i386


上面显示的内容是在笔者已经安装了具体的RPM包之后的结果。它们对应的软件包是: 引用:

compat-db-4.0.14-5.i386.rpm
compat-gcc-7.3-2.96.122.i386.rpm
compat-gcc-c++-7.3-2.96.122.i386.rpm
compat-libstdc++-7.3-2.96.122.i386.rpm
compat-libstdc++-devel-7.3-2.96.122.i386.rpm
openmotif21-2.1.30-8.i386.rpm
setarch-1.3-1.i386.rpm
tcl-8.3.5-92.i386.rpm


一般情况下,你的系统上的输出结果和这个不同。如果个别包没有安装,把系统安装光盘mount上,找到具体的软件包(大多数在第三张光盘上),然后利用如下的命令来安装相应的包:
# rpm -ivh compat.....rpm
因为我没有把RHAS3刻录到光盘,所以我用下面的命令来挂载iso文件
引用:
mount -o loop /mnt/e/rhas3/rhel-3-i386-as-disc3.iso /mnt/cdrom

要额外注意的是,这些软件包之间是有依赖性的,先后的顺序要找好。否则会报告不能安装的错误。在安装软件包的时候,如果出现软件包的依赖性,就先安装有有依赖的包。我相信大家会看明白软件包之间的依赖性的。
还需要将gcc、g++更换为2.96的版本.
方法如下:
引用:
#su - root
mv /usr/bin/gcc /usr/bin/gcc323
ln -s /usr/bin/gcc296 /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++323 # if g++ doesn't exist, then gcc-c++ was not installed(这里是注释哦)
ln -s /usr/bin/g++296 /usr/bin/g++


3、设置内核参数:
这个版本的默认的glibc 很合适,免去了不少麻烦。
用grep MemTotal /proc/meminfo查看内存总量
出现 MemTotal XXXXXKB,其中的XXXXX就是内存总量。
修改两个文件,如下:
引用:

#vi /etc/sysctl.conf
加入:
kernel.shmmax = xxxxx*1024*2(为内存的2倍,切换到字节。要是超过这个值,在运行dbca时会出现Ora-27123:Unable to attach to shared memeroy segment)
kernel.shmmni=4096
kernel.shmall=2097152
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
#vi /etc/security/limits.conf
加入:
oracle hard nofile 65536
oracle soft nofile 65536
oracle hard nproc 16384
oracle soft nproc 16384


4、建立用户、设置环境变量
建立用户的命令是以root用户运行的。
引用:
#groupadd oinstall
#groupadd dba
#useradd -g oinstall -G dba oracle
#passwd oracle


设置环境变量:
以oracle用户登录,
引用:
vi $HOME/.bash_profile
插入下面的内容
# Set the LD_ASSUME_KERNEL environment variable only for Red Hat 9 and
# for Red Hat Enterprise Linux Advanced Server 3 (RHEL AS 3) !!
# Use the "Linuxthreads with floating stacks" implementation instead of NPTL:
export LD_ASSUME_KERNEL=2.4.1

# Oracle Environment
export ORACLE_BASE=/opt/oracle
#注释,以上由/home/oracle改成/opt/oracle,原作者有笔误
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=test
export ORACLE_TERM=xterm
# export TNS_ADMIN= Set if sqlnet.ora, tnsnames.ora, etc.
# are not in $ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN;
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH

# Set shell search paths
export PATH=$PATH:$ORACLE_HOME/bin


然后注销重新登录,用set|more查看环境变量是否生效。如下:
引用:
#su - root
#mkdir /opt/oracle
#mkdir /opt/oracle/product
#mkdir /opt/oracle/product/9.2.0
#chown -R oracle.oinstall /opt/oracle

#mkdir /var/opt/oracle
#chown oracle.dba /var/opt/oracle
#chmod 755 /var/opt/oracle


这时ORACLE_BASE的值就是/opt/oracle。
5、开始安装
从http://www.oracle.com下载三个安装文件,
ship_9204_linux_disk1.cpio.gz
ship_9204_linux_disk2.cpio.gz
ship_9204_linux_disk3.cpio.gz
用zcat ship_9204_linux_disk1.cpio.gz|cpio -idmv
zcat ship_9204_linux_disk2.cpio.gz|cpio -idmv
zcat ship_9204_linux_disk3.cpio.gz|cpio -idmv
生成三个文件夹Disk1,Disk2,Disk3;
你也可以用
gunzip ship_9204_linux_disk1.cpio.gz
cpio -idmv 这样的命令来生成三个目录,可以用下面的命令刻录到光盘,也可以保存在硬盘。 引用:

mkisofs -r Disk1 | cdrecord -v --eject dev=0,0,0 speed=15 -
mkisofs -r Disk2 | cdrecord -v --eject dev=0,0,0 speed=15 -
mkisofs -r Disk3 | cdrecord -v --eject dev=0,0,0 speed=15 -


进入Disk1目录运行runInstaller之前,注意两点:
a、export LANG=en_us(否则安装界面出来就会出现"□",因为Oracle9i不支持中文界面。)
b、安装p3006854_9204_LINUX.zip补丁,否则会出现如下错误:
引用:
Error occurred during initialization of VM
Unable to load native library: /tmp/OraInstall2003-10-25_03-14-57PM/jre/lib/i386/libjava.so:
symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference


从http://metalink.oracle.com下载p3006854_9204_LINUX.zip补丁。安装此补丁的方法: 引用:

su - root
# unzip p3006854_9204_LINUX.zip
Archive: p3006854_9204_LINUX.zip
creating: 3006854/
inflating: 3006854/rhel3_pre_install.sh
inflating: 3006854/README.txt

# cd 3006854
# sh rhel3_pre_install.sh
Applying patch...
Patch successfully applied
#
注意:如果运行 rhel3_pre_install.sh出现下面的错误
rhel3_pre_install.sh: line 36: gcc: command not found
是因为你忘了安装gcc,同样要是出现下面的错误:
# ls
ls: error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory
# rm /etc/ld.so.preload
rm: error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory
#
请不要退出bash,用下面的方法来修复(我开始遇到,后来没有遇到了,可能是因为我把gcc降级到了296吧)
# echo "" > /etc/ld.so.preload
rm /etc/ld.so.preload
And start over again.



现在运行./runInstaller &(必须进入到Disk1目录,或者从光盘运行,从光盘安装不要进入/mnt/cdrom后运行runInstaller,而是这样运行./mnt/cdrom/runInstaller) (先运行startx,再运行runInstaller,比较方便)
  呵呵,高兴了吧,期待以久的GUI界面终于出来了啊。这是欢迎界面。显示了Oracle安装的源文件所在目录,还有要安装到的产品目录。我们点"Next";
接着出现的下一个界面是Inventory路径,我们点"Next";
  现在要求用户输入UNIX组名,我们用Oracle用户所在的组"oinstall",然后点"Next",如果你是第一次安装Oracle产品,则要你运行一个sh文件。文件是/tmp/orainstRoot.sh,我们打开一个shell窗口,切换到root用户,如下:
引用:
su root
sh /tmp/orainstRoot.sh


运行完毕我们返回Oracle安装界面,点"Continue";
  选择文件存放的目录,我们选择默认值。然后"Next";
  安装的产品是"Oracle9i Database 9.2.0.4.0",点"Next";
  选择安装类型是"通用",默认选项。点"Next";
  输入全局数据库名,然后"Next";
  数据文件的存放位置,我采用的是默认位置,点"Next";
  出现安装组件的选择结果,这时点"Install",开始安装,复制文件,进度条在一点一点的增加,当安装并link完后,出现配置工具界面,agent服务不能配置成功,忽略不用管,在下面修复。DBCA,NETCA,HTTP都正确配置完毕哦。呵呵。下面开始修复错误。其实要是把各个界面抓取下来就更好了。
6、安装p3238244_9204_LINUX.zip补丁
此补丁也是从http://metalink.oracle.com下下载,同时要下载一个opatch软件包:p2617419_220_GENERIC.zip,它主要是用来悠agent服务不能启动的错误。
过程如下: 引用:
su - oracle
$ cp p2617419_210_GENERIC.zip /tmp
$ cd /tmp
$ unzip p2617419_210_GENERIC.zip
$ export PATH=$PATH:/tmp/OPatch
$ export PATH=$PATH:/sbin # the patch needs "fuser" which is located in /sbin
$ unzip p3238244_9204_LINUX.zip
$ cd 3238244
$ opatch apply


补丁修复完成,需要relinked一个.mk文件。
$ cd $ORACLE_HOME/network/lib
$ make -f ins_oemagent.mk install
现在在运行agentctl start,看是不是可以成功运行agent服务了啊,可以用stop、status来停止此服务或者检查服务的状态。
在这个成功之后,居然不能启动Oracle,说是不能找到初始化文件,没办法,我用dbca先删除了原来安装时建立的库,再重新建立了数据库。
7、运行dbca来创建数据库。呵呵,一路畅通,完成数据库的安装。
希望你也能成功安装。


renxiao2003 写得如些详细,按这个步骤安装一般是不会出问题的。

在Windows下管理Oracle9i服务

[不指定 2004/12/15 23:51 | by ipaddr ]
Windows 操作系统下安装Oracle 9i时会安装很多服务——并且其中一些配置为在Windows 启动时启动。在Oracle 运行在Windows 下时,它会消耗很多资源,并且有些服务可能我们并不总是需要。你会发现不使用Windows 图形界面就可以快速、完全地关闭数据库会很有用。
只要拥有管理员权限就可以通过net start 启动一个服务,或者通过net stop 命令停止一个服务,从而控制以下服务中的任何一个。在Windows XP 中,可以通过在控制面板的服务中改变想要禁用的服务(OracleOraHome...)的启动类型(Startup Type)参数,双击某个服务查看其属性,然后将启动类型属性从自动改为手动。

使数据库在本地工作唯一需要运行的服务是OracleServiceORCL 服务(其中ORCL 是SID)。这个服务会自动地启动和停止数据库(使用shutdown 中断)。如果安装了一个数据库,它的缺省启动类型为自动。如果主要是访问一个远程数据库,那么可以把启动类型由自动改为手动。

OracleOraHome92HTTPServer 服务(OraHome92 是Oracle Home 的名称)是在安装Oracle 时自动安装的Apache 服务器。一般情况下我们只用它来访问Oracle Apache 目录下的Web 页面,比如说JSP 或者modplsql 页面。

OracleOraHome92TNSListener 服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过 SQL*Net 网络协议都属于远程访问)。不用这个服务就可以访问本地数据库。

OracleOraHome92ClientCache 服务缓存用于连接远程数据库的Oracle Names 数据。正常情况下该服务的启动类型是配置为手动的。然而,除非有一台Oracle Names 服务器,否则没有必要运行这个服务。

有四个服务是Oracle 企业管理器所必须的(Oracle Enterprise Manager),这个服务分别为:OracleOraHome92Agent(智能代理),该服务监视数据库和企业管理器请求,缺省启动类型为自动。OracleOraHome92SNMPPeerEncapsulator 和OracleOraHome92SNMPPeerMasterAgent,处理安全网络管理协议服务。OracleOraHome92PagingServer 通过一个使用调制解调器的数字传呼机或者电子邮件发出警告。

OracleMTSRecoveryService 是可选的,该服务允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务的资源管理器。

如果只是偶尔使用一下数据库,那么可以创建一个简单的脚本任务来启动和关闭服务器,这样每次只要双击脚本就可以了,可以不使用图形界面。

1.        保存一个快捷方式自动地装载这些文件。

2.        将Oracle 服务设为手动避免在Windows 启动时启动。

REM "dbstart.cmd"
@echo off
set ORAHOME="OraHome92"
set ORASID="ORCL"
net start OracleService%ORASID%
REM net start Oracle%ORAHOME%HTTPServer
REM net start Oracle%ORAHOME%TNSListener
REM net start Oracle%ORAHOME%ClientCache
REM net start Oracle%ORAHOME%Agent
REM net start Oracle%ORAHOME%SNMPPeerEncapsulator
REM net start Oracle%ORAHOME%SNMPPeerMasterAgent
REM net start Oracle%ORAHOME%PagingServer
REM net start OracleMTSRecoverService

REM "dbshut.cmd"
@echo off
set ORAHOME="OraHome92"
set ORASID="ORCL"
net stop OracleService%ORASID%
REM net stop Oracle%ORAHOME%HTTPServer
REM net stop Oracle%ORAHOME%TNSListener
REM net stop Oracle%ORAHOME%ClientCache
REM net stop Oracle%ORAHOME%Agent
REM net stop Oracle%ORAHOME%SNMPPeerEncapsulator
REM net stop Oracle%ORAHOME%SNMPPeerMasterAgent
REM net stop Oracle%ORAHOME%PagingServer
REM net stop OracleMTSRecoverService

RHEL3下安装Java环境

[不指定 2004/12/15 23:50 | by ipaddr ]
1.需要的文件

j2sdk-1_4_2_06-linux-i586-rpm.bin

2.步骤

chmod o+x j2sdk-1_4_2_06-linux-i586-rpm.bin

./j2sdk-1_4_2_06-linux-i586-rpm.bin

rpm -ivh j2sdk-1_4_2_06-linux-i586.rpm

mv /usr/java/jdk-xxxxxx /usr/java/jdk

3.配置

vi /etc/profile

JAVA_HOME=/usr/java/jdk
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

注意要修改$PATH变量

4.移除原RHEL3带的java链接

rm /usr/bin/java
rm /usr/bin/javac

以上两个文件是RHEL3自带的,是有个空的Java。

PHP+GD的安装

[不指定 2004/12/15 23:49 | by ipaddr ]
如果是用RPM包装的PHP+Mysql+Apache,GD库默认就装好了。

如果想要编译安装这些,GD库是要自己动手安装上去的。

我编译安装(源代码)了Apache+PHP,现在要用到GD库,所以又要装GD库了

在网上找了好多资料,都不太详细或过时了。

看了一些文档,总算弄好了,现在总结出来。

在Red Hat Linux 9.0+Apache+PHP下通过。

...........



如果是用RPM包装的PHP+Mysql+Apache,GD库默认就装好了。

如果想要编译安装这些,GD库是要自己动手安装上去的。

我编译安装(源代码)了Apache+PHP,现在要用到GD库,所以又要装GD库了

在网上找了好多资料,都不太详细或过时了。

看了一些文档,总算弄好了,现在总结出来。

在Red Hat Linux 9.0+Apache+PHP下通过。

Powered by aspbiz(at)163.com

一、下载

gd-2.0.33.tar.gz  http://www.boutell.com/gd/

jpegsrc.v6b.tar.gz   http://www.ijg.org/

libpng-1.2.7.tar.tar  http://sourceforge.net/projects/libpng/

zlib-1.2.2.tar.gz  http://sourceforge.net/projects/zlib/

freetype-2.1.9.tar.gz  http://sourceforge.net/projects/freetype/

php-4.3.9.tar.gz http://www.php.net

二、说明

最新的GD库包括了对GIF的支持,所以不要打GIF补丁

http://sourceforge.net/ 好多源代码包可以在上面找到

安装步骤:

先安装zlib,freetype,libpng,jpeg,再装GD,再装PHP

三、安装

1.装zlib

 tar zxvf zlib-1.2.2.tar.gz
 cd zlib-1.2.2
 ./configure
 make
 make install

2.安装libpng

 tar zxvf libpng-1.2.7.tar.tar
 cd libpng-1.2.7
 cd scripts/
 mv makefile.linux ../makefile
 cd ..
 make
 make install
 注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个

3.安装freetype

 tar zxvf freetype-2.1.9.tar.gz
 cd freetype-2.1.9
 ./configure
 make
 make install

4.安装Jpeg

 tar zxvf jpegsrc.v6b.tar.gz
 cd jpeg-6b/
 ./configure --enable-shared
 make
 make test
 make install
注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库

5.安装GD

 tar zxvf gd-2.0.33.tar.gz
 cd gd-2.0.33
 ./configure --with-png --with-freetype --with-jpeg
 make install

6.安装PHP

 tar zxvf php-4.3.9.tar.gz
 cd php-4.3.9
 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-gd --with-zlib --with-png --with-jpeg --with-freetype --enable-sockets
 make
 make install

7.配置Apache支持PHP

8.测试

phpinfo();
?>

Ok.....

pureftpd下的GID,UID释义

[不指定 2004/12/15 23:48 | by ipaddr ]
今天,领到任务,给领导开个FTP,空间要大,而且,要分权限,有的用户可以上传,有的只可以下载。

刚开始打算用VSFtpd,RH自带的,方便,RPM包一装,设置一下权限就可以了。

后来还是想用Pureftpd,毕竟,功能好象全一点,而且,我也想用虚拟用户,

于是:

downing pureftpd

downing mysql.script

./coufigure .....

make

make check

make install

装好后,发现一个问题,如何设置虚拟用户的权限呢,比如,如何设置用户只可以下载,不可以上传呢?以前装过Pureftpd,也遇到过这个问题,不过没去深究,今天必须解决。

后来一想,UID,GID还不清楚是什么意思,肯定这里面有文章,我猜想,可能用户登录后,用数据库里的UID,GID去访问文件系统。于是,做了个测试:

groupadd ftpuser

useradd -d /var/ftp -g ftpuser -s /sbin/nologin ftpwrite

useradd -d /var/ftp -g ftpuser -s /sbin/nologin ftpread

// 新加了一个组,ftpuser,组ID为500

// 新加了两个用户ftpwrite 500 , ftpread 501

chown -R ftpwrite.ftpuser /var/ftp

chmod -R 755 /var/ftp

这样一来,ftpwrite可以在/var/ftp下面读写,ftpread只可以读了。

在Mysql里加用户时,设置UID=501,GID=500,则该用户为下载用户,设置UID=500,GID=500时,该用户可上传和下载。

OK,搞定。

结论:

PureFTPD中的UID,GID是针对文件系统操作的有效ID,PureFTPD将用这个ID的权限去存取文件。

如果要设置虚拟用户的权限,只需设置其对应的UID,GID的权限了。

----------------------------------------------------------------------------------------------

申请了Blog,一直没写,旧的一岁,以些留念。于二零零四年十一月一日晚。

------------------------------------------------------------------------------------------------

分页: 20/20 第一页 上页 15 16 17 18 19 20 最后页 [ 显示模式: 摘要 | 列表 ]