Hezll 博客

2009年11月16日

Ubuntu 9.04 Server 搭建Nginx+PHP5+MySQL完美Web服务器

类归于: PHP — admin @ 3:35 下午

转载请注明出处:http://club.topsage.com/thread-355620-1-1.html

注意php5.3现在有一定的问题,不能正常配置安装。

Nginx (发音:”engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过两年半了。Igor将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

本文将和大家一起在Ubuntu 9.04 Server上快速搭建支持Nginx、PHP 5、MySQL的最佳Web服务器。文中使用的一些基础配置信息如下:

  • hostname:server1.example.com
  • IP地址:192.168.0.100

实际应用中,改为自己的相应配置即可。

另外,文本使用的多数命令均需要root权限,所以,开始之前最好用 sudo su 命令进入root权限。否则,每个命令前要用sudo。 (全文…)

2009年11月14日

INNER JOIN和WHERE区别(转)

类归于: PHP — admin @ 6:56 上午

请看下面两条语句:
select * from table1 inner join table2 on table1.id = table2.id
select * from table1,table2 where table1.id = table2.id

其实这两种方式的执行结果一样,具体区别如下:

1.WHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接)WHERE和INNER JOIN产生的连接关系,没有本质区别,结果也一样。但是!隐性连接随着数据库语言的规范和发展,已经逐渐被淘汰,比较新的数据库语言基本上已经抛弃了隐性连接,全部采用显性连接了。

2.无论怎么连接,都可以用join子句,但是连接同一个表的时候,注意要定义别名,否则产生错误!
inner join:理解为“有效连接”,两张表中都有的数据才会显示
left join:理解为“有左显示”,比如on a.field=b.field,则显示a表中存在的全部数据及a、b中都有的数据,a中有、b中没有的数据以null显示
right join:理解为“有右显示”,比如on a.field=b.field,则显示b表中存在的全部数据及a、b中都有的数据,b中有、a中没有的数据以null显示
full join:理解为“全连接”,两张表中所有数据都显示,实际就是inner +(left-inner)+(right-inner)

3.join可以分主次表.外联接有三种类型:完全外联、左联、右联
完全外联包含两张表的所有记录 (全文…)

2009年11月9日

Drupal 性能瓶颈之一——sql查询分析

类归于: PHP — 标签: — admin @ 10:53 上午

          上半年公司的项目基本上都是用drupal来完成的。通过一年多的学习及实际开发,公司团队已经基本上掌握了drupal的原理,模块开发以及theme系统。

         说来惭愧,作为互联网行业里边的龙头公司,采用了drupal这么优秀的开源系统,确没有去帮助其推广。这其中各个原因都有。但是今天偶尔在drupal群里同大家讨论之后,又重新提到了drupal性能的问题。

         现在,团队已经放弃了drupal来实施开发项目,而重新回归到自己的框架之上。其实利用drupal前前后后开发了差不多10多个项目,最大的一个项目大概在10w注册用户。平均pv在100w左右。采用了多台服务器。因此从性能上来说。drupal基本上还是能够满足一个中型项目的需求。

        但是,为什么在开发便利,项目进度迅速的情况下放弃了drupal呢。这同样是从这个项目说起。

这个项目有一个特点,就是需要投票。因此投票页的pv大概在600w左右。其实这个pv是不真实的,因为有许多刷票机,或者是刷票程序在频繁的访问着这个页面。虽然从程序上做了一定的限制。

          有一段时间,服务器经常出现莫名其妙的down机情况。而且经常是重启之后半个小时,就再次down机。通过日志,最后发现原因是因为mysql的连接数过大造成的。而且就是因为投票模块大量的连接。于是对投票进行了优化,可是问题同样存在。

最后,做了一个简单的测试,发现了一个比较严重的问题。

在my.ini上 加上一句log=”D:/mysql.log”(windows)

这样会出现一个mysql.log的文件

2009年11月6日

Google analytics 已经突破个位数了

类归于: PHP — admin @ 10:32 上午

最近询问服务器提供商,以前自带的分析器怎么没有了。服务器商告知那个不准啊,之类的。然后就给搪塞过去了。叫我使用谷歌分析

其实完全可以把公司的pv代码加进来。但是为了看看google分析有什么特点,顺便从里边学习一下。我还是安装了

 

setting

安装过程非常简单,申请好之后,只需要把相对应的代码填写到每一个需要记录的页面底部。</body>之前就行了。

