FreeBSD 7.3 安装php与libpng的问题以及解决方法
[
|
2010/04/22 08:48]
|
2010/04/22 08:48]
安装FreeBSD 7.3,然后将port cvsup到最新,然后依次安装了php所需要的相关组件,诸如:freetype/gd/jpeg/png/libxml/iconv等,但是都OK了之后,到php了,php用的是自己编译的方法,配置方法如下:
./configure --enable-fastcgi --with-mysql=/usr/local/mysql --with-ttf --with-libxml-dir=/usr/local/lib/ --with-gd --with-zlib --with-freetype-dir=/usr/local/lib/ --with-jpeg-dir=/usr/local/lib/ --enable-force-cgi-redirect --enable-mbstring --with-iconv=/usr/local --enable-sockets --enable-exif --enable-ftp
配置一切都OK,但是到了make的时候出问题了,提示libpng出问题了……无法编译完成,最后从网上查找资料后发现,是因为libpng里的一个函数的问题,于是修改源代码解决问题,方法如下:
vi php-5.2.13/ext/gd/libgd/gd_png.c
查找
if (!png_check_sig (sig, 8))
更改为
if (png_sig_cmp (sig, 0, 8))
保存退出,回到php-5.2.13下,然后重新make,一切OK,问题解决。
./configure --enable-fastcgi --with-mysql=/usr/local/mysql --with-ttf --with-libxml-dir=/usr/local/lib/ --with-gd --with-zlib --with-freetype-dir=/usr/local/lib/ --with-jpeg-dir=/usr/local/lib/ --enable-force-cgi-redirect --enable-mbstring --with-iconv=/usr/local --enable-sockets --enable-exif --enable-ftp
配置一切都OK,但是到了make的时候出问题了,提示libpng出问题了……无法编译完成,最后从网上查找资料后发现,是因为libpng里的一个函数的问题,于是修改源代码解决问题,方法如下:
vi php-5.2.13/ext/gd/libgd/gd_png.c
查找
if (!png_check_sig (sig, 8))
更改为
if (png_sig_cmp (sig, 0, 8))
保存退出,回到php-5.2.13下,然后重新make,一切OK,问题解决。
吼吼,我自己的NTP 时间服务器……
[
|
2007/03/20 17:48]
|
2007/03/20 17:48]
吼吼,做了NTP SERVER,以后家里可以通过这个服务器来进行自动教时咯!!!

按照上图进行设置就OK了哦!!!

按照上图进行设置就OK了哦!!!
使用IPMI远程控制管理DELL2850服务器
[
|
2006/07/21 08:25]
|
2006/07/21 08:25]
Dell™ PowerEdge™ 2850 系统底板管理控制器 (BMC) 通过与主机板上的不同传感器通信来监视系统是否有严重事件,并在某些参数超出其预置阈值时发出警报和日志事件。 BMC 支持工业标准的 Intelligent Platform Management Interface (IPMI) 规范,可以实现远程配置、监测和恢复系统。 BMC 提供以下功能:
看到了吧,以上是DELL官方对IPMI功能的描述,这些功能非常强大哦,据我所知,现在一般大厂的服务器都支持ipmi功能,比如DELL,HP,IBM。今天我们以DELL的2850为例,给大家简单介绍一下IPMI的基本使用。
1.配置系统启用IPMI,启动服务器,在启动过程中,看提示,按Ctrl+E 进入IPMI管理界面
2.设置IPMI Over LAN为On,默认为Off,意思为启用通过LAN方式的IPMI。

3.设置IPMI的地址,这里的地址可以跟你服务器的ip地址一样,不会有冲突,放心设置,MAC地址不用设置。VLAN不用设置。

4.这里是设置访问的用户名和密码,远程访问IPMI是需要验证的。

好了设置完毕,重启机器,基本上现在服务器就已经能通过远程访问ipmi了。
我们先在另外一台机器装上ipmiltool,一个管理IPMI的开源工具,可以在任何机器安装,安装的机器本身主板可以没有IPMI。
装完以后,我们试验一下能不能访问,运行以下命令
host:填写你的服务器的IP地址
user:填写你之前设置的用户名,我们这里是root
正常的话,会提示你输入密码,就是图3我们设置的密码。
以下是显示的信息:

