你的位置: Kiyo'Space首页 服务器 阅读文章 欢迎留下您的足迹

FC4的 A+M+P+G+ZO

[ 服务器 ] 分享
1.安装前先看一下服务器上有没有编译软件,没有的话先装一个gcc,我装的是gcc4.0的rpm包。
 
2.rpm包可以到http://www.findrpm.com上找,装gcc之前可能还要装很多其他的包,rpm包安装具体方法参考网上教程。(装包:rpm ivh 包名、删包 rpm -e 包名、查询 rpm -qa|grep 包名、详细信息 rpm -q 包名 i、文件列表 rpm -q 包名 l)。
 
3.apache,mysql,php这三个就不要用rpm包了,因为你需要根据自己的情况作具体配置。
 
4.先装MySQL,这个东西最好不要自己编译,我开始自己编译了很多次都没成功,估计是gcc的版本太高所致,官方网站上推荐用gcc2.95 2.96 3.2什么的。直接下载二进制包要省事的多,二进制包里面有一个安装说明文件,按照那个一步一步来就ok了,一般都是装在/usr/local/mysql下。解包 tar zxvf 包名
 
5.mysql装完以后,可以ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql 做一个连接,以后在任何路径下都可以执行mysql了。
 
6.mysql装好以后别忘了修改root密码,把user表就留一个root@localhost就行了,其他都删掉,以后需要再慢慢加,一定要给php连接数据库建一个用户,只分配必要的权限。记得修改mysql授权表后要 flush privileges 刷新权限。
修改密码#mysqladmin -u root -p oldpassword newpasswd
分配权限mysql>GRANT 权限 ON 库名.表名 TO 用户名@主机名 IDENTIFIED BY "密码" [WITH GRANT OPTION]
权限有这些:
Alter 修改表和索引 / Create 创建数据库和表 / Delete 删除表中已有的记录 / Drop 抛弃(删除)数据库和表
INDEX 创建或抛弃索引 / Insert 向表中插入新行 / REFERENCE 未用 / Select 检索表中的记录 / Update 修改现存表记录
FILE 读或写服务器上的文件 / PROCESS 查看服务器中执行的线程信息或杀死线程
RELOAD 重载授权表或清空日志、主机缓存或表缓存。 / SHUTDOWN 关闭服务器 / ALL 所有;ALL PRIVILEGES同义词
USAGE 特殊的“无权限”权限
 
7.如果你装的是php4.X,那么要改一下mysql密码的加密算法,用 update user set password=old_password(‘password’) where user=’root’;
改成老的算法,不然php是连接不上数据库的。如果是php5就不用改了。
 
8.然后装GD库,这个网上也有不少教程,装GD库之前要装很多东西,有gd-devel,xpm,ZLIB,JPEGSRC,LIBPNG啥的,都有现成
的rpm包,需要什么就装什么,最后再装GD2,我是下载原文件编译的,在这里下http://www.boutell.com/gd/
#tar zxvf gd-2.0.28.tar.gz
#cd gd-2.0.28
#./configure –with-png=/usr/local –with-jpeg=/usr/local –with-freetype=/usr
#make
#make install
编译过程很顺利,直接装rpm估计也可以。
 
9.然后装apache2,这个强烈推荐自己编译,我开始装了rpm的,很顺利,可后来装php的时候发现不能动态加载模块,造成php不能加载mysql,
万般无奈只好返工。顺便说一句apache从2以后改名叫httpd了,我装的是httpd-2.0.55.tar.gz
#tar zxvf httpd-2.0.50.tar.gz
#cd httpd-2.0.50
#./configure –prefix=/usr/local/apache2 –enable-module=so
#make
#make install
–enable-module=so就是动态加载模块用的,编译基本顺利,如果发现缺少什么软件就从rpm包里面找。
./configure –help可以查看配置参数列表。
 
10.在每次编译之前,最好先运行 make clean 或者 make distclean 来清除先前的编译环境。
 
