标签:apache

博客复活记——解决Apache ServerName错误

今天Ovear把博客从单线浙江服务器迁移到河南景安”云”服务器

Ovear也不知道是不是真的云起来,别像之前盛大一样 是一朵乌云就不好了,优点就是BGP哈,缺点就是坑爹的尼玛才几M的宽带,不过Ovear也用不完哈.

然后就是装KLOXO啦,这玩意真的BUG比较多啊,Ovear折腾了半天,终于迁移过来了.刚迁过来还没神马事,准备上来码一篇文章的,发现blog后台白屏了.吓了Ovear一跳,什么情况,都是kloxo不应该啊。然后第一个想到的就是插件,难道是昨天删插件的时候删错了还是怎么回事,不过之前也没挂呢.

经过Ovear排查,出问题的竟然是大名鼎鼎的Akismet 插件,这可是Wordpress内置的插件 怎么可能这么不稳定呢.不过果然还是这个的问题,一启动Ovear的博客就白屏。这可不行啊,这个插件可是防御垃圾评论的最好插件呢,Ovear就准备深入(咳咳)下去,查查到底是怎么回事.

首先先把”wp-config.php”里面的debug打开,一进后台,我了个去这么多警告?仔细一看 是wordpress的警告

有一句错误最显眼

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 7680 bytes) in /home/*****/function.php(忘记了)

这不科学啊,内存怎么会不足呢,但是Ovear还是抱着试一试的信息 复原了这个文件,无效啊。然后就去百度了一番,看看怎么解决

然后一位博主就给出了以下解决方法,Ovear放出来给大家参考下.

因为Ovear使用的是Wordpress3.X,就放3.X的解决方法啦,2.X的(估计没人用了吧)就麻烦自己找一下哈.

首先 找到 WordPress根目录下 wp-includes/default-constants.php 这个文件

将原内容

function wp_initial_constants( ) {
	global $blog_id;

	// set memory limits
	if ( !defined('WP_MEMORY_LIMIT') ) {
		if( is_multisite() ) {
			define('WP_MEMORY_LIMIT', '64M');
		} else {
			define('WP_MEMORY_LIMIT', '32M');
		}
	}

改为

function wp_initial_constants( ) {
	global $blog_id;

	// set memory limits
	if ( !defined('WP_MEMORY_LIMIT') ) {
		if( is_multisite() ) {
			define('WP_MEMORY_LIMIT', '128M');
		} else {
			define('WP_MEMORY_LIMIT', '64M');
		}
	}

 

一般就可以解决了,

然后Ovear开始重启apache,却发现apache怎么都起不来了)RP太差了吧

apache提示以下错误

Starting httpd: httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

Starting httpd: [Wed Feb 04 21:18:16 2004] [error] (EAI 2)Name or service not known: Failed to resolve server name for 192.16.1.100 (check DNS) -- or specify an explicit ServerName

Ovear尝试了各种方法 都没办法解决,后来还是从老服务器里面考了一份hosts过来才解决
Ovear就在这跟大家分享下
首先
备份/etc/hosts的内容
然后记住自己的主机名
打开/etc/hosts
确定格式是

127.0.0.1 自己的主机名 localhost什么什么什么的

然后在下面加入

公网IP 域名 主机名

然后重启服务器就可以啦.

Apache mina 1.1 快速入门手册

由于Ovear最近需要一个Socket Server,看中了Mina,所以弄来了一份官方快速入门手册翻译版

Mina 编写自己的编码解码FilterChain(codec)

mina 自己带的FilterChain codec是非常好用,但是在实际网络应用中还是有他的局限性,如编写基于CMPP、SGIP的短信系统。

下面我编写的一个自己FilterChain例子,方便以后查看和其他的人查阅(哎,网上的mina资料少的可怜)

SElinux的奇葩问题

转自:新のBlog(http://xinwo.sinaapp.com/program-can-not-listen-port/)

今天折腾apache正向代理,需要把代理端口单独分离出来。首先选择82,只是调试而已。嗯嗯…启动后就报奇葩错误了:

(13)Permission denied: make_sock: could not bind to address [::]:82
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:82
no listening sockets available, shutting down

这啥奇葩情况?没遇到过啊。因为昨天才在另一台弄来着,半信半疑执行下netstat -anp|grep 82,结果…

unix 6 [ ] DGRAM 5827 1871/syslogd /dev/log

好吧我终于想起了1024以下端口不能随便用,我换…换8282总行了吧?结果…

(13)Permission denied: make_sock: could not bind to address [::]:8282
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:8282
no listening sockets available, shutting down
(13)Permission denied: make_sock: could not bind to address [::]:32323
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:32323
no listening sockets available, shutting down

我勒个去,坑爹也不带这么坑的啊!iptables确定关了,再netstat -anp|grep 32323、netstat -anp|grep 8282确定没程序占用这2个端口。只好无助地求助万能的google,结果就是这台机器启用了selinux,需要把端口加进规则里,否则不放行。据说selinux是加固系统用的,系统本来就很安全了加上这个总感觉像win7加了UAC一样蛋疼。没辙,懒得关了,关了还得重启,查查怎么用吧。

首先用semanage port -l | grep http列出全部http相关的端口规则:

http_cache_port_t tcp 3128, 8080, 8118, 11211, 10001-10010
http_cache_port_t udp 3130, 11211
http_port_t tcp 80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989

好吧原来还有8008、8009、8443这几个没见过的端口,不管了先加上自己的,执行semanage port -a -t http_port_t -p tcp 32323,然后apache满血原地复活!~
感谢这位博主提供命令:http://www.zzxj.net/blog/fxs_2008/archive/2010/07/05/187.html
最后带上semanage的用法,有空学学:http://hi.baidu.com/leowang715/blog/item/021bf91330489545f819b8b2.html