php
Ubuntu下安装php-redis扩展
$ sudo apt-get install php5-dev $ wget --no-check-certificate http://github.com/nicolasff/phpredis/tarball/master -O phpredis.tar.gz $ tar -xzvf phpredis.tar.gz $ cd nicolasff-phpredis-94e0649 $ phpize $ ./configure $ make $ sudo make install
增加php.ini配置
extension=redis.so
在PHP中使用memcached
由于网站流量逐渐增大,而且有个新需求是需要实时更新文章的点击和回复。所以准备上memcached来做一个解决的办法。
在php中使用memcached
1 安装memcached
直接
njava:~ njava$ sudo apt-get install memcached
本地开发使用的是刚升级了的mac10.6.4,使用port安装
njava-MacPro:~ njava$ sudo port install memcached
当然也可以自己编译代码了,为了省事就这样用了
› Continue reading
隐藏php版本号
很不爽http头部信息给别人看njava的Php版本信息,修改对应的php.ini属性expose_php
bear@njava:~/nginx-0.8.34# sudo vi /etc/php5/cgi/php.i #expose_php = On expose_php = Off
nginx链接php的一种方法,unix domain socket
1 建立sock文件/tmp/php-cgi.njava.sock
bear@njava:/tmp$sudo chown www-data /tmp/php-cgi.njava.sock
2 修改站点配置/etc/nginx/site-available
# fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/tmp/php-cgi.njava.sock;
3 修改php-cgi启动方式
#DAEMON_OPTS=”-a 127.0.0.1 -p 9000 -C 1 -u www-data -f /usr/bin/php-cgi” DAEMON_OPTS=”-a 127.0.0.1 -s /tmp/php-cgi.njava.sock -C 1 -u www-data -f /usr/bin/php-cgi
nginx 0.8.34以fastcgi方式运行php
1 安装spawn-fcgi
bear@bear-laptop:~$sudo apt-get install php5-cli php5-cgi php5-xcache build-essential bear@bear-laptop:~$ sudo apt-get install spawn-fcgi
很多地方都说要先安装lighttpd,不用这样,可以直接安装 spawn-fcgi
2 增加fastcgi控制脚本
bear@bear-laptop:/usr/bin$ sudo vi /etc/init.d/php-fastcgi #!/bin/bash SCRIPT=/usr/bin/spawn-fcgi NAME=php-fastcgi DESC=Spawn-fcgi case "$1" in start) echo -n "Starting $DESC: " $SCRIPT -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/$NAME.pid|| true echo "$NAME." ;; stop) echo -n "Stopping $DESC: " killall -9 php5-cgi echo "$NAME." ;; restart) echo -n "Stopping $DESC: " killall -9 php5-cgi sleep 1 echo "Starting $DESC: " $SCRIPT -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/$NAME.pid|| true echo "$DESC." ;; *) echo "Usage: $NAME {start|stop|restart}" exit 1 ;; esac exit 0
3 开机启动
bear@bear-laptop:/usr/bin$ sudo gedit /etc/rc.local /etc/init.d/php-fastcgi start
给ubuntu9.10的fastcgi方式的php增加eaccelerator0.9.6加速
1 安装编译环境
root@njava:~# sudo apt-get install build-essential php5-dev
2 安装eaccelerator
root@njava:~# axel http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2 root@njava:~# tar -xjvf eaccelerator-0.9.6.tar.bz2 root@njava:~#cd eaccelerator-0.9.6.tar.bz2 root@njava:~#sudo /usr/bin/phpize root@njava:~/eaccelerator-0.9.6# ./configure -enable-eaccelerator=shared -with-php-config=/usr/bin/php-config root@njava:~/eaccelerator-0.9.6# make root@njava:~/eaccelerator-0.9.6# make install Installing shared extensions: /usr/lib/php5/20060613+lfs/ root@njava:~/eaccelerator-0.9.6# mkdir /tmp/eaccelerator root@njava:~/eaccelerator-0.9.6# chmod 777 /tmp/eaccelerator/ root@njava:~/eaccelerator-0.9.6# vi /etc/php5/conf.d/eaccelerator [eaccelerator] zend_extension="/usr/lib/php5/20060613+lfs/eaccelerator.so" #extension="eaccelerator.so" eaccelerator.shm_size="128" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="300" eaccelerator.shm_prune_period="120" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
discuz论坛禁止无效页面的收录
discuz会产生哪些无效的页面,有什么问题
1.删除了的帖子、版块,当访问时返回帖子不存在的提示信息页。
2.设置了一定权限才能浏览的帖子、版块,很多情况会泄露链接,得到没权限的提示
3.其它各种情况下的提示信息页面。这些都是给用户看的,没有实质内容,都禁止收录。
其实最大的问题还是副本内容的问题,因这些不同的URL,返回的却是相同的内容。对SE不友好。其实对于删除了内容,应该返回404,但为了简单,都使用加meta robots标签,禁止ES收录的方法来解决。
修改提示信息页面,解决重复内容问题
方法一
1.建立/templates/defualt/header_norobot.htm文件
完全拷贝header.htm的内容,在<title>下再加一行:
<meta name=”robots” content=”noindex,nofollow” />
2.修改/templates/default/showmessage.htm文件
将{subtemplate header}替换为{subtemplate header_norobot}
3.修改/templates/default/nopermission.htm文件
将{subtemplate header}替换为{subtemplate header_norobot}
如此修改之后,SE就不会收录无权访问的URL,对于已删除的帖子,因为禁止收录了,过一段时间也会从索引中删除。这样,给SE的都是一些有内容的网页,对于提高权重会有好处。
方法二
修改global.func.php文件中的showmessage函数。
function showmessage($message, $url_forward = '', $extra = '', $forwardtype = 0) { extract($GLOBALS, EXTR_SKIP); global $hookscriptmessage, $extrahead, $discuz_uid, $discuz_action, $debuginfo, $seccode, $seccodestatus, $fid, $tid, $charset, $show_message, $inajax, $_DCACHE, $advlist; define('CACHE_FORBIDDEN', TRUE); $hookscriptmessage = $show_message = $message;$messagehandle = 0;
在第四行 define(‘CACHE_FORBIDDEN’, TRUE); 后面加上:
$extrahead .='';
即是
function showmessage($message, $url_forward = '', $extra = '', $forwardtype = 0) { extract($GLOBALS, EXTR_SKIP); global $hookscriptmessage, $extrahead, $discuz_uid, $discuz_action, $debuginfo, $seccode, $seccodestatus, $fid, $tid, $charset, $show_message, $inajax, $_DCACHE, $advlist; define('CACHE_FORBIDDEN', TRUE); $extrahead .='<meta name="robots" content="noindex,nofollow" />'; $hookscriptmessage = $show_message = $message;$messagehandle = 0;