DownLoad:https://github.com/openresty/set-misc-nginx-module/
    最近公司运营提出需求,需要使从公司网站上下载的资料文件显示为中文名称,研发部问道我们有没有好的实现方法,php应该有这样的功能,研发回复说,之前就是这样实现过,但太消耗内存,不做考虑了,才有现在下载资料文件,显示中文名称没有实现。想了想,记起前段时间看agentzh(章亦春)大牛关于nginx的大作以及他写的nginx的模块,似乎有实现此类功能的模块,找了一下果然有:http://wiki.nginx.org/HttpSetMiscModule#Installation
利用其中 set_decode_base64 以及nginx 的 add_header 添加一个http头:Content-Disposition ,配合php代码实现。
nginx 添加模块重新编译
下载需要的模块:
到 https://github.com/agentzh/ 下载模块
agentzh-echo-nginx-module-v0.41-1-gb3ad5c1.tar.gz
agentzh-set-misc-nginx-module-v0.22rc8-5-ge79e7f0.tar.gz
simpl-ngx_devel_kit-v0.2.17-10-g4192ba6.tar.gz
解压到对应目录
安装:
./configure  --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/usr/local/nginx_module/ngx_devel_kit --add-module=/usr/local/nginx_module/misc-nginx --add-module=/usr/local/nginx_module/echo-nginx

make -j2

make install
php 实现部分我也不是太懂,就不贴出来了。
nginx 相关配置段
点击在新窗口中浏览此图片
最终效果,上图
点击在新窗口中浏览此图片

各位童鞋注意啦:该种方式在使用CDN的网站中也可以生效的。
从该功能上线以来看,效果还不错,agentzh(章亦春)写的nginx模块那是杠杠的
参考:http://wiki.nginx.org/HttpSetMiscModule#Installation
来自:http://longzhiyi.blog.51cto.com/350171/964677
redis非授权访问的查毒过程,redis对外开端口时小心,或不要对外开端口:
http://lee90.blog.51cto.com/10414478/1857073
背景:有时在删除一些如ghost文件生成的~1这样的文件夹时,会提示没有权限,什么原因呢:1)是因为你不是administrator运行,也就不是最高权限在运行。2)这个文件夹是在之前重装系统时你有权的,但是后来重装后同样的用户Users但是uid不一样(姑且这样说),linux上有这个问题,估计windows下也有这个问题。

一)
怎么办呢?
就是在目录上加上当前用户Users的权限后,再删除就Ok了。

二)
怎么加呢?
(1)在目录上点右键后属性。
(2)点选安全后,在右下角点高级。
(3)点添加出来一个界面后,点主体[选择主体]。
(4)选择主体弹出来一个框里面,再点高级(A)...
(5)立即查找,找到Users,双击后添加进去点确定。
(6)回到点主体[选择主体]这个框里发现有Users这个用户了。下面有基本权限,咱勾选上【V】完全控制,点确认。
(7)于是在权限条目下面多了一个Users用户,且是完全控制的,完全控制也就是拥有所有对目录操作的权限,点确定才真的加上了,否则还是没加上哟。


这些步骤,做后,咱也就可以正常删除该目录了。

上面步骤涉及图片截图方面参考链接:http://jingyan.baidu.com/article/afd8f4de9fd3d634e386e950.html
背景:win10一堆无用的东西,在PC这块儿,得删除掉。
卸载预安装应用的方法就是你在开始菜单中输入“P”字母,系统就会自动反馈回“Windows PowerShell”应用程序,然后右键点击“以管理员身份运行”,会跳出蓝色的批处理界面,随后根据你的个人需求,输入相应的代码就能够轻松完成 Windows 10预安装应用的卸载工作。
From:http://www.111cn.net/sys/361/91862.htm


背景:安装软件包的时候,被我手动终止了,可能导致yum的数据库事务啥的存在问题:
问题描述:



