正式启动LZCMS开发

Filed under: 个人程序作品 | 1 Comment »
Posted on

由于某些原因,决定用PHP开发一套CMS系统。暂时定名为LZCMS,熟悉我的人应该知道这个暂定名的来历。待系统成型后,我会发布出来。以下是初拟的几个功能特性:

1.开发语言为PHP,数据库采用MySQL。第一个版本不支持多数据库类型。

2.前后台分离。国外大部分PHP的CMS基本都是前后台混合的,这样不太符合中国人的使用习惯。后台采用extjs来实现。

3.支持插件。准备采用wordpress的插件机制来实现LZCMS的插件功能。除核心功能外,几乎所有的功能都是采用插件来拓展。

4.支持模板。在模板中提供标签功能给高级开发人员使用,原则上不需要理解标签的使用方法。为了便于页面设计人员,在未来还会提供一个sandbox以预览模板样式。

5.可视化编辑。利用LZCMS进行内容发布时是可视化所见即所得编辑的。

6.多语言。po文件的多语言开发已经很成熟了。第一个版本暂不支持。

第一个版本的开发周期暂定为一个月,11.10-11.12出核心功能demo,剩下来的三周半时间用来完善。

相关文章

尝试采用eaccelerator提高PHP执行效率

Filed under: 程序开发 | No Comments »
Posted on

看了篇文章提到采用eaccelerator来提高PHP程序的执行效率,尝试了一下,效果明显,从监测来看,在节省了服务器资源的前提下,至少提高了50%。

1.安装

官方主页: http://eaccelerator.net

目前最新版为0.9.5.3

下载后:

# tar xvf -0.9.5.3.tar.bz2
# cd cd -0.9.5.3
# export PHP_PREFIX=”/usr”   注:这里是PHP的安装路径
# $PHP_PREFIX/bin/phpize
#  ./configure \
  –enable-=shared \
  –with--config=$PHP_PREFIX/bin/-config
# make
# make install

更新动态链接库:

# echo “/usr/lib//extensions” > /etc/ld.so.conf
# ldconfig

2.配置

修改.ini文件

2.1把 做为 Zend 的扩展模块来编译的方法

  zend_extension=”/usr/lib//extensions/.so” 注:模块的具体位置;
  .shm_size=”16″ 注:共享内存大小;
  .cache_dir=”/home/” 注:缓存目录;
  .enable=”1″
  .optimizer=”1″
  .check_mtime=”1″
  .debug=”0″
  .filter=”"
  .shm_max=”0″
  .shm_ttl=”0″
  .shm_prune_period=”0″
  .shm_only=”0″
  .compress=”1″
  .compress_level=”9″

如果您的PHP是用安装模式编译的,要把 zend_extension改为zend_extension_ts

2.2把 做为 PHP的一个扩展的配置方法

extension=”.so”
.shm_size=”16″
.cache_dir=”/home/
.enable=”1″
.optimizer=”1″
.check_mtime=”1″

注意/home/eaccelerator的目录权限应该是0777

3.重启,如果/home/eaccelerator中有新的文件生成,那么安装就成功了。

相关文章

iconv和mb_convert_encoding

Filed under: 程序开发 | 2 Comments »
Posted on

遇到一个古怪的问题,原本是用iconv进行UTF-8码到GB2312的转码,但是遇到一些字符就无法正常转码了,比如“——”,又比如一些繁体字,百思不得其解之下,换了一个函数mb_convert_encoding来做转码,结果正常了。

不知道原理,记录一下,以后尽可能用mb_convert_encoding做字符编码转换。

相关文章

Tags :

LAMP架构的搭建

Filed under: 程序开发 | 2 Comments »
Posted on

以下内容转自http://.daheit.com/?action=show&id=24,我个人觉得该文描述的搭建过程算比较完善的。

先准备一下软件:

-7.16.2.tar.gz
-2.0.0.tar.gz
-1.3.5.tar.gz
-2.6.23.tar.bz
-1.2.3.tar.gz
.v6b.tar.gz
-1.2.12.tar.gz
-2.3.4.tar.gz
-2.0.34.tar.gz
httpd-2.2.4.tar.gz
-5.2.2.tar.gz
-3.2.8--glibc21-i386.tar.gz

