Archive for 服务器配置管理

网众Linux服务器常用命令

// June 25th, 2010 // 1 Comment » // 服务器配置管理

1, cd /mnt————————————-进入MNT 目录
2, ls——————————————查看mnt 目录下的文件
3, mkdir usb ———————————-新建节usb 文件夹
4, mount /dev/sdf1 /mnt/usd ——————-加载U盘(sdf1 注:f为U盘符必需加数字1)
5, cd /usd ————————————进入USB目录
6, ls——————————————查看 USB 目录 找到所需要的 服务端版本
7, cp nxp*** /root —————————-复制服务端到root目录下
8, umount /mnt/usb —————————-卸载掉U盘
9, cd~ —————————————-回到root 目录
10,sh nxp*** ———————————-安装服务端
11,ethtool eth0 或ethtool eth1 —————-查看所用网卡 以yes/no 表示
12,vnc restart ——————————–重启vnc 远程联接服务
13,reboot ————————————-重启服务器
14,halt —————————————关闭服务器
15,history ————————————查看此命令前所执行过的命令
16,ethtool -k eth0 / eth1 ———————查看网卡流量 试用情况 yes/no (小写的k)
17,ethtool -K eth0/eth1 tx off —————-关闭 网卡较验 解决 开机后黑屏问题 (大写的K)
18,df -h ————————————–查看磁盘 使用空间的信息
19,ifconfig ———————————–查看网卡及相对的IP 配置
20,netconfig ———————————-配置服务器名及IP 网关 DNS
21,nxpbootmgr ———————————启动管理器
22,nxpiomgr ———————————–数据管理器
23,cd /etc/rc.d/ ——————————进入 rc.d 目录 找到rc.local 文件
24,nc rs.local ——————————-编辑rc.local文件 在最后加nxp restart 命令
25,cat /proc/partitions ———————–查看磁盘 信息 数量及所有盘符
26,tar xf ————————————-解压.tar 压缩包的命令
27,gftp —————————————在命令窗口 打开FTP 窗口
28,FTP——————————— ——-download.netzone.soft.com 端口2121 名ldk5 密码 52399548
29,help ————————————–命令的使用说明(如:rm –help)
30,w ——————————————查看磁盘和CPU 内存 使用量
31,top 或 pstree ——————————查看 进程
32,xconfig ———————————–配置 桌面
33,killall ———————————–杀死或关闭某进程或服务 如:(killall nxpbootmgr.exe)
34,cd /var/log ——————————–进入 log 文件目录
35,less syslog ——————————–用less命令打开syslog 日志文件
36,hdparm -Tt /dev/sda/ ———————–测磁盘读写速度 分别加盘符sda,adb… md0或md1
37,nzsyscfg **********************************-磁盘管理
38,dmesg 或dmesg |more 或 dmesg |grep “error”——————-看系统日志
39,tcpdump arp ——————————–Linux 系统下抓包
40,opt/netzone/nxp/——–目录下建文件夹名为:conf 在conf文件夹内建空文件名为:dont_sync_time重启服务
41,cat —————————————-打开 文件
mdmesg ————————————-加载启动信息
lspci ————————————–查看PCI信息
mount ————————————–挂载信息
mdadm -D /dev/md0 ————————–检查软阵列 nxpver 版本
mke2fs -j /dev/sda3————————-格式化回写分区 或是 md0 要先卸载

——————————————服务器是否是硬盘是否有报错 打开终端:dmesg |grep “error”

——————————————-看看是否有硬盘错误信息 打开终端:cat /opt/netzone/nxp/syslog.txt

l 重起服务器:reboot
l 重起服务:nxp restart
l 停止服务:nxp stop
l 开启服务: nxp start
l 结束启动服务器进程:killall nxpbootmgr.exe
l 打开启动服务器进程:nxpbootmgr
l 结束数据服务器进程:killall nxp iomgr.exe
l 打开文件系统:thunarkillall nxpiomgr.exe
l 打开数据服务器进程:nxp iomgr
l 打开系统配置工具:nzsyscfg
l 打开网众控制台:nzcon
l 配置服务器IP:netconfig
l 查看IP地址:ifconfig
l 配置图行界面:xconfig
l 查看系统日志:dmesg 或dmesg |more 或 dmesg |grep “error”
l 查看进程:top 或 pstree
l 显示当前负载:W
l 检测硬盘读写:hdparm -Tt /dev/
l 查看磁盘空间:df 或 df -h
l 查看PCI信息: lspci
l 执行:sh
l 拷贝:cp
l 改名:mv
l 编辑:xedit 或 nc 或 nedit
l 查看当前网卡状态:ifconfig eth0/1

手动加载29320驱动
aic79XX   自已添加 /etc/rc.d 目录编辑 rc.modules文件,最后一行加
/sbin/modprobe aic79xx
手动加载LSI1030驱动
nedit /etc/rc.d/rc.modules
最后一行加上/sbin/modprobe mptscsih(ft3xx TX4000阵列)
或挂载modprobe mptscsih。 cd /etc/rc.d
ech0 /sbin/modprobe mptscsih >>rc.modules

网众连接:
export DISPLAY=60.63.246.96:1 Xterm &
端口:
AUTO Y 21 TO 21 192.168.1.251
网众:5901

优化硬盘读写参数:
elvtune -r 1024 -w 2048 /dev/sda /dev/sdb

软阵列设置
(注意网众软阵列工作站母盘阵列卷大小一定为64K)
/usr/lib/netzone/mdconfig
./mdconfig(/sda3—sdb 工作站回写   /Sdc–sdb工作站母盘)
或/usr/lib/netzone/mkraid
nzsyscfg配置命令

XP安装客户端无法启动
HKEY_LOCAL_MACHINE\SYSTEM\CurrentCcontrolSet\Control\class\<4D36E972- E325-11CE-BFC1-08002BE10318>修改upperfilter,把NXP去掉。

客户端版本:
HKEY_LOCAL_MACHINE\SOFTWARE\NETZONESOFT\NXD XP\Option
CFG   工作站对应的配置只读
DISK   磁盘只读
super   超级工作站只读
severIP nxp 服务端
nxpclient 客户端

页面文件大小:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentCcontrolSet\SEVVICES\nxdinit\
pagefile   c:\pagefile.sys 512 512

故障:
一.工作站有一台工作站在XP滚动条不断滚动?
首先把这台工作站的IP地址换一下,一般是IP地址冲突.
如果有太多的或全部的的话,有可能更网众服务端有问题,请更换服务端.

二.服务器一切正常,所有工作无法启动,无法引导?
首先:打开nxp管理器看看有没有什么报错,如果没有一切正常,能看到工作站记录.
检查服务器网络是否连接正常,打开网站看服务器络是否能打开网站.
重启一下nxp服务(打开终端nxp restart)

三.服务器很卡,工作站也很卡?
首先检查一下,服务器负载(打开终端:w—-看第一个三位数是否大于5,如果大于5说明服务器负载很重,低下5说明服务器负载正常).
检查一下,服务器是否是硬盘是否有报错(打开终端:dmesg—–看看是否有硬盘错误信息.
打开终端:cat /opt/netzone/nxp/syslog.txt—-看看有没有什么特殊的报错)
最后,看一下服务端和客户端的使用.更换一个好的服务端和客户端.

