当前位置:  编程技术>php
本页文章导读:
    ▪c盘temp文件夹存在大量sess开头文件原因与解决方法      服务器经常宕机,重启后也总是cpu占用率非常高,一旦关闭iis则恢复正常。 当在清理垃圾文件时,发现c:\windows\temp文件夹中存在超级多以sess_开头的文件,此类文件之多使得无法正常的打开te.........
    ▪Linux下crontab定时执行PHP程序的方法      在Linux中使用Crontab定时执行PHP的方法,实现步骤如下: 1、使用crontab -e编辑定时任务 内容为:   xx:xx:xx 执行一个hello.php文件 2、php文件必须在文件头一行,加上解释器路径(类似于bash或perl那.........
    ▪深入php设计模式实例详解      1,php设计模式实例之单例模式 php设计模式中的单例模式的例子。单例模式:即一个对象只负责一个特定的任务。 2,php设计模式实例之命令模式 php设计模式中,命令模式的一些例子。命令.........

[1]c盘temp文件夹存在大量sess开头文件原因与解决方法
    来源: 互联网  发布时间: 2013-12-24

服务器经常宕机,重启后也总是cpu占用率非常高,一旦关闭iis则恢复正常。
当在清理垃圾文件时,发现c:\windows\temp文件夹中存在超级多以sess_开头的文件,此类文件之多使得无法正常的打开temp文件夹和删除清理。

以下是原因分析与解决方法参考。

一、 temp文件夹大量文件的删除

以sess开头的存在于temp系统临时文件夹的文件,是php的session保存文件,由于php建立了session却在过期后没有成功删除,于是导致大量文件的积累。

清理方法:
新建批处理文件del_temp.bat,其中写入如下命令:
 

del %TEMP% /s /q *.*

保存后双击运行,即开始进行删除处理(也可直接在cmd命令行中输入执行)。
也可以将其加入开机启动项,以使得每次重启系统后即执行一次删除处理。

提示:

1. 如果这里执行一直显示无法进行(志文工作室最先遇到的情况即如此),则可能是temp文件夹及其中部分文件正处于使用状态,那么可以在同目录下新建一个文件夹tmp,然后修改系统环境变量temp和tmp的位置为此,接着重启系统使得新的临时目录生效,此时即可对temp文件任意删改了。

2. 服务器temp文件夹内存在数十万这样的文件,清理了若干小时才完成。
故在进行处理前应停止iis:
 

net stop iisadmin 关闭iis服务
net start iisadmin 开启iis服务

3. 当然,不希望在处理的过程中让网站关闭太久,可以参照如下操作进行:
 

1>. 关闭iis
2>. 更改php保存session的默认路径(参考后面内容)
3>. 开启iis,检查服务器所有站点是否正常
4>. 执行del_temp.bat进行清理

二、修改php的Session保存路径session.save_path

1. 打开php.ini文件,查找到
 

“;session.save_path = "/tmp"”
 

将其修改为指定的位置用于存储session,形如这样:
 

session.save_path = "c:/tmp/phpsession"

当然,也可以使用分级目录的方式,比如改为这样:
 

session.save_path="5;c:/tmp/phpsession"

2. 新建文件夹路径:c:/tmp/phpsession

3. 添加该路径(即phpsession文件夹)的internet来宾账户修改和写入权限,注意最好不要给予执行权限。

4. 启动iis,观察该目录是否会有新的session文件产生。

三、php的session多级目录存放解决大量临时文件效率问题

session多级存放可以缓解一个目录下session文件过多带来的读写效率问题。

php.net上针对sesstion配置相关的说明:http://cn.php.net/manual/zh/ref.session.php

session.save_path string

session.save_path 定义了传递给存储处理器的参数。如果选择了默认的 files 文件处理器,则此值是创建文件的路径。默认为 /tmp。参见 session_save_path()。
此指令还有一个可选的 N 参数来决定会话文件分布的目录深度。例如,设定为 '5;/tmp' 将使创建的会话文件和路径类似于:
 

/tmp/4/b/1/e/3 /sess_4b1e384ad74619bd212e236e52a5a174If
 

要使用 N 参数,必须在使用前先创建好这些目录。在 ext/session 目录下有个小的 shell 脚本名叫 mod_files.sh 可以用来做这件事。此外注意如果使用了 N 参数并且 N 大于 0,那么将不会执行自动垃圾回收,更多信息见 php.ini。
另外如果用了 N 参数,要确保将 session.save_path 的值用双引号 “quotes” 括起来,因为分隔符分号( ;)在 php.ini 中也是注释符号。

参考以上说明,在定义session.save_path中可以定义多级存放的路径,于是我们可以修改php.ini中的session.save_path为:
 

session.save_path = “2;/data/session_tmp”

如此将session文件分成两级存放,即类似于:
 

/data/session_tmp/4/b/sess_4b1e384ad74619bd212e236e52a5a174If

取session的前两位字符作为二级目录索引,但是php并不生成目录,需要自己手工生成,这里提供一个php脚本来生成初始的目录。
 

代码示例:

<?php
$string = '0123456789abcdefghijklmnopqrstuvwxyz';
$length = strlen($string);
function makeDir($param)
{
if(!file_exists($param)) {
echo "mkdir ".$param."\n”;
exec("mkdir ".$param);
}
}

for($i = 0; $i < $length; $i++) {
for($j = 0; $j < $length; $j++) {
makeDir('/data/session_tmp/'.$string[$i].'/'.$string[$j]);
}
}
?>
 

session目录分级处理之后,IO处理值增加,http进程降低,web处理效率明显好转。


    
[2]Linux下crontab定时执行PHP程序的方法
    来源: 互联网  发布时间: 2013-12-24

在Linux中使用Crontab定时执行PHP的方法,实现步骤如下:

1、使用crontab -e编辑定时任务
内容为:
 

xx:xx:xx 执行一个hello.php文件

2、php文件必须在文件头一行,加上解释器路径(类似于bash或perl那样)
 

#!/usr/local/bin/php
 

注意:PHP的执行需要Apache的支持,shell脚本的执行需要Linux的支持,而Linux支持定时运行某个程序的功能。
然后,直接在/etc/crontab里执行,如如下写法:
 

*/5 * * * * root  /root/hello.php

之前的做法,先是在crontab里执行一个shell程序,然后让shell程序再运行PHP程序,这个其实相当没有效率;
改为直接在/etc/crontab里直接带上php路径,如

*/5 * * * * root php hello.php

,也能正确执行;


    
[3]深入php设计模式实例详解
    来源: 互联网  发布时间: 2013-12-24

1,php设计模式实例之单例模式
php设计模式中的单例模式的例子。单例模式:即一个对象只负责一个特定的任务。

2,php设计模式实例之命令模式
php设计模式中,命令模式的一些例子。命令模式:将一个请求封装为一个对象,从而你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销操作。

3,php设计模式实例之工厂模式
有关php设计模式之工厂模式的例子。工厂模式:由工厂类根据参数来决定创建出哪一种产片类的实例。工厂类:一个专门用来创建其他对象的方法类。即按需分配,传入参数进行选择,返回具体的类。作用:对象创建的封装、简化创建对象的操作,即调用工厂类的一个方法来得到需要的类。

4,php设计模式实例之观察者模式(2)
php设计模式中,观察者模式的一个例子。观察者模式:定义对象间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。

5,PHP设计模式实例之观察者模式
本文介绍下,php设计模式之观察者模式的例子。说明:观察者模式属于行为模式,是定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。

6,PHP设计模式之观察者模式的例子
本文介绍下,php设计模式之观察者模式的一个例子,供大家学习参考。

7,php设计模式之工厂模式的实例代码
本文为大家举一个php设计模式之工厂模式的例子,适合正在学习与研究php设计模式的朋友参考。

8,php设计模式之单例模式的实例代码
为大家介绍一个php设计模式之单例模式的例子。

9,php常用设计模式之工厂模式与单例模式介绍
php常用设计模式之工厂模式与单例模式介绍,首先,我们看一个工厂模式的例子,工厂模式的主要作用是降低耦合度。有需要的朋友,可以参考下。

10,学习php设计模式之单例模式
单例模式(职责模式):一个对象仅负责一个特定的任务;单例类:1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;

11,有关php单例模式介绍及例子
php设计模式之单例模式,作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。

12,学习php的适配器模式
php设计模式之适配器模式,即Adapter(别名Wrapper)模式:将一个类的接口,转换成客户期望的另一个类的接口。适配器可以让原本接口不兼容的类合作无间。

13,php常用的三种设计模式的学习笔记
本文为大家介绍php编程中常用的三种设计模式:单例模式、工厂模式、观察者模式,有需要的朋友可以参考下。

14,php设计模式之单例模式学习
单例模式实现:如何让这个类只有一个实例。web应用中,大量使用了数据库连接,如果反复建立与数据库的连接必然消耗更多的系统资源。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3