"飘云" 发布的文章

1、安装memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。
Memcached官网:http://memcached.org/
安装步骤:
1、下载源码包:

wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz

2、编译安装:

//确定libevent是否安装,centos使用yum
yum -y install libevent
tar -zxvf memcached-1.4.15.tar.gz
./configure --prefix=/usr/local/
make && make install
make clean

OK,Memcached安装成功
启动memcached
目标:使用11211端口、www 用户、最大占用16M内存、1024个软连接,输出
客户端请求,以守护进程方式运行

/usr/local/bin/memcached -p 11211 -d -u www -m 16 -c 1024 -vvv
//查看是否启动

[piaoyuncc@piaoyun.cc ~]# ps -ef | grep memcache
www 18739 1 0 09:32 ? 00:00:00 /usr/local/bin/memcached -p 11211 -d -u www -m 12 -c 1024 -vvv

OK,Memcached启动成功

2、安装memcache php扩展

扩展官网:http://pecl.php.net/package/memcache

你可以查看最新稳定包(stable)下载:

wget http://pecl.php.net/get/memcache-2.2.7.tgz

安装扩展:

tar -zxvf memcache-2.2.7.tgz
cd memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

安装成功后会显示你的memcache.so扩展的位置,比如我的:

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

最后我们需要把这个扩展添加到php中,打开你的php.ini文件在最后添加以下内容:

[Memcache]
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension = memcache.so

添加完后 重新启动php,我使用的是nginx+php-fpm进程所以命令如下:

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

如果是apache的使用以下命令:

/usr/local/apache2/bin/apachectl restart

检查安装结果

/usr/local/php/bin/php -m | grep memcache

安装成功会输出:memcache

延伸阅读:Windows Server 2008 R2 64Bit下IIS环境安装memcache和memcached服务端

3、添加wordpress memcache插件

下载插件安装包:http://wordpress.org/extend/plugins/memcached/installation/
解压后将该文件object-cache.php 复制到 wp-content,注意不是 wp-content/plugins/

WordPress 会自动检查在 wp-content 目录下是否有 object-cache.php 文件,如果有,直接调用它作为 WordPress 对象缓存机制。

4、memcache效果监控

我们安装memcache 缓存后当然还要看下他的效果了,wordpress效果监控非常简单只需要拷贝你下载的memcache php扩展包中的memcache.php文件到你的站点下即可:

cd memcache-2.2.7
cp memcache.php /data/www/piaoyun.cc/

打开 memcache.php文件

//修改四个地方(以下注释部分),登陆用户名及密码及连接信息:
define('ADMIN_USERNAME','piaoyuncc'); // 此处设置登录用户名
define('ADMIN_PASSWORD','123456'); // 此处设置登录用户密码
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);

$MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // 此处设置连接信息
//$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // 只使用一个进程,此处屏蔽,否则可以设置多个连接信息

修改后保存退出memcache.php文件。访问你的memcache.php,比如我的http://piaoyun.cc/memcache.php,当然密码就不是跟上面一样了。呵呵这些都可以自己设定,我们看下效果图标:(备注运行一段数据后基本会达到97%以上的效率)
01

运行一段时间后,命中率提高了:
02

再过一段时间后查看,命中率又提高了,说明memcache还是很有效果的:
03

在博客圈混,如果你还不知道什么是Gravatar头像,那你真的白混了,自己去补补吧。Gravatar官方的服务器有好几个,都在国外,返回头像时,加载速度不是很理想,所以,将头像缓存到我们的主机空间里,这样加载的速度就会好很多。

调用ssl 头像链接

https还是没被墙的,而且速度还不错,直接调用这个最简单了。
如果你的网站启用了ssl则不需要了,否则functions.php 加入如下代码