四.服务器死机?(服务器Caps Lock灯和Scroll Lock灯闪烁)
最常见的服务器内存出问题,更换内存测试.
其次检查硬盘是否正常,如没有报错.更换电源测试.

五.打开NXP管理器报错,报配置不完整?
查看磁盘是否满了.用df -h 查看磁盘空间,如果满了
1. 先把挂载的分区umount
一般需要先停止服务,然后执行umount /mnt
如果无法卸载,需要重新启动一下服务器
2. 格式化回写分区
mke2fs -j /dev/sda3
3. 重新挂载回写分区
mount /mnt /dev/sda3
进入终端:
cd /opt/netzone/nxp/sysback
cp 20060305.CFG ../SYSINFO.CFG
nxp restart从启一下nxp服务

如果没满,新建一个磁盘,把所有工作站选中,编辑一下.
nxp restart从启一下nxp服务

加载启动项:
echo nxp restart >> /etc/rc.d/rc.local

cat /var/log/syslog |grep error |more
查看日志错误信息!

301永久重定向实现方式及302重定向(侧重.htaccess)

// July 14th, 2009 // No Comments » // 服务器配置管理

在我们的网站建设中,时常会遇到需要网页重定向的情况:象网站调整,如改变网页目录结构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等。

常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh:

301 redirect: 301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。

302 redirect: 302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。

meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam
301 Redirect实现网页重定向

IIS服务器实现301重定向

* 打开internet信息服务管理器,在欲重定向的网页或目录上按右键
* 选择“重定向到URL”
* 在“重定向到”输入框中输入要跳转到的目标网页的URL地址
* 选中“资源的永久重定向”(切记)
* 最后点击“应用”

Apache服务器实现301重定向

相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。

Redirect permanent / http://www.iccc.cc/ (将目录下内容重定向到http://www.iccc.cc/ )
redirect permanent /index.asp http://www.iccc.cc/index.asp(将网页index.php重定向到http://www.iccc.cc/index.asp)

通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。

PHP下的301重定向

<?
Header( ”HTTP/1.1 301 Moved Permanently” ) ;
Header( ”Location: http://www.bloghuman.com” );
?>

ASP下的301重定向

<﹪
Response.Status=”301 Moved Permanently”
Response.AddHeader”Location”,http://www.iccc.cc

﹪>

ASP .NET下的301重定向

〈Script runat=”Server”〉
private void Page_Load(object sender,System.EventArgs e)

Response.Status = ”301 Moved Permanently”
Response.AddHeader(“Location”,”http://www.iccc.cc”)

〈/Script〉

ColdFusion下的301重定向

<.cfheader statuscode=”301″ statustext=”Moved permanently”>
<.cfheader name=”Location” value=”http://www.new-url.com”>

旧域名重定向到新域名
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。

记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]

请将上面的www.domain.com修改成你想要跳转到的域名。
此外,我建议大家归总旧网站的外部链接,并联系相应的站点修改导入链链的URL,以指向新站点。

注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用

域名301重定向到www的二级域名

在以前的文章中我反复提及过:www.domain.com是domain.com域下的一个二级域名,并对二级域名和一级目录之间如何选择以及网站结构优化做了一个详细的分析,有兴趣的可以读一下两篇文章,网站结构优化是SEO中最重要。

OK,继续域301跳转到www二级域的实现方式:

创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保所有来自对domain.com的请求都转向到对www.domain.com进行请求。记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

请将上面的domain.com和www.domain.com修改成你想要跳转到的域名。

注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用

301重定向检测工具

配置完成后,一定认真检查一下是否正确。Internet有很多类似的Server Header检查工具,如Check Server Headers Tool - HTTP Status Codes Checker

网站302重定向使用不当导致被GOOGLE惩罚

Business.com是网上最大的商业搜索引擎和分类目录,以专业提供商业信息而享负盛名,包括近19万网页。若以“business”为关键词在Google中进行搜索,该网站名列第一。不过在9月5日,Business.com遇到一件蹊跷之事:它的首页由PR8变成了PR0, 而且Google搜索结果中找不到首页。好在被“蒸发”的只是首页,不过庆幸的是第二天首页又回到了Google的搜索结果,但PR仍旧为0。

Business.com的问题出在它的重定向命令上。该网站让business.com跳转到www.business.com,这种重定向本该是永久性的。我们知道,301属于永久性重定向,而302则属于临时性重定向,只有当一个网站或网页在24到48小时之内临时移到其它位置的情况下才能使用该命令。但Business.com却错误地使用了“HTTP/1.1302 Object Moved”状态码。

其实网站重定向极为普遍,譬如不满意原来的域名而申请了一个新域名;买下容易被人错拼的域名,防止客户因为拼错URL而找不到网站,等等。可是,很多人却会由于使用了错误的重定向状态码而遭“灭站之灾”,就象Business.com。尽管他们的重定向理由充分合理,然而若使用不当,则可能被Google误认为是利用多个域名指向同一网站,那么你的网站就会被封掉,罪名是“利用重复的内容来干扰Google搜索结果的网站排名”。Business.com就是最好的前车之鉴。只不过大多数使用错误重定向参数的网站没Business.com这么幸运,一个小小的重定向就可能使网站前功尽弃,只能从头来过:重新申请新域名,重新发布新网站,等等。记住:Google绝不会同情任何人即使无心犯下的错误。

网站服务器响应网页浏览请求的运作流程

让我们先来了解一下用户/搜索引擎和网站一开始的交互流程。当用户或搜索引擎向一个网站服务器发出网页浏览请求时,该服务器将:
1.通过域名服务器(DNS)将域名转换为网站的IP地址,然后返回给客户
2.打开一个该IP套接口连接
3.记下通过该套接口的一个HTTP数据流
4.从WEB服务器接收一个响应请求的HTTP数据流。该数据流包含状态码,状态码的值由HTTP协议所决定。这里所说的“HTTP数据流”信息也叫“头信息(Header)”。头信息中包括了日期,服务器类型,通常还会有一条“200 OK”信息。如果一切良好,那么网络服务器就会将“200 OK”信息以及请求页面发送出去。如果网站在这时候已经建立了重定向,那么服务器就会在头信息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信息。搜索引擎会根据服务器头信息中的内容作出决定。

网站重定向的注意事项

1.若准备将服务器上的文件移到其它地方时,须就以下信息正确地通知搜索引擎的爬行程序:
- 目标地址:这些文件被移向何方
- 移动属性:暂时移走还是永久性移走
2.对拥有多个域名的网站,专家建议应把那些不想在搜索引擎上推广的域名用301跳转命令来永久性重定向。

确保网站实施了正确的301重定向

对于正确实施301重定向,有这样几个方法可供大家参考:
1.在.htaccess文件中增加301重定向指令
2.适用于使用Unix网络服务器的用户。通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。形如:Redirect 301 / http://www.yourdomain.com/
3.在服务器软件的系统管理员配置区完成301重定向
适用于使用Window网络服务器的用户
4.采用“mod_rewrite”技术
通过该技术进行的改变将在.htaccess文件中体现出来,形如:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain.com
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=permanent,L]

5.绑定/本地DNS(域名别名跳转)
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。
若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
DNS服务器的设置
若要将aaa.domain.com指向www.domain.com,则只需在DNS服务中应增加一个别名记录,可写成:aaa IN CNAME www.domain.com。
如需配置大量的虚拟域名,则可写成:* IN CNAME www.domain.com.
这样就可将所有未设置的以domain.com结尾的记录全部重定向到www.domain.com上。
6.用ASP/PHP实现301重定向:
代码在上面已经介绍过了

