LAMP部落宝-用最简洁的语言描述lamp的艺术!!!
msgbartop
最专注lamp与开源技术分享的博客
msgbarbottom

18 二 12 php的线程安全与非线程安全

php的版本从5.2以后,开始有了线程安全(Thread Safe)与非线程安全(None Thread Safe)之分,因为php首先是在unix/liunx上开发出来的,unix/linux又是用进程方式运行,CGI也是进程方式运行,window是用线程方式运行的,为了解决一些问题,微软提供了FastCGI,让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本,FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率.

所以在window下面用fastCGI模式使用php就不用非要下载线程安全的,用CGI与ISAPI方式的就需要线程安全,强烈建议还是在原生版本的系统上面做php开发,我个人也希望大家用CentOs这个系统!

01 一 12 多虚拟目录访问

要DIY自己的网站根目录,或者在同一个网站根目录下要实现不同的网站安装访问往往有很多方法:
比如我在本地就可以配置hosts来实现根目录的不同指向达到定义不同域名访问不同网站目录办法,我们用其它的办法,比如多IP的是另一种办法,但是现在ip地址短缺,一般流行申请多域名这种办法实现,比如我申请三个域名:www.php5.com,www.mysql5.com,www.apache2.com, 首先我们分别配置DNS和apache配置,如果配置apache支持配置覆盖的话,也可以用.htaccess来实现—未完,有时间在续

31 十二 11 apache服务器基本介绍

一般安装apache的目录为:/usr/local/apache2
除了apache的文件库外,几个主要有几个目录:
Bin  这里面主要是一些命令的可执行文件目录等
cgi-Bin 通用网关接口可以执行目录,cgi-Bin的可以让你用perl,c++等等来写服务器程序
htdocs  默认文档根目录 当然你可以定义自己的虚拟目录
logs  文件目录(这个很重要)
access_log(访问日志)  error_log(错误日志) httpd.pid (进程访问的一些记录) ssl_request.log(ssl安全请求日志)
modules  模块目录
一般这里都是以模块的形式出现,可以让你外挂一些东西,如php,他就可以让你把php5的一些东西外挂进来!来运行php5

另外还有一个重要的配置文件httpd.conf

神马都可以在里面配置的,设置访问权限,别名建立,挂载,删除模块等等,我们常见的主配置如果要包含附配置文件的话,那么就可以分开来配置,让配置更加的清晰!
比如多路处理模块,和默认处理,或者虚拟分开就很清晰!

24 十二 11 php基础安全

做web开发,特别是开源系统的开发,需要详细了解一些安全方面的知识,php是弱类型的语言,开发过程中类型转换容易被一些人忽视,最近看到消息csdn网站数据密码被泄,有些密码还是明文密码(这个是系统运营商有点不道德了),容易被各种各样的安全问题带来极大的损失,无论是经营者的信誉,还是用户的私人信息损失,都是很不好的.在这里我讲讲基本的php安全吧!

首先要防止sql注入,可以用php函数过滤与转义,如:mysql_escape_string,mysql_real_escape_string等
其次用私用前缀+注册密码的双MD5加密,就是MD5加密2次,这样人家不拿到你的代码逻辑前,要想知道和获取注册用户密码是极度不容易的,就算拿的到逻辑,要匹配扫描得到结果也是不那么容易!
另外开源系统的一些代码和数据表目录结构是暴露的,有些可能不稳定,有些可能存在bug(当然不开源的bug更多,微软都为操作系统都一直持续打补丁呢【当然人家也有牛B的工程师在不停的修复】),我们在引进人家优秀的东西的时候,正式运营,可以重构系统,隐去或者更改很多默认的访问方式,自己DIY目录结构,或者在apache上限制严格的访问方式,对系统有些自己的合理规划,同时对数据库的操作的文件,设置的权限要相当严谨,以防不测!!!
同时系统安全最重要的还是内部重要工作人员的谨慎和保密严谨,因为不管是php还是其它语言,工作人员的疏忽是最容易带来安全问题的方式!

17 十二 11 搭建一个magento新模块

magento是一个有着强大配置的系统,magento一切的运行都与配置系统息息相关,它真正让magento系统抽象起来,增加了人们对magento理解和编程的难度,但是程序的世界就是这样,越抽象就越灵活,维护做大更方便,越简单的语言越能做出执行效率优胜的东西,许多事情做要好都不容易,熟练并良好的应用magento会给你带来无尽的好处,关键在于你是否真正的理解熟悉它的脾气!!!就和gvim一样,不熟悉的人觉得他难用,只是依葫芦画瓢或者没用会它的精髓,你根本不了解被称为“神器”的编辑器的厉害之处!

