Ubuntu Linux下为PHP5安装cURL
开启curl也好,加装curl也好,都是一码事。本文假定你的Ubuntu Linux已经安装好了LAMP环境。
PHP中类、对象、字段
最近在学习PHP,做个学习笔记:
类就像是一个模板,它定义了么个概念或真实事物的性质和行为。
类提供了一个基础,可以在这个基础上创建实体(即这个类所建模的实体)的特定实例,这些特定实例称为对象。
字段是用于描述类的么个方面的性质。
Bluehost中实现cron jobs
Bluehost主机中使用cron jobs可以为你的站带来很多方便,如果是一些脚本可以自动实现的工作,用cron job 就省力不少。
有人提示这样的使用办法:
通过Cpanel面板,进入Cron jobs,选择Standard,在命令行里输入“/usr/bin/php -q /home/USERNAME/public_html/PathFile”,运行Cron job有可能需要调整一些设置,结束后,单击”SaveCrontab”按钮。
注:你需要吧“USERNAME”替换成你的用户ID和PathFile是你的文件名或者其它文件路径,如果你想要自己使用,那么请在php.ini添加的脚本“-c /home/USERNAME/PathTo/php.ini”。
但是我怎么测试都无法实现。
后来我在英文里搜索,发现这样一个方法:
时间就是用系统自带的,主要是command里命令:
GET http://www.tuesdays.cn/cronjob.php > /dev/null
这个命令主要是系统自动定时get 星期二博客的脚本cronjob.php文件,但是不输出任何提示信息。
linux dev/null 命令的解释:
把/dev/null看作”黑洞”. 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.
禁止标准输出.
1 cat $filename >/dev/null
2 # 文件内容丢失,而不会输出到标准输出.
禁止标准输出和标准错误的输出.
1 cat $filename 2>/dev/null >/dev/null
2 # 如果”$filename”不存在,将不会有任何错误信息提示.
3 # 如果”$filename”存在, 文件的内容不会打印到标准输出.
4 # 因此Therefore, 上面的代码根本不会输出任何信息.
5 #
[...]
php session配置
[Session]
; 除非使用session_register()或$_SESSION注册了一个变量。
; 否则不管是否使用了session_start(),都不会自动添加任何session记录。
; 包括resource变量或有循环引用的对象包含指向自身的引用的对象,不能保存在会话中。
; register_globals指令会影响到会话变量的存储和恢复。
session.save_handler = “files”
; 存储和检索与会话关联的数据的处理器名字。默认为文件(”files”)。
; 如果想要使用自定义的处理器(如基于数据库的处理器),可用”user”。
; 有一个使用PostgreSQL的处理器:http://sourceforge.net/projects/phpform-ext/
session.save_path = “/tmp”
; 传递给存储处理器的参数。对于files处理器,此值是创建会话数据文件的路径。
; Windows下默认为临时文件夹路径。
; 你可以使用”N;[MODE;]/path”这样模式定义该路径(N是一个整数)。
; N表示使用N层深度的子目录,而不是将所有数据文件都保存在一个目录下。
; [MODE;]可选,必须使用8进制数,默认600(=384),表示每个目录下最多保存的会话文件数量。
; 这是一个提高大量会话性能的好主意。
; 注意0: “N;[MODE;]/path”两边的双引号不能省略。
; 注意1: [MODE;]并不会改写进程的umask。
; 注意2: php不会自动创建这些文件夹结构。请使用ext/session目录下的mod_files.sh脚本创建。
; 注意3: 如果该文件夹可以被不安全的用户访问(比如默认的”/tmp”),那么将会带来安全漏洞。
; 注意4: 当N>0时自动垃圾回收将会失效,具体参见下面有关垃圾搜集的部分。
session.name = “PHPSESSID”
;用在cookie里的会话ID标识名,只能包含字母和数字。
session.auto_start = Off
; 在客户访问任何页面时都自动初始化会话,默认禁止。
; 因为类定义必须在会话启动之前被载入,所以若打开这个选项,你就不能在会话中存放对象。
session.serialize_handler = “php”
; 用来序列化/解序列化数据的处理器,php是标准序列化/解序列化处理器。
; 另外还可以使用”php_binary”。当启用了WDDX支持以后,将只能使用”wddx”。
session.gc_probability = 1
session.gc_divisor = 100
; 定义在每次初始化会话时,启动垃圾回收程序的概率。
; 这个收集概率计算公式如下:session.gc_probability/session.gc_divisor
; 对会话页面访问越频繁,概率就应当越小。建议值为1/1000~5000。
session.gc_maxlifetime = 1440
; 超过此参数所指的秒数后,保存的数据将被视为’垃圾’并由垃圾回收程序清理。
; 判断标准是最后访问数据的时间(对于FAT文件系统是最后刷新数据的时间)。
; 如果多个脚本共享同一个session.save_path目录但session.gc_maxlifetime不同,
; 那么将以所有session.gc_maxlifetime指令中的最小值为准。
; 如果使用多层子目录来存储数据文件,垃圾回收程序不会自动启动。
; 你必须使用一个你自己编写的shell脚本、cron项或者其他办法来执行垃圾搜集。
; 比如,下面的脚本相当于设置了”session.gc_maxlifetime=1440″ (24分钟):
; [...]
Web服务器IIS6的PHP5.2.5最佳配置方法
准备:
1、一台安装好的 Windows 2003 服务器,并且已经安装了 IIS 6。
2、下载 windows 版的 PHP 二进制压缩包
安装:
1、解压出来后,全部复制到C盘PHP目录
2、将php.ini-dist改名为php.ini复制到C盘WINDOWS目录
#如果你是高手建议使用php.ini-recommended这是PHP开发组的建议,但不好配置除非你懂
3、修改php.ini配置如下
post_max_size = 8M
extension_dir = “C:\php\ext”
upload_max_filesize = 8M
extension=php_dba.dll
extension=php_dbase.dll
extension=php_gd2.dll #此项是GD库,传图验证用的
extension=php_imap.dll
extension=php_mbstring.dll
extension=php_mysql.dll
date.timezone = PRC #此项是中国时区设置
建立一个文件夹C:/php/tmp给所有用户所有权限,然后设置:
upload_tmp_dir = C:/php/tmp #设置此项才可以上传文件
配置文件随你自已配,一般以上几项配完可正常运行。
OK,基本工作作完了,现在该配置 IIS 了。
打开“ Internet 信息服务(IIS)管理器”,在“ Web 服务扩展”里,选择“添加一个新的 Web 服务扩展”,扩展名可填写“PHP ISAPI 扩展”,要求的文件选择:C:\php\php5isapi.dll,并设置扩展状态为允许。
打开“网站”->“属性”->“ISAPI 筛选器”->“添加”,筛选器名称可填写“PHP”,可执行文件仍然选择 C:\php\php5isapi.dll。
打开“网站”->“属性”->“主目录”->“应用程序设置”->“配置”->“应用程序扩展”->“添加”,可执行文件还是选择 C:\php\php5isapi.dll。扩展名填写“.php”,动作限制为“HEAD,GET,POST”。
打开“网站”->“属性”->“文档”->“启用默认内容文档”->“添加”,可以将 index.php 添加为默认内容文档。
然后选择“服务器机器名”->“所有任务”->“重新启动 IIS”来重启 IIS。
测试
在默认网站发布目录下,建立一个测试页面:
下载:phptest.php
phpinfo();
?>
如果打开这个页面能够看到 php 安装配置信息,就算是安装成功了。
如果想要更优化的执行 php 程序,可以安装 ZendOptimizer-3.3.0a-Windows-i386.exe ,这个东西安装非常简单,这里就不介绍了。
升级
现在升级就非常简单了。只需要将新版本的 PHP 二进制压缩包下载下来,将原来的 C:\php 目录删除,将新版本解压缩到 C:\php 目录中,然后重新启动一下 IIS 就可以了。不需要修改任何配置,也不需要往 System32 [...]