资深SEO专家Dan Thies的看法和建议

对于Business.com所遭遇的问题Dan Thies深有体会,因为他也有过类似的遭遇。他的网站上有一个会员跟踪脚本,其中一个会员的站点通过302命令映射到这个跟踪脚本,而这个跟踪脚本又是通过302映射到他的主页。当在Google中用“keyword research”进行搜索,他的主页排名在前十位,然而地址显示的却是那个会员的网址。结果使他哭笑不得:访问者通过Google搜索结果进入他的网站,而他却不得不为这些访问量给那个会员支付报酬! 后来他用robots.txt文件禁止Spiders跟踪访问他的会员跟踪脚本才算解决了问题。
对于Business.com,Dan Thies认为:“目前Google在302重定向”的处理上还存在一定的问题,但并不表示Google不允许302重定向。Business.com并未遭封或遭到惩罚,它们只是返回了错误的响应。”
Dan Thies建议:如果使用了跟踪URL/脚本,又必须让访问者重定向到某一着陆页,那么一定要在robots.txt文件中禁止Spiders去访问第二个重定向。如果没有对跟踪URL/脚本进行重定向,而只是把另外一个URL上的内容给复制过来,那么应在robots.txt文件中禁止Spiders去访问跟踪URL,以防因内容重复而遭搜索引擎惩罚。

301重定向经验谈

一个多域名站主的经验之谈:
“我只有一个网站,主域名是www.domain.com,此外还有诸如domain1.com、domain2.com、domain3.com等共计十几个域名。所有这些次级域名都映射到www.domain.com,而且所有域名对应的是同一个IP地址。由于事实上我只有一个站点,一个站点又只能对应一个.htaccess文件,显然不可能直接修改.htaccess文件来实现重定向。我采用了如下步骤:
A.把domain1.com从domain.com上独立出来,让它成为服务器上的一个普通独立网站。
B.为domain1.com创建一个.htaccess文本文件,并在文件中设置重定向代码为:
Redirect permanent / http://www.domain.com/
再将修改后的.htaccess文件上传给domain1.com所在服务器。
这一步也可以在域名控制面板中完成。
C.进入域名控制面板,将所有原来绑定到domain.com上的域名从domain.com上释放,然后重新绑定到doamin1.com。这样一来,这些被绑定的域名使用的都是domain1.com的.htaccess文件,因而也就意味着它们都被永久性重定向到domain.com上了。好了,大功告成! 就这么容易!

用apache实现禁止IP段或者主机对某个目录的访问

// January 21st, 2008 // No Comments » // PHP知识累计, 服务器配置管理

Allow 指令
说明: 控制哪些主机能够访问服务器的一个区域
语法: Allow from all|host|env=env-variable [host|env=env-variable] …
上下文: 目录, .htaccess
覆盖项: Limit
状态: Base
模块: mod_access

Allow指令影响哪些主机可以访问服务器的一个区域。可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制。

这 个指令的第一个参数总是from。随后的参数可以有三种不同形式。 如果指定Allow from all,则允许所有主机访问,需要 Deny和Order指令像下面讨论的那样配置。 要只允许特定一部分主机或主机群访问服务器,host可以用下面任何一种格式来指定:

一个域名(部分)
例子:Allow from apache.org
允 许名字与给定字符串匹配或者以该字符串结尾的主机访问。 只有完整的名字组成部分才被匹配,因此上述例子将匹配foo.apache.org而不能匹配fooapache.org。 这样的配置将引起服务器执行一个对客户IP地址的反查域名操作而不管HostnameLookups指令是否设置
完整的IP地址
例子:Allow from 10.1.2.3
允许一个主机的一个IP地址访问。
部分IP地址
例子:Allow from 10.1
IP地址的开始1到3个字节,用于子网限制。
网络/掩码对
例子:Allow from 10.1.0.0/255.255.0.0
一个网络a.b.c.d,和一个掩码w.x.y.z。用于更精确的子网限制。
网络/nnn 无内别域间路由规格
例子:Allow from 10.1.0.0/16
同前一种情况相似,除了掩码由nnn个高位字节构成。
注意以上后三个例子完全匹配同一组主机。

IPv6地址和IPv6子网可以像下面这样指定:

Allow from fe80::a00:20ff:fea7:ccea
Allow from fe80::a00:20ff:fea7:ccea/10

Allow 指令的第三种参数格式允许对服务器的访问由 环境变量的一个扩展指定。指定 Allow from env=env-variable时,如果环境变量env-variable存在则访问请求被允许。 使用由mod_setenvif提供的指令,服务器用一种基于客户端请求的弹性方式提供了设置环境变量的能力。 因此,这条指令可以用于允许基于像User-Agent(浏览器类型)、Referer或者其他Http请求头字段 的访问。

例子:
SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
<Directory /docroot>
Order Deny,Allow
Deny from all
Allow from env=let_me_in
</Directory>

这种情况下,发送以KnockKnock/2.0开头的用户代理标示的浏览器将被允许访问,而所有其他浏览器将被禁止访问。

Deny 指令
说明: 控制哪些主机被禁止访问服务器
语法: Deny from all|host|env=env-variable [host|env=env-variable] …
上下文: 目录, .htaccess
覆盖项: Limit
状态: Base
模块: mod_access

这条指令允许基于主机名、IP地址或者环境变量限制对服务器的访问。 Deny指令的参数设置和Allow指令完全相同。

Order 指令
说明: 控制缺省的访问状态和Allow与Deny指令被评估的顺序。
语法: Order ordering
默认值: Order Deny,Allow
上下文: 目录, .htaccess
覆盖项: Limit
状态: Base
模块: mod_access

Order指令控制缺省的访问状态和 Allow与Deny指令被评估的顺序。 Ordering是以下几种范例之一:

Deny,Allow
Deny指令在 Allow指令之前被评估。缺省允许所有访问。 任何不匹配Deny指令或者匹配 Allow指令的客户都被允许访问服务器。
Allow,Deny
Allow指令在 Deny指令之前被评估。缺省禁止所有访问。 任何不匹配Allow指令或者匹配 Deny指令的客户都将被禁止访问服务器。
Mutual-failure
只有出现在Allow列表并且不出现在 Deny列表中的主机才被允许访问。 这种顺序与Order Allow,Deny具有同样效果,不赞成使用,它包括了哪一种配置。
关键字只能用逗号分隔;它们之间不能有空格。注意在所有情况下每个Allow和Deny指令语句都将被评估。

在下面的例子中,apache.org域中所有主机都允许访问,而其他任何主机访问都被拒绝。

Order Deny,Allow
Deny from all
Allow from apache.org

下面例子中,apache.org域中所有主机,除了foo.apache.org子域包含的主机被拒绝访问以外,都允许访问。 而所有不在apache.org域中的主机都不允许访问,因为缺省状态是拒绝对服务器的访问。

Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org

另 一方面,如果上个例子中的Order指令改变为Deny,Allow, 将允许所有主机的访问。这是因为,不管配置文件中指令的实际顺序如何, Allow from apache.org指令会最后被评估到并覆盖之前的 Deny from foo.apache.org。所有不在apache.org 域中的主机也允许访问是因为缺省状态被改变到了允许。

