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

Tags: ,

星期二, 16 12 月, 2014 服务器 没有评论

临时打开PHP的DEBUG输出

由于php.ini中关闭了调试信息。零时需要查看debug信息。可以使用

  ini_set("display_errors",   "1");

Tags: ,

星期一, 8 11 月, 2010 Web 没有评论

在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

Tags: , , ,

星期四, 30 9 月, 2010 Web 没有评论

隐藏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

Tags: ,

星期二, 30 3 月, 2010 服务器 没有评论

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

Tags: , ,

星期五, 26 3 月, 2010 服务器 没有评论

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

Tags: , , ,

星期一, 22 3 月, 2010 服务器 没有评论

给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"

Tags: , ,

星期日, 21 3 月, 2010 Web 没有评论

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;

Tags: , ,

星期五, 12 3 月, 2010 Web 没有评论
1LMooBmUE153Wnd3zDryWvDyXxQudbFxDr