function get_ssl_avatar($avatar) {
$avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

缓存Gravatar头像到本地提高加载速度

1.在wp-content 的同級目录建立一个文件夹,命名为 avatar ,设置该文件夹的权限为 0755 (如果 0755 不行,就试一下 0777)。
2.准备一张大小适合的默认头像,命名为"default.jpg" ,放在 avatar 文件夹里面。
3.在主题的 functions.php 最后一个 ?> 的前面添加下面的代码即可:

function my_avatar($avatar) {
$tmp = strpos($avatar, 'http');
$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
$tmp = strpos($g, 'avatar/') + 7;
$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
$w = home_url(); // $w = get_bloginfo('url');
$e = preg_replace('/wordpress/', '', ABSPATH) .'avatar/'. $f .'.jpg';
$t = 604800; //设定7天, 单位:秒
if ( empty($default) ) $default = $w. '/avatar/default.jpg';
if ( !is_file($e) || (time() - filemtime($e)) > $t ) //当头像不存在或者文件超过7天才更新
copy(htmlspecialchars_decode($g), $e);
else
$avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
if (filesize($e) < 500) copy($default, $e);
return $avatar;
}
add_filter('get_avatar', 'my_avatar');

 

 

警告内容:Warning: number_format() expects parameter 1 to be double, string given in D:\wamp\www\ecshop_old\includes\lib_common.php on line 966

解决这个问题的时候,一开始我也是先到网上查看相关的解决方案,

大部分都说是lib_common.phpprice_format ()里面的$price变量没有判断$price为空时调用number_format()函数出错,

然而ecshop2.7.3上面已经加了相应的判断:if($price==='') { $price=0; }

所以问题不在这儿,我又找到了订单里面编辑配送方式的对应的代码,发现$shipping_list[$key]['free_money'] = price_format($shipping['configure']['free_money'])的这个里面的$shipping['configure']是序列化的,但是ecshop里面并没有进行反序列化的处理,所以导致$shipping['configure']['free_money']的值是'a',这样在price_format ()里面并没有判断他不是数字,所以出错,现在的思路已经清晰了,只要更改将$shipping['configure']进行反序列化的处理,然后获得相应free_money的值,就可以解决问题了,详细的更改代码:

将:admin/order.php的2201行的

$shipping_list[$key]['free_money'] = price_format($shipping['configure']['free_money'])

这行代码先注释掉,然后加上一下代码:

    $shipping['configure'] = unserialize($shipping['configure']);
            $sun_shipping = array();
            foreach($shipping['configure'] as $row){
                $sun_shipping[$row['name']] = $row['value'];
            }
            $shipping_list[$key]['free_money'] = price_format($sun_shipping['free_money']);

如果觉的有用的话,就顶一个

Windows Server 2008 (Win2008) 作为服务器操作系统,分为3个版本,分别是

1、Windows Server 2008 Standard 标准版
2、Windows Server 2008 Enterprise 企业版
3、Windows Server 2008 Datacenter 数据中心版
4、Windows Server 2008 Standard(Server Core Installation) 标准版(服务器核心安装)
5、Windows Server 2008 Enterprise(Server Core Installation) 企业版(服务器核心安装)
6、Windows Server 2008 Datacenter(Server Core Installation) 数据中心版(服务器核心安装)

如果是家庭桌面应用以及配置一般的入门用户推荐安装 Windows Server 2008 Standard 标准版 本版本的系统服务相比另外的版本相对要少内存占用更少,并且可以通过学生序列号或者OEM方式激活.
有一定经验并且计算机配置位主流行的推荐安装 Windows Server 2008 Enterprise 企业版
如果不是高要求的服务器应用不推荐安装后3种带有 Server Core Installation 服务器核心安装

什么是Windows Server 2008 Server Core 服务器核心?

Windows Server Core 即服务器核心是Windows Server 2008新的默认,没有资源管理器(Windows 外壳程序),仅包含简单Console窗口和一些管理窗口,但是可以运行MMC。可以用作域控制器 活动目录 ActiveDirectory、DNS域名解析服务器、FTP文件服务器、Print打印服务器、Streaming Media 流媒体服务器或Web服务器等,它的特点是高效占用内存小,相对安全高效,类似没有安装x-windows的Linux。不推荐普通用户使用。
在用企业版本,前面用过大约1个月的标准版。
比较下来,感觉企业版比较好。

当然不是说标准版就不好或者不稳定,对于Desktop的用户来讲,standard已经是足够好了,但是比较起来,Enterprise的还是有很细微的,但是可以体会到的差别。

从我自己试用的情况来看,我只举一个实例,同样的一台本本机器,前后分别安装standard和Enterprise 之后,在应用软件完全相同的情况下,机器CPU,Motherboard,RAM的温度比较,Enterprise低了有2-5摄氏度。再从激活机制和售价方面来看,我感觉如果说企业版好于标准版,差别不仅仅在于用户数量。

WINDOWS 2008 各版本概览

Windows Server 2008 发行了多种版本,以扶持各种规模的企业对服务器不时改变的需求。Windows Server 2008 有 5 种不同版本,另外还有三个不扶持 Windows Server Hyper-V 技巧的版本,因而总共同 8 种版本。

您可参看下述版本摘要,并利用版本比拟工具依据不同的服务器和功能,翔实察看各版本间的重要差异:

Windows Server 2008 Standard 是迄今最牢固的 Windows Server 垄断系统,其内置的强化 Web 和虚构化功能,是专为添置服务器基础架构的可靠性和弹性而设计,亦可勤俭工夫及减退成本。其系利用功能壮大的工具,让您具有更好的服务器扼制力气,并简化设定和管教工作;而加深的平安性功能则可强化垄断系统,以帮助防御数据和网路,并可为您的企业供给扎实且可高度依靠的基础。

Windows Server 2008 Enterprise 可供给企业级的平台,安排企业关键利用。其所具有的云集和热增加(Hot-Add)处理器功能,可帮助改进可用性,而整合的身份管教功能,可帮助改进平安性,利用虚构化授权权限整合利用过程,则可收缩基础架构的成本,因而 Windows Server 2008 Enterprise 能为高度动态、可扩充的IT基础架构,供给良好的基础。

Windows Server 2008 Datacenter 所供给的企业级平台,可在小型和大型服务器上安排具企业关键利用及大规模的虚构化。其所具有的云集和动态硬件瓜分功能,可改进可用性,而穿越无限制的虚构化批准授权来牢固利用,可收缩基础架构的成本。另外,此版本亦可扶持 2 到 64 颗处理器,因而 Windows Server 2008 Datacenter 能够供给良好的基础,用以发生企业级虚构化和扩充处理计划。

Windows Web Server 2008 是尤其为单一用处 Web 服务器而设计的系统,而且是发生在下一代 Windows Server 2008 中,坚若磐石之 Web 基础架构功能的基础上,其整合了重新设计架构的 IIS 7.0、ASP.NET 和 Microsoft .NET Framework,以便供给任何企业迅速安排网页、网站、Web 利用过程和 Web 服务。

Windows Server 2008 for Itanium-Based Systems 已针对大型数据库、各种企业和自订利用过程举行优化,可供给高可用性和多达64颗处理器的可扩充性,能相称高要求且具关键性的处理计划的需求。

Windows HPC Server 2008 是下一代高功能计算(HPC)平台,可供给企业级的工具给高出产力的 HPC 环境,由于其发生于 Windows Server 2008 及 64 位元技巧上,因而可管用地扩充至数以千计的处理器,并可供给凑近管教扼制台,帮助您积极鞭策和维护系统康健情形及安宁性。其所具有的灵便的作业调动功能,可让 Windows 和 Linux 的 HPC 平台间举行整合,亦可扶持批量作业以及服务导向架构(SOA)工作负载,而加深的出产力、可扩充的功能以及利用轻率等风味,则可使 Windows HPC Server 2008 成为同级中最佳的 Windows 环境。另可参看: Windows HPC Server

Windows Server 2008 Standard without Hyper-V.

Windows Server 2008 Enterprise without Hyper-V.

Windows Server 2008 Datacenter without Hyper-V.其中,重要的增长来自相仿印度这么的新兴市场,在这里每天大约有1.1亿份报纸被销售一空。

注:Windows Server 2008 各个版本之间的区别。功能比较。可以到官方网站查看:
http://www.microsoft.com/china/windowsserver2008/prodinfo/editions.aspx

如果IIS+PHP的环境下需要memcache的缓存支持。需要安装服务端和客户端呢!

一、安装memcached服务端

1、首先下载memcached的服务端,下面的下载地址包含了32位和64位的,大家可以参考自己的系统来下载:
下载地址:
百度网盘:http://pan.baidu.com/s/1ntyswWh 密码: mf6a
360云盘:http://yunpan.cn/cAbMcyMNxa8NB 提取码:4c21

这下是windows下的版本,安装要在命令行下安装
解压到C盘或其他盘都可以,如我的是D盘memcached目录,然后进入cmd命令行,如下:

Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator>d:

D:\>cd memcached144

D:\memcached144>memcached.exe -d install (安装为服务)

D:\memcached144>memcached.exe -d start (启动)

C:\memcached44>

这样就可以在进程里面看到memcache.exe进程。这样每次启动时都会自动启动

Memcached还有其他的一些常用的命令如下:

-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

按照上面的安装步骤安装之后,使用memcached -m 200来调整最大内存占用之后会发现没有起作用,总是默认的64MB的内存,在网上搜了一下,原因是注册表中并没有写入信息,可以这样来修改。

1. memcached -d shutdown 首先关闭memcached服务。

2.进入注册表,找到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server

在其中有一个ImagePath项,值为"d:\memcached144\memcached.exe" -d runservice,在后面加上

-p 11211 -l 127.0.0.1 -m 256 -c 2048

二、安装memcache客户端

2.下载php版本对应的php_memcache.dll (我这里使用的php版本是:php-5.4.15-nts-Win32-VC9-x86.zip)
下载地址:
百度网盘:http://pan.baidu.com/s/12c77o 密码: etht
360云盘:http://yunpan.cn/cAbkbALRUkT6Z 提取码:adbd
官方地址:http://pecl.php.net/package/memcache/3.0.8/windows

然后解压,复制里面的php_memcache.dll到你php的ext目录下,如我的是
d:\php\ext”目录,为了php加载php_memcache.dll

3、配置php.ini
在PHP的配置文件中:php.ini 的底部加上以下的代码:

[memcache]
extension = php_memcache.dll

4.重新启动IIS,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
测试:

<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key', 'This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>

三、Memcached 管理监控工具

1.MemAdmin
下载地址:
百度云盘:http://pan.baidu.com/s/1hquyMCO 密码: 46bk
360网盘:http://yunpan.cn/cAbkXUnqEwaXW 提取码:1090
官方下载:http://www.junopen.com/memadmin/

WinCache加速器只支持非安全线程的PHP版本,关于PHP安全线程的解释,大家可以去这里了解一下:PHP 5.4.x 安装包VC6和VC9的区别是什么及Thread Safe与Non Thread Safe的区别

WinCache加速器安装与配置,Wincache 1.3 for 5.4,这个大家可以去微软IIS官方下载,它将极大地提高您的PHP系统运行效率!如果您的服务器运行的都是开源程序,不需要zend,强烈建议您使用这个配置!

Wincache模块下载地址:http://www.iis.net/downloads/microsoft/wincache-extension

并下载 WinCache 1.3 for PHP 5.4 - x86 ,这个文件,这里一定要注意,Wincache版本要与PHP版本相对应,我们在这里采用的是PHP 5.4.15 所以我们选择这 WinCache 1.3 for PHP 5.4 - x86这个进行下载。

下载完成后,发现wincache-1.3.5-5.5-nts-vc11-x86.exe,这个文件是个EXE文件,先不要急于打开,我们解压它

解压wincache-1.3.5-5.5-nts-vc11-x86.exe这个文件后,可以发现里面有一个 php_wincache.dll

在这里,我们需要把php_wincache.dll这个文件复制到 "D:\php\ext" 目录下

然后我们再打开php.ini文件。

在配置文件底部加上:
[Wincache]
extension = php_wincache.dll

Windows Cache Extension APIs for PHP

若 PHP 開發人員想要利用 Windows Cache Extension for PHP 快取應用程式資料時,Windows Cache Extension 有提供數組 API 可供開發人員與 Windows Cache Extension 互動,包含儲存快取資料、取得系統的快取狀態等。
1. 將 session 存放到 Windows Cache 中。

在 PHP 的預設模式中,session 資料是儲存在檔案中,Windows Cache Extension for PHP 開放一個設定,讓 PHP 可以將 session 儲存到記憶體中,以加快 Session 存取的速度,只要修改 php.ini 中的 session.save_handler 即可:
[Session]
; Headler used to store/retrieve data.
; session.seve_handler = files <- original configuration
session.save_handler = wincache <- apply session store into Windows Cache Extension

Windows Cache Extension 針對 Session 的轉存功能目前在 1.1 版以上才支援。

然后重新启动IIS服务器。这个时候WinCache加速器已经安装完毕!

以下资料说明来源于微软台湾官方网站!
地址:http://www.microsoft.com/taiwan/technet/iis/expand/Windows_Cache_Extension_for_PHP.aspx

設定值 說明 預設值
wincache.fcenabled 啟用檔案快取。 1
wincache.fcenabledfilter 要使用檔案快取的 IIS 站台識別碼,若有多組時以逗號分隔。 NULL
wincache.fcachesize 檔案快取的最大記憶體使用量(MB) 24
wincache.fcndetect 是否要啟用檔案變更偵測(在 Opcode Cache 時會判斷檔案是否有變更而清除 Opecode Cache)。 1
wincache.maxfilesize 可放進快取的最大單一檔案大小(KB) 256
wincache.ocenabled 是否啟用 Opcode Cache 1
wincache.ocenabledfilter 要使用 Opcode Cache 的 IIS 站台識別碼,若有多組時以逗號分隔。 NULL
wincache.ocachesize Opcode Cache 的最大記憶體使用量(MB) 96
wincache.filecount 定義預期要快取的最大檔案數量,可在 PHP 初始化時預先配置好,但若實際超出此數量時,PHP 會重新配置。 4096
wincache.chkinterval 定義 PHP 檢查快取的週期(秒)。 30
wincache.ttlmax 設定快取在不使用時,存留的最長時間(秒)。 1200
wincache.enablecli 設定是否啟用指令列(Command Line)模式 0
wincache.ignorelist 設定哪些檔案不列入快取,若有多檔時,要使用管線符號”|”來分隔。 NULL
wincache.namesalt 設定一個 salt 值以避免使用者快取時設定的 key 值有碰撞的現象。 NULL
wincache.ucenabled 是否啟用使用者快取。 1
wincache.ucachesize 設定使用者快取的最大記憶體使用量(MB)。 8

設定完後都要重新回收PHP應用程式的集區,或是重新啟動 IIS 才會生效。

类型 开启或关闭 分配多少内存 最大数
文件缓存 fcenabled= 1 /0 fcachesize= 128M 单个最大文件maxfilesize
操作码缓存 ocenabled =1/ 0 ocachesize= 128M 最多文件数filecount 4096
路径缓存
session缓存 scachesize
ucenabled ucachesize

wincache.fcenabled= 1 (On) 0 (Off) 启用或关闭文件缓存功能
wincache.fcachesize= 128M 定义为文件缓存分配的最大内存空间(以兆字节计算)。如果总的缓存文件的大小超过设定值,那么大部分陈旧的文件会被从文件缓存中剔除。
wincache.maxfilesize =256M 定义单独一个待缓存的文件的大小。如果文件大小超出 这个值,将不被缓存。这个设定仅限于文件缓存。
wincache.ocenabled =1 (On) 0 (Off)开启或关闭操作码缓存功能
wincache.ocachesize= 128M 定义为操作码缓存分配的最大内存空间
wincache.filecount 4096 1024 16384 定义多少文件会被缓存,这样就能在一开始就分配内存空间。如果文件个数超过预设值,扩展会根据需要重新分配更多的内存空间。
wincache.chkinterval= 30 2 300 PHP_INI_SYSTEM 定义每隔多久(按秒计算)本扩展会检查文件变化来更新缓存
wincache.ttlmax 1200 60 7200 定义缓存中的入口在不被使用情况下最大的存在时间。
wincache.ignorelist 定义一系列不应被本扩展缓存的文件。文件列表只能以文件名的形式指定文件,并以“|”间隔。For example: wincache.ignorelist = "index.php|misc.php|admin.php"
wincache.namesalt no value no value no value PHP_INI_SYSTEM 定义一个字符串,在给内存中的被缓存物命名时使用。这么做是为了防止当服务器中其他的应用试图使用共享内存时发生错误。

注意事项:wincache 和zendloader冲突,所以二者只能选其一,由于 wincache是内存级优化,速度自然比 zendloader快很多,这个根据具体配置选择。如何程序需要zend加密解密 然后又要用wincache的话 那只能关闭wincache的文件缓存功能了。

PHP For Windows的版本一共给了四个版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe

一、如何选择PHP5.4.x的VC6版本和VC9版本

VC6是什么?
VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的。

VC9是什么?
VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。

那我们如何选择下载哪个版本的PHP呢?
如果你是在windows下使用Apache+PHP的,请选择VC6版本;
如果你是在windows下使用IIS+PHP的,请选择VC9版本。

二、如何选择PHP5.3的Thread Safe和Non Thread Safe版本

从PHP5.2.10版本开始,有Non Thread SafeThread Safe两种版本的可供选择,这两种版本有何不同,作为使用者来说又应该如何选择呢?

先从字面意思上理解:
Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。
Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。

再来看PHP的两种执行方式:ISAPIFastCGI

ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;

FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI无论搭配 IIS 6 或 IIS 7)来执行PHP,建议选择Non Thread Safe版本。