as4操作系统:界面、应用软件、管 理软件、服务器自带软件、其它等通通的不用安装,既然做服务器就要把服务器整理干净,linux自定义安装,我只选择安装了FTp软件(vsftpd)、 开发工具包(这个当然必须要选的啊,编译全靠它来为我们出力!)二项,其它什么都不装。(够很吧!!!)

下面所需要的软件一步一步都有文件名,在这先不一一列出,请往下看,建议安装这些软件前,一定要先通读这篇文章的全文,把每一步所需要的软件先准备好。

建议你把软件包选择.tar.gz的,并且统一放到/usr/local/src目录下,一定要养成好习惯,呵呵,这样对自己很有好处的。

一。安装

我用的软件是最新的-5.0.41.tar.gz (大家在网上、mysql官方站上下载时一定要搞清楚了!版本可不能错,因为每一个版本的mysql都有很多种不同的编译版与不用编译版,我用的这个是自 编译版的!如果你自行下载的请先解压缩后,用写字版打开包里的configure这个文件,看看是需要编译的还是不用编译的,如果这个文件打开只有十几行 E字,告诉你说,此版本不用编译,解开放在目录里就能用了,那样的软件我不能保证在这篇文档里的可用性!)
好,费话少说,开始PHP环境重头戏,mysql的安装,安装好与坏,直接关系到最后PHP的编译成功与否!!

cd /usr/local/src //进入此放软件包的目录

groupadd mysql     // 建立mysql组

useradd -g mysql   //建立mysql用户并且加入到mysql组中

tar -zxvf mysql5.0.41.tar.gz //解压缩

cd mysql5.0.41 //进入解开包的目录

./configure –prefix=/usr/local/ –with-charset=gb2312 –with-extra-charsets=gbk,gb2312 //这条命令里的参数一定不能乱写乱搞,不然谁也没法保证你编译的mysql能用。如果你搞不明白这些参数怎样设计、并且E文稍微不错的话,那你就先在本 地一台电脑里用记事本、写字板、editplus等任何文本软件打开包里的configure文件,呵呵,都是程序与代码、打开可不是让你去改的啊,呵 呵,最好远观可千万别近玩啊!向下看看,你会发现大段的参数,大致在986行开始你会发现”Configuration:“字样,到1193行中间,这一 大段的代码大多与配置参数有关的说明,每一个参数都有详细的说明。这里不多做介绍,其它我是让它默认的。我第一次安装编译时参数是–with- charset=gb2312 –with-extra-charsets=all这样做,我是让它默认字符集为gb2312,其它安符扩展全装,我认为把所有的都加进去了,那一定是 没有问题的吧,安装编译是顺利完成了,但当进入linux命令行下输入/usr/local//bin/ -u root -p敲回车时,提示一大段的错误信息,说gb2312根本没有被编译进去,你说怪不怪,没办法,只好重新编译,写成./configure –prefix=/usr/local/ –with-charset=gb2312 –with-extra-charsets=gbk,gb2312这样。如果顺利执行完毕,没有错误信息提示,那么恭喜你了,但不要高兴太早,下面才很 重要呢。

make && make install //安装,如果这一步也很顺利完成,恭喜,mysql基本完成差不多了。下面都很简单了。

cd script //进入到脚本目录下

./mysql_install_db –uer= //安装库文件,应该会提示说OK!的。

cd /usr/local/ //进入到安装的mysql软件目录中

chown -R root .   //设定root能访问/usr/local/
chown -R var   //设定mysql用户能访问/usr/local//var ,里面存的是mysql的数据库文件.这个目录是在/etc/my.cnf中有配置,在mysql_install_db时产生。
chown -R var/. //设定mysql用户能访问/usr/local//var/mysql下的所有文件
chgrp -R .   //设定mysql组能够访问/usr/local/

# 上面的已经把mysql完全安装完了,也能正常使用了,但还不够,你要将mysql的数据库启动脚本加入系统启动目录,不然,你总不能每次启动服务器后,都要登陆上去手工启动数据库吧,那还不麻烦死。
cp /usr/local//support-files/.server /etc/rc.d/init.d/mysqld

chmod 700 /etc/rc.d/init.d/mysqld

ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S97mysqld

/etc/rc.d/init.d/mysqld start  //来启动mysql进程 然后