1、前提条件:安装软件包的时候,被我手动终止了
[root@dhcp yum.repos.d]# yum clean all
rpmdb: Thread/process 4541/140619363587840 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 -  (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
[root@dhcp yum.repos.d]# yum makecache
rpmdb: Thread/process 4541/140619363587840 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 -  (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

2、根据提示可以知道rpm数据库被损坏,如是按照下面的方法进行重建
[root@dhcp yum.repos.d]# cd /var/lib/rpm/
[root@dhcp rpm]# ls
Basenames     __db.004     Name            Pubkeys         Triggername
Conflictname  Dirnames     Obsoletename    Requirename
__db.001      Filedigests  Packages        Requireversion
__db.002      Group        Providename     Sha1header
__db.003      Installtid   Provideversion  Sigmd5
[root@dhcp rpm]# rm __db.* -rf
[root@dhcp rpm]# rpm --rebuilddb
[root@dhcp rpm]# yum clean all
Loaded plugins: aliases, changelog, downloadonly, kabi, presto, product-id,
              : refresh-packagekit, security, subscription-manager, tmprepo,
              : verify, versionlock
Updating certificate-based repositories.
Unable to read consumer identity
Loading support for Red Hat kernel ABI
Cleaning repos: rhel-source
Cleaning up Everything
0 delta-package files removed, by presto
[root@dhcp rpm]# yum update
Loaded plugins: aliases, changelog, downloadonly, kabi, presto, product-id,
              : refresh-packagekit, security, subscription-manager, tmprepo,
              : verify, versionlock
Updating certificate-based repositories.
Unable to read consumer identity
Loading support for Red Hat kernel ABI
rhel-source                                                | 4.0 kB     00:00 ...
rhel-source/primary_db                                     | 3.1 MB     00:00 ...
Setting up Update Process
No Packages marked for Update


来自:http://blog.sina.com.cn/s/blog_6fb8aaeb0101aegn.html
背景:这个buttonbar的功能主要是对一些经常执行又较长的一些命令进行浓缩,以更快捷的方式进行操作linux系统的shell。
经实践发现这个功能并不能批量,像view->command windows,里send command to all session,功能一样能批量给所有tab执行相同命令,但已经足够了。

http://jingyan.baidu.com/article/6b97984dce10981ca3b0bf45.html
RHEL/CentOS和Fedora


delete old vim rpm pkg:
yum remove vim*  -y

异步任务

以前在 Vim 里面调用外部一个程序(比如编译,更新 tags,Grep ,检查错误,git/svn commit)等,只能傻等着外部程序结束才能返回 Vim ,这也是 Vim 最受 emacs 诟病的地方,限制了很多可能性,导致NeoVim当年发布时,最先引入的新功能就是异步机制。如今 8.0中,可以在后台启动各种长时间运行的任务,并把输出重定向到 VimScript 里面的某个 callback 函数,和 nodejs的子进程管理模块类似,使得你可以一边浏览/编辑文件,一遍运行各种长时间编译类任务可以同时运行,并且把输出同步到 Vim 里的某个窗口中。

时钟机制

可以在 VimScript 中创建时钟,比如每隔100ms调用一下某个 VimScript 里面的函数,这样方便你定时检查各种状态,比如某项工作是否做完,或者某个与服务器的通信如何了。有这个机制配合 Python 可以实现纯脚本的终端,或者实现网络交互,实时读取一些股票信息并且显示在右下角之类的,这给 Vim 插件开发带来了更多可能性。

网络机制

可以用纯 VimScript + socket + json 和外部支持json的服务器进行通信,比如通知远程服务器做一件什么事情,或者查询个什么东西,不过使用 Timer + python 也可以达到同样的效果。
背景:将T60P升级为Windows10系统后,最近 买卫个独立 ThinkPad 键盘,需要蓝牙连接,但发现蓝牙设备没了,连右键后硬件列表里也没有,这可怎么办?
最佳答案: Fn+F5就可以打开。
如何安装:用驱动精灵,它会自己检测并安装上的。
背景:第一次连接ansible的host里的一堆机器时,会出标题里面的错,解决办法如下:
vi /home/xiangdong/ansible/ansible.cfg
# uncomment this to disable SSH key host checking
host_key_checking = False
—————————————————————————————————————————
提示输入yes 进行确认为将key字符串加入到  ~/.ssh/known_hosts 文件中:
本篇就结合一个示例对其进行下了解。我在对之前未连接的主机进行连结时报错如下:

[root@361way.com ~]# ansible test -a 'uptime'
10.212.52.14 | FAILED => Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host.
10.212.52.16 | FAILED => Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host.
从上面的输出提示上基本可以了解到由于在本机的~/.ssh/known_hosts文件中并有fingerprint key串,ssh第一次连接的时候一般会提示输入yes 进行确认为将key字符串加入到  ~/.ssh/known_hosts 文件中。

方法1:

了解到问题原因为,我们了解到进行ssh连接时,可以使用-o参数将StrictHostKeyChecking设置为no,使用ssh连接时避免首次连接时让输入yes/no部分的提示。通过查看ansible.cfg配置文件,发现如下行:

[ssh_connection]
# ssh arguments to use
# Leaving off ControlPersist will result in poor performance, so use
# paramiko on older platforms rather than removing it
#ssh_args = -o ControlMaster=auto -o ControlPersist=60s
所以这里我们可以启用ssh_args 部分,使用下面的配置,避免上面出现的错误:

ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no
方法2:

在ansible.cfg配置文件中,也会找到如下部分:

# uncomment this to disable SSH key host checking
host_key_checking = False  
默认host_key_checking部分是注释的,通过找开该行的注释,同样也可以实现跳过 ssh 首次连接提示验证部分。由于配置文件中直接有该选项,所以推荐用方法2 。


来自:http://www.361way.com/ansible-cfg/4401.html
我们再来讲讲DSO动态编译的方法:
首先编译安装apache
tar zvxf apache_1.3.27
cd apache_1.3.27
./configure --prefix=/usr/local/apache --enable-module=so \
--enable-module=rewrite --enable-shared=max &&
make &&
make install
so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译
enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。

我尝试在fedora core 3中安装apache 2. 当我解压了apache 2.0.54后使用configure工具并且加入了 --enable-so 或者 --enable-modules=so (两个我都试过了)
去make并且make install了。我希望在/apache2/modules/目录里有各种模块,但是这个文件最后只包含了一个httpd.exp文件。 为什么?哪里出错了?
谢谢


Because you're just telling apache to enable the use of shared modules. You also need to tell it to MAKE the shared modules.

You can use these compile flags:
--enable-mods-shared='headers rewrite dav' (where you list the mods. you want)
--enable-mods-shared=most ( compiles "most" modules )
--enable-mods-shared=all ( compiles all modules )

因为你只告诉了apache可以使用共享模块。你还需要告诉它要MAKE共享模块

你可以使用如下的这些编译标志
--enable-mods-shared='headers rewrite dav' (凡是你想编译的模块都可以写到后边的引号里面,以空格分隔)
--enable-mods-shared=most (编译最多的模块)
--enable-mods-shared=all (编译所有模块)
动态编译还是静态编译的效率问题:http://jackxiang.com/post/4029/
来自:http://m.blog.csdn.net/article/details?id=6977466
我们再来讲讲DSO动态编译的方法:
首先编译安装apache
tar zvxf apache_1.3.27
cd apache_1.3.27
./configure --prefix=/usr/local/apache --enable-module=so \
--enable-module=rewrite --enable-shared=max &&
make &&
make install
so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译
enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。
在某个论坛里找到了解决方法。
package-cleanup --cleandupes
1
然后再
yum install openssh
1
就可以了
地址:
http://bbs.chinaunix.net/thread-4173797-1-1.html

更多:http://www.path8.net/tn/archives/5974
背景:这块儿说是加速,还真是不明白,先扔这儿。
使用redis加速ansible

我们知道,每次使用ansible时候都要收集系统信息,那一步占用挺多时间的,我们可以用redis把GATHERING的时间给省下来。

1. ansible.cfg

[defaults]
gathering = smart
fact_caching = redis
fact_caching_timeout = 86400

2. install redis
mac下面

brew install redis

vim /usr/local/etc/redis.conf
···
daemonize yes
···
/usr/local/bin/redis-server /usr/local/etc/redis.conf

3. install python driver

sudo  easy_install pip
sudo pip install redis

如果redis端口不是6379,可以用fact_caching_connection限定:

fact_caching_connection = 127.0.0.1:6378

来自:http://blog.csdn.net/aca_jingru/article/details/46532063
安装一下iotop程序。
可以通过yum install iotop  安装:


通过rpm -qa |grep iotop 确认是否已经安装好, 直接通过io  tab补全查看有这个命令

使用iotop命令: iotop  -o 直接查看输出比较高的磁盘读写程序。
使用该命令有个条件,Linux内核要高于2.6.20的版本,版本过低则没有此命令:yum install iotop 安装,后:
TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                        
14453 be/4 mysql       3.87 K/s  603.68 K/s  0.00 % 10.13 % mysqld --basedir=/usr/local/mysql --data~.pid --socket=/tmp/mysql.sock --port=3306
    1 be/4 root     1691.07 K/s    0.00 B/s 31.45 %  9.55 % systemd --switched-root --system --deserialize 21
14449 be/4 mysql      11.61 K/s  247.66 K/s  0.00 %  9.53 % mysqld --basedir=/usr/local/mysql --data~.pid --socket=/tmp/mysql.sock --port=3306


LINUX下找出哪个进程造成的IO等待很高的方法 :
在本机测试通过^^
抓哪个进程干坏事前要先停掉syslog
/etc/init.d/syslog stop
echo 1 > /proc/sys/vm/block_dump
dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
1423 kjournald
1075 pdflush
209 indexer
3 cronolog
1 rnald
1 mysqld
不要忘记在抓完之后关掉block_dump和启动syslog
echo 0 > /proc/sys/vm/block_dump
/etc/init.d/syslog start

来自:http://blog.itpub.net/16978544/viewspace-696756/



实践用最新的:
wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz

根据下面这个链接,编译好相关apache需要的包后,

#apachectl –l

看到的prefork.c,说明使用的prefork工作模式。

可以在编译的时候使用#--with-mpm=prefork对应的工作模式名称来修改工作模式:
./configure --help|grep with-mpm
  --with-mpm=MPM          Choose the process model for Apache to use by

加上就好了:
[root@iZ25dcp92ckZ bin]# ./apachectl -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  event.c
[root@iZ25dcp92ckZ bin]# ./apachectl -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  prefork.c



1root两www进程,搞定:
/usr/local/apache2/bin/httpd -k restart
/usr/local/apache2/bin/httpd -k restart
/usr/local/apache2/bin/httpd -k restart
静态:
在使用./configure 编译的时候,如果不指定某个模块为动态,即没有使用:enable-mods-shared=module或者enable-module=shared 这个2个中的一个,那么所有的默认模块为静态。 那么何谓静态?  其实就是编译的时候所有的模块自己编译进 httpd 这个文件中(我们启动可以使用这个执行文件,如: ./httpd & ) ,启动的时候这些模块就已经加载进来了,也就是可以使用了, 通常为:<ifmodule> </ifmodule> 来配置。所以大家看到的配置都是 <ifmodule  module.c>  ,很显然,module.c这个东西已经存在 httpd这个文件中了。

动态:
就是编译的时候,使用enable-module=shared 或者enable-modules-shared=module 来动态编译。  那么什么是动态?  静态是直接编译进httpd中, 那么动态显然就不编译进去了,也就是你启动的时候根本不会加载这个模块, 而是给你一个module.so 文件,你一定要使用 loadmodule 这个语法来加载,这个模块才有效。
From:http://xtony.blog.51cto.com/3964396/836508/

Apache安装apr和apr-util作用:
安装Apache的时候,为什么要安装apr和apr-util呢
要测APR给tomcat带来的好处最好的方法是在慢速网络上(模
拟Internet),将Tomcat线程数开到300以上的水平,然后模
拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会
用满,以后的请求就只好等待。但是配上APR之后,并发的线
程数量明显下降,从原来的300可能会马上下降到只有几十,
新的请求会毫无阻塞的进来。
APR对于Tomcat最大的作用就是socket调度。
你在局域网环境测,就算是400个并发,也是一瞬间就处理/传

输完毕,但是在真实的Internet环境下,页面处理时间只占
0.1%都不到,绝大部分时间都用来页面传输。如果不用APR,
一个线程同一时间只能处理一个用户,势必会造成阻塞。所以
生产环境下用apr是非常必要的。

  注:APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
    在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用APR而已。

    一般情况下,APR开发包很容易理解为仅仅是一个开发包,不过事实上并不是。目前,完整的APR实际上包含了三个开发包:apr、apr-util以及apr-iconv,每一个开发包分别独立开发,并拥有自己的版本。

adapt from:http://wgkgood.blog.51cto.com/1192594/432272
在phpMyAdmin中提示“Configuration of pmadb… not OK”,如下图所示:
“Configuration of pmadb… not OK”解决办法,这个问题不大,不影响使用,仅仅是一个警告。如果不想总是看见这个警告,可以用如下办法来解决。

(1)初始化phpmyadmin数据库
cd /Library/WebServer/Documents/phpmyadmin/sql
mysql -u root -p < create_tables.sql
Enter password:

mysql> CREATE DATABASE phpmyadmin;
Query OK, 1 row affected (0.02 sec)

mysql> use phpmyadmin
Database changed
mysql> source /data/htdocs/dev.XXX.com/phpmyadmin/sql/create_tables.sql


(2)创建数据库用户
CREATE USER 'pma'@'localhost' IDENTIFIED BY 'pmapass';
GRANT ALL PRIVILEGES ON `phpmyadmin`.* TO 'pma'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;


(3)配置config.ini.php文件
vim config.inc.php
/**
* phpMyAdmin configuration storage settings.
*/

/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';    
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';

参考:
http://wlb.wlb.blog.163.com/blog/static/46741320158199711556/
http://bbs.vpser.net/thread-13962-1-1.html
1、打开【开始菜单】进入设置后,进入2的系统(显示、通知、应用、电源)。
2、进入【系统设置】
3、点击”系统选项“
4、选择【通知和操作】
5、选择在任务栏上显示哪些图标
6、控制显示的应用图标【开关】
7、设置成功,任务栏显示应用图标。

摘自 :http://zhidao.baidu.com/link?url=sm3gwUbd7RkQUlspvGUNpzipEaR7fTxXmcw_D0UqAEHT0pb_ThhEkJhdTfJ8OpdMWUj48gb8PR7jQ6d-NsFqyX_NRY2GDD97CBgrkkSujn7
分页: 34/271 第一页 上页 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 下页 最后页 [ 显示模式: 摘要 | 列表 ]