注:官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。

TS和NTS

TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。

NTS即None-Thread Safe,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能。

从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程。一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。因此在IIS下CGI模式才是 PHP运行的最安全方式,但CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。
如何查看当前运行的PHP的版本?一个很简单的办法就是phpinfo();

Thread Safety disabled 是NTS
Thread Safety enabled 是TS

Configure Command看到VC98字样的是VC6,Compiler标明 MSVC9 (Visual C++ 2008) 的是VC9

在WIN7下:IIS7+NTS+FastCGI+vc9 是最佳搭档或者apache+fastcgi+nts+vc6。
在WINXP下:Apache+TS+Apache module +vc6最合适的搭档。

我们在建站的时候,通常有些目录必须给写入权限,这个时候这些目录就很可能被人写入脚本文件,为了将安全性维护得更好,我们可以关闭这些有写入权限的目录的脚本执行权限。IIS6的时候,我们很容易找到关闭的地方,而IIS7时代,由于架构的变化,很多人找不到,这里我就给大家稍微说明一下怎么关闭特定网站目录的脚本执行权限。

第一步:我们在IIS的左侧选中该目录,切换到功能视图,如果是文件的话,先点击内容试图,找到该文件,在点击右边的切换到功能试图!
025 026 027
第二步:打开“处理程序映射”功能
第三步:打开右侧的“编辑功能权限”,将“脚本”这一项取消掉即可

