分类存档: PHP

【分享】解决Nginx的502,500错误 WordPress

        在linode.com上面购买了一个vps,安放我的博客。你说一个小小的博客能有多少访问量,可是我刚搭建起来,居然就发现有502 Bad gateways的错误。

        首先,我是用nginx + fastcgi + php-frm + mysql搭建的。在网上找了很多资源,有的说是访问量过大等原因造成cgi响应不过来。关键是我哪来那么大的访问量。后来终于自己想办法解决。原因是我的php.ini的配置问题,我是使用默认的php.ini根本没有管一些细节配置。后来修改php.ini将memory_limit为64M,重启php-frm,就可以。原来是PHP的内存不足了。360M内存的服务器,扛这点应用应该OK.

      那么对于大访问量的网站,怎么修改呢?我有个站,每天有几十万的IP,之前的经验是。

继续阅读 »

负载均衡 – Web应用PHP指南

过去当运行一个大的web应用时候意味着需要运行一个大型的web服务器。因为你的应用吸引了大量的用户,你将不得不在你的服务器里增加更多的内存和处理器。今天,“大型服务器”模式已经过去,取而代之的是大量的小服务器,使用各种各样的负载均衡技术。
“更多小服务器”的优势超过过去的“大型服务器”模式体现在两个方面:

1. 如果服务器宕机,那么负载均衡系统将停止请求到宕机的服务器,转而分发负载到其他正常运行的服务器上。

2. 扩展你的服务器更加容易。你要做的仅仅是加入新的服务器到负载均衡系统。不需要中断你的应用运行。
所以,把握住这个机会。当然,代价就是这要求你的应用开发时增加一点复杂度。这就是本文要覆盖的内容。
这时你可能对自己说:“但是我怎么知道我正在使用负载均衡呢?”。最诚实的回答是,如果你正在问这个问题,那么答案是你多半没有在使用负载均衡系统并且你的系统不需要考虑这个问题。大多数情况,当应用成长足够大的规模时,负载均衡就需要明确提出和设置了。然而,我也偶尔看见虚拟主机公司为客户的应用做这个负载均衡,或者像下面描述的那样要自己来做。
注意,我一直提“web应用”而不是website,这是想区分“web应用”是那些复杂的站点往往涉及服务器端编程和数据库,而不是website那样只显示简单的静态内容。

继续阅读 »

PHP命名空间真的槽糕吗?

PHP 5.3中,最重要的一个新特性就是对命名空间引入,在此之前,PHP开发者对于PHP中命名空间的实现,已经变得异常的渴望。当PHP应用开始变得巨大,并且更加复杂的时候,命名空间是解决代码冲突的必要手段。

  批评者:混乱的PHP

  像C#和Java这些语言,是被设计和遵循严格的语法标准的。PHP是演化的。最早的版本发布于1995年,版本号3,是面向过程的语言。PHP 4包含了最基本的面向对象,而PHP 5提供了合适的标准OOP模型,命名空间在版本PHP 5.3中被加入其中。

1704430

继续阅读 »

PHP生成静态html文件 的三种方法

本文将介绍Php 生成静态html文件的三种方法 。 1,下面使用模版的一个方法!

<?php 
$fp = fopen ("templets.html","a"); 
if ($fp){ 
$fup = fread ($fp,filesize("templets.html")); 
$fp2 = fopen ("html.shtml","w"); 
if ($fwrite ($fp2,$fup)){ 
$fclose ($fp); 
$fcolse ($fp2); 
die ("写入模板成功"); 
} else { 
fclose ($fp); 
die ("写入模板失败!"); 
} 
} 
?>

简单的将模板写进一个文件中存为html.html

2,按时间生成html文件名