即使没有伴随Allow和Deny指令,一个Order 指令的存在也会影响到服务器上某一个部分的访问, 这是由于他对缺省访问状态的影响。例如,

<Directory /www>
Order Allow,Deny
</Directory>

这样将会禁止所有对/www目录的访问,因为缺省状态将被设置为拒绝.

Order 指令只在服务器配置的每个段内部控制访问指令的处理。 这暗示着,例如,一个在<Location>段出现的 Allow或者Deny指令总是将会在一个<Directory>段或者 .htaccess文件中出现的 Allow或Deny 指令之后被评估,而不管Order指令中的设置为何。要了解配置段落合并的详细信息, 参看How Directory, Location and Files sections work相关文档

yum -y install httpd php mysql mysql-server php-mysql

// December 28th, 2007 // No Comments » // 服务器配置管理

http://www.flmnh.ufl.edu/linux/install_apache.htm

RHEL 5 安装 序列号

// December 28th, 2007 // No Comments » // 服务器配置管理

RHEL 5 安装 序列号
服务器:
* Red Hat Enterprise Linux (Server including virtualization):
2515dd4e215225dd
+ Red Hat Enterprise Linux Virtualization Platform:
49af89414d147589
客户端:
* Red Hat Enterprise Linux Desktop:
660266e267419c67
+ Red Hat Enterprise Linux Desktop + Workstation Option:
da3122afdb7edd23
+ Red Hat Enterprise Linux Desktop + Workstation + DualOS Option
(Virtualization):
7fcc43557e9bbc42
+ Red Hat Enterprise Linux Desktop + DualOS Option (Virtualization):
fed67649ff918c77

mysql 安装

// December 27th, 2007 // No Comments » // 数据库含量, 服务器配置管理

3. MySQLのインストール手順
ここからは、MySQLのインストール手順を説明します。tar.gz形式でのインストールは簡単で、ダウンロードしてきたtar.gzファイルを展開し、権限データベースを作成すれば完了します。ダウンロードしてきたMySQLをインストールする前に、OS標準のMySQLがすでにインストールされていないかどうか確認しておいてください。
確認方法の例
# rpm -qa | grep mysql
OS標準のmsqlがインストールされていた場合はアンインストールしてください
# rpm -qa | grep mysql | xargs rpm -e
3.1. OSユーザの作成
MySQLサーバを起動するOSユーザ’mysql’を作成します。ユーザmysqlのグループも’mysql’にします。
$ su
6
# /usr/sbin/groupadd mysql
# /usr/sbin/useradd -g mysql mysql
# passwd mysql
(適当なパスワードを設定してください)
3.2. tarファイルの展開
ダウンロードしてきたtarファイルを展開します。
今回は/usr/localディレクトリで展開していますが、tar.gz形式でインストールする場合は、任意の場所へ展開することが可能です。
# cd /usr/local/
# tar xvzf /tmp/mysql-enterprise-gpl-5.0.34-linux-i686-glibc23.tar.gz
# chown -R mysql:mysql mysql-enterprise-gpl-5.0.34-linux-i686-glibc23/
# ln -s mysql-enterprise-gpl-5.0.34-linux-i686-glibc23 mysql
MySQLサーバ本体へのパスの簡潔さを考慮し、/usr/local/mysqlへシンボリックリンクを張っています。
展開したディレクトリ以下のOwnerをMySQLサーバを起動するOSユーザ(mysql)に設定しています。この設定を行う際、chownを行う対象は必ずtarで展開したディレクトリ(mysql-enterprise-gpl-5.0.34-linux-i686-glibc23) に対して行ってください。
tar ファイルを展開してインストールした場合、作成される主なディレクトリのデフォルトレイアウトは以下のようになっています。
ディレクトリ
ディレクトリの内容
bin
クライアントプログラムとmysqlサーバ
data
ログファイル、データベース
docs
ドキュメント, Changeログ
include
インクルードファイル
lib
ライブラリ
scripts
スクリプト
share
エラーメッセージファイル
sql-bench
ベンチマーク
3.3. 設定ファイル
MySQLのパラメータを設定する設定ファイル(/etc/my.cnf)を用意します。
ここでは、インストール時にMySQLから提供されるファイルをコピーして使用します。
# cd /usr/local/mysql
# cp ./support-files/my-huge.cnf /etc/my.cnf
# chown mysql:mysql /etc/my.cnf
# chmod 644 /etc/my.cnf
※ my-hoge.cnfファイルは、実メモリが1G~2Gbyteのシステム用に用意されたファイルです。もし、実メモリのサイズが大きく異なる場合は他のファイル(my-large.cnf, my-medium.cnf等)を使用するなどして対応して下さい。
3.4. 権限データベースの作成
MySQLサーバが内部的に使用する権限データベースを作成してください。
# cd /usr/local/mysql
# ./scripts/mysql_install_db –user=mysql
Installing all prepared tables
Fill help tables
To start mysqld at boot time you have to copy support-files/mysql.server
to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
./bin/mysqladmin -u root password ‘new-password’
./bin/mysqladmin -u root -h dl380g4node1 password ‘new-password’
See the manual for more instructions.
7
You can start the MySQL daemon with:
cd . ; ./bin/mysqld_safe &
You can test the MySQL daemon with the benchmarks in the ‘sql-bench’ directory:
cd sql-bench ; perl run-all-tests
Please report any problems with the ./bin/mysqlbug script!
The latest information about MySQL is available on the web at

http://www.mysql.com