取消脚本后访问CSS、js、图片、Html等文件出现空白或者403的错误解决办法

部分站长为了安全方面考虑,可能对存放资源性文件的目录,在这个目录的"处理程序映射"中取消掉了了默认就存在的"脚本(S)"权限,会导致出现403错误,导致CSS、JS和图片无法加载,一般错误提示如下图。

修复方法如下:

方法一:

在该目录上的"处理程序映射"中"编辑功能权限",为这个目录添回脚本权限。

方法二:

为这个目录的"处理程序映射"中,删除主机卫士的安全处理程序"QHWafIISModule_32bit"或者QHWafIISModule_64bit。如果有安全狗的安全处理程序"SafedogIISAuditor32"或者"SafedogIISAuditor64"之类的防护软件也有类似的问题,其模块也要删除。
如下图,"piaoyuncc"是我的只有读取权限文件夹。
028

删除后如果想复原,即想为这个目录恢复删除掉的主机卫士的安全模块。在这个目录的"处理程序映射"中点击"恢复为父项"即可。

小提示:Discuz论坛无需要脚本执行权限的目录列表:

template
config
static
data
error
uc_server\data\tmp
uc_server\data\avatar
uc_server\images
uc_server\js

Windows 2008 R2的 IIS 7.5 架构 默认是不支持.shtml/.shtm的。需要自己配置。

