admin 发布的文章

linux禁止指定目录执行php文件

我们设置网站权限的时候,有些目录不得不设置让http服务器有写入权限,这样安全隐患就来了。比如discuz x2的 data目录,这个必须要有写入限,论坛才能正常运行,但有的黑客可能就会利用这个目录上传php文件(你会说附件上传已经限制这种格式的文件,但谁知道黑客会利用什么手段上传呢,只有他们清楚了),进而到配置文件读取到mysql的连接信息,那么你的数据库就是他的了。下面介绍apache和nginx下禁止指定目录执行php文件。

apache的配置

<Directory /home/centos/web/data>
   php_flag engine off
</Directory>
<Directory ~ "^/home/centos/web/data">
    <Files ~ ".php">
    Order allow,deny
    Deny from all
    </Files>
</Directory>

nginx的配置

location /data/ {
    location ~ .*\.(php)?$ {
    deny all;
    }
}
或
location ~* ^/(attachments|upload)/.*\.(php|php5)$
{
    deny all;
}

TortoiseSVN期望文件系统格式在“1”到“6”之间;发现格式“7”

在本地安装好Subversion和TortoiseSVN之后。检出和浏览版本库的时候一直报错 “期望文件系统格式在“1”到“6”之间;发现格式“7”,在网上找了大半天,有清除缓存有重启服务,有修改配置文件... 都没用,结果才是Subversion的版本要高于或等于TortoiseSVN,否则在将项目检出到本地时,就会报错。

这里可以下载各个版本的TortoiseSVN
这里可以下载各个版本的Subversion

jquery.pocket.js网页特效合集

经常做项目的时候里面需要用到各种特效,每次不是自己写就是去找现成的插件,这样工作效率和项目质量总是难以保证,一直计划着做一款jQ插件并开源,里面集成了我们常用的特效,banner,导航,公告,焦点图,弹窗等等。

项目地址如下,欢迎有兴趣的朋友贡献代码!
github:https://github.com/myfmwei/pocket.js

wampserver修改多站点配置

本文介绍如果在wampserver中修改配置支持多站点。

第1步,修改httpd.conf,增加8080端口的监听

#Listen 12.34.56.78:80
Listen 80
Listen 8080

第2步,修改virtual hosts的配置,同样在httpd.conf这个文件中。

# Virtual hosts 
#Include conf/extra/httpd-vhosts.conf 
#修改为 
# Virtual hosts 
Include conf/extra/httpd-vhosts.conf

第3步,增加虚拟主机配置,修改httpd-vhosts.conf文件。

- 阅读剩余部分 -

MySQL索引的理解和应用

一、索引的概述

索引本质上是表字段的有序子集,它是提高查询速度最有效的方法。一个没有建立任何索引的表,就相当于一本没有目录的书,在每次查询时就会进行全表扫描,这样会导致查询效率极低、速度也极慢。如果建立索引,那么就好比一本添加的目录,通过目录的指引, 迅速翻阅到指定的章节,提升的查询性能,节约了查询资源。由于引擎的关系,MyISAM 表是将数据行存放在数据文件里,索引值存放在索引文件里。索引就是一个排好序的键值对数组,查询时通过这种键值对快速找到对应的数据。对于InnoDB 表来说,它的索引也是排好序的数组,但它的数据行与索引值存放在同一个文件里。

二、索引种类

从索引的定义方式和用途中来看,所以一共有四种索引:
1.普通索引(Index),用于提升查询效率;
2.唯一索引(Unique),除了提升查询效率还要求字段值不得重复;
3.主键索引(Primary Key),唯一性且不得为空的索引;
4.全文索引(Fulltext),用于在大量文本搜索中建立的索引。

这里主键索引和唯一索引的区别在于:主键索引不能为空值,唯一索引允许空值;主键索引在一张表内只能创建一个,唯一索引可以创建多个。主键索引肯定是唯一索引, 但唯一索引不一定是主键索引。

- 阅读剩余部分 -

开源团队日志系统

       简洁强大的开源团队日志系统采用TP开发,响应式。有很多团队都会写周总结,本系统有理由让你的团队放下纸和笔或者email,它的优点是共享、集思广益,提高办公效率!

开发语言:PHP
在线演示:在线演示

- 阅读剩余部分 -

获取服务器信息

$info = array(
   '操作系统'=>PHP_OS,
   '运行环境'=>$_SERVER["SERVER_SOFTWARE"],
   '主机名'=>$_SERVER['SERVER_NAME'],
   'WEB服务端口'=>$_SERVER['SERVER_PORT'],
   '网站文档目录'=>$_SERVER["DOCUMENT_ROOT"],
   '浏览器信息'=>substr($_SERVER['HTTP_USER_AGENT'], 0, 40),
   '通信协议'=>$_SERVER['SERVER_PROTOCOL'],
   '请求方法'=>$_SERVER['REQUEST_METHOD'],
   '上传附件限制'=>ini_get('upload_max_filesize'),
   '执行时间限制'=>ini_get('max_execution_time').'秒',
   '服务器时间'=>date("Y年n月j日 H:i:s"),
   '北京时间'=>gmdate("Y年n月j日 H:i:s",time()+8*3600),
   '用户的IP地址'=>$_SERVER['REMOTE_ADDR'],
   '剩余空间'=>round((disk_free_space(".")/(1024*1024)),2).'M',
);
$this->info=$info;