FreeBSD与Linux的区别

这个问题的N种回答:

高深的:

FreeBSD,从unix移植到x86版的一群expert hacker

Linux,从x86从零开始编写一个unix的一大群hacker

架构的:

FreeBSD是一个完整的系统架构

Linux拥有内核和各种五花八门的发行版

历史的:

FreeBSD曾经碰到过一些法律问题,阻碍了FreeBSD的顺利发展,正如Linux目前正在经历的一样

防御的:

FreeBSD在承受网络攻击方面,似乎比Linux更强壮

洁癖的:

FreeBSD的体系单一,比Linux的发行版机制更简单

学习的:

FreeBSD的体系更适合研究技术,而Linux则向所有的领域进发,甚至跑到mac/pda/汽车控制/宇航/电影等等。

许可的:

FreeBSD的BSD许可,你可以做任何事情,只需要事先大喊一声:“偶用了BSD技术”。而Linux的GPL需要你告诉别人你怎么做的。

软件的:

Linux在支持更多的软件特性上面具有优势(例如线程什么的),FreeBSD缓慢一些

硬件平台的:

NetBSD做的不错,Linux更加疯狂,甚至跑在ps2上

外设的:

Linux支持的外部设备更多

安全的:

OpenBSD是霸主,Linux追赶,不过大家似乎公认安全在人

水平的:

FreeBSD开发组成员平均教育水平更高,这与Linux质量好坏有关吗?

传统的:

FreeBSD在系统稳定性上比Linux更好,也许早就过时了。

功绩的:

FreeBSD最早实现了TCP/IP协议,在IPv4网络上优势无以伦比。

未来的:

FreeBSD:把Solaris/AIX/HP UNIX等优势都弄到x86上

Linux: 进入上述平台的领域

实用的:

FreeBSD在终端上具有传统的优势

Linux则在X体系以上获得了不少分数,足够冲击windows

FANS的:

偶就是喜欢FreeBSD

偶就是喜欢Linux

在MySQL数据库中存储图片

汗,以前一直误以为MySQL不能存储图片

在mysql中建立一个新的数据库

一个怎样储存文件的例子程序

一个怎样访问文件的例子程序

在mysql中建立一个表

CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50));

< ?php

// getdata.php3 – by Florian Dittmer <[email protected]> // 调用方法: getdata.php3?id=<id>

if($id) {

    // 你可能需要调整主机名,用户名和密码:    @MYSQL_CONNECT( "localhost", "root", "password");
   @mysql_select_db( "binary_data");
   $query =  "select bin_data,filetype from binary_data where id=$id";    $result = @MYSQL_QUERY($query);
   $data = @MYSQL_RESULT($result,0, "bin_data");    $type = @MYSQL_RESULT($result,0, "filetype");
   Header(  "Content-type: $type");    echo $data;

}; ?>

怎样储存大于1MB的文件:

如果你想储存大于2MB的文件,你必须对你的程序、PHP设置、SQL设置进行许多修改。

下面几条也许可以帮助你储存小于24MB的文件:

修改你的PHP设置,在一般情况下,PHP只允许小于2MB的文件,你必须将max_filesize(在php.ini中)的值改成24000000

去掉MYSQL的数据包大小限制,在一般情况下 MYSQL 小于1 MB的数据包.

你必须用以下参数重启你的MYSQL

/usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24M

如果仍然出错:

可能是超时错误,如果你通过一个很慢的连接来储存一个很大的文件,PHP缺省的时间限制为30秒。

你可以将max_execution_time(在php.ini中)的值改为-1

假如对方是个BT

利用安全策略禁止本地主机连接去对方任何端口!

然后在允许别人连接自己的80端口!

把debug/ftp/tftp/its/start/net/net1/echo/edit去掉!本地只提供web服务!

关闭/过滤所有端口,现在得到这个主机一个shell,有办法上穿文件?

呵呵 改内核去掉了echo?

别怕 我们还有set 嘛

set/p tsing=del c:.>tsing.bat

如果遇到转义字符就是^了 hoho~

如何使用PHP中的字符串函数

不知为什么,一直都搞不好这字符串,无论PHP还是其它,汗!!

转自http://www.phpe.net

PHP中的字符串操作功能是比较多的,重要的有以下这些:

(1)echo,print,printf,sprintf

前两个函数是输出字符串.字符串中如果有变量名则被替换成其值. 后两个函数类似于C的同名函数.