Support MySQL by buying support/lic./senses at http://shop.mysql.com
注意
tar.gz形式のバイナリからのインストールで、mysql_install_dbスクリプトを実行する場合は、MySQLをインストールしたディレクトリ(/usr/local/mysql)から実行してください。
3.5. MySQLサーバの起動
インストールしたMySQLサーバを起動します。
# cd /usr/local/mysql
# ./bin/mysqld_safe –user=mysql &
Starting mysqld daemon with databases from /usr/local/mysql/data
3.6. 起動確認
MySQLサーバが起動したかどうかを確認します。
# ./bin/mysqladmin ping
mysqld is alive
mysqld is aliveと表示されればMySQLサーバが起動していることになります。
3.7. MySQLアカウントの修正
MySQLには、インストールした時にゲストアカウントと、管理者アカウント(root)が存在しますが、これらのアカウントにはパスワードが設定されていません。
以下の手順で、ゲストアカウントの削除と、管理者アカウントの修正を行います。
実運用時には、管理者アカウントでアクセス可能なホストの制限や限定された権限を持つアカウントを作成して利用してください。
# /usr/local/mysql/bin/mysql -u root
mysql> use mysql;
mysql> select host, user, password from user;
+————-+——+———-+
| host | user | password |
+————-+——+———-+
| localhost | | |
| localhost | root | |
| host1 | | |
| host1 | root | |
+————-+——+———-+
4 rows in set (0.03 sec)
mysql> delete from user where user = ” or host=’host1′;
Query OK, 3 rows affected (0.01 sec)
mysql> set password for ‘root’@'localhost’ = password(‘root_password’);
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to ‘root’@'%’ identified by
8
mysql> ‘root_password’ with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> select host, user from user;
+———–+——+——————————————-+
| host | user | password |
+———–+——+——————————————-+
| localhost | root | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| % | root | *97E3CA0A0B00371413E6ECCD76C473CCA8757F86 |
+———–+——+——————————————-+
2 rows in set (0.00 sec)
mysql> quit
上記操作により、mysql管理者アカウントは以下の表に示す通りになります。
アカウント
説明
root@localhost
localhostからUNIXドメインソケットでアクセスするアカウント
root@%
任意のホストからネットワーク越しにアクセスするアカウント
注意:上記では、root@%というアカウントを残してありますが、実運用ではセキュリティ上お勧めできま せん。以下のようにアクセス可能なホストを制限するか、クライアント用の限定した権限を持つユーザを用意してください。
mysql> delete from user where user=’root’ and host=’%';
mysql> grant all privileges on *.* to ‘root’@'hostname’ identified by ‘dbpassword’;
mysql> select host, user, password from user;
+————+——+——————————————-+
| host | user | password |
+————+——+——————————————-+
| localhost | root | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin_host | root | *2AF14BD74D8A4FDB580D3208C0092BE75EE95B75 |
+————+——+——————————————-+
注意: 上記の例にある hostnameはサーバのホスト名、dbpassはrootアカウントのパスワードですので、各自の環境に合わせて適宜変更してください。
3.8. MySQLのバージョン確認方法
# mysqladmin versionコマンドを実行すれば、MySQLのバージョン情報を確認することができます。
# mysqladmin version
mysqladmin Ver 8.41 Distrib 5.0.34, for pc-linux-gnu on i686
Copyright (C) 2000-2006 MySQL AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 5.0.34-enterprise-gpl
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 3 hours 35 min 32 sec
Threads: 1 Questions: 1 Slow queries: 0 Opens: 12 Flush tables: 1 Open tables: 6 Queries per second avg: 0.000
9
4. データベースの作成方法
ここでは起動したMySQLに簡単なデータベースを作成する方法について紹介します。
4.1. データベースの作成
MySQLへ接続するためのコマンド mysqlを使用して、新規データベース mydb を作成します。 まずは初期登録されている管理者ユーザ rootを使用してMySQLにアクセスします。
mydbデータベースで使用する文字エンコーディングはcp932とします。
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.0.34-enterprise-gpl MySQL Enterprise Server (GPL)
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> CREATE DATABASE mydb CHARACTER SET cp932;
Query OK, 1 row affected (0.00 sec)
4.2. データベースユーザの作成
作成されたデータベース mydbにアクセスするデータベースユーザを作成します。 今回は ユーザ名:mydbuser パスワード:mydbpassとして作成しています。
mysql> GRANT ALL PRIVILEGES ON mydb.* TO ‘mydbuser’@'localhost’
-> IDENTIFIED BY ‘mydbpass’;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON mydb.* TO ‘mydbuser’@'%’
-> IDENTIFIED BY ‘mydbpass’;
Query OK, 0 rows affected (0.00 sec)
最初のコマンドにより、localhostからmydbデータベース内のすべてのTableに対して接続可能な、mydbuser作成されます。
次のコマンドで、mydbuserが任意のホストからmydbデータベース内のすべてのTableに対して接続可能となります。
4.3. テーブルの作成
mydbデータベースに、新規テーブル mytable を作成します。
mysql> USE mydb
Database changed
mysql> CREATE TABLE mytable
-> (
-> id INT NOT NULL AUTO_INCREMENT,
-> last_name CHAR(30) NOT NULL,
-> first_name CHAR(30) NOT NULL,
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.00 sec)
4.4. データの入力
テーブル mytable にデータを入力します。
mysql> INSERT INTO mytable (last_name, first_name)
-> VALUES (‘Hewlett’,'Bill’),(‘Packard’,'Dave’);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
テーブルに入力されたデータを確認します。
10
mysql> SELECT * FROM mytable;
+—-+———–+————+
| id | last_name | first_name |
+—-+———–+————+
| 1 | Hewlett | Bill |
| 2 | Packard | Dave |
+—-+———–+————+
2 rows in set (0.00 sec)
11
Appendix1 : データ格納先ディスクの変更方法
本インストール手順書では、MySQLのデータはインストールディレクトリ (/usr/local/mysql) 内の./dataディレクトリに入れていますが、以下のような手順でデータディレクトリを他のディスクに配置することも可能です。
1. ディスクの用意
新しいディスクを用意しデバイスを作成します。(ここでは/dev/cciss/c0d1p1 とします)
ディスクの作成方法についてはAppendix2 Smartアレイコントローラの設定方法を参考にしてください。
2. ディスクのマウント
# mount /dev/cciss/c0d1p1 /mnt/mysql-data
3. ユーザと権限の変更
# chown mysql:mysql /mnt/mysql-data
# chmod 755 /mnt/mysql-data
4. /etc/my.cnfの変更
以下のエントリを[mysqld]の中に追加して下さい。
[mysqld]
datadir = /mnt/mysql-data
5. 権限データベースの作成
# cd /usr/local/bin
# ./scripts/mysql_install_db –datadir=/mnt/mysql-data –user=mysql
これでmysqlを再起動すればデータの格納されているディスクは/dev/cciss/c0d1p1になります。

PHP4 & MySQLのインストール

// December 27th, 2007 // No Comments » // 服务器配置管理

0.事前準備
以下のインストールはRedHat 7.2Jで確認しています。

まず /usr/local/src に以下のソースファイルをダウンロードしておきます。
apache_1.3.27.tar.gz
mysql-3.23.55.tar.gz
php-4.3.0.tar.gz

これより以下の作業はrootで行います

(注意)ソースコードは以下のサイトから最新版をダウンロードできます。
・Apacheの最新ソース(Apache2.xではなくApache1.3.2xの方を選ぶ)
・MySQLの最新ソース(MySQL4.xではなくMySQL3.23.xの方を選ぶ)
・PHPの最新ソース(PHP4.2.0から外部変数の取り扱いが変更されています。
   「3.PHP4インストール」の注意事項を見逃さないでください!)
1.MySQLのインストール

・group "mysql" の追加
 #/usr/sbin/groupadd mysql

・user "mysql" の追加
 #/usr/sbin/useradd -g mysql mysql

・ソース解凍
 #cd /usr/local/src
 #tar zxvf mysql-3.23.49.tar.gz

・Makefileの作成 & コンパイル & インストール
 #cd mysql-3.23.49
 #./configure --with-charset=ujis --with-extra-charsets=all
              --with-mysqld-user=mysql --prefix=/usr/local/mysql
 (実際は改行しないで1行で入力してください)
 #make
 #make install

・初期化
 #/usr/local/mysql/bin/mysql_install_db --user=mysql
 #chown -R mysql /usr/local/mysql
 #chgrp -R mysql /usr/local/mysql
 #/usr/local/mysql/bin/safe_mysqld --user=mysql&
 #/usr/local/mysql/bin/mysqladmin -u root password xxxxxxx
 (xxxxxxxx は適切なMySQLのパスワード)
2.Apacheのインストール

・ソースの解凍
 #cd /usr/local/src
 #tar zxvf apache_1.3.22.tar.gz

・Makefileの作成 & コンパイル & インストール
 #cd apache_1.3.22
 #OPTIM="-O2" ./configure --enable-module=so
  ("O2"のOはアルファベット大文字のオー)
 #make
 #make install
3.PHP4のインストール

・ソースの解凍
 #tar zxvf php-4.1.2.tar.gz

