在RHEL5.3上安装extmail邮件系统过程中碰到的问题以及解决方法
对extmail邮件系统安装过程中碰到的问题做下小结
a.验证postfix安装时,验证失败
检查安装步骤,没有错误,检查/var/log/maillog,看到日志中有
connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)
以及
SASL login authentication failed: generic failure
费了好多力气来查找这个问题,最后发现是由于SELinux搞的鬼,将SELinux关闭,重新启动机器再看一切运行正常。
网上找到一篇不关闭SELinux使Postfix运行正常的一篇文章,需要自己做策略,没有试验,有兴趣的同学可以试一下。文章地址 http://www.laliluna.de/blog/2008/09/04/make_selinux_postfix_postgrey_and_dovecot_work_together.html
b.配置后nginx网关提示”502 Bad Gateway”
开始以为参数没有配置好,后来经过试验发现时由于使用过的socket文件权限的问题。
-
chown vuser.vgroup /tmp/perl_fcgi.socket
-
#设置启动脚本的账号为vuser
-
sudo -u vuser ./fcgi_perl2 &
设置启动fcgi_perl的账号为uvser,要不然在web界面上发送邮件时新保存到邮件目录下的文件属主为root:root,会造成文件权限上的一些问题。
c.全部配置完毕后登陆Extmail时出现”Unix::Syslog not found”错误
给perl安装Unix::Syslog包
-
perl -MCPAN -e 'install Unix::Syslog'
d.登陆extman时,验证码图片没有显示
缺少perl-GD包,安装后问题消失
-
wget http://packages.sw.be/perl-GD/perl-GD-2.43-1.el5.rf.i386.rpm
-
rpm -ivh perl-GD-2.43-1.el5.rf.i386.rpm
e.打开extmail邮件系统的web页面加载很慢
经过分析,发现是由于页面加载时调用了extmail.net的rpc服务。
修改 /var/www/extsuite/extmail/html/plugins/rpc_init.js 文件,去除其中rpc的使用.
-
rpc_url_list = [
-
// "http://rpc-srv01.extmail.net/phprpc/rpc.php",
-
// "http://rpc-srv02.extmail.net/phprpc/rpc.php",
-
// "http://rpc-srv03.extmail.net/phprpc/rpc.php",
-
];
-
-
rpc_plg_list = [
-
// "coolweather",
-
// "etnews",
-
// "chkupdate",
-
];
修改 /var/www/extsuite/extman/html/plugins/rpc_init.js 文件,去除其中rpc的使用.
-
rpc_url_list = [
-
// "http://rpc-srv01.extmail.net/phprpc/rpc.php",
-
// "http://rpc-srv02.extmail.net/phprpc/rpc.php",
-
// "http://rpc-srv03.extmail.net/phprpc/rpc.php",
-
];
修改后,再次打开extmail的Web页面,没有任何停顿的感觉,说明是之前的访问速度慢是由于程序调用extmail的rpc服务造成的
Popularity: 25% [?]
Related
在RHEL5.3上安装基于postfix的extmail邮件系统
extmail官方网站上的安装指南是针对4.x系统的,网上找了一个5.x的安装。
参考在centos/redhat 5.x 上安装邮件系统postfix+extmail+courier-imap
安装步骤.
1.系统准备
使用默认方式安装系统后,从RHEL安装盘上拷贝一些下面安装步骤需要的rpm包先安装上。
-
rpm -ivh postgresql-devel-8.1.11-1.el5_1.1.i386.rpm
-
rpm -ivh expect-5.43.0-5.1.i386.rpm
-
rpm -ivh libtool-ltdl-devel-1.5.22-6.1.i386.rpm
-
-
rpm -ivh mysql-devel-5.0.45-7.el5.i386.rpm
-
rpm -ivh openldap-servers-2.3.43-3.el5.i386.rpm
-
rpm -ivh openldap-servers-sql-2.3.43-3.el5.i386.rpm
-
-
rpm -ivh pcre-6.6-2.el5_1.7.i386.rpm
-
rpm -ivh pcre-devel-6.6-2.el5_1.7.i386.rpm
再从 www.extmail.org 网站上下载最新的 extmail 相关包
extmail-1.1.0.tar.gz extman-1.0.0.tar.gz slockd-0.99.tar.gz
2.导入extman后台数据库数据
-
tar -xzvf extman-1.0.0.tar.gz
-
cd extman-1.0.0/docs
-
mysql -u root -p
-
mysql> source extmail.sql
-
mysql> source init.sql
-
mysql> exit
Popularity: 44% [?]
Related
修改linux时区的简单方法
默认安装了一台linux机器,发现显示的时区不是对应北京时间的
网上查了一下,通过如下方法可以简单修改显示时间的时区。
mv /etc/localtime /etc/localtime.bak cp /usr/share/zoneinfo/Asia/ShangHai /etc/localtime
再次执行date 可以看到显示出的时间是对应北京时间的。
Popularity: 22% [?]
Random Posts
在php中使用mysql存储过程以及碰到的问题解决方法
mysql 5中增加了存储过程功能,他们在php中使用很方便。
在php中调用存储过程和函数的主要步骤为。
一.准备存储过程的参数
如果存储过程有输入参数,则需要声明一个mysql变量,让mysql服务器知道此变量的存在,执行mysql语句 mysql_query(”set @mysqlvar =$phpvar”);
就可以在mysql服务器里面就有一个变量@mysqlvar。如果时IN参数,那么其值可以有phpvar传入。
二.调用存储过程
1.执行 call procedure()语句
也就是mysql_query(”call proceduer([var1]…)”);
2. 如果参数有OUT返回值,执行select @var,获取返回的参数结果
mysql_query(”select @var”)
接下来的操作就和php执行一般的mysql语句一样了。可以通过mydql_fetch_row()等函数获得结果。
如果是函数。 直接执行 select function() 就可以了。
———使用中碰到的问题解决——-
不能执行存储过程
在定义存储过程的时候,将存储过程类型设置为 DETERMINISTIC 。
定义的存储过程中有多个select语句,call失败
通过 mysql_error()输出错误提示 can’t return a result set in the given context
在mysql_connect连接数据库时指定 CLIENT_MULTI_RESULTS 标志。
-
<?php
-
define(’CLIENT_MULTI_RESULTS’, 131072);
-
-
$conn = mysql_connect("localhost", "root", "rootpwd",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error($conn));
-
mysql_select_db("mydb", $conn) or die("Could not select database");
-
-
$result = mysql_query("call proc_get_datas(2)", $conn);
-
-
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
-
// do something
-
}
-
-
mysql_free_result($result, $conn);
-
-
mysql_close($conn);
-
?>
Popularity: 28% [?]
Related
SQL SERVER数据库碰到823错误不能启动的解决方法
由于机器意外断电重启,发现SQL Server 服务不能启动。查看系统的事件日志,发现有错误提示:
———————————-
服务器: 消息 823,级别 24,状态 5
———————————-
对数据库启动错误信息进行细节排查,发现其中有ErrorDB出错,不能附加这个数据库,从而整个SQL Server 服务不能启动。
修复方法:
1. 将已破坏的ErrorDB数据库文件更名,如ErrorDB_Data.Mdf ==>ErrorDB_Data1.Mdf, ErrorDB_Log.Ldf==>ErrorDB_Log1.Ldf
2. 再次启动SQL Server服务,发现可以正常启动服务,但是会看到ErrorDB显示为置疑状态,将其分离,重新建立一个同名的ErrorDB数据库。
3. 选中新建的数据库,将其脱机, 然后到数据库数据目录下将新数据库更名(ErrorDB_Data.Mdf ==> ErrorDB_Data2.Mdf), 将待修复老数据库更名为原先名称ErrorDB_Data1.Mdf ==> ErrorDB_Data.Mdf
4. 在SQL查询分析器中, 执行如下命令:
use master
sp_configure ‘allow’, 1
reconfigure with override
update sysdatabases set status = 32768 where name = ‘ErrorDB’
5. 将LDF文件改名,然后将ErrorDB联机,再在查询分析器中执行
DBCC REBUILD_LOG (’ErrorDB’, ‘E:\Data\ErrorDB_Log.LDF’ )
6. 恢复数据库紧急模式
update sysdatabases set status = 0 where name = ‘ErrorDB’
7. 在查询分析器中执行
restore database ErrorDB with recovery
sp_configure ‘allow’, 0
reconfigure with override
8. 检查数据库看看还有没有错误,
DBCC CHECKDB (’ErrorDB’)
————-
如以上还是不行,可以尝试使用
DBCC CHECKDB(’ErrorDB’, Repair_Allow_Loss_Data)
命令修复数据库,不过这样会丢失一些数据,但是话说回来,貌似不这样那些坏掉的数据也回不来的。
————-
在做以上处理时,要注意关闭使用ErrorDB的程序。要不然某些步骤会提示不能获得数据库的排他性操作权限,不能对命令进行执行处理。
Popularity: 28% [?]