打开IIS信息服务管理器,在网站的“MIME类型”中添加新的MIME类型。
文件扩展名:.shtml
MIME类型:text/html
然后重启IIS服务 或者 回收应用程序池 就可以了。

目前,SSI主要有以下几种用用途:
1、显示服务器端环境变量<#echo>
2、将文本内容直接插入到文档中<#include>
3、显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
4、直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
5、设置SSI信息显示格式<#config>;(如文件制作日期/大小显示方式) 高级SSI;可设置变量使用if条件语句。

PHP5.4.x版本中出现了php.ini-developmenphp.ini-production

PHP配置文件与PHP5.2版本相比,命名发送了变化:

php.ini-production 对应于 php.ini-recommended

php.ini-development 对应于 php.ini-dist

通常要将 php.ini-production 重命名为 php.ini。

二者不同之处在于 php.ini-development 适合开发程式使用(测试用),

php.ini-recommended 拥有较高的安全性设定,则适合上线当产品使用。

所以,我一般将 php.ini-recommended 或者 php.ini-production 修改为 php.ini,确保测试环境(本地)与正式环境(线上)一致。

两者部分区别表:

php.ini-production php.ini-development
error_reporting = E_ALL & ~E_DEPRECATED error_reporting = E_ALL | E_STRICT
display_errors = Off display_errors = On
display_startup_errors = Off display_startup_errors = On
track_errors = Off track_errors = On
html_errors = Off html_errors = On
mysqlnd.collect_memory_statistics = Off mysqlnd.collect_memory_statistics = On
session.bug_compat_42 = Off session.bug_compat_42 = On
session.bug_compat_warn = Off session.bug_compat_warn = On

一直苦于在ubuntu系统下大文件或者是含有N多文件的小文件夹的ftp上传和下载,使用lftp可以轻轻松松搞定!

测试开始:

基于Windows的Serv-U FTP服务端:

IP:192.168.1.11 用户名:piaoyun
基于Fedora的客户端。

一、上传文件夹,向192.168.1.11服务端上传文件夹piaoyuncc

#lftp 192.168.1.11
lftp 192.168.1.11:~> user piaoyun
口令:
lftp piaoyun@192.168.1.11:~> mirror -R /home/piaoyun/piaoyuncc

Total: 11 directory, 12 files, 0 symlinks
New: 12 files, 0 symlinks
1348684 bytes transferred

lftp piaoyun@192.168.1.11:~>

二、下载远程服务端的文件夹

lftp piaoyun@192.168.1.11:~> mirror download piaoyun
Total: 11 directory, 12 files, 0 symlinks
New: 21 files, 0 symlinks
1348684 bytes transferred

lftp piaoyun@192.168.1.11:~>

命令的基本用法是:
上传整个文件夹:mirror -R 本地文件夹
下载整个文件夹:mirror 远程文件夹 本地文件夹

Windows Server 2008 R2是一款服务器操作系统,提升了虚拟化、系统管理弹性、网络存取方式,以及信息安全等领域的应用,Windows Server 2008 R2也是第一个只提供64位版本的服务器操作系统。
当然,还有很多功能及性能等待你的发现哦,相信很多人都在“玩”了吧,但是系统每次登陆都比较麻烦,能否设置自动登陆呢?有兴趣一起来学习一下吧!

Windows server 2008 r2的自动登陆方法也比较多,在此分享一个实用简单的,通过命令来设置“用户帐户”项。
1

设置自动登陆方法

通过命令来设置“用户帐户”项。命令为:control userpasswords2 或者 rundll32 netplwiz.dll,UsersRunDll 复制过去粘贴运行即可。

1、首先,点击:开始-运行,如图。
02

2、在运行对话框中输入命令:control userpasswords2,如图。再回车或确定。
在此提示一下,如果你当前不是管理员权限的话,请切换到管理员。
03

3、然后会出现“用户帐户”对话框,如图,如果系统当前有其他用户,请选择你要设置自动登陆的用户 ,再将打勾取消。
04

4、取消后,则显示如图。我们点击:确定按钮。
05

5、会弹出设置自动登陆用户帐户及密码对话框,如图,我们只需要输入下该帐户的密码,最后点击:确定,没有任务提示,就完成了,你重启试一下吧,呵呵。
06

 