(2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower, strtoupper,substr,ucfirst

这些是常用的字符串操作函数,有些和C中的同名函数意义完全一致.

strrev是把一个字符串翻转.

strtolower和strtoupper的意思应该不用解释了.

ucfirst是把字符串的第一个字符变成大写.

substr是返回字符串的一个子串,用法是:substr(字符串,头,长度).

头位置是 从0算起的.如果是负数,则是从尾部向前数的意思.

(3)Chr,Ord

类似于C的同名函数.

(4)explode,implode,join

这些是和数组有关的函数.

explode(字符串,分割符)返回一个将字符串在分割符处分开所产生的数组.

implode(数组,分割符)返回一个将数组各元素之间插上分割符而成的字符串.


join与implode意义相同.

(5)Chop

去掉字符串尾部的空白.

(6)htmlspecialchars

将字符串中的HTML特殊字符换成它们的名字,例如”< “变成”<“.

(7)nl2br

在字符串中的每一个回车前面加上”<BR>”.

(8)AddSlashes,StripSlashes

分别给字符串中需要加上””才能用于数据库查询的字符加上和去掉””.

(9)parse_str

将”name1=value1&name2=value2&…”类型的字符串分析成一些变量.


例如:

  parse_str("a=1&b=2");

生成$a与$b两个变量,值分别为1,2. 如果有两对名字/值的名字部分相同,则后一个的值覆盖前一个的. 如果这两对的名字尾部都有”“,例如”a=1&a=2″,则生成数组$a,两个元素分别为1,2

mysql中的load_file()函数

看了angel的《Advanced SQL Injection with MySQL》(http://www.4ngel.net/)

里面所使用的load_file()函数确实好用

在phpmyadmin中试了一下,确实可以

不过直接查询只能显示文件头的一小段

需要导出为文件才能看到完整文件

  1. select load_file(“e:/Program Files/Serv-U/ServUDaemon.ini”)
  2. select load_file(“e:/Program Files/Serv-U/ServUDaemon.ini”)  from table_name into outfile “g:/wwwroot/upload/index.php.bak3”

要导出文件,则 from table_name不可缺!

php 4 和 Php 5 共存

下载 PHP 4 for Windows Zip 二进制包,解压到任意目录(我解压到 E:php),将里面的 php.ini-dist 更名为 php.ini。将 php.ini 和 php4ts.dll 复制到 windows 安装目录中。

下载 PHP 5 for Windows Zip 二进制包,解压到任意非 PHP 4 的目录(我解压到 E:php5),将里面的 php.ini-dist 更名为 php.ini。

下面修改 Apache2 的 httpd.conf 文件。修改的关键是使用 IfDefine 指令:

找到代码:

Listen 80

这行,修改为

代码:

  1. <ifdefine !php=php5>
  2. <Listen 80>
  3. </ifdefine>
  4. <ifdefine php=php5>
  5. Listen 81
  6. </ifdefine>

在 httpd.conf 的末尾添加

代码:

  1. <ifdefine !php=php5>
  2. LoadModule php4_module “e:/php/sapi/php4apache2.dll”
  3. </ifdefine>
  4. <ifdefine php=php5>
  5. LoadModule php5_module “e:/php5/php5apache2.dll”
  6. PHPINIDir “e:/php5/php.ini”
  7. </ifdefine>
  8. AddType application/x-httpd-php .php
  9. AddType application/x-httpd-php .php3
  10. AddType application/x-httpd-php .php4
  11. AddType application/x-httpd-php .php5
  12. AddType application/x-httpd-php-source .phps

其他的指令,比如 DirectoryIndex 和 AddDefaultCharset 请自己设置。

下一步是创建两个包含不同运行参数的 Apache 服务。在命令提示符,进入 Apache2 安装目录中的 bin 目录,运行代码:

  1. apache -k install -D php=php5 -n Apache2PHP5

这样就创建了一个包含 php5 运行参数的新 Apache 服务,名为 Apache2PHP5。

然后启动 Apache2PHP5 服务并重启 Apache2 服务,您可以到 管理工具->服务 中启动,也可以使用 Apache 2 自带的 Monitor Apache Servers 启动。

访问 http://localhost/ 即使用 PHP 4,访问 http://localhost:81/ 即使用 PHP 5。

另外一个:

http://bbs.chinaunix.net/forum/viewtopic.php?t=336051