11.apache装好后启动一下试试 /usr/local/httpd/bin/apachectl start,不报错就ok了。可以在浏览器上输入网址,应该可以看到apache的默认页。
 
12.最关键的就是装php了,我的配置命令:
./configure –prefix=/usr/local/php –with-apxs2=/usr/local/httpd/bin/apxs –with-jpeg-dir=/usr/local –with-png-dir=/usr/local –with-gd=/usr/local –enable-trace-vars –with-zlib-dir=/usr/local –with-mysql=/usr/local/mysql –with-freetype-dir=/usr/lib/ –enable-gd-native-ttf
在configure时的提示信息:
Configuring extensions
checking whether to enable LIBXML support… yes
checking libxml2 install dir… /usr/lib/libxml2.so.2.6.19
configure: error: xml2-config not found. Please check your libxml2 installation.
可是libxml2的rpm包我已经装了,经过反复查找问题,发现libxml2-devel没有装,下载一个rpm包装上ok!还是那句话:缺什么就装什么。
装完php后,重启apache,出现了一个难题,显示:
Syntax error on line 232 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/ modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
上网查找n小时,终于找到答案,原来新版的Linux有一个SELinux保护模式,像个防火墙,是用来提高安全性的,可以让工作进程在一定范围内受限,
如果开启这个模式很多程序运行就会受限,具体情况我还没有深入了解,不过总算找到解决办法了:
执行 chcon libphp5.so -t shlib_t 问题解决,不过chcon的具体作用我还不太了解。
可以用 system-config-securitylevel 暂时关掉SELinux模式,不然apache很可能不能正常运行,等我把SELinux的详细配置规则弄明白再开启吧。
php装好以后需要修改一下/usr/local/httpd/conf/httpd.conf配置文件,增加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
默认的启动页增加一个index.php ,apache详细的配置优化过程请参考相关文档。
重启apache,然后就可以写一个测试页测试一下了:
<?php phpinfo() ?>
如果熟悉的紫色表格出现就基本ok了,仔细看一下该装的模块是否都加载了,GD,mysql什么的,
然后写一个连接数据库的代码:
@$db = mysql_connect("localhost","user","password");
if(!$db)
{
echo ‘connect fail:’.mysql_error();
}
else
{
echo ‘connect ok!’;
}
?>
如果显示connect ok!就ok,否则根据错误信息解决。
 

13.然后要装的是ZendOptimizer,这个东西可以提高30%-40%的程序执行速度,不过我装这个主要是因为phpwind是用zend-encode加了密的,要用这个解密,
不然页面都是乱码
ZendOptimizer安装是傻瓜型的,非常简单:
#tar zxvf ZendOptimizer-2.5.10a-linux-glibc21-i386.tar.gz
#cd ZendOptimizer-2.5.10a-linux-glibc21-i386
#./install.sh
根据提示一路ok,重启apache后,如果没问题,phpinfo里应该显示:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.0.5, Copyright (c) 1998-2004 Zend Technologies
with Zend Extension Manager v1.0.8, Copyright (c) 2003-2005, by Zend Technologies
with Zend Optimizer v2.5.10, Copyright (c) 1998-2005, by Zend Technologies
可是问题偏偏就来了,我的只显示:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.0.5, Copyright (c) 1998-2004 Zend Technologies with Zend Extension Manager v1.0.8, Copyright (c) 2003-2005。
phpwind依然是乱码,说明Zend Optimizer没有加载成功!又经过n小时查找终于发现apache的错误日志里有:
Failed loading /usr/local/Zend/lib/Optimizer-2.5.10/php-5.0.x/ZendOptimizer.so: /usr/local/Zend/lib/Optimizer-2.5.10/php-5.0.x/ZendOptimizer.so: cannot restore segment prot after reloc: Permission denied
原来还是SELinux的问题!
执行 chcon ZendOptimizer.so -t shlib_t 问题解决。

没有评论

  • (Required)
  • (Required, will not be published)