本博文由博主飘云(PiaoYun.CC)实际操作过程记录的、主要向大家介绍的是绿色版 MySQL 安装配置的实际操作流程,我们是在MySQL5.5.39的环境下对色版 MySQL进行正确的安装配置,以及对其具体的下载地址有一详细介绍,以下就是文章的详细内容介绍。

绿色版 MySQL 安装配置:

本人下载的MySQL是5.1版的

下载地址:http://downloads.mysql.com/archives/community/

下载免安装包:mysql-5.5.39-winx64.zip

解压该压缩文件到E:\mysql55

一、安装前的准备

在系统环境变量path中添加 E:\mysql55\bin (注:这是本人的MySQL安装路径)

二、设置配置文件

编辑mysql的运行配置文件 my.ini,如果没有,可以拿 my-medium.ini 复制然后更名成 my.ini

分别复制一份到 E:\mysql55C:\WINDOWS 中 这里复制 my.iniC:\WINDOWS 这一步我没操作。因为我是用apache

编辑该文件 my.ini 文件

[mysqld]
#设置绿色版MySQL 安装目录
basedir=E:/mysql55/

#设置mysql数据库的数据的存放目录,必须是data,或者是\\xxx\data
datadir=E:/mysql55/data

#设置mysql服务器的字符集
default-character-set=utf8

[client]
#设置mysql客户端的字符集
default-character-set=gbk

# 设置数据库默认存储引擎
# The default storage engine that will be used when create new tables when
# default-storage-engine=INNODB
default-storage-engine=MyISAM

注:分割线中的配置为可选,可以在建立数据库的时候自行设置。

3.安装mysql服务

从MS-DOS窗口进入目录E:\mysql55\bin,运行如下 命令:

mysqld.exe –install PiaoYun –defaults-file=”E:\mysql55\my.ini”

其中,MySQL55 只是该服务的名字,可以自己另外设置,比如改为 PiaoYun

即:

E:\mysql55\bin\mysqld.exe --install PiaoYun --defaults-file="E:\mysql55\my.ini"

四、启动mysql数据库

还在上面的命令窗口里面,输入命 令:net start mysql5

这样就启动了mysql 服务。

五、停止服务

执行 net stop mysql55 即可

六、设置MySQL数据库密码

以上5步绿色版MySQL 安装完毕之后,MySQL默认的root用 户密码为空的。

可以设置一下root的密码:

win+R -> 输入cmd->打开windows命令控制台,随意定位文件目录,如下

E:\PiaoYun\mysqlTest\src>mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.1.39-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql
Database changed

mysql> update user set password=password('123456') where user='root';
Query OK, 2 rows affected (0.03 sec)
Rows matched: 2 Changed: 2 Warnings: 0

mysql>

退出MySQL,重启MySQL服务即可,以上的相关内容就是对绿色版 MySQL 安装配置的介绍,望你能有所收获。

想要了解更多关于 Ubuntu 的资讯,我们应该追哪些网站呢?这是初学者经常会问的一个问题,在这里,我会告诉你们10个我最喜欢的博客,这些博客可以帮助我们解决问题,能让我们及时了解所有 Ubuntu 版本的更新消息。不,我谈论的不是通常的 Linux 和 shell 脚本一类的东东。我是在说一个流畅的 Linux 桌面系统和一个普通的用户所要的关于 Ubuntu 的经验。
10个 Ubuntu 用户一定要知道的博客7这些网站帮助你解决你正遇到的问题,提醒你关注各种应用和提供给你来自 Ubuntu 世界的最新消息。这个网站可以让你对 Ubuntu 更了解,所以,下面列出的是10个我最喜欢的博客,它们包括了 Ubuntu 的方方面面。

10个Ubutun用户一定要知道的博客

从我开始在 itsfoss 网站上写作开始,我特意把它排除在外,没有列入名单。我也并没有把Planet Ubuntu列入名单,因为它不适合初学者。废话不多说,让我们一起来看下最好的乌邦图(ubuntu)博客(排名不分先后):

OMG! Ubuntu!
网站地址:http://www.omgubuntu.co.uk/
这是一个只针对 ubuntu 爱好者的网站。无论多小,只要是和乌邦图有关系的,OMG!Ubuntu 都会收入站内!博客主要包括新闻和应用。你也可以再这里找到一些关于 Ubuntu 的教程,但不是很多。
这个博客会让你知道 Ubuntu 世界发生的各种事情。

Web Upd8
网站地址:http://www.webupd8.org/
Web Upd8 是我最喜欢的博客。除了涵盖新闻,它有很多容易理解的教程。Web Upd8 还维护了几个PPAs。博主Andrei有时会在评论里回答你的问题,这对你来说也会是很有帮助的。
这是一个你可以了解新闻资讯,学习教程的网站。

Noobs Lab
网站地址:http://www.noobslab.com/
和Web Upd8一样,Noobs Lab上也有很多教程,新闻,并且它可能是PPA里最大的主题和图标集。
如果你是个新手,去Noobs Lab看看吧。

Linux Scoop
网站地址:http://www.omgubuntu.co.uk/
大多数的博客都是“文字博客”。你通过看说明和截图来学习教程。而 Linux Scoop 上有很多录像来帮助初学者来学习,完全是一个视频博客。
比起阅读来,如果你更喜欢视频,Linux Scoop应该是最适合你的。

Ubuntu Geek
网站地址:http://linuxscoop.com/
这是一个相对比较老的博客。覆盖面很广,并且有很多快速安装的教程和说明。虽然,有时我发现其中的一些教程文章缺乏深度,当然这也许只是我个人的观点。
想要快速小贴士,去Ubuntu Geek。

Tech Drive-in
网站地址:http://www.techdrivein.com/
这个网站的更新频率好像没有以前那么快了,可能是 Manuel 在忙于他的工作,但是仍然给我们提供了很多的东西。新闻,教程,应用评论是这个博客的亮点。
博客经常被收入到Ubuntu的新闻邀请邮件中,Tech Drive-in肯定是一个很值得你去学习的网站。