说明远程服务器,我们刚才设置的服务器已经启用IPMI。
那怎么在本地访问IPMI呢,如果你直接用ipmitool访问是访问不了的,会提示以下错误:
这里我们得安装OpenIPMI,装完这个,系统就能认出IPMI,这样我们才能通过ipmitool访问,当然前提是你的内核编译支持IPMI了。
装完OpenIPMI后,启用IPMI服务 /etc/rc.d/init.d/ipmi start 一般如果内核支持的话,能正常启动,用lsmod看看加载的模块

这时我们可以本地访问IPMI,还是刚才那个命令,参看channel信息,不过本地访问命令有所不同,改为

下面我们介绍一些远程控制IPMI的用法
获取远程服务器的电源状态
远程软关机,相当于按下reset,这个在服务器死机的时候用到,一般windows服务器建议用这个命令
类似的命令我们也可以用来远程开机,关机,获取服务器运行的信息等。
参考文档:
使用ipmitool 实现Linux 系统下对服务器的ipmi 管理
IPMI HOWTO for Debian GNU/Linux on the Intel SR2300
著作信息:张微波 2006.7.16 北京
原文地址:http://blog.5ilinux.com/archives/2006/07/ipmidell2850.html 转载请注明出处
通过系统的串行端口和集成 NIC 进行访问
故障日志记录和 SNMP 警报发送
访问系统事件日志 (SEL) 和传感器状况
控制包括开机和关机在内的系统功能
独立于系统电源或工作状态的支持
用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向
使用 LAN 上串行 (SOL) 访问 Red Hat® Enterprise Linux 串行控制台界面
故障日志记录和 SNMP 警报发送
访问系统事件日志 (SEL) 和传感器状况
控制包括开机和关机在内的系统功能
独立于系统电源或工作状态的支持
用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向
使用 LAN 上串行 (SOL) 访问 Red Hat® Enterprise Linux 串行控制台界面
看到了吧,以上是DELL官方对IPMI功能的描述,这些功能非常强大哦,据我所知,现在一般大厂的服务器都支持ipmi功能,比如DELL,HP,IBM。今天我们以DELL的2850为例,给大家简单介绍一下IPMI的基本使用。
1.配置系统启用IPMI,启动服务器,在启动过程中,看提示,按Ctrl+E 进入IPMI管理界面
2.设置IPMI Over LAN为On,默认为Off,意思为启用通过LAN方式的IPMI。

3.设置IPMI的地址,这里的地址可以跟你服务器的ip地址一样,不会有冲突,放心设置,MAC地址不用设置。VLAN不用设置。

4.这里是设置访问的用户名和密码,远程访问IPMI是需要验证的。

好了设置完毕,重启机器,基本上现在服务器就已经能通过远程访问ipmi了。
我们先在另外一台机器装上ipmiltool,一个管理IPMI的开源工具,可以在任何机器安装,安装的机器本身主板可以没有IPMI。
装完以后,我们试验一下能不能访问,运行以下命令
ipmitool –I lan –H host -U user -a channel info
host:填写你的服务器的IP地址
user:填写你之前设置的用户名,我们这里是root
正常的话,会提示你输入密码,就是图3我们设置的密码。
以下是显示的信息:

说明远程服务器,我们刚才设置的服务器已经启用IPMI。
那怎么在本地访问IPMI呢,如果你直接用ipmitool访问是访问不了的,会提示以下错误:
Error: Unable to establish LAN session
Unable to Get Channel Info
Unable to Get Channel Info
这里我们得安装OpenIPMI,装完这个,系统就能认出IPMI,这样我们才能通过ipmitool访问,当然前提是你的内核编译支持IPMI了。
装完OpenIPMI后,启用IPMI服务 /etc/rc.d/init.d/ipmi start 一般如果内核支持的话,能正常启动,用lsmod看看加载的模块

这时我们可以本地访问IPMI,还是刚才那个命令,参看channel信息,不过本地访问命令有所不同,改为