・Makefileの作成 & コンパイル & インストール
 #cd php-4.1.2
 #./configure --enable-track-vars
              --with-apxs=/usr/local/apache/bin/apxs
              --with-mysql=/usr/local/mysql
              --enable-mbstring
              --enable-mbstr-enc-trans
 (実際は改行しないで1行で入力してください)

 #make
 #make install
 #cp php.ini-dist /usr/local/lib/php.ini

(重要な注意事項!)
PHP4.2.0から外部変数の取り扱いが変わっています。 古いバージョンで開発されたPHPプログラムをそのまま動作させるためには php.iniファイルの “register_globals=Off” 行を “register_globals=On” に変更する必要があります。

4.Apacheの設定

・httpd.confファイルの修正
 #cd /usr/local/apache/conf
 # vi httpd.conf

★以下の行を入れる(2行目の前に1行目を追加する)
 LoadFile /usr/local/mysql/lib/mysql/libmysqlclient.so
 LoadModule php4_module libexec/libphp4.so

★DirectoryIndexを以下のように修正する
 DirectoryIndex  index.php  index.html

★以下のAddType行を追加(コメントを外す)
 AddType application/x-httpd-php  .php
 AddType application/x-httpd-php-source  .phps

★UserとGroupを適切なものに変更(例 wwwusr, wwwgrp)
 User   wwwusr
 Group  wwwgrp
5.起動スクリプトの設定

・起動スクリプトファイル/etc/rc.d/rc.local に以下の行を追加する
------------------------------------------------------
 #
 if  [  -x  /usr/local/apache/bin/apachectl  ]  ;  then
     echo  -n  "Starting Apache web server"
     su  -  root  -c  "/usr/local/apache/bin/apachectl  restart"
     echo  "."
 fi
 #
 /bin/sh  -c  'cd  /usr/local/mysql;  ./bin/safe_mysqld&'
------------------------------------------------------
(注意)if文行の空白に注意
6.バックアップの設定

・cronで MySQL DB のバックアップを取る
 #crontab -e

★以下の行を挿入
 0 4 * * 0  /usr/local/mysql/bin/mysqldump -uroot -pXXXXXXXX db1 >
                /usr/local/backup/db1.sql
 (実際は改行しないで1行で入力してください)
7.環境の設定

・adminがftpでドキュメントをアップできるようにする
 #cd /usr/local/apache
 #chown -R admin htdocs

・adminのパスを設定する
 #cd /home/admin
 #vi .bash_profile

最初のPATH行に以下のPATH行を追加
------------------------------------------------------
 PATH=.:/usr/local/mysql/bin:$PATH
------------------------------------------------------

linux+apache+php+mysql 源码安装

// December 27th, 2007 // No Comments » // 服务器配置管理

天下文章一大抄,看你会不会抄,偶也来发表一篇文章

一:准备软件包,存放/home/xiutuo/software/目录下。

主要软件包,
1. httpd-2.2.6.tar.gz
2. mysql-5.0.45-linux-i686-glibc23.tar.gz  (这个版本是已编译好的压缩包,解压后稍做配置即可使用)
3. php-5.2.5.tar.gz

安装php所需的软件包(其中libxml2是安装php5必须的.)
1. libxml2-(version).tar.gz  —>  http://ftp.gnome.org/pub/GNOME/sources/libxm2
2. libxslt-(version).tar.gz  —>  http://ftp.gnome.org/pub/GNOME/sources/libxslt
3. curl-(version).tar.gz     —>  http://curl.haxx.se/download

GD库所需要软件包(有人说PHP源码包里自带了GD2.0.28和zlib,只要安装GD的三个支持包:jpg,png和freetype,但是我们还是下载)
1. gd-(version).tar.gz       —>  http://www.libgd.org/Main_Page  or  http://www.libgd.org/releases/
2. freetype-(version).tar.gz —>  http://sourceforge.net/projects/freetype
3. jpegsrc.v6b.tar.gz        —>  http://ijg.org/files/jpegsrc.v6b.tar.gz
4. libpng-(version).tar.gz   —>  http://www.libpng.org/pub/png/libpng.html
5. zlib-1.2.3.tar.gz         —>  http://www.zlib.net

把以上所有软件包下载到:/root/Software/目录下.

二:安装mysql

# tar -zvxf mysql-5.0.45-linux-i686-glibc23.tar.gz
# mkdir -p /usr/local/mysql
# cp -r mysql-5.0.45 /usr/local/mysql
# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql //开机启动mysql
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

添加mysql用户及用户组
# groupadd mysql
# useradd -g mysql mysql
修改mysql目录权限
# chown -R root /usr/local/mysql
# chgrp -R mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/data
生成mysql系统数据库
# /usr/local/mysql/scripts/mysql_install_db –user=mysql&  //启动mysql服务
# /usr/local/mysql/bin/mysqld_safe –user=mysql&
如出现 Starting mysqld daemon with databases from /usr/local/mysql/data 代表正常启动mysql服务了.
按Ctrl + C 跳出修改 mysql 的 root 密码
# /usr/local/mysql/bin/mysqladmin -u root -p password “123456″

三:安装GD库(让PHP支持GIF,PNG,JPEG)
a.安装 jpeg6 建立目录:
# mkdir -p /usr/local/jpeg6
# mkdir -p /usr/local/jpeg6/bin
# mkdir -p /usr/local/jpeg6/lib
# mkdir -p /usr/local/jpeg6/include
# mkdir -p /usr/local/jpeg6/man
# mkdir -p /usr/local/jpeg6/man1
# mkdir -p /usr/local/jpeg6/man/man1
# cd /root/Software/
# tar -zvxf jpegsrc.v6b.tar.gz
# cd jpeg6
# ./configure –prefix=/usr/local/jpeg6/ –enable-shared –enable-static
# make
# make install

b.libpng包(支持PNG)
# cd /root/Software/
# tar -zvxf libpng-(version).tar.gz
# cd libpng-(version)
# ./configure –prefix=/usr/local/libpng
# make
#> make install

c.安装 freetype
# cd /root/Software/
# tar -zvxf freetype-(version).tar.gz
# cd freetype-(version)
# mkdir -p /usr/local/freetype
# ./configure –prefix=/usr/local/freetype
# make
# make install

d.安装zlib
# cd /root/Software/
# tar -zxvf zlib-1.2.3.tar.gz
# cd zlib.1.2.3
# mkdir /usr/local/zlib
# ./configure –prefix=/usr/local/zlib
# make
# make install

e.安装GD库
# cd /root/Software/
# tar -zvxf gd-(version).tar.gz
# mkdir -p /usr/local/gd2
# cd gd-(version)
# ./configure –prefix=/usr/local/gd2 –with-jpeg=/usr/local/jpeg6 –with-zlib-dir=/usr/local/zlib –with-png=/usr/local/libpng –with-freetype=/usr/local/freetype
# make
# make install

e.安装Curl库
# cd /root/Software/
# tar -zxf curl-(version).tar.gz
# mkdir -p /usr/local/curl
# ./configure –prefix=/usr/local/curl
# make
# make install

四:安装apache2
# cd /roo/Software/
# tar -zvxf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# mkdir -p /usr/local/apache2
# ./configure –prefix=/usr/local/apache –enable-modules=so –enable-rewrite
# make
# make install
# /usr/local/apache2/bin/apachectl -k start //启动apahce
用浏览器查看http://localhost,得到it works,说明apache已经配置成功了.
# /usr/local/apache2/bin/apachectl -k stop  //停止apache