UbuntuHandbook
网站地址:http://ubuntuhandbook.org/
快速小贴士,新闻和教程是UbuntuHandbook的USP。Jim最近也在参与维护一些PPAS。我必须很认真的说,这个博客的页面其实可以做得更好看点,纯属个人观点。
UbuntuHandbook 真的很方便。

Unixmen
网站地址:http://www.unixmen.com/
这个网站是由很多人一起维护的,而且并不仅仅局限于Ubuntu,它也覆盖了很多的其他的Linux发行版。它有自己的论坛来帮助用户。
紧跟着 Unixmen 的步伐。。

The Mukt
网站地址:http://www.themukt.com/
The Mukt是Muktware新的代表。Muktware是一个逐渐消亡的Linux组织,并以Mukt重生。Muktware是一个很严谨的Linux开源的博客,The Mukt涉及很多广泛的主题,包括,科技新闻,极客新闻,有时还有娱乐新闻(听起来是否有一种混搭风的感觉?)The Mukt也包括很多你感兴趣的Ubuntu新闻。
The Mukt 不仅仅是一个博客,它是一种文化潮流。

LinuxG
网站地址:http://linuxg.net/
LinuxG是一个你可以找到所有关于“怎样安装”类型文章的站点。几乎所有的文章都开始于一句话“你好,Linux geeksters,正如你所知道的……”,博客可以在不同的主题上做得更好。我经常发现有些是文章缺乏深度,并且是急急忙忙写出来的,但是它仍然是一个关注应用最新版本的好地方。

这是个快速浏览新的应用和它们最新的版本好地方。
你还有什么好的站点吗?
这些就是我平时经常浏览的 Ubuntu 博客。我知道还有很多我不知道的站点,可能会比我列出来的这些更好。所以,欢迎把你最喜爱的 Ubuntu 博客写在下面评论区。

作者:Abhishek 译者:barney-ro 校对:Caroline
本文由 LCTT 原创翻译,Linux中国 荣誉推出

一、查看硬盘分区的UUID:

可以用:

sudo blkid
/dev/sda1: UUID="9ADAAB4DDAAB250B" TYPE="ntfs"
/dev/sdb1: UUID="B2FCDCFBFCDCBAB5" TYPE="ntfs"
/dev/sdb5: UUID="46FC5C74FC5C5FEB" TYPE="ntfs"
/dev/sdb6: TYPE="swap" UUID="2cec6109-5bcf-45a3-ba1b-978b041c037f"
/dev/sdb8: UUID="9ee6f22d-b394-422c-9b4a-1525a3220942" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb7: UUID="4bcb9381-6e25-4304-8743-f882039ff3ad" TYPE="ext4"

或者:

ls -l /dev/disk/by-uuid (从这里可以看出,UUID其实是对硬盘物理分区的一个软链接)
用UUID来标识硬盘有很多好处,它是一个硬盘的唯一代号,所以当硬盘插口位置变化时,虽然sda可能会变成sdc,但这个码是不会变的。所以在 fstab中用/dev/sda1这样的硬盘标识可能会有混乱,当其中一个硬盘比如sdb挂掉时,sdc会变成sdb,mount到原来sdb的位置。所以还是应该用UUID来写到fstab中。

2、有时候重新格式化一个分区之后,UUID会变化,可以用这个命令刷新UUID。
代码如下:
sudo blkid -s none

在loop里面使用了{title_style($v[style])}标题样式,如果当前标题不存在样式(高亮、加粗),就会生成多余的废弃代码 style="" 。如:<a href="{$v['url']}" target="_blank" style="">标题</a>
看了不舒服吧。

修改:phpcms\libs\functions\global.func.php 1476行开始

/**
 * 生成标题样式
 * @param $style   样式
 * @param $html    是否显示完整的STYLE
 */

function title_style($style, $html = 1) {
	$str = '';
	if ($html) $str = ' style="';
	$style_arr = explode(';',$style);
	if (!empty($style_arr[0])) $str .= 'color:'.$style_arr[0].';';
	if (!empty($style_arr[1])) $str .= 'font-weight:'.$style_arr[1].';';
	if ($html) $str .= '" ';
	return $str;
}

修改成:

/**
 * 生成标题样式
 * @param $style   样式
 * @param $html    是否显示完整的STYLE
 */
function title_style($style, $html = 1) {
	if (!empty($style)){
	$str = '';
	if ($html) $str = ' style="';
	$style_arr = explode(';',$style);
	if (!empty($style_arr[0])) $str .= 'color:'.$style_arr[0].';';
	if (!empty($style_arr[1])) $str .= 'font-weight:'.$style_arr[1].';';
	if ($html) $str .= '"';
	return $str;
}
}

先安装:

sudo apt-get install ntfs-3g ntfs-config

再配置一下:

sudo ntfs-config

然后就会弹出来一个对话框,选择你需要挂载的分区,点应用,再选择“启用内部设备写支持”就搞定了。

手动设置ubuntu自动挂载Windows分区方法:
编辑/etc/fstab文件 $sudo gedit /etc/fstab 弹出geidt的文本编辑框,在文件尾部添加如下内容:

1.先用FDISK命令查看一下磁盘的UUID

$sudo fdisk -l

/dev/sda1 * 1 851 6835626 83 Linux
/dev/sda2 852 4039 25607610 f W95 Ext'd (LBA)
/dev/sda5 945 2135 9566676 7 HPFS/NTFS
/dev/sda6 2136 4039 15293848+ 7 HPFS/NTFS

2.NTFS分区添加如下内容,重启即可自动挂载NTFS分区了。