/usr/local//bin/mysqladmin -u root password ‘yourpassword’ //默认安装密码为空,为了安全你必须马上修改.请注意,你修改执行此命令时,一定不要加yourpassword两边的单引号或者双引号,比如你想设定 密码是123456 就直接执行 /usr/local//bin/mysqladmin -u root password 123456 而不要写成 /usr/local//bin/mysqladmin -u root password ‘123456′ ,这样加引号,你的密码也是带引号的。我以开始就是,加引号,用123456登陆mysql,怎么也进不去,就是提示密码错误,呵呵。
二。安装php、gd库所需要的配件文件

//注意这些软件的安装步骤及先后顺序,不要乱。特别是jpeg,png,freetye与gd库

A.

curl安装

cd /usr/local/src //进入软件存放目录
tar -zxvf -7.16.2.tar.gz

./configure –prefix=/usr/local/

make && make install //这个小软件很简单,不明白什么意思,到网上查资料吧。

B.

cd /usr/local/src

tar -zxvf -2.0.0.tar.gz

cd -2.0.0

./configure –prefix=/usr/local/

make && make install

C.gzip安装

cd /usr/local/src

tar -zxvf -1.3.5.tar.gz

cd /-1.3.5

./configure –prefix=/usr/local/

make && make install

D.libxml2安装

cd /usr/local/src

tar -xjvf -2.6.23.tar.bz //这个我下的是.bz的,你下的如果是.gz的就执行 tar -zxvf -6.23.tar.gz

cd /-2.6.23

./configure –prefix=/usr/local/

make && make install
E.zlib安装

cd /usr/local/src

tar -zxvf -1.2.3.tar.gz

cd -1.2.3

./configure //这个配置编译命令不要加目录参数,我试过的,加上–prefix=/usr/local/zlib这个参数,在这里是一定会顺利编译通的,但可惜的 是,到下面你编译gd库时,是不会通过的,到时就是会出问题,也真怪了,这些问题不是摸索出来,我是不会相信的。网友们自己有空了也可以多试试,看看为什 么不能加参数。

make && make install
F.安装 jpeg6

CODE:
建立目录:
mkdir -p /usr/local/jpeg6
mkdir -p /usr/local/jpeg6/bin
mkdir -p /usr/local/jpeg6/lib
mkdir -p /usr/local/jpeg6/include
mkdir -p /usr/local/jpeg6/man
mkdir -p /usr/local/jpeg6/man1
mkdir -p /usr/local/jpeg6/man/man1

cd /usr/local/src

tar -zvxf .v6b.tar.gz

cd jpeg-6b

./configure –prefix=/usr/local/jpeg6/ –enable-shared –enable-static

make && make install

G.安装

cd /usr/local/src

tar -zvxf -1.2.12.tar.gz

cd -1.2.12

./configure  //这个如同上面zlib的说明一样,不要带参数,让它默认安装到相应目录

make && make install

H.安装

cd /usr/local/src

tar -zvxf -2.3.4.tar.gz

cd -2.3.4

mkdir -p /usr/local/

./configure –prefix=/usr/local/

make && make install

I.安装GD库

//下面开始另一个重要的工作,安装gd库,因为gd库在window操作系统下默认是自带有的,但到linux下,必须得自己安装,不然,很多目 前流行的论坛图水印功能、缩略图功能等都不能用,打开自己的网站图片大的大小的小,严重变形,影响美观,所以下决心要整冶好gd库。
//这个gd库的安装是目前第四重要的软件。呵呵,第一个当然是php了,老二就是apache了,老三还用说吗是mysql,老四就是gd库了。呵呵。

<!– #Reading{float:right;margin-left:10px;font-size:12px;} –>

cd /usr/local/src

tar -zvxf -2.0.34.tar.gz

mkdir -p /usr/local/

cd -2.0.34

./configure –prefix=/usr/local/ –with-jpeg=/usr/local/jpeg6/ –with-png –with- –with-=/usr/local//

//大家看到了吧,在这些参数中,由于上面安装zlib、png二个软件没有指定目录,所以这里也不要指定了。
//第一次安装测试时,上面zlib、png都很顺利编译通过,但到了这里,总是提示找不到/png等相应的路径啊什么的。

make && make install