五:安装php5,php5必须有libxml2支持!
a. 安装libxml2
# cd /root/Software/
# tar -zvxf libxml2-(version).tar.gz
# cd libxml2-(version)
# mkdir -p /usr/local/libxml2
# ./configure –prefix=/usr/local/libxml2
# make
# make install

b.安装 libxslt (可选安装,你可以不安装)
# cd /root/Software/
# tar -zvxf libxslt-(version).tar.gz
# mkdir -p /usr/local/libxslt
# cd libxslt-(version)
# ./configure –prefix=/usr/local/libxslt –with-libxml-prefix=/usr/local/libxml2
# make
# make install

c.安装php5
# cd /root/Software/
# tar -zvxf php-(version).tar.gz
# mkdir -p /usr/local/php5
# cd php-(version)
# ./configure –prefix=/usr/local/php5 –with-apxs2=/usr/local/apache2/bin/apxs \
>–with-gd=/usr/local/gd2 –with-jpeg-dir=/usr/local/jpeg6 \
>–with-zlib-dir=/usr/local/zlib \
>–with-png-dir=/usr/local/libpng \
>–with-freetype-dir=/usr/local/freetype -\
>–enable-trace-vars –with-mysql=/usr/local/mysql \
>–enable-mbstring=all –with-curl=/usr/local/curl –enable-mbregex \
>–with-config-file-path=/usr/local/php5 –enable-ftp \
>–enable-soap –with-xsl=/usr/local/libxslt

# make
# make install
# cp php.ini-dist /usr/local/php5/php.ini  (别忘记了呵呵)

六:重新配置apache2让他支持php

# cd /usr/local/apache2/conf
# vim httpd.conf
在LoadModule php5_module modules/libphp5.so
添加AddType application/x-httpd-php  .php

OK,基本的安装已经完成.
重新起动APACHE:
# /usr/local/apache2/bin/apachectl start
如果重新起动APACHE出现:
Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server:
/usr/local/apache2/modules/libphp4.so: cannot restore segment prot after reloc: Permission denied
那就要按照下面的方法解决:

1.chcon  -t  texrel_shlib_t  /usr/local/apache2/modules/*.so

2.编辑/etc/selinux/config,找到这段:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – SELinux is fully disabled.
SELINUX=enforcing

把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为:
SELINUX=disabled
保存,关闭。

编辑/etc/sysconfig/selinux,找到:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – SELinux is fully disabled.
SELINUX=enforcing

如果SELINUX已经是 SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing 注释掉,新加一行:
SELINUX=disabled
保存,退出。

ok,web环境apache2+mysql5+php5就介绍到这里。更详细的apache2的配置和mysql配置和php.ini的配置参考相应文档

redhat as4下Mysql5+php5+apache2.2.4+GD2安装

// December 26th, 2007 // No Comments » // 服务器配置管理

一.  准备工作:
apache 2.2.4       下载 http://httpd.apache.org
mysql 5.0.22       下载http://www.mysql.com
php 5.2.1         下载  http://www.php.net
gd         下载   http://www.libgd.org/Downloads(php图像处理需要的LIB)
zlib      下载   http://www.zlib.net/ (使用GD功能所需要的软件包)
libpng-config   下载   http://www.libpng.org/pub/png/libpng.html(使用GD功能所需要的软件包)
jpeg-6b  下载   ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz (使用GD功能所需要的软件包,支持jpeg图片)
freetype2下载  http://sourceforge.net/projects/freetype (使用GD功能所需要的软件包,FreeType2是一个简单的跨平台的字体绘制引擎)
fontconfig 下载http://www.fontconfig.org/release/ (使用GD功能所需要的软件包,fontconfig是字体库)
openssl  下载   http://www.openssl.org/source/ (apache的https协议需要的模块)
libxml2  下载   http://ftp.acc.umu.se/pub/GNOME/sources/libxml2
Libxslt  下载   http://ftp.acc.umu.se/pub/GNOME/sources/libxsl2
zend optimizer 下载   https://www.zend.com/free_download/optimizer

1. 安装OpenSSL
tar zxvf openssl-0.9.8e.tar.gz
cd openssl-0.9.8e
./config –prefix=/usr/local/openssl
make
make install
修改(此步骤非常重要,至少对于现有的软件版本)
vi /etc/ld.so.conf 添加一行/usr/local/openssl/lib/
/sbin/ldconfig
2. 安装zlib (安装libpng和gd前需要先安装zlib)
tar zxvf zlib-1.2.3.tar.gz
cd  zlib-1.2.3
./configure –prefix=/usr/local/zlib && make && make install
3.安装libpng
tar zxvf libpng-1.2.12.tar.gz
cd libpng-1.2.12
./configure –prefix=/usr/local/libpng2 && make;make install
4. 安装freetype
tar zxvf freetype-2.2.1.tar.gz
cd freetype-2.1.10
./configure –prefix=/usr/local/freetype2 &&make && make install
5. 安装jpeg
mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/include
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/man/
mkdir /usr/local/jpeg6/man/man1/
tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure –prefix=/usr/local/jpeg6 –enable-shared –enable-static && make && make test && make install
vi /etc/ld.so.conf 加入一行:
/usr/local/jpeg6/lib
/sbin/ldconf
6. 解压fontconfig源代码
cd fontconfig-2.3.2
./configure –prefix=/usr/local/fontconfig –disable-docs –sysconfdir=/etc  –mandir=/usr/share/man && make && make install
7. 安装gd
tar zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
CPPFLAGS=”-I/usr/local/freetype2/include -I/usr/local/jpeg6/include -I/usr/local/libpng2/include -I/usr/local/fontconfig/include” ./configure –prefix=/usr/local/gd2/ –with-zlib=/usr/local/zlib/ –with-png=/usr/local/libpng2/ –with-jpeg=/usr/local/jpeg6/ –with-freetype=/usr/local/freetype2/ –with-fontconfig=/usr/local/fontconfig
configure的结果:
** Configuration summary for gd 2.0.34:

Support for PNG library:          yes
Support for JPEG library:         yes
Support for Freetype 2.x library: yes
Support for Fontconfig library:   yes
Support for Xpm library:          yes
Support for pthreads:             yes

make && make install

8. 安装libxml2(因php5.02要求libxml2的版本是 libxml2.5.10 or greater required.)
tar zxvf libxml2-2.6.27.tar.gz
cd libxml2-2.6.27
./configure –prefix=/usr/local/libxml2 && make && make install
9.  安装libxslt
tar zxvf libxslt-1.1.20.tar.gz
cd libxslt-1.1.20
./configure –prefix=/usr/local/libxslt –with-libxml-prefix=/usr/local/libxml2 && make && make install

二、安装Mysql
groupadd mysql
useradd -g mysql -c ‘mysql account’ -p mysql mysql
mkdir /usr/local/mysql
cd /usr/local/
chown -R mysql.mysql mysql #然后设置权限设定mysql用户能访问/usr/local/mysql,里面存的是mysql的所有文件
tar –xzvf mysql-5.0.22.tar.gz
cd mysql-5.0.22
mysql安装_编译、安装
为了防止使用旧的配置信息或目标文件,在重新运行configure前运行这些命令:
rm config.mk
make clean
configure针对Intel CPU的优化
CFLAGS=”-O6 -mpentiumpro -fomit-frame-pointer” CXX=gcc CXXFLAGS=”-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti” ./configure –prefix=/usr/local/mysql –enable-assembler –with-mysqld-ldflags=-all-static –with-client-ldflags=-all-static –disable-shared –with-charset=gbk –with-extra-charsets=none –with-mysqld-user=mysql –with-zlib-dir=/usr/local/zlib –with-big-tables
make
make install

安装mysql测试数据库
cd /usr/local/mysql/bin
./mysql_install_db
设置mysql全局变量
cd /opt/mysql-5.0.37/support-files/
cp my-huge.cnf /etc/my.cnf
chown -R mysql.mysql /usr/local/mysql #修改mysql安装目录的权限
可以将mysql的bin目录加入/etc/profile的PATH环境变量,或手动启动mysql serve
cd /usr/local/mysql/bin
su – mysql (因为使用了–with-mysqld-user=mysql设置,只有mysql用户可以启动mysql数据库)
./mysqld_safe &
修改mysql数据库超级用户root的缺省密码:
/usr/local/mysql/bin/mysqladmin -u root password ‘mysql’
/usr/local/mysql/bin/mysqladmin -u root  -p -h `hostname` password ‘mysql’
删除mysql默认空用户
cd /usr/local/mysql/bin
./mysql -u root -p
use mysql;
delete from user where host=’localhost.localdomain’;
delete from user where host=”;
commit;
flush privileges;
quit;
关闭mysql服务器
cd /usr/local/mysql/bin
./mysqladmin -u root -p  shutdown

三. 安装apache2
./configure –prefix=/usr/local/apache2 –enable-auth-anon –enable-auth-dbm –enable-cache –enable-disk-cache –enable-expires –enable-file-cache –enable-headers –enable-info –enable-logio –enable-mem-cache –enable-proxy –enable-rewrite –enable-ssl –with-ssl=/usr/local/openssl -enable-unique-id –enable-usertrack –enable-vhost-alias –enable-mods-shared=most
make
make install
按实际情况修改apache 配置文件
找到 #ServerName www.example.com:80 在其下设置 ServerName 如下
ServerName www.mysite.com
基中 www.mysite.com 为你网站名,也可用IP代替
找到 DocumentRoot “/usr/local/apache/htdocs”
设置你的 WEB 服务器的根目录 如
DocumentRoot “/myweb”
找到 DirectoryIndex index.html index.html.var 改为
DirectoryIndex index.html index.php index.htm
用下面命令启动WEB服务器
# /usr/local/apache2/bin/apachectl start
查看自己的站点是否正常 http://www.mysite.com 也可用IP
用 # /usr/local/apache2/bin/apachectl stop 可停止服务
使 SSL 工作
手工签署证书
cd /usr/local/apache2/conf
openssl genrsa -des3 -passout pass:asecretpassword -out server.key.org 1024
openssl req -new -passin pass:asecretpassword -passout pass:asecretpassword -key server.key.org -out server.csr -days 3650
Country Name (2 letter code) [AU]:CN  #<–## 国家代码
State or Province Name (full name) [Some-State]:LN  #<–## 省或州 Locality (eg, city) []:SY  #<–## 城市
organization Name (eg, company) [Internet Widgits Pty Ltd]:micronsky.net  #<–## 组织名称
organizational Unit Name (eg, section) []:root  #<–## 部门
Common Name (eg, YOUR name) []:keelort  #<–## 名字
Email Address []:keelort@gmail.com  #<–## 电子邮 r b>Pleaens;enter the following ””extra”” attributes
to be sent with your certificate request
A challenge password []:  #<–## 直接回车就可以
An optional company name []:  #<–## 直接回车就可以
openssl req -x509 -passin pass:asecretpassword -passout pass:asecretpassword -key server.key.org -in server.csr -out server.crt -days 3650
openssl rsa -passin pass:asecretpassword -in server.key.org -out server.key
vi /usr/local/apache2/conf/httpd.conf
将Include conf/extra/httpd-ssl.conf前面的“#”去掉
重启Apache
/usr/local/apachectl restart
然后访问:https://ip 是否可以访问
四.  安装php5
# tar zxvf php-5.1.6.tar.gz
# cd php-5.1.6
# ./configure –prefix=/usr/local/php  –with-mysql=/usr/local/mysql/ –with-apxs2=/usr/local/apache2/bin/apxs –with-openssl-dir=/usr/local/openssl  –with-expat-dir=/usr/lib  –enable-xslt –with-gd=/usr/local/gd2/ –with-jpeg-dir=/usr/local/jpeg6/ –with-zlib-dir=/usr/local/zlib/ –with-png-dir=/usr/local/libpng2/ –with-freetype-dir=/usr/local/freetype2/  –with-mime-magic –with-png –with-xml –with-iconv –enable-gd-native-ttf –enable-ftp –enable-embed –enable-fastcgi –enable-calendar –enable-magic-quotes –enable-track-vars –enable-sockets –enable-soap –enable-pcntl –enable-mbstring=all –enable-mbregex  –with-libxml-dir=/usr/local/libxml2 –with-xsl=/usr/local/libxslt/
配置 php.ini
cp php.ini-dist /usr/local/lib/php.ini
配置 httpd.conf 让apache支持PHP
# vi /usr/local/apache2/conf/httpd.conf
添加下面的内容:
在LoadModule处添加:
LoadModule php5_module /usr/local/php/lib/libphp5.so
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
重启apache
# /usr/local/apache2/bin/apachectl restart
在你Web目录里建一内容为 PHP文件, 输入URL地址查看PHP配置是否正确

8. 安装ZendOptimizer,下载地址:http://down.itlearner.com/soft/1023.shtml
# tar zxvf ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz
# cd ZendOptimizer-3.0.1-linux-glibc21-i386
# ./install.sh
安装操作: [ok] -> [EXIT] -> [YES] -> [/httpd/zend] -> [/httpd/apache/conf] -> [yes] -> [OK] -> [OK] -> [NO]

ssh远程控制Redhat AS4时中文乱码问题

// December 24th, 2007 // No Comments » // 服务器配置管理

不知道这是不是redhat as4的一个bug,在使用ssh远程控制redhat服务器时,中文显示为乱码。这个问题困扰了好久,后来发现修改i18n这个文件能够修正乱码。方法如下:修改/etc/sysconfig/i18n文件,将其改成以下内容:

LANG=”zh_CN.GB18030″
LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=”zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=”lat0-sun16″

重启机器,问题应该解决了。

Linux 只修改目录权限,文件权限不变

// November 23rd, 2007 // No Comments » // 服务器配置管理

以前修改目录权限(子目录)

chmod -R 777 xxxx

这样里面的文件也随之修改了。

今天用了这个
(more…)

超级服务器apache+mysql+php+ssl之完全安装攻略

// November 19th, 2007 // No Comments » // 服务器配置管理

目的我们的目标是安装一个允许我们托管多个网站的web服务器,其中一些是针对电子商务的安全解决方案,而大部分网站是通过连接一个数据库服务器并且提取其数据的脚本驱动的。

为了这个任务所需的工具是:

Apache-一个网站服务器

Mod_SSL-一个安全套接字层(SSL)的模块
(more…)