# For security reasons, Option followsymlinks cannot be overridden.
#Options -Indexes +FollowSymLinks
Options -Indexes +SymLinksIfOwnerMatch
據說 SymLinksIfOwnerMatch 比 FollowSymLinks 更安全
但 SymLinksIfOwnerMatch 效能較差
SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
阅读全文
#Options -Indexes +FollowSymLinks
Options -Indexes +SymLinksIfOwnerMatch
據說 SymLinksIfOwnerMatch 比 FollowSymLinks 更安全
但 SymLinksIfOwnerMatch 效能較差
SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
阅读全文
现在很多的网站都在传输过程中都没有进行加密,只是数据库进行了加密,而这样的话,别人通过嗅探的话,还是可以嗅探到你的明文密码。
前几天跟朋友一起讨论关于传输过程加密的问题,http本身的设计就是无状态。现在很多的网站都在传输过程中都没有进行加密,只是数据库进行了加密,而这样的话,别人通过嗅探的话,还是可以嗅探到你的明文密码。
比如:你的一台机器ip是. 23.22.2.3另一台机器是23.22.2.4,在同一个网关下23.22.2.3的这是一个网站的服务器,而我就可以用23.22.2.4这个服务器来嗅弹,23.22.2.3 80端口的信息 登录的用户名,等等这些信息。并且嗅探到的还是明文,先前我测试了dz dz也在传输过程中没有加密,他不过就是数据库加密比较另类一点,难解密!也就是用md5+salt来加密的。
也许有人会说,为何不用https加密呢?
1、https的是收费的。
2、https也可以突破嗅探 至于怎么样突破 这里的就不在多说。
3、用https之后网页会很卡,现在我们讨论的并不是数据库加密,而是传输过程的加密, 先前我自己想到的方法是 在客户端js加密 而想到这个办法后 有出现了种种的问题 问题如下: js的方法别人在网上已经说过。
1.js加密的问题是,不论单向双向,加密方式没办法隐藏,会被人家看到。
2.例如我密码是 123abc,输入表单后发送,js给加密成了 乱码。 发给服务端再加密下和数据库比对。问题来了,如果入侵者截获到js加密后的乱码,他可以禁用js,然后直接把乱码输入表单后发送,效果和直接得到用户密码发生一. js加密这里的作用除了黑客不知道密码是啥外,其他都没用,乱码也可以登录。
js的加密的直接pass掉。这里根本行不通!
跟朋友又讨论下 想到了其他的办法 捆绑验证码 从而进行加密。
流程:用户输入密码->js提交服务器md5(md5(pass)+验证码)->服务器查询出pass然后md5(pass+验证码)『数据库里pass=md5(pass)』->删除验证码的session
这个方法笔者也测试了,确实可行!发出捆绑验证码的,从而进行传输加密的代码,打包下载。
来自:http://security.ctocio.com.cn/26/12418526.shtml
前几天跟朋友一起讨论关于传输过程加密的问题,http本身的设计就是无状态。现在很多的网站都在传输过程中都没有进行加密,只是数据库进行了加密,而这样的话,别人通过嗅探的话,还是可以嗅探到你的明文密码。
比如:你的一台机器ip是. 23.22.2.3另一台机器是23.22.2.4,在同一个网关下23.22.2.3的这是一个网站的服务器,而我就可以用23.22.2.4这个服务器来嗅弹,23.22.2.3 80端口的信息 登录的用户名,等等这些信息。并且嗅探到的还是明文,先前我测试了dz dz也在传输过程中没有加密,他不过就是数据库加密比较另类一点,难解密!也就是用md5+salt来加密的。
也许有人会说,为何不用https加密呢?
1、https的是收费的。
2、https也可以突破嗅探 至于怎么样突破 这里的就不在多说。
3、用https之后网页会很卡,现在我们讨论的并不是数据库加密,而是传输过程的加密, 先前我自己想到的方法是 在客户端js加密 而想到这个办法后 有出现了种种的问题 问题如下: js的方法别人在网上已经说过。
1.js加密的问题是,不论单向双向,加密方式没办法隐藏,会被人家看到。
2.例如我密码是 123abc,输入表单后发送,js给加密成了 乱码。 发给服务端再加密下和数据库比对。问题来了,如果入侵者截获到js加密后的乱码,他可以禁用js,然后直接把乱码输入表单后发送,效果和直接得到用户密码发生一. js加密这里的作用除了黑客不知道密码是啥外,其他都没用,乱码也可以登录。
js的加密的直接pass掉。这里根本行不通!
跟朋友又讨论下 想到了其他的办法 捆绑验证码 从而进行加密。
流程:用户输入密码->js提交服务器md5(md5(pass)+验证码)->服务器查询出pass然后md5(pass+验证码)『数据库里pass=md5(pass)』->删除验证码的session
这个方法笔者也测试了,确实可行!发出捆绑验证码的,从而进行传输加密的代码,打包下载。
来自:http://security.ctocio.com.cn/26/12418526.shtml
选择 CentOS 还是 Scientific Linux---CentOs啦。
Unix/LinuxC技术 jackxiang 2012-12-25 16:01
最近对 CentOS 的批评很多(作者好几次都想丢担子不干了,呵呵),如 5.3 的迟迟推出,补丁的推出缓慢等等。另一个 RHEL 再编译版本 Scientific Linux 得到了许多人的推崇,排在了 CentOS 的前面。
Scientific Linux 是由费米实验室(隶属于美国能源部)、欧洲核子研究中心以及世界各地的领先实验室和大学共同维护的。相比 CentOS,Scientific Linux 有着稳定的支持,基本上不会出现因为某个开发人员的原因导致发行版本突然消失的可能。在发行版本的推出上以及补丁的更新,Scientific Linux 比 CentOS 的响应要快的多,其标准是在 RHEL 发布补丁 48 小时内发布补丁。
另外,Scientific Linux 不是专门用于专门的 Scientific 研究的,也没有专门的 science application,之所以有着 scientific 的名字,是因为其最初只是 Fermilab 和 CERN 两个实验室使用,后来才慢慢扩大。
Scientific Linux 是由费米实验室(隶属于美国能源部)、欧洲核子研究中心以及世界各地的领先实验室和大学共同维护的。相比 CentOS,Scientific Linux 有着稳定的支持,基本上不会出现因为某个开发人员的原因导致发行版本突然消失的可能。在发行版本的推出上以及补丁的更新,Scientific Linux 比 CentOS 的响应要快的多,其标准是在 RHEL 发布补丁 48 小时内发布补丁。
另外,Scientific Linux 不是专门用于专门的 Scientific 研究的,也没有专门的 science application,之所以有着 scientific 的名字,是因为其最初只是 Fermilab 和 CERN 两个实验室使用,后来才慢慢扩大。
[框架精髓]PSR-0 Autoloading Standard 自动加载机制的规范,及接合kohana的自动加载逻辑分析。
Php/Js/Shell/Go jackxiang 2012-12-25 14:43
背景:关于自动加载类文件是PHP这种脚本在程序大后为了按需要加载时所需要的一种机制,很有必要。
将__autoload换成loadprint函数。但是loadprint不会像__autoload自动触发,这时spl_autoload_register()就起作用了,它告诉PHP碰到没有定义的类就执行loadprint()。
以上一行摘自:http://blog.csdn.net/panpan639944806/article/details/23192267
/tmp/autoload/autoload.php
/tmp/autoload/aClass.php
/tmp/autoload/bClass.php
运行一下,看一下在加载前和后引入的文件是否一样?不一样有新文件:
[root@test autoload]# php autoload.php
Array
(
[0] => /tmp/autoload/autoload.php
)
.:/opt/2012-01-30/php-5.3.10
aClass loaded...bClass loaded...Array
(
[0] => /tmp/autoload/autoload.php
[1] => /tmp/autoload/aClass.php
[2] => /tmp/autoload/bClass.php
)
上面是一个用法,第二个是把__autoload 这个函数都给重定义了:
spl_autoload_register(array('Ko', 'autoload'));//这要就由function __autoload($className)变成了:function autoload($className)
————————————————————结合框架来说这个autoload的事情—————————————————————
/**
* Enable the Ko auto-loader.
*
* @see http://php.net/spl_autoload_register
*/
spl_autoload_register(array('Ko', 'autoload'));
----于是了解到如下自动加载机制:
英文原文:https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
以下内容描述了符合自动载入程序互操作性所必须遵守的强制性规范。
强制要求
一个完整的命名空间 (namespace) 和类 (class) 必须使用以下结构: \<Vendor Name>\(<Namespace>\)*<Class Name>
每个命名空间 (namespace) 必须使用供应商名称 (“Vendor Name”) 做为顶层命名空间(top-level namespace).
每个命名空间 (namespace) 的子命名空间 (sub-namespace) 数量不限.
程序从文件系统载入的时候,每个命名空间 (namespace) 的分隔符 (separator) 将被替换为操作系统的目录分隔符 (DIRECTORY_SEPARATOR).
在类名 (CLASS NAME) 中的下划线 ( _) 也将被替换为操作系统的目录分隔符 (DIRECTORY_SEPARATOR) , 在命名空间 (namespace) 中的下划线 (_)不做替换.
从文件系统载入的合格的命名空间 (namespace) 和 类 (class) 必须以 .php 结尾.
供应商名称 (vendor names), 命名空间 (namespaces) 及类名 (class names) 可以使用任意大小写字母的组合.
示例
\Doctrine\Common\IsolatedClassLoader => /path/to/project/lib/vendor/Doctrine/Common/IsolatedClassLoader.php
\Symfony\Core\Request => /path/to/project/lib/vendor/Symfony/Core/Request.php
\Zend\Acl => /path/to/project/lib/vendor/Zend/Acl.php
\Zend\Mail\Message => /path/to/project/lib/vendor/Zend/Mail/Message.php
在命名空间(Namespaces)和类名(Class Names)中的下划线
\namespace\package\Class_Name => /path/to/project/lib/vendor/namespace/package/Class/Name.php
\namespace\package_name\Class_Name => /path/to/project/lib/vendor/namespace/package_name/Class/Name.php
The standards we set here should be the lowest common denominator for painless autoloader interoperability. You can test that you are following these standards by utilizing this sample SplClassLoader implementation which is able to load PHP 5.3 classes.
实现示例
下面的示例函数演示了遵循上述规范的自动加载过程.
SplClassLoader 实现
如果你的程序遵守上面的自动载入程序互操作性规范,可以使用下面的SplClassLoader实现来加载你的类 (classes) . 这也是 PHP 5.3 推荐的遵循本规范的类 (class) 加载方式.
来自:http://www.dunban.com/?p=30
http://gist.github.com/221634
最后参考:
http://www.jb51.net/article/23956.htm
http://blog.csdn.net/hguisu/article/details/7463333
http://www.php.net/manual/zh/function.autoload.php
http://blog.sina.com.cn/s/blog_6915bcb101017p2x.html
http://www.php100.com/html/php/lei/2013/0905/5267.html
YII框架里,一般各种框架都有这样的用法,特别是PHP5的框架:
spl_autoload_register(array('Ko', 'autoload'));
bool spl_autoload_register(array(‘class’,'static_function’))
参数为数组,数组中第一个值为类名,第二个值为方法名,且必须为静态方法。
例:
输出:
---------- 调试PHP ----------
open\OpenAPIModel.php
models\open\OpenAPIModel.php
输出完成 (耗时 0 秒) - 正常终止
在实际运用中文件名里是不能有Model的字符的,通过对findFile的Debug一下得到:
D:\www\iseeyoo\trunk\codes\application\models\open\adminchannellink.php
class open_AdminChannelLinkModel extends Model //类名包含下划线和Model(如果是Service也一样:class OpenChannelService extends baseService,文件名:\application\services\openchannel.php也不能包含Service字符。),这个规则是:文件命名里不能有Model。(这个得注意下)
{
}
//直接在Core里Debug下,得出上面的规律。
public static function findFile ($dir, $file, $ext = 'php')
{
if($file == "open_adminchannellink"){
file_put_contents("d:/wamp/www/aaa.txt","ModelfileDiR=".$dir."\n",FILE_APPEND);
file_put_contents("d:/wamp/www/aaa.txt","Modelfilepath=".$path."\n",FILE_APPEND);
}
打印出:
ModelfilePosition=open_adminchannellink
ModelfileDiR=models
Modelfilepath=models\open\adminchannellink.php
kohana 这个也是支持contrller直接接调用Module层的,实践OK的,理论上就是通过Autoload调用module,Service(文件类名有不同的标记)的类名(这个是有规范的上面有描述),进而拼接出大体位置,让findfile去找到这个文件:
application\controllers\open\index.php
http://domain.com/open/index/index
这一看是contrller下面有一个open(经过路由配置到了open目录的),后有一个index.php的文件里有一个index函数,如果想直接获取这个uri的内容,可以通过这个函数实现,如下:
这个forward吧,其实就相当于YII里的路由控制器访问index目录下的index控制器下面的index的action方法,路由相关知识:
什么是路由:
在框架里边我们通过路由获得控制器和方法,
我们有了控制器的方法,就可以进一步与视图或模型进行交互,
http://网址/index.php?r=控制器/方法
http://网址/index.php?r=user/cc
===============================================================
一般还是有一个autoload函数来做加载的:
自动auto加载代码:
自订义自动加载函数用SPL:
将__autoload换成loadprint函数。但是loadprint不会像__autoload自动触发,这时spl_autoload_register()就起作用了,它告诉PHP碰到没有定义的类就执行loadprint()。
以上一行摘自:http://blog.csdn.net/panpan639944806/article/details/23192267
/tmp/autoload/autoload.php
/tmp/autoload/aClass.php
/tmp/autoload/bClass.php
运行一下,看一下在加载前和后引入的文件是否一样?不一样有新文件:
[root@test autoload]# php autoload.php
Array
(
[0] => /tmp/autoload/autoload.php
)
.:/opt/2012-01-30/php-5.3.10
aClass loaded...bClass loaded...Array
(
[0] => /tmp/autoload/autoload.php
[1] => /tmp/autoload/aClass.php
[2] => /tmp/autoload/bClass.php
)
上面是一个用法,第二个是把__autoload 这个函数都给重定义了:
spl_autoload_register(array('Ko', 'autoload'));//这要就由function __autoload($className)变成了:function autoload($className)
————————————————————结合框架来说这个autoload的事情—————————————————————
/**
* Enable the Ko auto-loader.
*
* @see http://php.net/spl_autoload_register
*/
spl_autoload_register(array('Ko', 'autoload'));
----于是了解到如下自动加载机制:
英文原文:https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
以下内容描述了符合自动载入程序互操作性所必须遵守的强制性规范。
强制要求
一个完整的命名空间 (namespace) 和类 (class) 必须使用以下结构: \<Vendor Name>\(<Namespace>\)*<Class Name>
每个命名空间 (namespace) 必须使用供应商名称 (“Vendor Name”) 做为顶层命名空间(top-level namespace).
每个命名空间 (namespace) 的子命名空间 (sub-namespace) 数量不限.
程序从文件系统载入的时候,每个命名空间 (namespace) 的分隔符 (separator) 将被替换为操作系统的目录分隔符 (DIRECTORY_SEPARATOR).
在类名 (CLASS NAME) 中的下划线 ( _) 也将被替换为操作系统的目录分隔符 (DIRECTORY_SEPARATOR) , 在命名空间 (namespace) 中的下划线 (_)不做替换.
从文件系统载入的合格的命名空间 (namespace) 和 类 (class) 必须以 .php 结尾.
供应商名称 (vendor names), 命名空间 (namespaces) 及类名 (class names) 可以使用任意大小写字母的组合.
示例
\Doctrine\Common\IsolatedClassLoader => /path/to/project/lib/vendor/Doctrine/Common/IsolatedClassLoader.php
\Symfony\Core\Request => /path/to/project/lib/vendor/Symfony/Core/Request.php
\Zend\Acl => /path/to/project/lib/vendor/Zend/Acl.php
\Zend\Mail\Message => /path/to/project/lib/vendor/Zend/Mail/Message.php
在命名空间(Namespaces)和类名(Class Names)中的下划线
\namespace\package\Class_Name => /path/to/project/lib/vendor/namespace/package/Class/Name.php
\namespace\package_name\Class_Name => /path/to/project/lib/vendor/namespace/package_name/Class/Name.php
The standards we set here should be the lowest common denominator for painless autoloader interoperability. You can test that you are following these standards by utilizing this sample SplClassLoader implementation which is able to load PHP 5.3 classes.
实现示例
下面的示例函数演示了遵循上述规范的自动加载过程.
SplClassLoader 实现
如果你的程序遵守上面的自动载入程序互操作性规范,可以使用下面的SplClassLoader实现来加载你的类 (classes) . 这也是 PHP 5.3 推荐的遵循本规范的类 (class) 加载方式.
来自:http://www.dunban.com/?p=30
http://gist.github.com/221634
最后参考:
http://www.jb51.net/article/23956.htm
http://blog.csdn.net/hguisu/article/details/7463333
http://www.php.net/manual/zh/function.autoload.php
http://blog.sina.com.cn/s/blog_6915bcb101017p2x.html
http://www.php100.com/html/php/lei/2013/0905/5267.html
YII框架里,一般各种框架都有这样的用法,特别是PHP5的框架:
spl_autoload_register(array('Ko', 'autoload'));
bool spl_autoload_register(array(‘class’,'static_function’))
参数为数组,数组中第一个值为类名,第二个值为方法名,且必须为静态方法。
例:
输出:
---------- 调试PHP ----------
open\OpenAPIModel.php
models\open\OpenAPIModel.php
输出完成 (耗时 0 秒) - 正常终止
在实际运用中文件名里是不能有Model的字符的,通过对findFile的Debug一下得到:
D:\www\iseeyoo\trunk\codes\application\models\open\adminchannellink.php
class open_AdminChannelLinkModel extends Model //类名包含下划线和Model(如果是Service也一样:class OpenChannelService extends baseService,文件名:\application\services\openchannel.php也不能包含Service字符。),这个规则是:文件命名里不能有Model。(这个得注意下)
{
}
//直接在Core里Debug下,得出上面的规律。
public static function findFile ($dir, $file, $ext = 'php')
{
if($file == "open_adminchannellink"){
file_put_contents("d:/wamp/www/aaa.txt","ModelfileDiR=".$dir."\n",FILE_APPEND);
file_put_contents("d:/wamp/www/aaa.txt","Modelfilepath=".$path."\n",FILE_APPEND);
}
打印出:
ModelfilePosition=open_adminchannellink
ModelfileDiR=models
Modelfilepath=models\open\adminchannellink.php
kohana 这个也是支持contrller直接接调用Module层的,实践OK的,理论上就是通过Autoload调用module,Service(文件类名有不同的标记)的类名(这个是有规范的上面有描述),进而拼接出大体位置,让findfile去找到这个文件:
application\controllers\open\index.php
http://domain.com/open/index/index
这一看是contrller下面有一个open(经过路由配置到了open目录的),后有一个index.php的文件里有一个index函数,如果想直接获取这个uri的内容,可以通过这个函数实现,如下:
这个forward吧,其实就相当于YII里的路由控制器访问index目录下的index控制器下面的index的action方法,路由相关知识:
什么是路由:
在框架里边我们通过路由获得控制器和方法,
我们有了控制器的方法,就可以进一步与视图或模型进行交互,
http://网址/index.php?r=控制器/方法
http://网址/index.php?r=user/cc
===============================================================
一般还是有一个autoload函数来做加载的:
自动auto加载代码:
自订义自动加载函数用SPL:
首先同时按下“Windows+R”快捷键调出运行命令窗口,然后在窗口中输入“control userpasswords2”后回车。这时Windows 7中的用户帐号(User Accounts)窗口会自动弹出,
紧接着去掉“要使用本机,用户必须输入用户名和密码”前的勾选,最后点击应用按钮就会立即弹出一个自动登录窗口(Automatically Log On)在你面前。现在将你的帐户密码信息输入其中,确认以后Windows 7系统就可以自动记住你的登录帐号,当你再次进入系统的时候,它就会自动为你登录而不需要你重新输入信息了。从此,你只需开机后坐享其成就可以啦!
实操OK步骤:
1)按下“Windows+R”快捷键调出运行命令窗口,然后在窗口中输入“control userpasswords2”后回车。
2)去掉“要使用本机,用户必须输入用户名和密码”前的勾选,点击应用按钮就会立即弹出一个自动登录窗口。
3)现在将你的帐户密码信息输入其中,确认以后Windows 7系统就可以自动记住你的登录帐号,当你再次进入系统的时候,它就会自动为你登录而不需要你重新输入信息了。(这儿空密码就只用一个用户,不用输入密码,直接确认即可)
紧接着去掉“要使用本机,用户必须输入用户名和密码”前的勾选,最后点击应用按钮就会立即弹出一个自动登录窗口(Automatically Log On)在你面前。现在将你的帐户密码信息输入其中,确认以后Windows 7系统就可以自动记住你的登录帐号,当你再次进入系统的时候,它就会自动为你登录而不需要你重新输入信息了。从此,你只需开机后坐享其成就可以啦!
实操OK步骤:
1)按下“Windows+R”快捷键调出运行命令窗口,然后在窗口中输入“control userpasswords2”后回车。
2)去掉“要使用本机,用户必须输入用户名和密码”前的勾选,点击应用按钮就会立即弹出一个自动登录窗口。
3)现在将你的帐户密码信息输入其中,确认以后Windows 7系统就可以自动记住你的登录帐号,当你再次进入系统的时候,它就会自动为你登录而不需要你重新输入信息了。(这儿空密码就只用一个用户,不用输入密码,直接确认即可)
为PHP安装zip扩展
Php/Js/Shell/Go jackxiang 2012-12-23 16:40
VPS上很多应用,是需要zip扩展的。而我帮朋友配置的一台VPS,是Redhat的系统,并且是64bit的,但是貌似网上的LNAMP一键安装包恰好还不支持64位,所以我的LNAMP环境是全手动搭建的。由于手动搭建,为了简单,一些扩展默认我就没编译到php里面去,因此这次的这个zip扩展,需要手动配置进去。其实PHP的很多扩展,能在编译的时候,通过开关开启。如果编译的时候,没有开启,也没关系,可以通过php.ini中加入extension的方式开启。比如这次的zip扩展,就可以用此方法实现。此文为记录一下zip扩展手动安装的过程,备忘。
第一步,下载源代码并解压缩
http://pecl.php.net/package/zip
wget http://pecl.php.net/get/zip-1.10.2.tgz
tar zxvf zip-1.10.2.tgz
cd zip-1.10.2
第二步,编译并安装
/usr/local/php/bin/phpize
#运行此命令后,会自动生成几个文件,包括configure文件
./configure --with-php-config=/usr/local/php/bin/php-config
make & make install
第三步,配置php.ini,并开启zip扩展
zip安装后,会显示安装的路径,比如:/usr/local/php/lib/php/extensions/zip.so
在php.ini中加入: extension=/usr/local/php5/lib/php/extensions/zip.so
如果是LNMP安装包,需要重新启动php-fpm,如果是LNAMP结构,需要重启apache即可。
至此,安装zip扩展完毕,可以在phpinfo()中检查zip扩展是否已经正确启用。
第一步,下载源代码并解压缩
http://pecl.php.net/package/zip
wget http://pecl.php.net/get/zip-1.10.2.tgz
tar zxvf zip-1.10.2.tgz
cd zip-1.10.2
第二步,编译并安装
/usr/local/php/bin/phpize
#运行此命令后,会自动生成几个文件,包括configure文件
./configure --with-php-config=/usr/local/php/bin/php-config
make & make install
第三步,配置php.ini,并开启zip扩展
zip安装后,会显示安装的路径,比如:/usr/local/php/lib/php/extensions/zip.so
在php.ini中加入: extension=/usr/local/php5/lib/php/extensions/zip.so
如果是LNMP安装包,需要重新启动php-fpm,如果是LNAMP结构,需要重启apache即可。
至此,安装zip扩展完毕,可以在phpinfo()中检查zip扩展是否已经正确启用。
两台服务器, 两种情况:
1. 两台都同时部署 nginx + php-fpm
2. 一台部署nginx 一台部署 php-fpm, nginx将php请求反向代理给后面的 php-fpm 服务器
我的看法是:
第一种,配置在一起,虽然看似两台nginx可以承载更多的请求,但是由于nginx与php之间 tcp端口,CPU,Mem资源的争抢,很容易造成 nginx timeout, can't connect等错误,看似nginx收到了很多请求,但php正常处理返回的其实并没那么多。
第二种,资源分开,灵活性更高,nginx快速代理,php快速处理,可承载的有效并发会更高一些,高并发时,系统也会更稳定一些。
请问大家,以上两种情况,哪种可承载的有效并发会高一些?为什么? 大家平时会使用哪一种?
第一种好
nginx做haproxy保证高可用
nginx通过unix socket连接到后端的phpfpm,同时一台机器上面可以启用多个phpfpm进程(端口),保证充分利用资源
nginx不是瓶颈,phpfpm才是。
来自:http://www.zhihu.com/question/20030832
Nginx 和 Apache 在 Windows 下的性能表现谁更好?
nginx 的高性能依赖于 Linux 2.6 内核的 epoll [1] 或是 BSD 内核的 kqueue [2] 提供高效的网络套接字状态轮询服务【时间复杂度为 O(1) 】。在没有这两个服务的内核上则退化成为性能低下的 select 【*nix, Windows 都有、时间复杂度为 O(n) 】. Windows 没有 epoll 和 kqueue,nginx 在 Windows 上用 select 表现自然不佳。
Windows 上类似 epoll/kqueue 的服务是 I/O Completion Ports [3]【Solaris 上也有】,理论上讲是比 epoll 更加先进的服务,因为它同时支持套接字、文件、管道【kqueue 类似】,而 epoll 不支持文件。也就是说不能用 epoll 做本地文件的异步 I/O。但不幸的是没有成熟的开源网络服务器使用 I/O Completion Ports。
Apache 的性能不好一概而论。它有好多种模式,主要的两种是:1、prefork 使用的是多进程 [4];2、 worker 使用得是多进程+多线程 [5]。Windows NT 平台上线程的效率比较高【进程的效率则相对 *nix 下低】,所以使用多线程模式性能更优。Apache 还有个专门为 NT 优化的模式 [6],用的是单进程+多线程。
至于说多线程同步 I/O 相对于使用 epoll/kqueue 异步 I/O 两种方式孰优孰劣,有兴趣的朋友可以参考我在另外一个问题的回答 [7]。
1. 两台都同时部署 nginx + php-fpm
2. 一台部署nginx 一台部署 php-fpm, nginx将php请求反向代理给后面的 php-fpm 服务器
我的看法是:
第一种,配置在一起,虽然看似两台nginx可以承载更多的请求,但是由于nginx与php之间 tcp端口,CPU,Mem资源的争抢,很容易造成 nginx timeout, can't connect等错误,看似nginx收到了很多请求,但php正常处理返回的其实并没那么多。
第二种,资源分开,灵活性更高,nginx快速代理,php快速处理,可承载的有效并发会更高一些,高并发时,系统也会更稳定一些。
请问大家,以上两种情况,哪种可承载的有效并发会高一些?为什么? 大家平时会使用哪一种?
第一种好
nginx做haproxy保证高可用
nginx通过unix socket连接到后端的phpfpm,同时一台机器上面可以启用多个phpfpm进程(端口),保证充分利用资源
nginx不是瓶颈,phpfpm才是。
来自:http://www.zhihu.com/question/20030832
Nginx 和 Apache 在 Windows 下的性能表现谁更好?
nginx 的高性能依赖于 Linux 2.6 内核的 epoll [1] 或是 BSD 内核的 kqueue [2] 提供高效的网络套接字状态轮询服务【时间复杂度为 O(1) 】。在没有这两个服务的内核上则退化成为性能低下的 select 【*nix, Windows 都有、时间复杂度为 O(n) 】. Windows 没有 epoll 和 kqueue,nginx 在 Windows 上用 select 表现自然不佳。
Windows 上类似 epoll/kqueue 的服务是 I/O Completion Ports [3]【Solaris 上也有】,理论上讲是比 epoll 更加先进的服务,因为它同时支持套接字、文件、管道【kqueue 类似】,而 epoll 不支持文件。也就是说不能用 epoll 做本地文件的异步 I/O。但不幸的是没有成熟的开源网络服务器使用 I/O Completion Ports。
Apache 的性能不好一概而论。它有好多种模式,主要的两种是:1、prefork 使用的是多进程 [4];2、 worker 使用得是多进程+多线程 [5]。Windows NT 平台上线程的效率比较高【进程的效率则相对 *nix 下低】,所以使用多线程模式性能更优。Apache 还有个专门为 NT 优化的模式 [6],用的是单进程+多线程。
至于说多线程同步 I/O 相对于使用 epoll/kqueue 异步 I/O 两种方式孰优孰劣,有兴趣的朋友可以参考我在另外一个问题的回答 [7]。
今天在导入Mysql数据库时总是提示:Unknown command ‘\n’,也不知道问题出在哪里,经过无数次研究后问题才得以解决,下面给出具体思路及解决方法。 之前我的Mysql数据库版本是Server version: 5.1.51-log,我现在导入新的数据库是Server version: 5.5.24-log,我发现在Mysql5版本的数据库之间导入数据没有问题,不出现错误提示,但是导入到Mysql5时就出错了。
解决方法如下:
我们在导出Mysql4数据库时指定编码即可,相关命令如下所示:
mysqldump -u root -p dbname --default-character-set=gbk >D:\htmer.sql
说明:上面的gbk编码根据实际中你的数据库编码而定。
通过上面的导出设置,你再导入到新的Mysql数据库中就不会出错了。
解决方法如下:
我们在导出Mysql4数据库时指定编码即可,相关命令如下所示:
mysqldump -u root -p dbname --default-character-set=gbk >D:\htmer.sql
说明:上面的gbk编码根据实际中你的数据库编码而定。
通过上面的导出设置,你再导入到新的Mysql数据库中就不会出错了。
对于一个UNIX下用惯了各种终端和各种shell的人来说,在Windows世界里最大的痛苦是那个蹩脚的cmd。虽然有Cygwin和Msys 的mintty/rxvt,但它们还是更适合跑bash和它们自己的term类程序,不适合跑Windows的console程序(比如路径的斜线/反斜 线问题,比如ANSI颜色问题。。。)
下面,我们分两方面来找找替代品,这次介绍console emulater,类似UNIX下终端仿真器(terminal emulator)那样的东西,让多个字符界面程序(比如cmd/bash/python shell)跑在一个窗口里,下次再介绍类似UNIX下shell那样的东西,切实改进cmd那可怜的交互能力。
推荐: ConEmu
http://code.google.com/p/conemu-maximus5
看看下面的特性列表,颤抖吧!
支持多标签,甚至支持将其它的GUI程序(不仅仅是console程序哦,比如putty/记事本等都可以)嵌入为标签页;
可以选择各种字体,且自带抗锯齿功能;
对各种console程序都兼容得很好(比如文件管理器Far Manager,win32版本的vim,比如IPython),甚至兼容DOS程序;
支持Quake式的下拉风格(即类似于Guake/Tilda/Yakuake那样的,不用时窗口隐藏,需要时用热键呼出,界面从屏幕顶端拉下来)——这个需要最近的版本(至少2012-06-12之后的);
增强的文字选取(比如缺省按住左Alt+鼠标拖动,可以选择矩形区域)
支持ANSI X3.64和xterm 256彩色
很多针对Far Manager文件管理器的增强,比如:让Far Manager支持Windows风格的文件拖放、右键菜单、分隔条,给Far Manager文件列表增加了缩略图和小图标浏览方式(Far Manager可是个基于字符的文件管理器),为查看器/编辑器自动提供新的标签页(即将Far Manager的screen实现为了它的标签页),
注意: 中文用户请使用2012-06-17之后的版本,因为这个版本刚修正了中文的显示问题(以前的版本会在命令行中出现每个汉字出现两遍的情况。这也是为什么以前我没有推荐这个好工具的主要原因)。
补充说明一下如何将其它程序变为ConEmu里面的标签页(参见其Wiki: LaunchNewTab):
最简单的方法: 菜单里选择New console...,然后在对话框里面输入程序名称即可,注意这里不仅仅可以输入cmd/powershell/vim/far这些console程序,你输入putty甚至notepad,都是可以的!
另一种方法是,在ConEmu里面跑一个cmd.exe,然后在cmd里面输入putty -new_console,确定,哒哒!putty就变成ConEmu的一个标签页了; 输入: vim -new_console 然后vim就在一个新的标签页里面打开了! (是的,其实这里的-new_console并不是putty或者vim的参数,会被ConEmu拦截并进行处理。)
注意得选用最近几天的版本,并在Settings->Features中勾选上Inject ComEmuHk。对于以前的版本,得这样:"%ConEmuBaseDir%\ConEmuC.exe" /c vim.exe -new_console:nh0 c:\sources\1.cpp (详细解释可以参看其Wiki: NewConsole )
另外一个例子: 将grep的结果“重定向”到一个新的标签页:grep -new_console -nHi --color path cmd_autorun.cmd 而当前cmd并不阻塞,可以继续输入其它命令(缺省不想激活新标签页的话可以用-new_console:b )
来自:http://www.cnblogs.com/bamanzi/archive/2012/06/27/windows-console-emulater.html
下面,我们分两方面来找找替代品,这次介绍console emulater,类似UNIX下终端仿真器(terminal emulator)那样的东西,让多个字符界面程序(比如cmd/bash/python shell)跑在一个窗口里,下次再介绍类似UNIX下shell那样的东西,切实改进cmd那可怜的交互能力。
推荐: ConEmu
http://code.google.com/p/conemu-maximus5
看看下面的特性列表,颤抖吧!
支持多标签,甚至支持将其它的GUI程序(不仅仅是console程序哦,比如putty/记事本等都可以)嵌入为标签页;
可以选择各种字体,且自带抗锯齿功能;
对各种console程序都兼容得很好(比如文件管理器Far Manager,win32版本的vim,比如IPython),甚至兼容DOS程序;
支持Quake式的下拉风格(即类似于Guake/Tilda/Yakuake那样的,不用时窗口隐藏,需要时用热键呼出,界面从屏幕顶端拉下来)——这个需要最近的版本(至少2012-06-12之后的);
增强的文字选取(比如缺省按住左Alt+鼠标拖动,可以选择矩形区域)
支持ANSI X3.64和xterm 256彩色
很多针对Far Manager文件管理器的增强,比如:让Far Manager支持Windows风格的文件拖放、右键菜单、分隔条,给Far Manager文件列表增加了缩略图和小图标浏览方式(Far Manager可是个基于字符的文件管理器),为查看器/编辑器自动提供新的标签页(即将Far Manager的screen实现为了它的标签页),
注意: 中文用户请使用2012-06-17之后的版本,因为这个版本刚修正了中文的显示问题(以前的版本会在命令行中出现每个汉字出现两遍的情况。这也是为什么以前我没有推荐这个好工具的主要原因)。
补充说明一下如何将其它程序变为ConEmu里面的标签页(参见其Wiki: LaunchNewTab):
最简单的方法: 菜单里选择New console...,然后在对话框里面输入程序名称即可,注意这里不仅仅可以输入cmd/powershell/vim/far这些console程序,你输入putty甚至notepad,都是可以的!
另一种方法是,在ConEmu里面跑一个cmd.exe,然后在cmd里面输入putty -new_console,确定,哒哒!putty就变成ConEmu的一个标签页了; 输入: vim -new_console 然后vim就在一个新的标签页里面打开了! (是的,其实这里的-new_console并不是putty或者vim的参数,会被ConEmu拦截并进行处理。)
注意得选用最近几天的版本,并在Settings->Features中勾选上Inject ComEmuHk。对于以前的版本,得这样:"%ConEmuBaseDir%\ConEmuC.exe" /c vim.exe -new_console:nh0 c:\sources\1.cpp (详细解释可以参看其Wiki: NewConsole )
另外一个例子: 将grep的结果“重定向”到一个新的标签页:grep -new_console -nHi --color path cmd_autorun.cmd 而当前cmd并不阻塞,可以继续输入其它命令(缺省不想激活新标签页的话可以用-new_console:b )
来自:http://www.cnblogs.com/bamanzi/archive/2012/06/27/windows-console-emulater.html
wamp套件注册服务是:
服务名称:wampapache
可执行的文件路径:"d:\wamp\bin\apache\apache2.2.22\bin\httpd.exe" -k runservice
服务名称:wampmysqld
可执行的文件路径:d:\wamp\bin\mysql\mysql5.5.24\bin\mysqld.exe wampmysqld
所以,你在资源管理器里也就会以wamp进行查找进程,而不是以apache ,mysql来查找。
————————————————————————————————————————————————————
Windows下安装:wampserver. 后出现,international error...
启动apache时系统提示错误:[error]<os 2>系统找不到指定文件 no installed service named "apache2"
发生此错误的原因是Apache的目录更改了,或者注册表中Apache2服务的信息被更改。
与我之前一篇文章写的Apache出错的原因有些不同:Apache:系统找不到指定的文件: No installed ConfigArgs for the service "Apache2"
反正就是注册表中的路径和Apache实际的路径对不上号,所以提示“系统找不到指定文件”。
解决方案:重新安装apache;
在命令行cmd中cd至Apache所有的目录(运行cmd的时候要以管理员的身份运行才可以)
cd apache所有目录
cd bin
apache -k install
apache -k start
启动ok!
还原一次ghost的win7后也出现这个问题,带得重新install一次:
D:\wamp\bin\apache\apache2.2.22\bin>httpd.exe -k install
Installing the Apache2.2 service
The Apache2.2 service is successfully installed.
Testing httpd.conf....
转自:
http://blog.zxlm.cn/2007/12/apache%E7%B3%BB%E7%BB%9F%E6%89%BE%E4%B8%8D%E5%88%B0%E6%8C%87%E5%AE%9A%E7%9A%84%E6%96%87%E4%BB%B6-no-installed-service-namedapache2.html
后来依旧没有Ok,最后这样才Ok的:
最近PP小编在做一个PHP的网站,由于重装系统后,电脑的PHP环境需要重新配置,但是为了方便,直接下载了WAMP进行安装,可是出现了为Internal Server Error的内部服务器错误,错误如下:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
以上提示大概意思为PHP服务器遇到内部错误或配置错误,无法完成请求,请联系服务器管理员等等废话。最后可以在APACHE服务器中查看日志。
PP小编问了一下度哥“装WAMP提示Internal Server Error”,终于找到了解决的办法。
Internal Server Error原因:是因为在我的网站目录下面有.htaccess文件,而Apache没有开启rewrite功能,所以才导致了Internal Server Error错误。
Internal Server Error解决方法:在右下角的WAMP5的图标中,单击选择“Apache Modles”,在模块中选择“rewrite_module”,然后重启一下Apache就OK啦!
来自:http://www.lao8.org/html/8/2011-8-18/wamp_htaccess.html
WampServer Version 2.2打开localhost,phpMyAdmin,提示:系统找不到该文件??
http://www.wampserver.com (因ghost还原,ghost之前没有ghost进去)
解决办法:重新安装是不行的,问题出现在,默认浏览器的选取上(因Firefox我重新安装了一次,位置变了)
navigator = "D:\Program Files\Firefox\firefox.exe"
D:\Program Files\Mozilla Firefox\firefox.exe
---------------------------------------------------------------------------------------------------------------------------------------------------
wamp出现could not execute run action问题
上午在安装了Chrome Dev后为了方便将原来的ChromePlus安装目录下的chrome.exe改名成为了chromeplus.exe,而wamp先前安装时选择的默认浏览器就是通过地址定位手动选择的chromeplus,这样修改后必定会出现问题。
几经周折,终于找到了解决方法:
查看wamp安装目录下wampmanager.ini和wampmanager.conf两个文件,核对对应的条目。在D:\wamp\wampmanager.conf中有这么一行:
navigator = "D:\Program Files\ChromePlus\chrome.exe"
改成chromeplus.exe即可,然后再到D:\wamp\wampmanager.ini文件里,ctrl+F搜索phpMyAdmin字样,也很快找到对应的条目,将[Menu.Left]字段下的phpMyAdmin对应浏览器路径修改一下,然后重启wamp,OK,熟悉的淡蓝色界面又出现了。
来自:http://blog.sina.com.cn/s/blog_4a60ba9c0100zzlr.html
服务名称:wampapache
可执行的文件路径:"d:\wamp\bin\apache\apache2.2.22\bin\httpd.exe" -k runservice
服务名称:wampmysqld
可执行的文件路径:d:\wamp\bin\mysql\mysql5.5.24\bin\mysqld.exe wampmysqld
所以,你在资源管理器里也就会以wamp进行查找进程,而不是以apache ,mysql来查找。
————————————————————————————————————————————————————
Windows下安装:wampserver. 后出现,international error...
启动apache时系统提示错误:[error]<os 2>系统找不到指定文件 no installed service named "apache2"
发生此错误的原因是Apache的目录更改了,或者注册表中Apache2服务的信息被更改。
与我之前一篇文章写的Apache出错的原因有些不同:Apache:系统找不到指定的文件: No installed ConfigArgs for the service "Apache2"
反正就是注册表中的路径和Apache实际的路径对不上号,所以提示“系统找不到指定文件”。
解决方案:重新安装apache;
在命令行cmd中cd至Apache所有的目录(运行cmd的时候要以管理员的身份运行才可以)
cd apache所有目录
cd bin
apache -k install
apache -k start
启动ok!
还原一次ghost的win7后也出现这个问题,带得重新install一次:
D:\wamp\bin\apache\apache2.2.22\bin>httpd.exe -k install
Installing the Apache2.2 service
The Apache2.2 service is successfully installed.
Testing httpd.conf....
转自:
http://blog.zxlm.cn/2007/12/apache%E7%B3%BB%E7%BB%9F%E6%89%BE%E4%B8%8D%E5%88%B0%E6%8C%87%E5%AE%9A%E7%9A%84%E6%96%87%E4%BB%B6-no-installed-service-namedapache2.html
后来依旧没有Ok,最后这样才Ok的:
最近PP小编在做一个PHP的网站,由于重装系统后,电脑的PHP环境需要重新配置,但是为了方便,直接下载了WAMP进行安装,可是出现了为Internal Server Error的内部服务器错误,错误如下:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
以上提示大概意思为PHP服务器遇到内部错误或配置错误,无法完成请求,请联系服务器管理员等等废话。最后可以在APACHE服务器中查看日志。
PP小编问了一下度哥“装WAMP提示Internal Server Error”,终于找到了解决的办法。
Internal Server Error原因:是因为在我的网站目录下面有.htaccess文件,而Apache没有开启rewrite功能,所以才导致了Internal Server Error错误。
Internal Server Error解决方法:在右下角的WAMP5的图标中,单击选择“Apache Modles”,在模块中选择“rewrite_module”,然后重启一下Apache就OK啦!
来自:http://www.lao8.org/html/8/2011-8-18/wamp_htaccess.html
WampServer Version 2.2打开localhost,phpMyAdmin,提示:系统找不到该文件??
http://www.wampserver.com (因ghost还原,ghost之前没有ghost进去)
解决办法:重新安装是不行的,问题出现在,默认浏览器的选取上(因Firefox我重新安装了一次,位置变了)
navigator = "D:\Program Files\Firefox\firefox.exe"
D:\Program Files\Mozilla Firefox\firefox.exe
---------------------------------------------------------------------------------------------------------------------------------------------------
wamp出现could not execute run action问题
上午在安装了Chrome Dev后为了方便将原来的ChromePlus安装目录下的chrome.exe改名成为了chromeplus.exe,而wamp先前安装时选择的默认浏览器就是通过地址定位手动选择的chromeplus,这样修改后必定会出现问题。
几经周折,终于找到了解决方法:
查看wamp安装目录下wampmanager.ini和wampmanager.conf两个文件,核对对应的条目。在D:\wamp\wampmanager.conf中有这么一行:
navigator = "D:\Program Files\ChromePlus\chrome.exe"
改成chromeplus.exe即可,然后再到D:\wamp\wampmanager.ini文件里,ctrl+F搜索phpMyAdmin字样,也很快找到对应的条目,将[Menu.Left]字段下的phpMyAdmin对应浏览器路径修改一下,然后重启wamp,OK,熟悉的淡蓝色界面又出现了。
来自:http://blog.sina.com.cn/s/blog_4a60ba9c0100zzlr.html
操作Mysql的导入文件,想查看前面的内容时需要Less命令:
less
wget -c http://ncu.dl.sourceforge.net/sourceforge/gnuwin32/less-394-bin.zip
解压,把bin下文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin下
---------------------------------------------------------------------阅读全文
less
wget -c http://ncu.dl.sourceforge.net/sourceforge/gnuwin32/less-394-bin.zip
解压,把bin下文件放到C:\WINDOWS\coreutils-5.3.0-bin\bin下
---------------------------------------------------------------------阅读全文
[联系时事]抽奖之联系实际之PHP抽奖随机函数之公平是怎么产生滴备案。
Php/Js/Shell/Go jackxiang 2012-12-14 17:24
背景:Tencent公司为了想在年会抽奖上展现两个字:公平,公平,还是他妈的公平,随机函数到底用谁才体现公平,当时在群里有人问了?当时没有当回事,后来过了两天才知道原因,下面就来讲这个的一个决策过程,呵。
2012-12-12:
☆Reiko☆(6429****5) 10:50:32
用rand 随机出的数 在区段中间的数随机次数偏多。有什么好办法使随机数平均点。
☆Reiko☆(6429****5) 10:50:32
感觉
回忆未来-向东-Jàck(3726****3) 10:50:58
我觉得这种理论不成立,感觉是不能说明问题的,要有多次的数据作支持。
☆Reiko☆(6429****5) 10:50:57
随机的次数多的时候 还相对平均点
杨猪(1761****7) 10:51:02
感觉这玩意不靠谱。
Sango(1417887429) 10:51:02
你的感觉很少见
mk_rand 这个会好一点
☆Reiko☆(6429****5) 10:51:13
次数少的话就不平均了
杨猪(1761****7) 10:51:36
我这边同一个比例。今天出东西多了 有人说概率高。明天出东西低了有人说概率低。。
江林锦(865****3) 10:52:06
还是有一定效果的
江林锦(865****3) 10:52:13
量大的情况下
小猪臭(2674****5) 10:52:20
坐板凳潜水ing
Rango<htfntc****@163.com> 10:53:13
一定要用mt_rand
Rango<htfntc****@163.com> 10:53:36
rand有bug
杨猪(1761****7) 10:54:14
rand的BUG早就修复了
杨猪(1761****7) 10:54:52
注释:在某些平台下(例如 Windows)RAND_MAX 只有 32768。如果需要的范围大于 32768,那么指定 min 和 max 参数就可以生成大于 RAND_MAX 的数了,或者考虑用 mt_rand() 来替代它。
注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现在已自动完成。
注释:在 3.0.7 之前的版本中,max 的含义是 range 。要在这些版本中得到和上例相同 5 到 15 的随机数,简短的例子是 rand (5, 11)。
杨猪(1761****7) 10:55:06
无非就是播种嘛。
Rango<htfntc****@163.com> 10:55:19
不是这个问题,是因为glibc rand的bug
杨猪(1761****7) 10:56:23
那就不清楚了。
杨猪(1761****7) 10:56:32
glibc rand的bug 这个具体什么表现?
Rango<htfntc****@163.com> 10:58:41
随机出来的数字可能是一样的
Rango<htfntc****@163.com> 11:02:27
因为是直接用时间来做种子的,随机算法有点问题。mt_rand不存在此问题
Rango<htfntc****@163.com> 11:02:58
以前有用rand做CPU亲和设置的,发现很多程序都绑定到1个核了
2012=12-15
...........................
zedan(@zedan33) || 陈敏(@chenmin): || Sagezhang张松国(@sprits): 马上开始了,再拜一遍 || Sagezhang张松国(@sprits) 由于圣诞晚会采用PHP的mt_rand随机函数抽取中奖rtx号码,所以今年我决定改变打法。方法如下: http://t1.qpic.cn/mblogpic/49da2741fd5c8b7f8392/2000 http://t.qq.com/p/t/44480028989012
php今年长脸了
Jack点评:善于发现漏洞并不利用漏洞者强,敢于拜神者王。
2012-12-12:
☆Reiko☆(6429****5) 10:50:32
用rand 随机出的数 在区段中间的数随机次数偏多。有什么好办法使随机数平均点。
☆Reiko☆(6429****5) 10:50:32
感觉
回忆未来-向东-Jàck(3726****3) 10:50:58
我觉得这种理论不成立,感觉是不能说明问题的,要有多次的数据作支持。
☆Reiko☆(6429****5) 10:50:57
随机的次数多的时候 还相对平均点
杨猪(1761****7) 10:51:02
感觉这玩意不靠谱。
Sango(1417887429) 10:51:02
你的感觉很少见
mk_rand 这个会好一点
☆Reiko☆(6429****5) 10:51:13
次数少的话就不平均了
杨猪(1761****7) 10:51:36
我这边同一个比例。今天出东西多了 有人说概率高。明天出东西低了有人说概率低。。
江林锦(865****3) 10:52:06
还是有一定效果的
江林锦(865****3) 10:52:13
量大的情况下
小猪臭(2674****5) 10:52:20
坐板凳潜水ing
Rango<htfntc****@163.com> 10:53:13
一定要用mt_rand
Rango<htfntc****@163.com> 10:53:36
rand有bug
杨猪(1761****7) 10:54:14
rand的BUG早就修复了
杨猪(1761****7) 10:54:52
注释:在某些平台下(例如 Windows)RAND_MAX 只有 32768。如果需要的范围大于 32768,那么指定 min 和 max 参数就可以生成大于 RAND_MAX 的数了,或者考虑用 mt_rand() 来替代它。
注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现在已自动完成。
注释:在 3.0.7 之前的版本中,max 的含义是 range 。要在这些版本中得到和上例相同 5 到 15 的随机数,简短的例子是 rand (5, 11)。
杨猪(1761****7) 10:55:06
无非就是播种嘛。
Rango<htfntc****@163.com> 10:55:19
不是这个问题,是因为glibc rand的bug
杨猪(1761****7) 10:56:23
那就不清楚了。
杨猪(1761****7) 10:56:32
glibc rand的bug 这个具体什么表现?
Rango<htfntc****@163.com> 10:58:41
随机出来的数字可能是一样的
Rango<htfntc****@163.com> 11:02:27
因为是直接用时间来做种子的,随机算法有点问题。mt_rand不存在此问题
Rango<htfntc****@163.com> 11:02:58
以前有用rand做CPU亲和设置的,发现很多程序都绑定到1个核了
2012=12-15
...........................
zedan(@zedan33) || 陈敏(@chenmin): || Sagezhang张松国(@sprits): 马上开始了,再拜一遍 || Sagezhang张松国(@sprits) 由于圣诞晚会采用PHP的mt_rand随机函数抽取中奖rtx号码,所以今年我决定改变打法。方法如下: http://t1.qpic.cn/mblogpic/49da2741fd5c8b7f8392/2000 http://t.qq.com/p/t/44480028989012
php今年长脸了
Jack点评:善于发现漏洞并不利用漏洞者强,敢于拜神者王。
本质:
在Windows7下面的路径为:
C:\Users\{用户名}\AppData\Roaming\Mozilla\Firefox\Profiles\{随机码}.default\extensions
debugger@aptana.com的插件:
C:\Users\admin\AppData\Roaming\Mozilla\Firefox\Profiles\sqqd7uam.default\extensions\staged\debugger@aptana.com
在XP的路径为:
C:\Documents and Settings\{用户名}\Application Data\Mozilla\Firefox\Profiles\{随机码}\extensions
粗略步骤:
1.地址栏输入about:config,回车
2.搜索栏输入plugin.expose_full_path,双击改为true (显示 插件完整路径)
3.地址栏输入about:plugins,复制插件的dll名称
4.搜索、删除相关插件dll即可
===========================================
手动卸载插件
如果找不到插件的卸载程序,可以用按照以下步骤手动卸载:
1.在地址栏内,输入about:config,回车;
2.在过滤器那一栏输入plugin.expose_full_path,就可以看到plugin.expose_full_path这个设置项;
3.双击这个设置项,将值由默认的fale改为true;
4.在地址栏输入about:plugins,就会列出你目前安装并且启用的插件列表;如果你想卸载某个插件,务必先在工具-附加组件-插件中启用它;
5.每个插件名底下都有对应的路径(步骤3的设置就是为了显示这个路径),打开资源管理器找到插件对应文件;
6.将插件对应的文件重命名,比如Mozilla Default Plug-in对应的文件npnul32.dll,将它重命为Xnpnul32.dll;
刷新一下about:plugins页面,你会发现对应的插件已经被卸载了。
---------------------------------------------------------------------------------
重建插件配置文件
有时候你不能安装或者重新安装某个插件,重建插件配置文件可能就能解决这个问题,重建步骤:
1.打开配置文件夹,找到pluginreg.dat这个文件;
2.关闭firefox;
3.删除pluginreg.dat;
4.打开firefox,在地址栏内输入about:plugins,回车;
5.再打开配置文件夹你会发现一个新的pluginreg.dat。
在Windows7下面的路径为:
C:\Users\{用户名}\AppData\Roaming\Mozilla\Firefox\Profiles\{随机码}.default\extensions
debugger@aptana.com的插件:
C:\Users\admin\AppData\Roaming\Mozilla\Firefox\Profiles\sqqd7uam.default\extensions\staged\debugger@aptana.com
在XP的路径为:
C:\Documents and Settings\{用户名}\Application Data\Mozilla\Firefox\Profiles\{随机码}\extensions
粗略步骤:
1.地址栏输入about:config,回车
2.搜索栏输入plugin.expose_full_path,双击改为true (显示 插件完整路径)
3.地址栏输入about:plugins,复制插件的dll名称
4.搜索、删除相关插件dll即可
===========================================
手动卸载插件
如果找不到插件的卸载程序,可以用按照以下步骤手动卸载:
1.在地址栏内,输入about:config,回车;
2.在过滤器那一栏输入plugin.expose_full_path,就可以看到plugin.expose_full_path这个设置项;
3.双击这个设置项,将值由默认的fale改为true;
4.在地址栏输入about:plugins,就会列出你目前安装并且启用的插件列表;如果你想卸载某个插件,务必先在工具-附加组件-插件中启用它;
5.每个插件名底下都有对应的路径(步骤3的设置就是为了显示这个路径),打开资源管理器找到插件对应文件;
6.将插件对应的文件重命名,比如Mozilla Default Plug-in对应的文件npnul32.dll,将它重命为Xnpnul32.dll;
刷新一下about:plugins页面,你会发现对应的插件已经被卸载了。
---------------------------------------------------------------------------------
重建插件配置文件
有时候你不能安装或者重新安装某个插件,重建插件配置文件可能就能解决这个问题,重建步骤:
1.打开配置文件夹,找到pluginreg.dat这个文件;
2.关闭firefox;
3.删除pluginreg.dat;
4.打开firefox,在地址栏内输入about:plugins,回车;
5.再打开配置文件夹你会发现一个新的pluginreg.dat。
以前在深圳时没有注意,这次在北京又出现了,再刷新不出现,所以,这种方式打广告是最好的。
可以看到,你从浏览器上看到的还是你的网页,只不过被iframe进去了,此时被加上一段JS的广告程序。这个时候再点其他栏目,网址是不会变的,因为是在框架内点的啊。
联系机房,机房说不可能,开始怀疑有同一网段的ARP攻击。64位系统,装不了普通的ARP软件,想到换交换机,从普通交换机换到了主核心交换机,弄了一天,还是有劫持。实在没办法了,跪求解决方案。程序是自己写的,编译运行的,是改不了程序的。
而且是在上层劫持的。机房说没有解决办法了,说是服务器的问题。
我的分析:
1.在服务器的Apache上做了扩展,在输出时偶给来一下。
2.dns运营商在那一瞬间做了IP的改动,嵌入了Iframe。【这点不太可能】
3.在Apache输出后在路过时给人把包劫持了,加入了广告,用Iframe方式。【极有可能】
略查了下:ad.istreamsche.com - 180.186.27.7 的地理位置是 北京市 时代互联......
估计是长城宽带的劫持,在中间对流做了改动并给插入了代码。
有兄弟在问怎么知道是在哪儿劫持的,目前还没有这样的手段查到:
http://www.newsmth.net/nForum/#!article/ITExpress/1292497
原理很简单这位兄弟说得很到位,无非是利益的驱动:
http://www.cnblogs.com/cyq1162/archive/2012/11/26/2789424.html
从技术上实现对Iframe进行隐藏,这是不是一种妥协呢,还是技术对抗技术哩Add :2013 - 05 - 04
http://dbanotes.net/security/iframekiller_anti_iframe_clicjacking.html
可以看到,你从浏览器上看到的还是你的网页,只不过被iframe进去了,此时被加上一段JS的广告程序。这个时候再点其他栏目,网址是不会变的,因为是在框架内点的啊。
联系机房,机房说不可能,开始怀疑有同一网段的ARP攻击。64位系统,装不了普通的ARP软件,想到换交换机,从普通交换机换到了主核心交换机,弄了一天,还是有劫持。实在没办法了,跪求解决方案。程序是自己写的,编译运行的,是改不了程序的。
而且是在上层劫持的。机房说没有解决办法了,说是服务器的问题。
我的分析:
1.在服务器的Apache上做了扩展,在输出时偶给来一下。
2.dns运营商在那一瞬间做了IP的改动,嵌入了Iframe。【这点不太可能】
3.在Apache输出后在路过时给人把包劫持了,加入了广告,用Iframe方式。【极有可能】
略查了下:ad.istreamsche.com - 180.186.27.7 的地理位置是 北京市 时代互联......
估计是长城宽带的劫持,在中间对流做了改动并给插入了代码。
有兄弟在问怎么知道是在哪儿劫持的,目前还没有这样的手段查到:
http://www.newsmth.net/nForum/#!article/ITExpress/1292497
原理很简单这位兄弟说得很到位,无非是利益的驱动:
http://www.cnblogs.com/cyq1162/archive/2012/11/26/2789424.html
从技术上实现对Iframe进行隐藏,这是不是一种妥协呢,还是技术对抗技术哩Add :2013 - 05 - 04
http://dbanotes.net/security/iframekiller_anti_iframe_clicjacking.html
[实践OK]zend studio下地aptana插件安装后用于编写并用Firefox结合该插件调试Js的兼容性配置及使用相关备案。
Php/Js/Shell/Go jackxiang 2012-12-12 16:35
--------------------------------------------------------------------------------------
成功配置后的感想:关于这个aptana的调试功能,我觉得没有做得好,也是个鸡肋,因firefox的大幅度升级,导致这个debug插件出现了各种兼容性问题,国外也有人提到,如:https://aptanastudio.tenderapp.com/discussions/suggestions/400-js-debuggerdont-work-with-firefox-150-aptana-3-build-321201207261642-aptana-plugin-ff-172 为此,我觉得前端的调试还是应该以firebug来做,完善好了,问题解决90%。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我的最后Js调试Ok的解决方案如下:
Firefox 版本:V17.01
按aptana说的下载基于1.2-1.8:https://getfirebug.com/releases/firebug/1.8/firebug-1.8.0.xpi //这个版本我试了下是可以的
aptana插件下载如下:Aptana debugger的下载地址 :http://firefox.aptana.com/update/aptanadebugger.xpi
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
网上摘录:
安装:http://my.oschina.net/u/197668/blog/35751
使用及配置:http://blog.csdn.net/easywang369/article/details/7580034
更多关于这个zendstuodio的问题:http://hbwanghai.blog.163.com/blog/static/1992971472012102912916330/
这个较完整:
http://luwenxiang1990.blog.163.com/blog/static/17360763920116172294038/
http://icandy.blog.163.com/blog/static/18967817320113189013361/
有代码可以下载学习,不错的教材,注意:这个firefox的版本问题可能是调试的大问题,得学会自己再安一个旧一点的3.5版本,安在不同的目录,在aptana里设置一下旧版本的位置,同时安上两个插件。一个是:firebug,一个是:apata的插件。(估计是用来开端口的,于最新的版本不兼容)
Aptana加Firefox下的插件进行调试:http://www.cnblogs.com/Fooo/archive/2010/01/28/1658514.html
Aptana debugger的下载地址 :http://firefox.aptana.com/update/aptanadebugger.xpi
Firefox下的插件不兼容然后会报错:
然后第一次debug跳到 http://www.aptana.com/?debugger=true&port=3726
第二次debug:也是一个 Aptana Firefox extension launching...please wait.
然后会报错:
Socket connection error. Please try shutting down and restarting your web browser, and then run 'debug' again. Accept timed out
搞来搞去,结果是firefox版本问题,把原来的3.5.5换为3.5就没问题了,这个行不通。
没有自动提示解决方案,zend studio 9 html,js,css的代码提示如何弄?php的代码提示是有的。
装好了后,就有JS的提示功能了,如果要以整个工程的文件作为提示需要先关联文件.然后按alt+/ 。
按Alt+/什么都不出来,如果没有打开提示,就一行“No Default Proposals”的解决办法:
最终解决方案。
菜单window->Preferences->Java->Editor->Content Assist->Enable auto activation 选项要打上勾
windows–>preference–>workbench–>keys 下设置Content Assist 的快捷键
window->Preferences->Java->Editor->Content Assist->Advanced 上面列表框的Select the proposal kinds contained in the ‘default’ content assist list: 中把 Other Java Proposals 选项打上勾
以上这几种方案似乎都没什么用,也许根本就不是解决这个问题的,看起来是解决快捷键冲突的,而冲突的话连“No Default Proposals”也不会提示。
最后,还有一种解决成功率最高的方法是重建workspace,之前我记得有一次,大概2年前吧,当时也遇到过类似问题,那时候就是重建workspace解决的。但现在还用这种近乎“暴力”的方法,简直这太扯了,这么多项目、这么多配置,挨个导入到新的workspace,那也花很多时间呀。要花时间,不如花在寻找根本问题所在上,彻底解决这种情况。
根据排除法,最终把问题定位在了workspace目录下的这个文件上:
.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.dltk.ui.prefs
可以直接删掉它,重启eclipse后问题解决。(如果怕误删,可以先备份)
但是这也只是小规模的微“暴力”解决方案,还没找到根本原因,那么,再细化点吧,直接用文本编辑器打开它,应该会有一行这样的配置:
content_assist_disabled_computers=xxxxxxxxxxxxxxxxxxxxx
罪魁祸首就是这项配置了!看名字就不像好东西,直接把我的content_assist给disable了!
删除这行后保存,重启eclipse,问题彻底解决。
http://blog.sina.com.cn/s/blog_540180ba01016ovr.html
看来抱怨的人不少:JavaScript编辑器 aptana studio 3.2.2 对应的火狐浏览器版本
aptana studio 是JavaScript的编辑利器,但是配置非常让人头疼。
它自带的 aptana Debugger 1.7.2 以及 firebug1.83 第一次输出的时候,按照提示自动安装就行了,最好别自己找了,找了装上不一定好使。。。。
火狐浏览器版本推荐14版,我自己试了 16 、9、 10、 11、 12、 13、 14, 7个版本,12-14版都能正常输出。但是,12,13版我这里打断点调试有问题。直到14版才一切OK。
而15版看发布时间,比aptana studio 3.2.2晚,理论上可能不兼容,所以没试。。。如果我早点注意发布时间,我就不会先弄16版了。
有例外情况,我同事说,他用12版断点调试ok。。。
仅作参考,希望能帮助开发人员少浪费时间。
成功配置后的感想:关于这个aptana的调试功能,我觉得没有做得好,也是个鸡肋,因firefox的大幅度升级,导致这个debug插件出现了各种兼容性问题,国外也有人提到,如:https://aptanastudio.tenderapp.com/discussions/suggestions/400-js-debuggerdont-work-with-firefox-150-aptana-3-build-321201207261642-aptana-plugin-ff-172 为此,我觉得前端的调试还是应该以firebug来做,完善好了,问题解决90%。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我的最后Js调试Ok的解决方案如下:
Firefox 版本:V17.01
按aptana说的下载基于1.2-1.8:https://getfirebug.com/releases/firebug/1.8/firebug-1.8.0.xpi //这个版本我试了下是可以的
aptana插件下载如下:Aptana debugger的下载地址 :http://firefox.aptana.com/update/aptanadebugger.xpi
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
网上摘录:
安装:http://my.oschina.net/u/197668/blog/35751
使用及配置:http://blog.csdn.net/easywang369/article/details/7580034
更多关于这个zendstuodio的问题:http://hbwanghai.blog.163.com/blog/static/1992971472012102912916330/
这个较完整:
http://luwenxiang1990.blog.163.com/blog/static/17360763920116172294038/
http://icandy.blog.163.com/blog/static/18967817320113189013361/
有代码可以下载学习,不错的教材,注意:这个firefox的版本问题可能是调试的大问题,得学会自己再安一个旧一点的3.5版本,安在不同的目录,在aptana里设置一下旧版本的位置,同时安上两个插件。一个是:firebug,一个是:apata的插件。(估计是用来开端口的,于最新的版本不兼容)
Aptana加Firefox下的插件进行调试:http://www.cnblogs.com/Fooo/archive/2010/01/28/1658514.html
Aptana debugger的下载地址 :http://firefox.aptana.com/update/aptanadebugger.xpi
Firefox下的插件不兼容然后会报错:
然后第一次debug跳到 http://www.aptana.com/?debugger=true&port=3726
第二次debug:也是一个 Aptana Firefox extension launching...please wait.
然后会报错:
Socket connection error. Please try shutting down and restarting your web browser, and then run 'debug' again. Accept timed out
搞来搞去,结果是firefox版本问题,把原来的3.5.5换为3.5就没问题了,这个行不通。
没有自动提示解决方案,zend studio 9 html,js,css的代码提示如何弄?php的代码提示是有的。
装好了后,就有JS的提示功能了,如果要以整个工程的文件作为提示需要先关联文件.然后按alt+/ 。
按Alt+/什么都不出来,如果没有打开提示,就一行“No Default Proposals”的解决办法:
最终解决方案。
菜单window->Preferences->Java->Editor->Content Assist->Enable auto activation 选项要打上勾
windows–>preference–>workbench–>keys 下设置Content Assist 的快捷键
window->Preferences->Java->Editor->Content Assist->Advanced 上面列表框的Select the proposal kinds contained in the ‘default’ content assist list: 中把 Other Java Proposals 选项打上勾
以上这几种方案似乎都没什么用,也许根本就不是解决这个问题的,看起来是解决快捷键冲突的,而冲突的话连“No Default Proposals”也不会提示。
最后,还有一种解决成功率最高的方法是重建workspace,之前我记得有一次,大概2年前吧,当时也遇到过类似问题,那时候就是重建workspace解决的。但现在还用这种近乎“暴力”的方法,简直这太扯了,这么多项目、这么多配置,挨个导入到新的workspace,那也花很多时间呀。要花时间,不如花在寻找根本问题所在上,彻底解决这种情况。
根据排除法,最终把问题定位在了workspace目录下的这个文件上:
.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.dltk.ui.prefs
可以直接删掉它,重启eclipse后问题解决。(如果怕误删,可以先备份)
但是这也只是小规模的微“暴力”解决方案,还没找到根本原因,那么,再细化点吧,直接用文本编辑器打开它,应该会有一行这样的配置:
content_assist_disabled_computers=xxxxxxxxxxxxxxxxxxxxx
罪魁祸首就是这项配置了!看名字就不像好东西,直接把我的content_assist给disable了!
删除这行后保存,重启eclipse,问题彻底解决。
http://blog.sina.com.cn/s/blog_540180ba01016ovr.html
看来抱怨的人不少:JavaScript编辑器 aptana studio 3.2.2 对应的火狐浏览器版本
aptana studio 是JavaScript的编辑利器,但是配置非常让人头疼。
它自带的 aptana Debugger 1.7.2 以及 firebug1.83 第一次输出的时候,按照提示自动安装就行了,最好别自己找了,找了装上不一定好使。。。。
火狐浏览器版本推荐14版,我自己试了 16 、9、 10、 11、 12、 13、 14, 7个版本,12-14版都能正常输出。但是,12,13版我这里打断点调试有问题。直到14版才一切OK。
而15版看发布时间,比aptana studio 3.2.2晚,理论上可能不兼容,所以没试。。。如果我早点注意发布时间,我就不会先弄16版了。
有例外情况,我同事说,他用12版断点调试ok。。。
仅作参考,希望能帮助开发人员少浪费时间。
背景:这块主要是nginx的配置,网上一堆,但真正能用的是少之又少,再加https加入,相对门槛还是有的,在此,我就以我的xdxp.cn搭建成功为例,遇到各种错,一个是样式不对,第二个是重写不对,第三个是扫描webdav有可能会不对,总之不好搞,国内的网友想用,估计没有自己的vps,用虚拟机是不行的,上配置
迁移时注意日志:/data/htdocs/xdxp.cn/data/owncloud.log Seesion目录需要建立:Failed to write session data (files). Please verify that the current setting of session.save_path is correct (\/data\/session) at \/data\/htdocs\/xdxp.cn\/lib\/private\/session\/internal.php#77","level":3,"time":"2015-05-07T09:14:10+00:00"} chown -R www:www /data/session ,chmod -R 777 /data/session 。777必须否则,还是不行。
如下:
#owncloud cron
*/5 * * * * /usr/local/php/bin/php -f /data/htdocs/xdxp.cn/cron.php
这个文章给我的帮助挺大:
http://303i.com/article/2013/02/28/831.html
不用花钱,直接下载:http://geekpi.cn/Downloads/owncloud_client/
桌面客户端:http://owncloud.org/sync-clients/
ownCloud 是一个来自 KDE 社区开发的免费软件,提供私人的 Web 服务。当前主要功能包括文件管理(内建文件分享)、音乐、日历、联系人等等,可在PC和服务器上运行。http://owncloud.org/
简单来说就是一个基于Php的自建网盘。基本上是私人使用这样,因为直到现在开发版本也没有暴露注册功能。
ownCloud 4 引入了文件版本话和操作回滚功能,增强了加密功能,新的 API以及更快速和方便的浏览 ODF 文件。此外,ownCloud 4.0 还引入对文件拖放上传、共享日历等功能。
国内有一个:
http://wiki.miniyun.cn/index.php?title=%E8%BF%B7%E4%BD%A0%E4%BA%91%E7%94%A8%E5%A4%84--%E5%8A%9E%E5%85%AC%E6%96%87%E6%A1%A3%E5%90%8C%E6%AD%A5%E5%88%A9%E5%99%A8
http://www.xtit.net/post/Bdrive/
http://sparkleshare.org/
Nginx配置:
http://303i.com/article/2013/02/28/831.html
官方nginx配置:
http://doc.owncloud.org/server/4.5/admin_manual/installation.html#nginx-configuration
Install ownCloud with SSL and Nginx in CentOS 6.5:
http://www.tuicool.com/articles/QFJB7z
安装实践:
http://303i.com/article/2013/02/28/831.html
找不到:
http://xdxp.cn/index.php/apps/firstrunwizard/wizard.php
Install ownCloud with SSL and Nginx in CentOS 6.5:
http://www.howtoforge.com/centos-owncloud-nginx
Nginx Conf :
http://www.howtoforge.com/running-owncloud-5.0-on-nginx-lemp-on-debian-wheezy
Https:
http://lanbing.org/post/the-nginx-configuration-ssl-and-forced-http-to-jump-to-the-https.html
界面remote找不到样式的情形:
http://303i.com/article/2013/02/28/831.html
迁移时注意日志:/data/htdocs/xdxp.cn/data/owncloud.log Seesion目录需要建立:Failed to write session data (files). Please verify that the current setting of session.save_path is correct (\/data\/session) at \/data\/htdocs\/xdxp.cn\/lib\/private\/session\/internal.php#77","level":3,"time":"2015-05-07T09:14:10+00:00"} chown -R www:www /data/session ,chmod -R 777 /data/session 。777必须否则,还是不行。
如下:
#owncloud cron
*/5 * * * * /usr/local/php/bin/php -f /data/htdocs/xdxp.cn/cron.php
这个文章给我的帮助挺大:
http://303i.com/article/2013/02/28/831.html
不用花钱,直接下载:http://geekpi.cn/Downloads/owncloud_client/
桌面客户端:http://owncloud.org/sync-clients/
ownCloud 是一个来自 KDE 社区开发的免费软件,提供私人的 Web 服务。当前主要功能包括文件管理(内建文件分享)、音乐、日历、联系人等等,可在PC和服务器上运行。http://owncloud.org/
简单来说就是一个基于Php的自建网盘。基本上是私人使用这样,因为直到现在开发版本也没有暴露注册功能。
ownCloud 4 引入了文件版本话和操作回滚功能,增强了加密功能,新的 API以及更快速和方便的浏览 ODF 文件。此外,ownCloud 4.0 还引入对文件拖放上传、共享日历等功能。
国内有一个:
http://wiki.miniyun.cn/index.php?title=%E8%BF%B7%E4%BD%A0%E4%BA%91%E7%94%A8%E5%A4%84--%E5%8A%9E%E5%85%AC%E6%96%87%E6%A1%A3%E5%90%8C%E6%AD%A5%E5%88%A9%E5%99%A8
http://www.xtit.net/post/Bdrive/
http://sparkleshare.org/
Nginx配置:
http://303i.com/article/2013/02/28/831.html
官方nginx配置:
http://doc.owncloud.org/server/4.5/admin_manual/installation.html#nginx-configuration
Install ownCloud with SSL and Nginx in CentOS 6.5:
http://www.tuicool.com/articles/QFJB7z
安装实践:
http://303i.com/article/2013/02/28/831.html
找不到:
http://xdxp.cn/index.php/apps/firstrunwizard/wizard.php
Install ownCloud with SSL and Nginx in CentOS 6.5:
http://www.howtoforge.com/centos-owncloud-nginx
Nginx Conf :
http://www.howtoforge.com/running-owncloud-5.0-on-nginx-lemp-on-debian-wheezy
Https:
http://lanbing.org/post/the-nginx-configuration-ssl-and-forced-http-to-jump-to-the-https.html
界面remote找不到样式的情形:
http://303i.com/article/2013/02/28/831.html
[开机启动]一条批处理命令启动VMware虚拟机,把vmware workstation最小化到系统托盘。
Unix/LinuxC技术 jackxiang 2012-12-10 20:07
实践Ok:
一条批处理命令启动VMware虚拟机
所以我们就可以编辑一个bat文件去启动虚拟机了. :)
@echo off
e:
cd E:\VMware\
E:\VMware\VMware.exe -X "E:\Windows XP Professional\Windows XP Professional.vmx"
参考:虚拟机软件wmware如何实现一启动软件就自动启动某个虚拟机
http://topic.csdn.net/u/20080724/10/6d480ded-19ac-40e6-b082-ce2c9c601275.html
修改:调整了E:\VMware>VMware.exe -X "E:\Windows XP Professional\Windows XP Professional.vmx"中的"\"被打成">"的错误;
如果你已经运行出错的命令 并导致VMware.exe不可用 请用安装包修复一下;
如果仅仅这样做,虚拟机启动时还是会显示界面,如何让虚拟机在后台运行呢?只需在上述命令后添加一个参数nogui
例如: "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" start "D:\Ubuntu\Ubuntu.vmx" nogui
Linux下启动的方法:
在redhat enterprise 5.3安装了vmware workstation,如何用vmware 命令行启动指定虚拟机?
[root@node0 ~]# /usr/bin/vmware -x "/root/vmware/Windows XP Professional/Windows XP Professional.vmx" &
把vmware workstation最小化到系统托盘:
最近频繁使用vmware。
而vmware又没有提供“最小化到系统托盘”的功能。
开着一个虚拟机,任务条上就多了一个vmware的条条,很是占地方。
随便google了一下,搜索“vmware tray minimize”,就找到了一个解决方案:
先点击下面链接去下载trayconizer.zip(有两个版本For Windows 95/98/ME 和 For Windows NT/2000/XP)。
解压之后,放到硬盘的任何地方。
我就直接把trayconizer.exe放到了c:\windows目录下。
然后把vmware workstation的快捷方式的目标改为:
"c:\windows\trayconizer.exe" "C:\Program Files\VMware\VMware Workstation\vmware.exe"
即在原来的"C:\Program Files\VMware\VMware Workstation\vmware.exe" 前加上"c:\windows\trayconizer.exe" 中间用空格隔开。
注意:"c:\windows\trayconizer.exe"后面应该有一个空格。
以后,用修改过的快捷方式打开的vmware,就可以最小化到系统托盘了。
当然了,该工具也适用于其他程序。
下载地址:
http://www.whitsoftdev.com/trayconizer/
一条批处理命令启动VMware虚拟机
所以我们就可以编辑一个bat文件去启动虚拟机了. :)
@echo off
e:
cd E:\VMware\
E:\VMware\VMware.exe -X "E:\Windows XP Professional\Windows XP Professional.vmx"
参考:虚拟机软件wmware如何实现一启动软件就自动启动某个虚拟机
http://topic.csdn.net/u/20080724/10/6d480ded-19ac-40e6-b082-ce2c9c601275.html
修改:调整了E:\VMware>VMware.exe -X "E:\Windows XP Professional\Windows XP Professional.vmx"中的"\"被打成">"的错误;
如果你已经运行出错的命令 并导致VMware.exe不可用 请用安装包修复一下;
如果仅仅这样做,虚拟机启动时还是会显示界面,如何让虚拟机在后台运行呢?只需在上述命令后添加一个参数nogui
例如: "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" start "D:\Ubuntu\Ubuntu.vmx" nogui
Linux下启动的方法:
在redhat enterprise 5.3安装了vmware workstation,如何用vmware 命令行启动指定虚拟机?
[root@node0 ~]# /usr/bin/vmware -x "/root/vmware/Windows XP Professional/Windows XP Professional.vmx" &
把vmware workstation最小化到系统托盘:
最近频繁使用vmware。
而vmware又没有提供“最小化到系统托盘”的功能。
开着一个虚拟机,任务条上就多了一个vmware的条条,很是占地方。
随便google了一下,搜索“vmware tray minimize”,就找到了一个解决方案:
先点击下面链接去下载trayconizer.zip(有两个版本For Windows 95/98/ME 和 For Windows NT/2000/XP)。
解压之后,放到硬盘的任何地方。
我就直接把trayconizer.exe放到了c:\windows目录下。
然后把vmware workstation的快捷方式的目标改为:
"c:\windows\trayconizer.exe" "C:\Program Files\VMware\VMware Workstation\vmware.exe"
即在原来的"C:\Program Files\VMware\VMware Workstation\vmware.exe" 前加上"c:\windows\trayconizer.exe" 中间用空格隔开。
注意:"c:\windows\trayconizer.exe"后面应该有一个空格。
以后,用修改过的快捷方式打开的vmware,就可以最小化到系统托盘了。
当然了,该工具也适用于其他程序。
下载地址:
http://www.whitsoftdev.com/trayconizer/