J.apache2安装

//下面进行老二的安装,呵呵。

cd /usr/local/src

tar -zxvf httpd-2.2.4.tar.gz

cd httpd-2.2.4

./configure –prefix=/usr/local/apache2 –enable-module=most –enable-rewrite –enable-shared=max –enable-so
//php的编译参数就更多了,呵呵,自己如果有兴趣就可以专门研究一下,你研究了要告诉我一声。向你学习.

make && make install

//两条命令,注意,最后一个命令是让apache2编译出所有的so文件,apache2以DSO模式运行。

K.php5安装

//下面进入最重要的老大的安装,所以它必须放在最后,呵呵,因为它要用到前面很多软件的。

cd /usr/local/src

tar -zxvf -5.2.2.tar.gz

cd -5.2.2

./configure –prefix=/usr/local/php5 –with-apxs2=/usr/local/apache2/bin/apxs –with-=/usr/local/ –enable-trace-avrs –with-=/usr/local/ –with- –with-libxml=/usr/local/ –enable-shared –with-=/usr/local/ –with-=/usr/local/ –with-=/usr/local/ –with-jpeg-dir=/usr/local/jpeg6 –with-png –enable-mbstring=all –enable-mbregex –enable-so
//这里的参数指定,我是看了又看,唯恐写错一个字符,害了大家啊。这里千万不能错。等你有经验写文档时,请一定也要尊重你的读者,不然害人可不浅啊,等别人拿着你的文档编译时,就是编译不了,你说,当时他会急成什么样,特别是如我一族,没有人在旁边指导啊!

make && make install

cp .ini-dist /usr/local/php5/lib/.ini
L。Zend的安装

cd /usr/local/src

tar -zxvf -3.2.8--glibc21-i386.tar.gz

cd -3.2.8--glibc21-i386

./install //执行这个安装命令就可以了,哎,上帝啊,什么时候php、mysql、apache、gd这几大软件在linux下也能像Zend这样自动啊,一个命令,下面就是下一步下一步,我们这等小民也不会那么受罪与累了。
//在这里下一步的过程中,一定要明白你的.ini的路径是在/usr/local/php5/lib/目录下,不能填错了。
//另外的话:
到这里,如果你还像我说的一样,顺利的话,恭喜恭喜恭喜你,你太有才了,真不容易走这一关。
至于怎么配置.ini与虚拟主机httpd-vhost.conf那就等我有空专门整理成篇再说好吗各位(最重要的是,配置这二个文件就很简单了,并且网上一般错的很少,呵呵)?
你如果整理的很好、或者急需要知道怎样配置的话,可以在下面给我留言。

当然,如果大家要转载这个文章,请一定要加上

/*  养成好习惯,尊重别人也是尊重自己

Author:白开水
QQ:75094040
Email:daheit@163.com
Blog:http://blog.daheit.com
tech:http://php.daheit.com

*/

相关文章

Zend Framework学习笔记(一)

Filed under: 程序开发 | No Comments »
Posted on

对象: ver1.0.3

目的:利用ZF的学习过程加深对MVC的理解,同时在业余时间为自己部门写一个内部使用的运营管理系统

想法:我个人认为ZF暂时不适合作为流量较大的网站应用,但作为部门内部的小应用就绰绰有余了。国内比较火的PHP开发框架——THINKPHP这几天我也初略的研究了一下,应该说比ZF要上手容易一些,但是ZF毕竟是官方出的开发框架,远景值得期待。唯一让人不爽的是,目前网络上的ZF相关资料都是旧版本的,ver1.0.3怎么用得一步一步自己摸索了。

相关文章

PHP SVG Class

Filed under: 程序开发 | No Comments »
Posted on

这几天由于wuba项目的需要,在研究PHP下的SVG绘图,无意中发现一个用于PHP的SVG库。download下来看了看,封装的还可以,在这里推荐一下:http://www.phpclasses.org/browse/package/457.html

相关文章

Tags : ,

把discuz 5.5中的模板函数封装为一个类

Filed under: 个人程序作品 | No Comments »
Posted on