<? 
$content = "这是一个以日期时间为文件名的静态生成网页的测试文件, 
文件名格式一般为<font color=#ff0000>年月日时分秒.html</font>"; 
$date = date('YmdHis'); 
$fp = fopen (date('YmdHis') . '.html',"w"); 
//本函数可用来打开本地或者远端的文件 'w' 开文件方式为写入, 
文件指针指到开始处,并将原文件的长度设为 0。若文件不存在, 
则建立新文件。 
if (fwrite ($fp,$content)){ 
//格式是.int fwrite(int fp(文件名), string string(内容), 
int [length](长度));本函数将字符串 string 写入文件资料流的指针 fp 上。 
若有指定长度 length,则会写入指定长度字符串,或是写到字符串结束。 
fclose ($fp);//函数用来关闭已经打开的文件的指针 fp。 
成功返回 true,失败则返回 falsedie ("写入模板成功"); 
} else { 
fclose ($fp); 
die ("写入模板失败!"); 
} 
echo ($content); 
?>

3,下面为转换文件名的一个方法

<?php 
$s_fname = "93e.php"; 
$o_fname = "93e.htm"; 
ob_end_clean(); 
ob_start(); 
include($s_fname); 
$length = ob_get_length(); 
$buffer = ob_get_contents(); 
$buffer = eregi_replace("r","",$buffer); 
ob_end_clean(); 
 
$fp = fopen($o_fname,"w+"); 
fwrite($fp,$buffer); 
fclose($fp); 
?>

这样就可以把 93e.php转化为静态的HTML文件了 。要注意的是待转换的文件里不能有 ob_end_clean();和 ob_start();语句,且目录要有写权限。

PHP如何构建百万级访问量的web应用–PHP网站架构工具箱

在了解过世界最大的PHP站点,Facebook的后台技术后,今天我们来了解一个百万级PHP站点的网站架构:Poppen.de。Poppen.de是德国的一个社交网站,相对Facebook、Flickr来说是一个很小的网站,但它有一个很好的架构,融合了很多技术,如 Nigix、MySql、CouchDB、Erlang、Memcached、RabbitMQ、PHP、Graphite、Red5以及Tsung。

Poppen.de目前有200万注册用户数、2万并发用户数、每天20万条私有消息、每天25万登录次数。而项目团队有11个开发人员,两个设计,两个系统管理员。该站点的商业模式采用免费增值模式,用户可以使用搜索用户、给好友发送消息、上载图片和视频等功能。

继续阅读 »

PHP工程师面临的成长瓶颈

作为Web开发应用最广泛的语言之一,PHP有着大量的粉丝,那么你是一名优秀的程序员吗?在进行自我修炼的同时,你是否想过面对各种各样的问题,我该如何突破自身的瓶颈,以便更好的发展呢?

PHP工程师面临成长瓶颈

先明确这里所指的PHP工程师,是指主要以PHP进行Web系统的开发,没有使用其的语言工作过。工作经验大概在3~4年,普通的Web系统(百万级访问,千成级数据以内或业务逻辑不是特别复杂)开发起基本得心应手,没有什么问题。但他们会这样的物点:

◆除了PHP不使用其它的语言,可能会点shell 脚本。

◆对PHP的掌握不精(很多PHP手册都没有看完,库除外)。

◆知识面比较窄(面对需求,除开使用PHP和mysql ,不知道其它的解决办法)。

◆PHP代码以过程为主,认为面向对象的实现太绕,看不懂。

继续阅读 »

用友云平台实战 开发商最高可拿70%分成

6月22日,由CSDN旗下高级技术管理者大本营CTO俱乐部举办的“走向用友软件园 分享用友云计算”活动在北京用友园成功举办。本次活动特别邀请到了用友集团CTO薛峰、北京伟库电子商务科技有限公司总经理杨祉雄。他们分别从用友集团云战略的未来规划和伟库云服务在未来商业平台的发展等方面和与会者展开了讨论。  继续阅读 »

PHP的可变变量名

有时候可变的变量名会给编程带来很大的方便。也就是说变量名可以被动态的命名和使用。通常变量通过下面这样的语句来命名 :

可变变量名指的是使用一个变量的值作为这个变量的名称。在上面的例子中,通过使用两个$符号,你可以把hello设置成一个变量的名称,就像下面那样。

通过上面的两个语句,有两个变量被定义:变量$a,装的内容是”hello” 以及变量$hello,装的内容是 “world”。 于是,下面的语言:
继续阅读 »