下面我们介绍一些远程控制IPMI的用法
获取远程服务器的电源状态
Ipmitool -I lan –H host –U root –a chassis power status
远程软关机,相当于按下reset,这个在服务器死机的时候用到,一般windows服务器建议用这个命令
Ipmitool -vI lan –H host –U root –a chassis power soft
类似的命令我们也可以用来远程开机,关机,获取服务器运行的信息等。
ipmitool -vI lan –H host –U root –a chassis power on 远程开机
ipmitool -vI lan –H host –U root –a chassis power off 远程冷关机,断电
ipmitool -vI lan –H host –U root –a chassis power off 远程冷关机,断电
参考文档:
使用ipmitool 实现Linux 系统下对服务器的ipmi 管理
IPMI HOWTO for Debian GNU/Linux on the Intel SR2300
著作信息:张微波 2006.7.16 北京
原文地址:http://blog.5ilinux.com/archives/2006/07/ipmidell2850.html 转载请注明出处
给单网卡绑定两个IP地址
[
|
2006/07/12 01:16]
|
2006/07/12 01:16]
如果要给以太网卡指定多个IP地址,并不存在什么限制。新的TCP/IP连接会耕具自己的IP地址来查找主机,询问拥有该IP地址的MAC地址。但是并不能反过来,一个MAC地址可以对应多个不同的IP地址,但是一个IP地址不能对应多个MAC地址,否则就会出现传说中的“IP地址冲突”现象!
给单个网卡指定多个IP地址的方法叫做IP别名。和route命令一样,不同的系统实现的方法不一样,各系统之间的差异造成了语法多种多样,在FreeBSD中,ifconfig的关键字为alias,该关键字跟在地址还有其他参数之后。
这里网络掩码设置为255.255.255.255。如果别名IP地址和接口卡的原IP地址在同一个子网上,就需要这样设置,如果位于不同的子网,那么就直接使用相应子网的正常网络掩码。
从TCP/IP的角度来说说原因吧。网络掩码的所有位都是1,就会保证TCP/IP这样来看待数据包:只要包的目的地址匹配所有位,就把该包看成本地子网上的包,它实际上是创建了一个只有一个地址的“子网”。所有发送给该地址的包以及该地址接收的包都会发送给路由器,而不会发送到LAN上。如果多个别名使用了同一个网络掩码,这些别名的广播地址也应该相同,而这样就导致了TCP/IP栈的混乱。使用全1的网络掩码,我们才能骗过ifconfig,让该命令允许单个接卡上有多个IP地址。
要在/etc/rc.conf中设置IP别名,应该使用ifconfig_xxx#_alias#关键字,该关键字的使用形式上类似于ifconfig_xxx#。下边给出/etc/rc.conf中的一组别名:
请大家仔细看上边的例子就知道如何进行多IP绑定了。
给单个网卡指定多个IP地址的方法叫做IP别名。和route命令一样,不同的系统实现的方法不一样,各系统之间的差异造成了语法多种多样,在FreeBSD中,ifconfig的关键字为alias,该关键字跟在地址还有其他参数之后。
ifconfig fxp1 192.168.0.254 netmask 255.255.255.255 alias
这里网络掩码设置为255.255.255.255。如果别名IP地址和接口卡的原IP地址在同一个子网上,就需要这样设置,如果位于不同的子网,那么就直接使用相应子网的正常网络掩码。
从TCP/IP的角度来说说原因吧。网络掩码的所有位都是1,就会保证TCP/IP这样来看待数据包:只要包的目的地址匹配所有位,就把该包看成本地子网上的包,它实际上是创建了一个只有一个地址的“子网”。所有发送给该地址的包以及该地址接收的包都会发送给路由器,而不会发送到LAN上。如果多个别名使用了同一个网络掩码,这些别名的广播地址也应该相同,而这样就导致了TCP/IP栈的混乱。使用全1的网络掩码,我们才能骗过ifconfig,让该命令允许单个接卡上有多个IP地址。
要在/etc/rc.conf中设置IP别名,应该使用ifconfig_xxx#_alias#关键字,该关键字的使用形式上类似于ifconfig_xxx#。下边给出/etc/rc.conf中的一组别名:
ifconfig_fxp0="inet 192.168.0.254 netmask 255.255.255.0"
ifconfig_fxp0_alias0="inet 192.168.0.253 netmask 255.255.255.255"
ifconfig_fxp0_alias1="inet 192.168.0.252 netmask 255.255.255.255"
ifconfig_fxp0_alias2="inet 192.168.254.254 netmask 255.255.255.0"
ifconfig_fxp0_alias3="inet 192.168.254.253 netmask 255.255.255.255"
ifconfig_fxp0_alias4="inet 192.168.254.252 netmask 255.255.255.255"
ifconfig_fxp0_alias0="inet 192.168.0.253 netmask 255.255.255.255"
ifconfig_fxp0_alias1="inet 192.168.0.252 netmask 255.255.255.255"
ifconfig_fxp0_alias2="inet 192.168.254.254 netmask 255.255.255.0"
ifconfig_fxp0_alias3="inet 192.168.254.253 netmask 255.255.255.255"
ifconfig_fxp0_alias4="inet 192.168.254.252 netmask 255.255.255.255"
请大家仔细看上边的例子就知道如何进行多IP绑定了。
我的策略DNS配置笔记
[
|
2006/06/28 00:42]
|
2006/06/28 00:42]
系统采用的是FreeBSD 5.4,由于BSD5.4本身内带的就是bind9.3.1了,所以不用ports安装,直接可以使用。我们先来看看bind的版本。
# named -v
如上,果然是bind9.3.1,OK,现在就可以开始开工了。首先确定一个关键,bind的配置文件的存放位置是/etc/namedb,虽然这是一个ln,但是这个位置比较好记,所以大家可以直接通过这个ln来访问他的实际存放位置/var/named/etc/namedb。
# cd /etc/namedb
# chmod +x make-localhost
# ./make-localhost
会在当前目录生成一个localhost.rev和localhost-v6.rev。分别用于IPv4以及IPv6生成rndc的key,以后rndc才能控制bind9工作。
# /usr/local/sbin/rndc-confgen >rndc.conf
打开rndc.conf,把
之间的内容,去掉注释#,添加到named.conf最后.
编辑named.conf
// $FreeBSD: src/etc/namedb/named.conf,v 1.15.2.3 2005/03/23 17:35:58 dougb Exp $
options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
};
key "rndc-key" {
algorithm hmac-md5;
secret "/hnxmLJvodzFpnj5YL+FyQ==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
//include Cernet & CNC Acl
include "acl.conf";
//
/////////DNS-View For Cernet & CNC User////////////////////////
view "view_cnc"
{
match-clients { CNC; };
recursion yes;
forwarders { 202.112.14.151; 61.139.2.69; 128.9.0.107; };
zone "."
{
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA"
{
type master;
file "master/localhost.rev";
};
zone "scetc.edu.cn"
{
type master;
file "master/scetc.edu.cn.EDU";
};
zone "108.197.222.IN-ADDR.ARPA"
{
type master;
file "master/108.197.222.rev";
};
};
///////////DNS-View For Others User//////////////////////
view "view_any"
{
match-clients { any; };
recursion yes;
forwarders { 61.139.2.69; 202.112.14.151; 128.9.0.107; };
zone "."
{
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA"
{
type master;
file "master/localhost.rev";
};
zone "scetc.edu.cn"
{
type master;
file "master/scetc.edu.cn.TEL";
};
zone "108.197.222.IN-ADDR.ARPA"
{
type master;
file "master/108.197.222.rev";
};
};
附带acl.conf
建立好域名解析文件以及相应目录。
#mkdir /etc/namedb/master
#touch /etc/namedb/master/scetc.edu.cn.EDU
#touch /etc/namedb/master/scetc.edu.cn.TEL
#touch /etc/namedb/master/108.197.222.rev
用以下命令进行测试bind工作情况,如果出现的提示中没有出现错误,那么恭喜你,你的bind已经可以正常工作的。
# /usr/local/sbin/named -gc /etc/namedb/named.conf
按一下键盘的ctrl+c,先把BIND 9停掉。进行域名解析文件的编写。
dns1# cat scetc.edu.cn.EDU
$ORIGIN .
$TTL 3600
scetc.edu.cn IN SOA dns1.scetc.edu.cn. root.dns1.scetc.edu.cn. (
20060623 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
NS dns1.scetc.edu.cn.
NS dns2.scetc.edu.cn.
$ORIGIN scetc.edu.cn.
dns1 A 222.197.108.1
dns2 A 222.197.108.2
www A 222.197.108.8
dns1# cat scetc.edu.cn.TEL
$ORIGIN .
$TTL 3600
scetc.edu.cn IN SOA dns1.scetc.edu.cn. root.dns1.scetc.edu.cn. (
20060624 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
NS dns1.scetc.edu.cn.
NS dns2.scetc.edu.cn.
$ORIGIN scetc.edu.cn.
dns1 A 222.197.108.1
dns2 A 222.197.108.2
www A 218.6.165.8
dns1# cat 108.197.222.rev
$TTL 3600
@ IN SOA dns1.scetc.edu.cn. root.dns1.scetc.edu.cn. (
20060623 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS dns1.scetc.edu.cn.
IN NS dns2.scetc.edu.cn.
1 IN PTR dns1.scetc.edu.cn.
2 IN PTR dns2.scetc.edu.cn.
8 IN PTR www.scetc.edu.cn.
# named -v
BIND 9.3.1
如上,果然是bind9.3.1,OK,现在就可以开始开工了。首先确定一个关键,bind的配置文件的存放位置是/etc/namedb,虽然这是一个ln,但是这个位置比较好记,所以大家可以直接通过这个ln来访问他的实际存放位置/var/named/etc/namedb。
# cd /etc/namedb
# chmod +x make-localhost
# ./make-localhost
会在当前目录生成一个localhost.rev和localhost-v6.rev。分别用于IPv4以及IPv6生成rndc的key,以后rndc才能控制bind9工作。
# /usr/local/sbin/rndc-confgen >rndc.conf
打开rndc.conf,把
# Use with the following in named.conf, adjusting the allow list as needed:
……
# End of named.conf
……
# End of named.conf
之间的内容,去掉注释#,添加到named.conf最后.
编辑named.conf
// $FreeBSD: src/etc/namedb/named.conf,v 1.15.2.3 2005/03/23 17:35:58 dougb Exp $
options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
};
key "rndc-key" {
algorithm hmac-md5;
secret "/hnxmLJvodzFpnj5YL+FyQ==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
//include Cernet & CNC Acl
include "acl.conf";
//
/////////DNS-View For Cernet & CNC User////////////////////////
view "view_cnc"
{
match-clients { CNC; };
recursion yes;
forwarders { 202.112.14.151; 61.139.2.69; 128.9.0.107; };
zone "."
{
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA"
{
type master;
file "master/localhost.rev";
};
zone "scetc.edu.cn"
{
type master;
file "master/scetc.edu.cn.EDU";
};
zone "108.197.222.IN-ADDR.ARPA"
{
type master;
file "master/108.197.222.rev";
};
};
///////////DNS-View For Others User//////////////////////
view "view_any"
{
match-clients { any; };
recursion yes;
forwarders { 61.139.2.69; 202.112.14.151; 128.9.0.107; };
zone "."
{
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA"
{
type master;
file "master/localhost.rev";
};
zone "scetc.edu.cn"
{
type master;
file "master/scetc.edu.cn.TEL";
};
zone "108.197.222.IN-ADDR.ARPA"
{
type master;
file "master/108.197.222.rev";
};
};
附带acl.conf
建立好域名解析文件以及相应目录。
#mkdir /etc/namedb/master
#touch /etc/namedb/master/scetc.edu.cn.EDU
#touch /etc/namedb/master/scetc.edu.cn.TEL
#touch /etc/namedb/master/108.197.222.rev
用以下命令进行测试bind工作情况,如果出现的提示中没有出现错误,那么恭喜你,你的bind已经可以正常工作的。
# /usr/local/sbin/named -gc /etc/namedb/named.conf
按一下键盘的ctrl+c,先把BIND 9停掉。进行域名解析文件的编写。
dns1# cat scetc.edu.cn.EDU
$ORIGIN .
$TTL 3600
scetc.edu.cn IN SOA dns1.scetc.edu.cn. root.dns1.scetc.edu.cn. (
20060623 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
NS dns1.scetc.edu.cn.
NS dns2.scetc.edu.cn.
$ORIGIN scetc.edu.cn.
dns1 A 222.197.108.1
dns2 A 222.197.108.2
www A 222.197.108.8
dns1# cat scetc.edu.cn.TEL
$ORIGIN .
$TTL 3600
scetc.edu.cn IN SOA dns1.scetc.edu.cn. root.dns1.scetc.edu.cn. (
20060624 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
NS dns1.scetc.edu.cn.
NS dns2.scetc.edu.cn.
$ORIGIN scetc.edu.cn.
dns1 A 222.197.108.1
dns2 A 222.197.108.2
www A 218.6.165.8
dns1# cat 108.197.222.rev
$TTL 3600
@ IN SOA dns1.scetc.edu.cn. root.dns1.scetc.edu.cn. (
20060623 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS dns1.scetc.edu.cn.
IN NS dns2.scetc.edu.cn.
1 IN PTR dns1.scetc.edu.cn.
2 IN PTR dns2.scetc.edu.cn.
8 IN PTR www.scetc.edu.cn.




