nginx部署是一件很麻烦的事情,最新最完整的说明首推:Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]
我在此基础上在centos5.4系统上,做了一些调整:
1. 将所有相关service做成系统任务
2. 将服务器代码区和log,tempfile等变动的内容区分,并调整相应的权限
具体的方法会在下一篇模块中详细说明,本篇博客的目的在于说明,做了具体部署后,如果发生了想不到的问题(就像我这样,哈哈),该从哪里下手debug——谁叫俺是程序员哪。。。。。debug是硬道理!
步骤0:可以访问到,查看相关的access.log能看到访问记录。如果没有,很可能是iptable这里出了问题。
步骤1:测试nginx和php各自服务及相关通信,在你要访问的root目录下放置info.php试试看能不能访问到:
<?php phpinfo(); ?>
我的结果是ok,没问题,看到了类似提示(恩,说明nginx和php通信没有问题)
步骤2:查看memcache是不是妥当,代码如下,参见memcache基础教程
<?php //$mem = new Memcache; $mem = memcache_connect("127.0.0.1",11211); //echo gettype($mem); #echo get_class($mem); $mem->connect("127.0.0.1", 11211); $mem->set('key1', 'This is first value', 0, 60); $val = $mem->get('key1'); echo "Get key1 value: " . $val ."<br />"; $mem->replace('key1', 'This is replace value', 0, 60); $val = $mem->get('key1'); echo "Get key1 value: " . $val . "<br />"; $arr = array('aaa', 'bbb', 'ccc', 'ddd'); $mem->set('key2', $arr, 0, 60); $val2 = $mem->get('key2'); echo "Get key2 value: "; print_r($val2); echo "<br />";
顺便解释一下,
memcache_connect 和 new Memcache;效果是一致的
步骤3:如果图片不能显示
第一考虑这个参数(将sendfile 置为 off):
http { ... sendfile off; ... }