Category Archives: php
五四陈透过PHP看JAVA系列:fsockopen
本系列主要总结PHP与JAVA之间的一些异同,给从PHP学JAVA或者是从JAVA学PHP的同学一点启发,五四陈科学院出品。 第一部分,先看PHP的fsockopen 先来看PHP手册中的定义http://www.54chen.com/p/function.fsockopen.html 看完定义后,来看一段代码,利用PHP去更新squid的缓存: <?php function updateCache($myUrl) { global $vSquidConfig; foreach ( $vSquidConfig ['host'] as $mySquid ) { $myHandle = @fsockopen ( "127.0.0.1", 80, $myErrNo, $myErrStr, 30 ); if ($myHandle) { $myResult = ''; @fputs ( $myHandle, "PURGE " . …
五四陈透过PHP看JAVA系列:strtotime
本系列主要总结PHP与JAVA之间的一些异同,给从PHP学JAVA或者是从JAVA学PHP的同学一点启发,五四陈科学院出品。 第一部分,先看PHP的Date/Tme函数 详细见:http://www.54chen.com/p/ref.datetime.html 今天要说的是其中的strtotime函数 http://www.54chen.com/p/function.strtotime.html 函数的功能:接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)。 例子: <?php echo strtotime("2010-3-3 3:3:3"); ?> 将得到结果: 1267585383 在PHP应用中,经常在需要记录时间的时候,使用Mysql的int(10)来保存这个 Unix 时间戳,并且时间的比较查找等操作,都用大于小于来进行。 第二部分,看JAVA对应的方法 try { fromUnixTime = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/03/2010 08:00:00").getTime(); fromUnixTime /= 1000; } catch (ParseException …
PHP-FPM配置sendmail支持PHP发信
当下常用的环境CentOS+nginx+php-fpm+mysql. 之前五四陈科学院曾有一文章是介绍环境的配置的,挖一挖水,链接在这里: wordpress nginx php-cgi mysql在128m内存下的vps安装和优化手记[原创] 如果要使用mail功能,需要按如下步骤操作: 第一步、安装sendmail yum install sendmail 第二步、启动sendmail service sendmail start 第三步、设置为auto start chkconfig sendmail on 第四步、修改php-fpm.conf: 搜索sendmail,去掉那一行两头的注释如下: <value name="sendmail_path">/usr/sbin/sendmail -t -i</value> 第五步、php-fpm reload
解读PHP开源项目中列表和hook方法:while(has_items()): thme_ite();和apply_filters
在wordpress,lilina等开源项目中,常常会看到一些莫名的代码,来无影去无踪,看上去很有意味,特地拿来分析分析,看看一般的作法。 part 1 列表 循环显示 先看代码: <?php $num = 0; if(has_items()) { while(has_items()): the_item(); } ?> 以上代码,出自某开源项目。。。 再进入the_item()函数内部,可以看到一个关键的函数: * Returns the current item * * @since 1.0 * * @return bool|stdClass False if item doesn't exist, otherwise returns the specified …
PHP上传文件类型彻底判断方案及PHP+nginx上传大小彻底控制方案
上回科学院发过一篇讲述上传判断的文章,位置是 PHP JAVA C上传文件如何准确判断文件类型-mime知识普及 本文目的在于,进一步更正前文所述的mime判断方式,以及增加一个nginx环境里的文件上传大小所影响的代码。 上传类型控制: 在我(54chen)工作中发现,其实修改文件的后缀,浏览器就会很傻瓜地传送错误的mime类型,所以前文的判断是一个半错误的方法(除了C代码是正确的)。 网上流传一段PHP读取文件头判断文件类型的方法,有一些bug,经我(54chen)修改实测,应该是这个样子: /** * 读取文件前几个字节 判断文件类型 * * @return String */ function checkTitle($filename) { $file = fopen($filename, "rb"); $bin = fread($file, 2); //只读2字节 fclose($file); $strInfo = @unpack("c2chars", $bin); $typeCode = intval($strInfo['chars1'].$strInfo['chars2']); $fileType = ''; …
ubuntu 9.10快速安装nginx+php环境手记[54chen科学院]
我(54chen)因为场景需要,特地在ubuntu9.10中安装nginx+php的环境,要快速不要优化,记录如下: sudo apt-get install php5 php5-cgi php5-cli php5-gd php5-curl php5-mysql nginx sudo apt-get install lighttpd spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi 上面的操作解读: 1.安装php nginx 2.安装lighttpd,为啥要安装这个,因为他有个spawn-fcgi,因为apt下来的php不是php-fpm。 3.用spawn-fcgi启动php-cgi在9000端口监听。 sudo vim /etc/php5/cgi/php.ini 修改php.ini文件 cgi.fix_pathinfo=1; 这样php-cgi方能正常使用SCRIPT_FILENAME这个变量 sudo …
PHP JAVA C上传文件如何准确判断文件类型-mime知识普及
MIME的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。服务器会将它们发送的多媒体数据的类型告诉 浏览器,而通知手段就是说明该多媒体数据的MIME类型,从而让浏览器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等等。服务器将 MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。 文件 用IE7上传 用Firefox3.0上传 GIF image/gif image/gif JPG image/pjpeg image/jpeg ZIP application/x-compressed application/octet-stream JSP text/html text/html EXE application/octet-stream application/octet-stream 上边的黄图哦不红图表示出了不同的浏览器所上传的不同的mime的区别,研究了一下,暂时没有发现可修改假冒mime的方法。 <form enctype="multipart/form-data" action="URL" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="1000"> <input name="myFil
多nginx单php-fpm的配置方法[from科学院]
用php fastcgi和nginx搭配的形式是很常见的,在很BT的需求下,可能会需要多个nginx走不同的端口,而进程只用一个php-fpm。 本文所讲的环境比上述一句话还要BT,存在一个php-fpm,而且每个nginx都以一个非超级用户所有来进行运行。 这样就存在了一个BT的情况,php-fpm默认不能以root权限运行,而普通用户来运行的话,对其他用户的目录,php-fpm将没有权限,页面在运行php的时候,会提示404。 于是有以下的解决方案: 找到php的源代码 $src_path/sapi/cgi/fpm/fpm_unix.c 在文件顶部增加一个宏定义:#define I_REALLY_WANT_ROOT_PHP 重新 configure make make install 此时再修改php-fpm.conf 将user group都修改成root(经过上面的修改php-fpm已经支持root了)。 重启php-fpm. 配置各nginx.conf: location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; } 点到即止,不再多说。。。
Posted in linux, php
6 Comments
清华万博-精武门 lamp环境内容回顾
精武门版权所有,复制请标明:http://www.54chen.com/c/809 第一部分:Linux基础 因为大多数同学没有任何基础,此课程不得不放慢脚步,但不要担心,所涉及到的东西都会在课程中反复讲解。 1.Linux指令: 1.1 SecureCRT连Linux接服务器后,默认进入自己的用户目录下。--/home/xxxx/ 题外: 目录的概念:.(一个点)当前目录 ..(两个点)上一级目录 <以后不能再分不清楚这两个东西了哈> 相对目录和绝对目录:/home/zzz/相对于/home/来说就是zzz目录,就可以cd /home/后再cd zzz进入到/home/zzz (其中滋味要慢慢体会,只能体会,一定要体会清楚) 1.2 Linux命令行 命令[空格]参数1[空格]参数2[空格]。。。 2.常用命令: cp a b --copy的简写 复制文件的意思,从a复制到b mkdir xxx --make directory的简写,新建文件夹的意思,建立一个叫xxx的文件夹 ls --list的简写,显示当前文件夹下所有文件 精武门版权所有,复制请标明:http://www.54chen.com/c/809 第二部分:LAMP环境 2.1 编译程序中的三板斧: configure 检测硬件,配置MakeFile文件 make 编译 make install 安装 …
“先进的互联互通技术”–使用ice联通php和java [part 2 client]
[信曾哥,转载的都给我保留原链接地址:http://www.54chen.com/784-the-advanced-interconnection-technology-the-use-of-ice-unicom-php-and-java-part-2-client/] 这一part的目标是建立起ice的php环境,以及写PHP代码调用上一part中的10000端口的java代码。 在part 1中,我们建立了一个Server在10000端口等着我们,地址见 http://www.54chen.com/779-the-advanced-interconnection-technology-the-use-of-ice-unicom-php-and-java/ 建立带ice的PHP环境 不管是nginx+php-cgi还是别的啥,这里只表述php编译过程。 本例以 Ice 3.2.1为例 下载的位置和参考的文档都在下面 http://www.zeroc.com/download_3_2_1.html http://www.zeroc.com/doc/Ice-3.2.1/manual/Slice.5.10.html#50592 1.下载IcePHP包,进行编译。在此之前,你还需要安装Ice,记好使用3.2.1版本,如果你是用的tar.gz包,在/opt/Ice-3.2.1/,如果是rpm包,在/usr/下。 2.运行 export ICE_HOME=/opt/Ice-3.2.1 设置好ICE_HOME后进IcePHP目录直接make make install。 此时在/opt/
SEARCH
Update
- 54chen Twitter memo 2012-02-12
- 人肉解析riak_admin join
- go语言安装手记
- 54chen Twitter memo 2012-02-05
- Riak Core说明
- maven库nexus拖不到jar包小记
- 服务接入层小结
- 54chen Twitter memo 2012-01-15
- nginx防hashdos模块使用帮助
- 54chen Twitter memo 2012-01-08
- nginx防hashdos模块释出
- 54chen Twitter memo 2012-01-01
- 水煮鱼杯2011年度不得不总结的十件事
- 年终攻击hashDos-哈希表多碰撞实现拒绝服务-破解办法
- 54chen Twitter memo 2011-12-25