php的模板类有很多,比如smarty、phplib,但实际运用的时候发觉过于复杂,个人认为discuz的模板处理方式是比较合理的。昨天晚上在家把 5.5中的模板函数封装为一个类,去掉了discuz的{template}{lang}标记转换。
此处查看(打开后采用utf-8编码格式)该模板类的有关代码,使用方法见注释里的example,时间有限,功能还有待于进一步拓展。

相关文章

Tags : ,

写的第一个wordpress插件——wp-googleanalytics

Filed under: 个人程序作品 | No Comments »
Posted on

以前每次都是在模版的footer.php里添加上google analytics的统计代码,更换模版以后就得再添加一次,极为不便。
so,由于cnopensource.com的缘故,现在在学习写wordpress插件,而第一个插件就是简单的满足上述需求的插件——wp-googleanalytics
程序简单,我就不采用下载这个方式了,直接把代码列出来:

  1. <?php 
  2. /*
  3. Plugin Name: wp-googleanalytics
  4. Plugin URI: http://wordpress.org/#
  5. Description: 在wordpress中添加google analytics统计代码
  6. Author: 李方进(Leo Lee)
  7. Version: 0.1
  8. Author URI: http://blog.jiu8.com/ 
  9. */ 
  10.  
  11. $googleanalyticsjs="<script src=\"http://www.google-analytics.com/urchin.js\" type=\"text/javascript\"></script><script type=\"text/javascript\">_uacct = \"UA-1661513-1\";urchinTracker();</script>";//此处可以改为任意html代码
  12.  
  13. function output(){ 
  14.     global $googleanalyticsjs;
  15.     echo $googleanalyticsjs;
  16. } 
  17. add_action('admin_footer','output');
  18. add_action('wp_footer','output');
  19. ?>

相关文章

在xslt中调用php函数

Filed under: 程序开发 | 2 Comments »
Posted on

最近一直在研究php下的xml+xslt,我固执的认为这种结合生成的xhtml页面是能最符合w3c标准的。
数据层采用xml,界面层采用xslt,界面外观样式则采用css。按照这个模式,可以很轻松的进行工作分配,而且还能同时开展,省时省力。
本文简单的记录下我近期的一段研究成果——在xslt中调用php函数。
test.xsl

  1. <?xml version="1.0" encoding="utf-8" ?> 
  2. <xsl:stylesheet version="1.0" 
  3.     xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  4.     xmlns="http://www.w3.org/1999/xhtml" 
  5.     xmlns:php="http://php.net/xsl" 
  6.     xsl:extension-element-prefixes="php"><!-- 注意这里 --> 
  7. <xsl:output 
  8.     method="xml" 
  9.     indent="yes" 
  10.     encoding="utf-8" 
  11.     omit-xml-declaration="yes" 
  12.     media-type="application/xhtml+xml" 
  13.     doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 
  14.     doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" /> 
  15. <xsl:template match="/"> 
  16.      <xsl:value-of select="php:function('getadd','1','2')" /><!-- 1,2可以改变为任意数字 --> 
  17. </xsl:template> 
  18. </xsl:stylesheet>

test.

  1. <?php 
  2. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  3. header("Cache-Control: no-cache, must-revalidate");
  4. header("Pragma: no-cache");
  5. header('Content-Type: text/xml; charset=UTF-8');
  6. $xmlfile="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
  7. $xmlfile.="<root></root>";
  8.  
  9. echo parseTemplate("test",$xmlfile);
  10.  
  11. //xml+xsl转换函数
  12. function parseTemplate($xslfile,$xmlfile,$xmlloadtype=1){ 
  13.     $xsl = new DOMDocument;
  14.     $xsl->load($xslfile.".xsl");
  15.     $xml = new DOMDocument;
  16.     switch ($xmlloadtype){ 
  17.         case 0:$xml->load($xmlfile);break;
  18.         case 1:$xml->loadxml($xmlfile);break;
  19.     } 
  20.     $processor = new xsltprocessor;
  21.     $processor->registerPHPFunctions();//这句很重要
  22.     $processor->importStyleSheet($xsl);
  23.     return $processor->transformToXML($xml);
  24. } 
  25.  
  26. //在test.xsl中调用到的php函数
  27. function getadd($i=0,$j=0){ 
  28.     return $i+$j;
  29. } 
  30. ?>

运行显示为3

如果想再深入的加以运用,只要沿着这个思路就可以了。:)

相关文章

Tags : ,