/dev/sda6 /media/my ntfs-3g defaults,locale=zh_CN.UTF-8 0 0
/dev/sda5 /media/tools ntfs-3g defaults,locale=zh_CN.UTF-8 0 0

使用ntfs-config,相比修改/etc/fstab较傻瓜式的设置方法..不过还是很有必要研究下/etc/fstab的配置.

启动sudo ntfs-config,可以会出现点小问题:
解决办法:sudo emacs -q /usr/lib/pymodules/python2.7/NtfsConfig/NtfsConfig.py 修改第58行左右将mkdir改为makedirs即可。

df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式:

df -hl

显示格式为:

文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot
/dev/hda6 4.9G 2.2G 2.5G 47% /home
/dev/hda5 9.7G 2.9G 6.4G 31% /opt
none 1009M 0 1009M 0% /dev/shm
/dev/hda3 9.7G 7.2G 2.1G 78% /usr/local
/dev/hdb2 75G 75G 0 100% /
/dev/hdb2 75G 75G 0 100% /

以上面的输出为例,表示的意思为:

HD硬盘接口的第二个硬盘(b),第二个分区(2),容量是75G,用了75G,可用是0,因此利用率是100%, 被挂载到根分区目录上(/)。

下面是相关命令的解释:
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
更多功能可以输入一下命令查看:

df --help
du --help
查看硬盘的分区 #sudo fdisk -l
查看IDE硬盘信息 #sudo hdparm -i /dev/hda
查看STAT硬盘信息 #sudo hdparm -I /dev/sda 或 #sudo apt-get install blktool #sudo blktool /dev/sda id
查看硬盘剩余空间 #df -h #df -H
查看目录占用空间 #du -hs 目录名
优盘没法卸载 #sync fuser -km /media/usbdisk

操作:操作分为两步:

(1)查看该端口被那个PID所占用;方法一:有针对性的查看端口,使用命令

Netstat –ano|findstr "<端口号>",如图,最后一列为PID。图中的端口号为1068,所对应的PID为3840。
1、以查找25这个端口为例做相关介绍:
netstat -aon|findstr "25"

说明:查找25端口被那些进程号占用 显示结果如下:

TCP 192.168.1.6:1903 58.251.150.154:80 CLOSE_WAIT 308
TCP 192.168.1.6:1907 58.251.150.154:80 CLOSE_WAIT 308
TCP 192.168.1.6:1914 58.251.60.166:80 CLOSE_WAIT 308
TCP 192.168.1.6:2207 192.168.1.254:139 TIME_WAIT 0
UDP 127.0.0.1:1025 *:* 956
UDP 127.0.0.1:1425 *:* 1620

从上面的结果可以看出25端口被308、0、956、1620四个进程号占用了,下面我们来根据进程号查看具体的进程:
01

方法二:查看所有的,然后找到对应的端口和PID。
netstat -ano

02

第一幅图中的5列就是上面(a)图对应的5列

(2)查看该PID对应的进程名称。

方法一:一直用命令查找,tasklist|findstr "<PID号>"

03

tasklist|findstr "308"

svchost.exe 1576 Console 0 5,108 K
iexplore.exe 308 Console 0 96,556 K

可以看到308进程号是 CVS 和IE进程占用了,现在我们知道25端口被CVS和IE占用了,那么我们可以进行相应的端口调整,要摸该25端口为26,要摸把CVS和IE端口改成其他数字。

从 (c)图 可以看出,PID为3840所对应的进程名字为msnmsgr.exe。

方法二:用任务管理器查看。

调出任务管理器,选择列,如d图。
04
查看PID对应的进程名称。如(e )图中的msnmsgr.exe
05

cmd下命令杀进程的几种方法

1、用taskill命令
①taskkill /f /im 进程名称
示例:用taskkill /f /im VStart.exe命令关闭音速启动,VStart.exe就是音速启动的进程名称

②taskkill /pid[进程码] -t(结束该进程) -f(强制结束该进程以及所有子进程)
注:有两种方法查进程的PID码:

①在命令行下用 tasklist 命令查出进程的PID号码,就是这些
②在任务管理器中的查看选项中选择选择列中勾先PID那一项
示例:举个关闭迅雷的例子,先找出迅雷的PID码2552

taskkill /pid 2552 -f ,就是这个指令

2、用 wmic process Where name="进程名称" call terminate 这个不需要知道进程的PID号

示例:
wmic process Where name="iexplore.exe" call terminate 关闭IE浏览器,

3、ntsd -c q -p [pid进程码]
示例:还是举个关闭迅雷的吧,同样先找出迅雷的PID码2724
ntsd -c q -p 2724 是这条指令!

附录:在命令行中输入netstat /? 可以查看netstat的相关信息。

C:\Users\piaoyun>netstat /?

显示协议统计和当前 TCP/IP 网络连接。

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]

-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的可执行程序。在某些情况下,已知可执行程序承载多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。此情况下,可执行程序的名称位于底部[]中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且在您没有足够权限时可能失败。
-e 显示以太网统计。此选项可以与 -s 选项结合使用。
-f 显示外部地址的完全限定域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto 可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选项一起用来显示每个协议的统计,proto 可以是下列任何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或 UDPv6。
-r 显示路由表。
-s 显示每个协议的统计。默认情况下,显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6的统计;-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。interval 重新显示选定的统计,各个显示间暂停的间隔秒数。按 CTRL+C 停止重新显示统计。如果省略,则 netstat将打印当前的配置信息一次。

依次运行下面的命令:

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-5.7.tar.gz
tar zxvf setuptools-5.7.tar.gz
cd setuptools-5.7
sudo python setup.py build
sudo python setup.py install

合并后的命令:

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-5.7.tar.gz && tar zxvf setuptools-5.7.tar.gz && cd setuptools-5.7 && sudo python setup.py build && sudo python setup.py install