1.Wind River产品与服务
2.LINUX操作系统课程设计:企业服务器的配置与实现怎样做
3.Facebook Open Platform编译FAQ
Wind River产品与服务
Wind River公司为了适应设备软件优化策略(DSO),采用了双操作系统(Vxworks & Linux)的解决方案。Workbench作为强大的集成开发环境,适用于多种目标机OS平台,包括Bootloader的开发、BSP/Driver的视频覆盖源码开发、上层应用程序的开发、测试和生产,直至产品的售后服务,贯穿产品生命周期的全过程。
GPP-LE产品集成了WindRiver验证过的开源软件,包括2.6内核和应用程序,以及相关补丁包。crc源码介绍该产品还带有针对当前主流处理器体系结构的交叉编译工具链,使得用户能够编译出在目标机上运行的代码。
PNE-LE产品遵循OSDL CGL工作组的CGL specification V2.0,集成了超过个网络应用程序包和其他应用程序包。它以稳定的、验证过的Linux-2.6.作为内核。
PCD-LE产品具备动态电源管理技术(DPM)、基于FLASH的鲁棒文件系统(cramfs)、快速的系统启动时间以及较小的内核footprint。最小系统资源需求为k的flash和k的RAM。
Workbench作为开发工具,采用了基于Eclipse开放标准架构,ide源码管理可以方便集成第三方插件。支持多种目标机操作系统,如Linux、Vxworks、ThreadX等,覆盖硬件板子调试、BSP/Driver开发、应用软件开发和产品测试等全生命周期阶段。支持多种架构的目标机处理器,包括ARM、XScale、MIPS、联盟共享源码PPC和X等。Workbench还支持源代码的静态符号解析,允许用户进行交叉代码浏览。
Workbench演示展示了其强大的功能和易用性,为开发者提供了高效的工作流程和丰富的资源。
LINUX操作系统课程设计:企业服务器的配置与实现怎样做
一般购买大品牌的服务器才有相应的驱动程序:
硬件:4核CPU,4G的内存,主板带RIAD,G内存,
安装与配置Web服务器
Apache服务器源代码安装:
Apache模块和MPM可使用类型的更详细介绍:
bined;
LogFormat "%h %1 %u %t \"%r\" %>s %b" common;
LogFormat "%{ Referer}i->%U" referer;
LogFormat "%{ User-agent}i“ agent;
LogFormat logs/access_log common
LogFormat "%v %h %l %u %t \"%r"\ %>s %b" vhost
CustomLog logs/vhost_log vhost
%a 远程主机IP地址
%A 本地主机IP地址
%h 远程主机名
%H 请求协议
%l 远程登录名
%u 来自auth 的远程用户
%U 请求的URL路径
%U{ User-agent}i 用户浏览器类型
%b 发送的字节数,不包括HTTP标题
%t 请求的时间
%r HTTP请求的第一行的内容
%s HTTP响应状态码,代表访问成功,代表文件未找到,代表禁止访问,代表未授权访问,代表错误请求。
%m 请求方法
%v 服务于该请求的源码探索笔记服务器的ServerName
%V 服务器的名字,取决于UseCanonicalName的设置
%{ Host}i 返回HTTP请求的主机头信息,可能含端口号信息
split-logfile </var/www/myweb/vhost_log //当所有虚拟机日志都记录在主站点日志中时,使用此命令将日志按虚拟主机名分组,拆分成一个个独立的日
志文件,第个日志文件采用"虚拟主机名.log“形式命名,其中包含了该虚拟主机所产生的日志记录;
容器与访问控制指令:容器指令通常用于封装一组指令,使其在容器条件成立时有效,或者用于改变指令的作用域。
<IfModue ! mpm_winnt.c> //<IfModue>用于判断指定的模块是否存在,若存在(被静态地编译进服务器,或是被动态装载进服务器)则包含于
其中的指令将有效,否则会被忽略。可嵌套使用。
<IfModue ! mpm_netware.c> //若要使模块不存在时所包含的指令有效,只需在模块名前加一个“!”即可,
User nobody
Group # -1
</IfModue>
</IfModue>
基于域名虚拟主机:
例:假设当前服务器的IP地址为..3.,现要在该服务器创建两个基于域名的虚拟主机,使用端口为标准的,其域名分别为www.myweb1.com和www.myweb2.com,站点根目录分别为/var/www/myweb1和/var/www/myweb2,日志文件分别放在/var/vhlogs/myweb1和/var/vhlogs/myweb2目录下面,Apache服务器原来的主站点采用域名www.myweb.com进行访问。
#vi /etc/hosts //使用/etc/hosts进行域名注册;
..3. www.myweb1.com www.myweb2.com www.myweb.com
#ping www.myweb1.com //检测域名解析是否正常;
#ping www.myweb2.com
#ping www.myweb.com
#mkdir -p /var/www/myweb1
#mkdir -p /var/www/myweb2
#mkdir -p /var/vhlogs/myweb1
#mkdir -p /var/vhlogs/myweb2
#vi /etc/ //当一个请求到时,服务器会首先检查它是否使用了一个能和NameVirtualHost相匹配的IP地址。如果匹配,就会
DocumentRoot /usr/local/apache/htdoes //就会查找每个与这个IP地址相对应的<VirtualHost>配置段,并尝试找出一个ServerName或ServerAlias配置相
ServerAdmin yjghddii@.com //与请求的主机名(域名)相同的,若找到,则使用该虚拟主机的配置,并响应其访问请求。否则将使用符合这个
</VirtualHost> //IP地址的第一个列出的虚拟主机。在最前面的虚拟主机成为默认虚拟主机。
<VirtualHost ..3.>
ServerName www.myweb1.com
DocumentRoot /var/www/myweb1
DirectoryIndex index.php index.php3 index.html index.htm default.html default.html
ServerAdmin yjghddii@.com
ErrorLog /var/vhlogs/myweb/error_log
TransferLog /var/vhlogs/myweb1/access_log
</VirtualHost>
<VritualHost ..3.>
ServerName www.myweb2.com
DocumenRoot /var/www/myweb2
DirectoryIndex index.php index.php3 index.htm index.html default.htm default.html
ServerAdmin yjghddii@.com
ErrorLog /var/vhlogs/myweb2/error_log
TranferLog /var/vhlogs/myweb2/access_log
</VirtualHost>
<Directory /var/www> //对Web站点目录设置访问控制;
Options FllowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
Apachectl –S //查查虚拟主机配置是否正确;
Aparhectl restart //重启Apache服务器配置生效;
例:
NameVirtualHost ... //服务器配有两块网卡,IP:内网...,外网...,在Internet网中,企业域名
NameVirtualHost ... //www.example.com指向外网IP地址,在企业内网的DNS服务器中,指向内网IP地址;现要求为来自内网
<VirtualHost ... ...> //外网的请求提供同样的Web服务。(
</Virtual>
例:
Listen //服务器:...,服务器上创建两个基于域名(主机名)的虚拟主机,域名:www.myweb3.com和www.
Listen //myweb4.com,每个虚拟主机的端口和端口,分别服务一个Web站点,其站点根目录分别为
// /var/www/myweb3-、/var/www/myweb3-、/var/www/myweb4-、/var/www/myweb4-。
NameVirtualHost ...: //www.myweb3.com的端口作为默认Web站点。
NameVirtualHost ...:
<VirtualHost ...:>
ServerName www.myweb3.com
DocumentRoot /var/www/myweb3-
<VirtualHost>
<VirtualHost ...:>
ServerName www.myweb3.com
DocumentRoot /var/www/myweb3-
</VirtualHost>
<VirtualHost ...:>
ServerName www.myweb4.com
DocumentRoot /var/www/myweb4-
</VirtualHost>
<VirtualHost ...:>
ServerName www.myweb4.com
DocumentRoot /var/www/myweb4-
</VirtualHost>
基于IP地址虚拟主机:
#cd /etc/sysconfig/network-scripts //服务器有两张网卡eth0、eth1,eth0:...,
#cp ifctg-eth1 ifcfg-eth1:0 //eth1:....eth0网卡用作了基于主机名的虚拟主机,
#vi ifcfg-eth1:0 //eth1通过IP别名方式,为其绑定多个IP地址,用于提供基于IP地址
DEVICE=eth1:0 //的虚拟主机。eth1绑定的第一张虚拟网卡的设备名为eth1:0,对应的
IPADDR=... //配置文件为ifcfg-eth1:0,通过修改配置文件中的设备名和IP地址,
#ifdown eth1 //即可实现IP地址的绑定。
#ifup eth1:0
#ifup eth1
#ping ...
#ping ...
#vi /etc/hosts //...:www.example2.com,...:
... www.example3.com //www.example3.com,试为其创建基于IP地址的虚拟主机,端口使用
#mkdir -p /var/www/example2 //目录分别为/var/www/example2、/var/www/example3,为这两个域再增
#mkdir -p /var/www/example3 //端口,使其也能在端口发布另外的Web站点。Web站点根目录分
///var/www/example2-、/var/www/example3-
#vi
DocumentRoot /var/www/example2
</VirtualHost>
<VirtualHost ...:>
ServerName www.example2.com
DocumentRoot /var/www/example2-
</VirtualHost>
<VirtualHost ...:>
ServerName www.exaple3.com
DocumentRoot /var/www/example3
</VirtualHost>
<VirtualHost ...:>
ServerName www.exaple3.com
DocumentRoot /var/www/example3-
</VirtualHost>
Facebook Open Platform编译FAQ
1:下载源码:/fbopen/
2:根据readme的说明,把fbml所需的软件下载到dependencies目录下
3:fbml的php扩展的编译,本身有个脚本,不过一般情况下都不能顺利通过那脚本编译成功
错误提示1:
gconvert.c::2: error: #error GNU libiconv not in use but included iconv.h is from libiconv
解决办法:
修改build-all.py
'glib-2..6.tar.gz': ("./configure", "make", "sudo make install"),
改成
'glib-2..6.tar.gz': ("./configure --with-libiconv=gnu", "make", "sudo make install"),
错误提示2:
nspr4 -lpthread -ldl -L../../dist/bin -lmozjs -L/usr/local/lib -lgtk-x-2.0 -lgdk-x-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -L/usr/local/lib -lcairo -Wl,--version-script -Wl,../../build/unix/gnu-ld-scripts/components-version-script -Wl,-Bsymbolic -ldl -lm
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xa): In function `nsCanvasRenderingContext2D::Destroy()':
: undefined reference to `XFreePixmap'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xa): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XRenderFindStandardFormat'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XListPixmapFormats'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XFree'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xd): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XCreatePixmap'
collect2: ld returned 1 exit status
gmake[3]: *** [libgklayout.so] Error 1
gmake[3]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla/layout/build'
gmake[2]: *** [libs] Error 2
gmake[2]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla/layout'
gmake[1]: *** [tier_9] Error 2
gmake[1]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla'
make: *** [default] Error 2
解决办法:
修改dependencies/mozilla/layout/build/Makefile.inifdef
MOZ_ENABLE_GTK2EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) / $(NULL)
改成ifdef MOZ_ENABLE_GTK2EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) / -L/usr/XR6/lib -lX -lXrender / $(NULL)
这个错误一般发生在firefox编译的时候,我一般都手动解压缩firefox软件,然后修改Makefile.in,然后在build-all.py中屏蔽解压缩firefox的语句就行
错误提示3:
In file included from js/jsarena.c::
js/jsbit.h:: error: size of array 'js_static_assert_line_' is negative
make[1]: *** [js/jsarena.o] Error 1
make: *** [src] Error 2
解决办法:
修改 src/js/jsbit.h 第行
S_STATIC_ASSERT(sizeof(unsigned long long) == sizeof(JSUword));
改成
S_STATIC_ASSERT(sizeof(unsigned long) == sizeof(JSUword));
这个错误发生在firefox编译成功后,进行fbml的编译时候发生的,如果你用build-all.py编译,不想进行前面的编译,可以根据脚本屏蔽前面的编译。