如果是wordpress可以选择插件,然后填入UA-5841026-2 的编号。

 

overview

 

如上图,好像已经突破个位数了。呵呵,等数据量上去之后,才能分析出一些有用的数据吧

2009年11月5日

php获取当前访问的文件名

类归于: PHP — 标签: — admin @ 3:48 下午

php获取当前访问的文件名 2008年02月15日 星期五 发表人:4studio 写程序的朋友都知道,很多时候我们都需要获取当前访问的文件名,以便进行其他操作。获取操作的方法也很简单,我在这里介绍三种吧:

方法一:

<!--p<-->

$url = $_SERVER['PHP_SELF'];

$filename= substr( $url , strrpos($url ,/)+);

echo $filename;

?&gt;

 

方法二:

<!--p<-->

$url = $_SERVER['PHP_SELF'];
$arr = explode(/, $url );
$filename= $arr[count($arr)-1];
echo $filename;
?&gt;

 

方法三:

<!--p<-->

$url = $_SERVER['PHP_SELF'];
$filename = end(explode(/',$url));
echo $filename;

?&gt;

 

个人比较喜欢第三种方法,简单易懂 以上,转载自:4studio博客

 

其实hezll更喜欢用

echo __FILE__;
echo basename(__FILE__);

echo dirname(__FILE__);
 

大家试试,是不是简单多了。呵呵

H1N1 甲流!我们公司都这样上班!

类归于: PHP — 标签:, — admin @ 3:26 下午

照片-0012

其实也挺好笑的,可是为了大家的安全,只能这样上班了!

完美解决wordpress上传图片问题(无法创建目录,redphp等虚拟空间版)

类归于: PHP, wordpress, 虚拟空间 — admin @ 1:53 下午

 

 database

 注意到上图 ,www.shotki.com/hezll  采用的是红色主机(redphp.cn)空间,这是数据库中options表里边upload_path字段

其实很多网上的朋友都说出现这个错误之后需要修改权限云云。。。这是不完全正确的。其实关键在于‘   ’

我在一开始配备的时候参考网上文章,用了一个完整的目录   /public_html/hezll/wp-content/uploads ,然后将所有的权限全都改成0777.可是发现并不成功 (全文…)

2009年11月4日

hezll重新开启

类归于: PHP — admin @ 2:54 下午

 以前基于drupal,实在太庞大了。yii写的blog又简单。所以还是采用wordpress。先开启了再说吧。

windows 下面迅速搭建SVN化的WEB服务器以及svn update跳过的问题

类归于: PHP — 标签:, , — admin @ 2:40 下午

(作者hezll.转载请注名出处,谢谢!www.shotki.com/hezll)

本文简单介绍了如何利用svn实现搭建远程项目协同开发服务器.可以快速将每个开发者所开发的效果迅速呈现于当前web之上

 

1.下载 Setup-Subversion-1.5.3.msi TortoiseSVN-1.5.9.15518-win32-svn-1.5.6.msi安装在服务器上

安装结束后注意一个问题就是环境变量,需要打开运行cmd后无论在任意路径下面执行svn都能得到”使用”svn help”^”

(此点重要,一般默认安装即可,但是有时候会出问题,比如绿色版,需要手动添加)

2.服务器某个想要当作svn服务的文件夹(随意)可以命名为svndemo ,然后右键 TortoiseSVN->create Repository here

此时svndemo 下面会多出conf ,db,hooks ,locks, format,README,txt等文件

3.用编辑器打开conf下面svnserve.conf ,找到#password-db = passwd去掉#号(此处注意顶格,不能留空格,否则会出错!!!)

4.用编辑器打开passwd,修改[users],此处实际为添加用户,具体权限不再赘述,一般去掉#,改为yourname=yourpwd即可

5.打开cmd ,写入svnserve -d -r d:\svndemo (根据你实际路径修改) (全文…)

2009年11月3日

wordpress 部署到redphp服务器

类归于: PHP, 服务器, 虚拟空间 — 标签:, , — admin @ 12:00 上午

因为域名的一直没有得到有效的使用,因此决定在www.shotki.com部署自己的blog.

         由于redphp.cn不支持直接从程序建表(不知道现在是否支持),因此我选择将wordpress在本地安装好之后进行转移。

 

1. 备份原来网站的数据库:操作很简单,进入PhpMyAdmin后选择导出,在表单选择框里选择全部。选择”另存为文件”中的”

WordPress 所驱动