新建一个插件需要的步骤:

说明magento的module叫模块,magento的系统模块在如下目录:

1
app/code/core/Mage

这些是由magento官方团队开发的.根据网上的一些介绍,我们要创建自己单独的模块可以放在这么些地方

1
app/code/local/Packname

如果想社区插件/模块的话,可以放在

1
app/code/community/Packname

一般Packname可以命名为自己公司(company)或者个人(name)的名字命名!

如果是我做的magento模块,我将使用自己的命名”Myapp”,然后,我创建如下的目录结构

1
2
3
4
5
6
app/code/local/Myapp/Configviewer/Block
app/code/local/Myapp/Configviewer/controllers
app/code/local/Myapp/Configviewer/etc
app/code/local/Myapp/ConfigviewerHelper
app/code/local/Myapp/Configviewer/Model
app/code/local/Myapp/Configviewer/sql

命名规则按照magento官方团队命名规则来,这样就比较规范,不至于造成代码命名的混乱!

反正不管是不是全部需要以上的全部文件夹,但是我们原则上还是根据Mage核心结构创建6个文件夹,现在我们需要来创建自己新建模块的配置部分,让自己新建的模块融入magento,也就是在magento系统里面展示出来.

下面就要写配置了:首先要在创建的模块创建配置文件

1
app/code/local/Myapp/Configviewer/etc/config.xml

具体内容如下:

1
2
3
4
5
6
7
<config>
    <modules>
        <Myapp_Configviewer>
            <version>0.1.0</version>
        </Myapp_Configviewer>
    </modules>
</config>

然后需要在系统里面进行配置:
路径

1
/app/etc/modules/Myapp_Configviewer.xml

具体配置内容如下:

1
2
3
4
5
6
7
8
<config>
    <modules>
        <Myapp_Configviewer>
            <active>true</active>
            <codePool>local</codePool>
        </Myapp_Configviewer>
    </modules>
</config>

将模块在系统里面激活!
在后台禁用或者清除缓存,在系统->配置->高级里面,显示出来了,这样你要建的一个模块就建好了!

16 十二 11 php工程师路上的成长问题!

作为Web开发中应用最广泛的语言之一,php被应用于方方面面,你是一名合格的程序员吗?是否在实践中遇到过许多问题,工作之路是否会时常遇到瓶颈,影响自身发展呢?

php工程师 这里所指的PHP工程师,是指主要以PHP进行Web系统的开发,参与或者独立开发过普通的Web系统(百万级访问以上业务逻辑不是特别复杂)开发起基本得心应手的普通工程师!

面对大的性能需求可能需要注意的问题:

1.如何选择Web服务器?要不要使用fast-cgi 模式;
2.要不要使用反向代理服务?选择全内存缓存还是选择硬盘缓存?
3.是否需要负载均衡?是基于应用层,还是网络层? 如何保证高可靠性?
4.用户访问的话,有哪些特点,是读多还是写多,是否需要读写分离!
5.数据如何存储?写入速度和读出速度如何? 数据增涨访问速度是如何变化?
6.如何保证数据的一致性.
7.数据安全性与优秀面向对象类库的编写熟练!

以及重点对C语言的学习理解,c语言是一切语言的基础,只要相关专业的人,都会学习这门基础课程,但是少有人能在实战中理解的十分透彻!
对于二分查找,排序算法,查找算法的深刻理解!

优化数据的加载与排序,数据每次都需要的加载和排序,可以在php加载后放在php易于访问的地方,这里特别是的内存或者Memcache之类的处理机制!

bug检测,代码检测,定位,优化结构方面,并可以多锻炼C/C++扩展php!

07 九 11 个性站点新趋势

虽然现在的新闻站,电子商务站等网站需要前面讲的标准box的前端模块化,但是对于创意,时尚,博客,主页等要突出个性的网站,现在是tab与全屏”平板化”的趋势发展 !着重讲解了反 Box 式布局,单页布局,多栏布局,巨型插图设计,更多留白,社会网络元素,讲解式导航菜单,以及动态 Tabs 等设计风格!

 

 

18 五 11 您的SEO工作人员努力了吗?

其实seoer的工作是否努力,主要看反向链接,是他努力的标志.
而搜索引擎收录,链接和权重分析,是证明他能力的标志,也就是他定位准,人比较靠谱.
至于效果嘛,当然是看百度统计,google分析了

07 五 11 zuitu,discuz创建缓存文件

zuitu,discuz文件的缓存的建立 cachefile代表要缓存文件
function updatedata($cachefile = '') {

if($cachefile) {
foreach((array)$this->map[$cachefile] as $modules) {
$s = “ foreach((array)$modules as $m) {
$method = "_get_$m";
$s .= '$_CACHE[\''.$m.'\'] = '.var_export($this->$method(), TRUE).”;\r\n”;
}
$s .= “\r\n?>”;
//写入缓存文件当中
@file_put_contents(UC_DATADIR.”./cache/$cachefile.php”, $s);
}
} else {
/*同理*/
foreach((array)$this->map as $file => $modules) {
$s = “ foreach($modules as $m) {
$method = "_get_$m";
$s .= '$_CACHE[\''.$m.'\'] = '.var_export($this->$method(), TRUE).”;\r\n”;
}
$s .= “\r\n?>”;
@file_put_contents(UC_DATADIR.”./cache/$file.php”, $s);
}
}
?>

29 四 11 seo my site google baidu

域名(Domain):http://www.tribebao.com(2011年2月20日注册)
网站简介(about site):新域名(new domain),新空间(new space),我的博客(my blog)
网站描述(web Description):lamp部落宝(lamp tribebao)-是一个专注lamp技术分享的博客(Is a blog dedicated to share lamp technology)
起始时间(start time):2011.4.6(上传虚拟主机的时间)——今
描述(Description):每三天花一个小时查看,做小优化调整,尽量保持文章数量(Spend an hour every three days to view, a small optimal adjustment, try to keep the number of articles).
关键词(keywords):
php
lamp
zuitu团购
解密magento
关键词选择考虑:
这个是我个人的博客,有学习交流的成分,所以选择那些关键词,但是如果我是提供商业服务,那么我就会选择,zuitu插件开发,zuitu团购程序开发,magento网店建设,深圳magento网店系统建设,最专业的magento网店系统建设,个人网上商城建设,最好的网店系统建设,网店建设等等关键词.

排名结果:
概况:这个是我最近新建的博客,网站初期考虑到以后容易维护,做了一些考虑,选择了自己熟悉的php语言做的博客系统,选择了系统低耦合、高扩展性的wp,网站上线后,做了一点关键词的分布,以及小功能的调整,加入了google分析,baidu统计,站长工具等协助自己做优化经验参考.

案例分析:上线了,第一件事就是做好自己博客相关主题关键词的选择,为了保持内容的可看性,也不是完全一股脑的为了seo去狂做关键词首页浓度,并把原先的tirbebao.com经过301重定向到www.tribebao.com增加权重.目前google,baidu都对自己的博客有收录,轻松的获得了他们的支持,由于自己博客是专注lamp技术的,这个范围太广,并没有选择关键词,选择如长尾关键词和区域关键词来做功利化的商业竞争,因为工作较忙,目前对自己博客的前端模块化和标准化以及兼容性,web2.0效果并未做,站外内容发布也并没有怎么做,并相信自己时间稍有闲余,做过后,随着时间的增加,相信收录的搜索引擎会更多.

另外自己有一个信念,就是把握SEO的核心–让搜索引擎更容易收录你的网页,让关键词在搜索引擎自然排名靠前,(SEM的核心-客户(感兴趣的人)能不能更容易找到你,你能不能更容易的被客户(对你的站点感兴趣的人)找到).一味的追求PR和alexa(流量)的值没有必要,如果你想打广告,可以参考alexa,如果你做生意可以参考pr(外链多当然更容易转到你这里来)其实PR值主要测试外链和别人分享、自觉转载你的文章等,证明你的内容很受欢迎.(这个可以自己主动去别的网站发布你的链接和乱七八糟的文章加上你自己的关键字、区域和所做的事情,同时也可以做很多小站,全部链接向你的主站,来增加外链,造成虚假受欢迎,或者假装定义到pr值高的网站,看到的其实不是它本身的PR值,pr值也会很高,所以google也宣布google的这个值不在是网页好坏的决定性标准,因为商业性的东西已经让PR值失去了它的初衷意义,中国人急于求成总会使用一些欺骗手段快速增长这些数据,其实有些东西一些人看到好的东西,会复制而不是转载),alexa测你网站的流量–.效果好不好是关键.所以两个值可以作为你的参考来做. 一般准确一点的是分析google和baidu统计得到的数据比较真实.

google图

baidu图

站长工具图:

yahoo

qq soso