[root@bogon ~]# chage -E 2010-09-30 xie
     [root@bogon ~]# chage -l xie
Last password change                                    : Jun 20, 2010
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Sep 30, 2010
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

设置某个用户的密码过期时间可以用usermod -e来设置,如果要统一设置用户的密码过期时间,那么就要修改/etc/login.defs里面的PASS_MAX_DAYS,比如修改所有用户的密码过期时间是30天:
  PASS_MAX_DAYS 30
  如果这个值是99999,那么表示密码永不过期。

阅读全文
ipcrm -q 0
-q      输出有关信息队列(message queue)的信息

1. What command do you run to check the shared memory allocation on a system?
ipcs
2. What command do you run to manually deallocate shared memory on a system?
ipcrm
http://www.52rd.com/Blog/Detail_RD.Blog_wqyuwss_6519.html

取得ipc信息:
ipcs [-m|-q|-s]
-m     输出有关共享内存(shared memory)的信息
-q      输出有关信息队列(message queue)的信息
-s      输出有关“遮断器”(semaphore)的信息
# ipcs -m
IPC status from <running system> as of 2007年04月10日 星期二 18时32分18秒 CST
T         ID      KEY        MODE        OWNER    GROUP
Shared Memory:
m          0   0x50000d43 --rw-r--r--     root     root
m        501   0x1e90c97c --rw-r-----   oracle      dba
#ipcs |grep oracle|awk   '{print $2}
   501

删除ipc(清除共享内存信息)
ipcrm -m|-q|-s shm_id
%ipcrm -m 501
for i in `ipcs |grep oracle|awk   '{print $2}'`
do
ipcrm -m $i
ipcrm -s $i
done

ps -ef|egrep "ora_|asm_"|grep -v grep |grep -v crs|awk '{print $2}' |xargs kill -9

来源:http://www.cppblog.com/doing5552/archive/2010/07/12/120126.html

在: http://hi.baidu.com/doyoueat/blog/item/2593153a88604b3371cf6c65.html
看到有兄弟肜: readelf -s libcal.so ,于是查了一下这个命令,摘录如下:

阅读全文
    在搬家时,留意到工人最先安置大的物品,再中等物体,然后是小物体,这生动说明了这是人们理所当然,说明小东西能以无数方法组合在一起去完成一项任务,
,但是如果你只拥有小物件,你也会因此获得最大的灵活性,可也得付出代价。你拥有小物件越多,操控它们就越难。管理这些小物件便成了一个严重的问题。我们的程序软也遇到类似的问题,
解决方法只有一个,有人强制用户于模块之间的桥梁,以弥补日益扩大的差距,但实际上并没有将杂乱的代码和底层模块联系在一起,而是采用小程序块或者层来应对这个差距。---来自:第6章节《Linux/Unix设计思想》
对于一个系统管理员来说root密码控制着相当多的安全数据。如果忘记了root密码就需要及时的找回。下文中就为大家介绍CentOS–root密码忘记的解决办法。希望这对记性的系统管理员来说有所帮助。阅读全文
Unison是一款跨平台的文件同步工具,不仅支持本地对本地同步,也支持通过SSH、RSH和Socket等网络协议进行同步。更棒的是,Unison支持双向同步操作,你既可以从A同步到B,也可以从B同步到A,这些都不需要额外的设定。

Unison与一般的Linux软件一样,都是有一个核心的命令行组成。那些命令可能会令上手比较困难。不过幸运的是,Unison有基于GTK+的图形版本:

安装方法如下:
[root@localhost packages]# wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

–2012-04-25 17:31:03– http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
正在解析主机 apt.sw.be… 193.1.193.67
正在连接 apt.sw.be|193.1.193.67|:80… 已连接。
已发出 HTTP 请求,正在等待回应… 200 OK
长度:12700 (12K) [application/x-redhat-package-manager]
正在保存至: “rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm”
100%[===========================================================>] 12,700 22.0K/s in 0.6s
2012-04-25 17:31:06 (22.0 KB/s) – 已保存 “rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm” [12700/12700])

[root@localhost packages]# rpm -Uvh rpmforge-release*rpm

warning: rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Preparing… ########################################### [100%]
1:rpmforge-release ########################################### [100%]
[root@localhost packages]# yum install unison
Loaded plugins: aliases, changelog, downloadonly, fastestmirror, kabi, presto, security, tmprepo,
: verify, versionlock
Loading support for CentOS kernel ABI
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* rpmforge: fr2.rpmfind.net
* updates: mirrors.163.com
rpmforge | 1.1 kB 00:00
rpmforge/primary | 1.5 MB 00:05
rpmforge 4304/4304
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package unison.x86_64 0:2.40.63-1.el6.rf will be installed
–> Finished Dependency Resolution
Dependencies Resolved
=====================================================================================================
Package Arch Version Repository Size
=====================================================================================================
Installing:
unison x86_64 2.40.63-1.el6.rf rpmforge 585 k

Transaction Summary
=====================================================================================================
Install 1 Package(s)
Total download size: 585 k
Installed size: 2.1 M
Is this ok [y/N]: n^H
Is this ok [y/N]: y
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 585 k
unison-2.40.63-1.el6.rf.x86_64.rpm | 585 kB 00:02
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : unison-2.40.63-1.el6.rf.x86_64 1/1
Installed:
unison.x86_64 0:2.40.63-1.el6.rf
Complete!

[root@localhost packages]# unison

Usage: unison [options]
or unison root1 root2 [options]
or unison profilename [options]

For a list of options, type “unison -help”.
For a tutorial on basic usage, type “unison -doc tutorial”.
For other documentation, type “unison -doc topics”.

[root@localhost packages]#

具体配置参考:
http://zhumeng8337797.blog.163.com/blog/static/10076891420119173441499/
法一:

1.安装expect

yum install expect
2.命令行使用

mkpasswd -l 32 -d 5 -C 5
以上命令生成一个32位的密码,至少包含5个数字和5个大写字母,这么强悍的密码,慢慢破解吧:)



3.编写脚本,批量生成30个密码

vi pass.sh
#!/bin/bash

i=1
echo "########Power by gaojinbo.com##########" >/tmp/passwd.txt
while [ $i -le 30 ];do
/usr/bin/mkpasswd -l 32 -d 5 -C 5 >>/tmp/passwd.txt
let i+=1
done
exit;
以上脚本将生成的密码放在/tmp/passwd.txt文件中

完成!
转自:http://gaojinbo.com

法二:



1) 工具说明

Linux下的密码生成工具.


2) 下载安装

下载: http://sourceforge.net/projects/pwgen/
安装:
# mkdir -p /orahome/wangnc/pwgen
# cd /orahome/wangnc/pwgen
# rz (上传安装包pwgen-2.06.tar.gz)
# tar zxvf pwgen-2.06.tar.gz && cd pwgen-2.06
# ./configure && make && make install
...
mkdir -p /usr/local/bin /usr/local/man/man1
/usr/bin/install -c pwgen /usr/local/bin/pwgen
/usr/bin/install -c -m 644 ./pwgen.1 /usr/local/man/man1/pwgen.1
以上来自:http://www.net527.cn/a/caozuoxitong/Linux/9545.html
Linux密码生成器:参考一下,http://www.examw.com/linux/all/120674/index.html
实践OK:
————————————————
1)history -c  //是把Linux下的/root/.bash_history  全给清了,实现不保存,作为黑客是不地道的。
再从其他终端倒腾回去:
history |awk -F" "  '{if(NR>0){$1="";print $0}}'|grep -v "multepollserver" > /root/.bash_history

2)不留痕迹的办法,把指向给修改到/dev/null下:
[root@localhost ~]# echo $HISTFILE
/root/.bash_history
[root@localhost ~]# HISTFILE=/dev/null
[root@localhost ~]# echo $HISTFILE    
/dev/null

[root@test ~]# vi /root/.bash_history
对前面的:history |awk -F"  " '{print $3}' > /root/.bash_history 删除,退出即可。



请教一个关于linux下不保存命令历史记录的问题,不需要在任何文件中设置:
ssh 登陆之后,在命令行下运行
set HISTIGNORE=*
或者
export HISTIGNORE=*
以后的命令就不会被保存了。

用 history -c 清空历史命令.
在.bashrc的最后行追加
unset HISTFILE
这样做终端历史记录还是保存到了.bash_history文件中,只是新打开的终端不能直接用上键调用而已,用"cat .bash_history"仍能查看历史记录
cat .bash_history 看到的历史记录是 unset HISTFILE 之前保留的命令.
unset HISTFILE 之后的命令并没有保留.
用 history -c 清空历史命令.

阅读全文
Global Options =>Terminal NSI Color
护眼绿色:
把“色调”的参数设置为85,
把“饱和度”参数设置为90,
把“亮度”参数设置为205
[vim]移动一行或一段代码 ,[Alt]+[j] 或[Alt]+[k] 可控制代码向上、向下移:


把上面代码放到vim的配置文件_vimrc: vi /root/.vimrc.

下面这段代码实现的效果是(secureCRT确实有问题):
在普通模式 或可视模式下选择一段代码,同时按[Alt]+[j] 或[Alt]+[k] 可控制代码向上、向下移。

注,下面这段代码是来自网络。。。,没实践。
有兄弟留言说Alt键有问题,用secureCRT确实有问题,后修改为Control+j,Control+k可控制代码向上、向下移:



在文件中快速查找光标处一样的单词:
把光标挪动到要在打开的文本里查找的单词上,后按:shift + 3,也就是#号即可。



—————————————vim一下知道所在行的函数名设置方法—————————————————————
在 .vimrc里添加:


按一下 f 键就能显示函数名字。

来自:http://blog.csdn.net/caspiansea/article/details/42570311


——————————————————————————————————————————————————————
键表 |key-notation|
<k0> - <k9> 小键盘 0 到 9 *keypad-0* *keypad-9*
<S-...> Shift+键 *shift* *<S-*
<C-...> Control+键 *control* *ctrl* *<C-*
<M-...> Alt+键 或 meta+键 *meta* *alt* *<M-*
<A-...> 同 <m-...> *<A-*
<t_xx> termcap 里的 "xx" 入口键


参考:
http://blog.csdn.net/riag/article/details/3469464
http://hi.baidu.com/drmingdrmer/item/5b9f5e354efbcbb8633aff0c

[实践OK]Vi注释多行的方法,附带整个代码缩进:
http://jackxiang.com/post/4298/
————————————————————————————————————————————————————————
有兄弟回复说没有用alt,在SecureCRT下这个alt好像确实是不能用的跑到文件(F)去了,不光是这个alt,还有ctrl:
http://blog.csdn.net/maojudong/article/details/6324757
SecureCRT突然假死的问题(Ctrl+S)
SecureCRT作为著名的SSH客户端,经常用于登陆远程服务器。在上面编辑文本,特别是用vi打开两个文本,并且需要切换时,很容易出现卡死的现象,不能接受任何的键盘输入。很是郁闷。以前每次遇到这个问题,我只有关掉那个session重新打开一个。这次又遇上,是在不能忍,试着解决一下。

仔细观察会发现,在vi下切换文本“ctrl+w+w”时,很容易输入成”ctrl+s”。随便拿一个session试试就发现,果然是ctrl+s在作怪。只要输入这个,就会卡死。搜索了一下,发现果然是有原因的:
CTRL-S and CTRL-Q are called flow-control characters. They represent an antiquated way of stopping and restarting the flow of output from one device to another (e.g., from the computer to your terminal) that was useful when the speed of such output was low. They are rather obsolete in these days of high-speed networks. In fact, under the latter conditions, CTRL-S and CTRL-Q are basically a nuisance. The only thing you really need to know about them is that if your screen output becomes “stuck,” then you may have hit CTRL-S by accident. Type CTRL-Q to restart the output; any keys you may have hit in between will then take effect.

CTRL-S and CTRL-Q are called flow-control characters. They represent an antiquated way of stopping and restarting the flow of output from one device to another (e.g., from the computer to your terminal) that was useful when the speed of such output was low. They are rather obsolete in these days of high-speed networks. In fact, under the latter conditions, CTRL-S and CTRL-Q are basically a nuisance. The only thing you really need to know about them is that if your screen output becomes “stuck,” then you may have hit CTRL-S by accident. Type CTRL-Q to restart the output; any keys you may have hit in between will then take effect.ctrl+s是一个古老的shell控制键,在输入ctrl+q就可以恢复了

【转自 http://xok.la/2009/09/securecrt_ctrl_s.html】

被这个问题困扰好几次了,CTRL+S,CTRL+Q,很好,以后就不需要重新开一个了。
————————————————————————————————————————————————————————
<转载>vim map nmap:
http://www.cnblogs.com/lq0729/archive/2011/12/24/2300189.html



1)回到最近修改的位置:
还有 %(跳转到与之匹配的括号处),`.(跳转到最近修改过的位置并定位编辑点),'.(跳转到最近修改过的位置但不定位编辑点)这三个命令也非常重要,在 Vi/Vim 中灵活使用会极大提高效率。% 除用于光标移动之后,还可用于检测源码中各种括号的匹配情况。
实践:tab键上面那个`加一个点,的确能跳转到最近修改的位置~ 再就是双引号这个键的单引号按一下,' 再点按点这个键盘,一样的效果感觉,但的确是相当好使,因为你在编码时还会在修改的同时会看其它部分的代码,但怎么快速回到最后修改的位置呢?该命令就很好使用。
摘自:http://www.ibm.com/developerworks/cn/linux/l-cn-tip-vim/

2)回到倒数第二次修改的位置:
Esc下面这个按键,连续按两次,就回到倒数第二次修改的位置。
————————————————————————————————————————————————————————
应用场景:  
在每次退出一份文件后再重新打开该文件时,希望光标停留在当时退出的地方;也就是说当我程序写到hello.c的第100列时突然有事必须关电脑了,那在我下次打开电脑以vim打开hello.c, 希望光标还是停留在第100列,怎么办?


解决方案就是在.vimrc里面加上这一行即可:
au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif  

链接:http://blog.longwin.com.tw/2012/09/vim-last-read-line-2012/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+tsungblog+(Tsung%27s+Blog)



tar -zcvf jackxiang.com.2015.11.02.tar.gz jackxiang.com --exclude=jackxiang.com/data/logs


tar zcvf fd.tar.gz * --exclude=file1 --exclude=dir1
注意:

1、--exclude=file1 而不是 --exclude file1

2、要排除一个目录是--exclude=dir1而不是--exclude=dir1/

也可以在父目录打包

tar zcvf fd.tar.gz pardir --exclude=pardir/file1 --exclude=pardir/dir1

http://www.cnblogs.com/ShepherdIsland/p/3715902.html


在对某个目录进行压缩的时候,有时候想排除掉某个目录,例如:

如果123目录下有3个子目录,aa、bb、cc。

我现在想只对aa和bb目录打包压缩,命令如下:
tar -zcvf 123.tar.gz --exclude=cc 123

多个文件 用多个 –exclude=

解压的时候直接用
tar zxvf 123.tar.gz
实践如下:
   最近的一个项目需要PHP与SVN交互,最先想到的解决方案是用PHP的SVN扩展,搜了已经有PHP的SVN扩展,这两天也去http:/pecl.php.net/package/svn 上面下载了SVN扩展的源码.【备注:比如我看到php的subversion扩展是有的, 不过手册里写的却是试用阶段. 应该不如python的成熟. 何况...我觉得这种事情确实应该让python干, 就像web的事情应该让php干一样.http:/blog.csdn.net/akara/article/details/5566524】

为PHP增加SVN扩展:
http:/www.swordair.com/blog/2010/01/85


Installing shared extensions:     /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/ successed
至此,终于通过编译,并在完成的最后提示在php.ini中增加一行:

版本比较差异,这样导出差异文件,后覆盖线上即可:
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di

svn diff -r 版本号1:版本号2  工作拷贝文件地址 >  保存差异文件
例:
svn diff -r PREV:COMMITTED  ./project/trunk/helloworld.c  > patch.c
写一个脚本测试一下,成功。
----------------------------------------------------------------------------------------------------
svn diff 比较两个目录:
svn diff --summarize http://rep_url/tags/proj1_090214 http://rep_url/trunk/proj1 >diff.txt
这个命令比较了 proj1_090214 和 proj1 的差异,并将差异信息输出到文件 diff.txt
summarize   选项的含义是只显示结果的概要,不显示文件的具体差异。
---------------------------------------------------------------------------------------------------
这样也成:
svn diff -r 3797:3788 --summarize https://tc-svn.XXXX.com/web/CCCC/web_aXc_proj/trunk  








下面是给svn设置用户名密码来访问,特别是ssl这块否则在终端是可以的,但是在apache加载后会报错:


通过svn list 导出该目录下所有的文件。
svn list -R  http:/192.168.1.11/svn/reponame/J2EE11 | wc -l

http:/192.168.1.11/svn 是 svn server 的root  /reponame 是库 /J2EE11 是路径

这样会包括 目录

过滤目录
svn list -R  svn_server_addr/svnrepo/folder  | grep -v \/$ | wc -l

请在 linux 下运行 win 平台可以装cygwin .
获取目录的函数实践:

查询版本下的注释:

Please not that using svn_log without giving revisions is much, much slower then with revisions. Examples:

$ time php -r "svn_log('http://localhost/svn/shopadsl');"

real    0m2.140s
user    0m0.140s
sys     0m0.000s

VS

$ time php -r "svn_log('http://localhost/svn/shopadsl', 0, 45);"

real    0m0.063s
user    0m0.024s
sys     0m0.016s

默认svn在linux下的密码位置参考:http:/jackxiang.com/post/4512/

更多使用方法:http:/www.php.net/manual/en/function.svn-checkout.php
重启Apache
[plain] view plaincopy
/etc/init.d/apache2 reload  
或php-fpm 重启:
[plain] view plaincopy
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`  

发现在Apache启动后会报错,解决方法如下:
If you having trouble with certificate verification like this:

PHP Warning:  svn_log(): svn error(s) occured 175002 (RA  layer request failed) OPTIONS of 'https://example.com/your/repos/path': Server certificate verification failed: issuer is not trusted

Try this two steps:

1. Run

"svn log https://example.com/your/repos/path"

on the commandline and permanent accept the certificate by typing "p" when asked.

2. Use the following settings for svn_auth_set_parameter() before calling other svn functions:


当然,也可以直接用PHP的Popen:
popen()这个函数, 看来echo t | svn ci ...那些命令可以用另外的方式来解决了

附转:

popen()函数打开一个进程管道来执行给定的命令,返回一个文件句柄。既然返回的是一个文件句柄,那么就可以对它读和写了。在PHP3中,对这种句柄只能做单一的操作模式,要么写,要么读;从PHP4开始,可以同时读和写了。除非这个句柄是以一种模式(读或写)打开的,否则必须调用pclose()函数来关闭它。


常用操作
1.查看最近3个版本日志
svn log [PATH] -v -l3

2.查看某两个版本,用来对比
svn log -r 14:15

3.日志放入文件
$ svn log -r 14 > mylog
$ svn log -r 19 >> mylog
$ svn log -r 27 >> mylog
$ cat mylog

或者
$ svn log –incremental -r 14 > mylog
$ svn log –incremental -r 19 >> mylog
$ svn log –incremental -r 27 >> mylog
$ cat mylog

参考:http:/www.php.net/manual/en/function.svn-checkout.php
你也可以参考:http:/blog.csdn.net/dragon8299/article/details/6689685
http:/www.swordair.com/blog/2010/01/85
http:/biancheng.dnbcw.info/win2003/377268.html


如果configure报下面的错
checking for svn includes... configure: error: failed to find svn_client.h
安装libsvn-dev包:CentOs应该也有对应的包
apt-get install libsvn-dev


解压缩后 切换到安装目录 执行/opt/lamp/php/bin/phpize
然后:./configure –with-php-config=/opt/lamp/php/bin/php-config
出现错误:checking for svn includes… configure: error: failed to find svn_client.h
解决办法:添加subversion服务端的目录 –with-svn=/usr/local/subversion
./configure –with-php-config=/opt/lamp/php/bin/php-config  –with-svn=/usr/local/subversion

make出错:
/usr/bin/ld: cannot find -lsvn_client-1

ok




===================================================================
在Tlinux的64位机器上折腾步骤记录,我艹,比Cenots折腾了更多时间来整这个玩意,真是步步惊心啊,如下:
第一步:编译,参数如下 ,这个参数都折腾了老半天啊。
./configure --with-php-config=/usr/local/qqwebsrv/php/bin/php-config  --with-svn=/opt/CollabNet_Subversion --with-svn-apr=/usr/local/apr
中间就会提示找不到什么.h啊:checking for svn includes... configure: error: failed to find svn_client.h,于是得找个这个h的包放在里面去才行。
root@10.12.21.108:~/software/svn-1.0.2# ls /usr/local/include/
subversion-1  subversion-1.tar.gz

第二步:/usr/local/apr-util/include/apr-1 这个Include进Makefile里。
修改Makefile: 39行左右
39 INCLUDES = -I/usr/local/qqwebsrv/php/include/php -I/usr/local/qqwebsrv/php/include/php/main -I/usr/local/qqwebsrv/php/includ        e/php/TSRM -I/usr/local/qqwebsrv/php/include/php/Zend -I/usr/local/qqwebsrv/php/include/php/ext -I/usr/local/qqwebsrv/php/in        clude/php/ext/date/lib -I/usr/local/include/subversion-1 -I/usr/local/apr/include/apr-1 -I/usr/local/apr-util/include/apr-1         -DLINUX=2 -D_REENTRANT -D_GNU_SOURC
加入:/usr/local/apr-util/include/apr-1
-I/usr/local/apr/include/apr-1 -I/usr/local/apr-util/include/apr-1

第三步:出现老是什么 cannot find -lsvn_client-1  ,做软链接后,出现下一个,太多了,于是否,如下:
全拷贝过去得了,注意:/opt/CollabNet_Subversion 这个是在网上找的整个包进行安装的SVN,是Rpm包。
cp -Rf /opt/CollabNet_Subversion/lib/*  /usr/lib/
make
make install
root@10.12.22.108:~/software/svn-1.0.2# make install
Installing shared extensions:     /usr/local/qqwebsrv/php/lib/extensions/


第四步:因发现在加入这个扩展后,出现:libsvn_client-1.so.0 cannot open shared object file no such file or directory
root@10.12.22.108:/# /sbin/ldconfig
/sbin/ldconfig: libraries libsasl2.so.2.0.21 and libsasl2.so.2.0.23 in directory /usr/lib have same soname but different type.
/sbin/ldconfig: libraries libgz.so.1 and libz.so.1.2.5 in directory /usr/lib have same soname but different type.
ldconfig: /usr/lib/libsvn_client-1.so.0 is not a symbolic link
根据上面的提示,于是删除掉这个文件:
rm -Rf  /usr/lib/libsvn_client-1.so.0
上面两个不管它,就这样就好了。

第五步(经实践是多余的):
查找网上文章:http://www.cnblogs.com/amboyna/archive/2008/02/06/1065322.html
vi /etc/ld.so.conf
加上:

再运行这个PHP的SVN扩展,好了。前面的libsasl2,libgz,删除高版本的,做个软链接就Ok了。

但是TLamp有问题了,Apache出现了:
[codes=html]
Apache2 has detected a syntax error in your configuration files:
apache2: Syntax error on line 142 of /etc/apache2/httpd.conf: Cannot load /usr/lib64/apache2/modules/mod_ssl.so into server: /usr/lib64/apache2/modules/mod_ssl.so: undefined symbol: SSL_CTX_set_client_cert_cb
[codes=html]
于是,自己重新下了一个Apache,PHP5.3.11等,重新编译后,这个问题也就没有了,直接访问SVN扩展输出Ok了,还以为需要用system或者popen去打开呢,看来用不着了。

为了安全把一些函数都给屏蔽了,在php.ini里可以看到:
[codes=html]
disable_functions = passthru,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,system,exec
[codes=html]
因只为了这个svn扩展,PHP5.3.11的编译也很简单,如下:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd-2.0.59/bin/apxs   --enable-sockets --enable-mbstring

原本想加入其它的,现在想来,没有必要加上什么Mysql,Pdo,Mbstring等等。
(./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd-2.0.59/bin/apxs  --with-pdo=shared --with-pdo-mysql=/usr/local/mysql --enable-sockets --enable-mbstring)

EOF
近来PHP的一个扩展爆出一个libpng的漏洞,我记录了一下: http://jackxiang.com/post/4975/ ,于是就去那个网站下载最新版本的libpng:
http://libpng.sourceforge.net/ 没有想到下载了一个7z结尾的文件,lpng159.7z
于是否就问了一下Google大神。Linux下的7Zip的解决方案是 p7zip ,于是对应的两用下载方法。
1.万能的Yum
[root@ hostname ~] #
[centos6.2好像不行,不知道还是yum源头的问题]

2.源代码下载编译
下载地址:http://p7zip.sourceforge.net/
Wget以下Url:
http://downloads.sourceforge.net/project/p7zip/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fp7zip%2F&ts=1330178243&use_mirror=nchc

当然,这里不会出现乌龙的7zip的源码包。这里出现的是tar.bz2 包。
1.解压
2.安装

在进行make install 命令的时候提示No such file or directory,则使用 sudo make install 命令。

3.使用,解压7Zip包
1 [root@ hostname ~] # 7za x lpng159.7z

.......
Everything is Ok

Folders: 21
Files: 200
Size:       3011760
Compressed: 497174
后面就是重新编译一次以替换掉这个旧的版本即可。
写给自己,So,

场景: 线上代码要升级,此次代码要上线时,但线上和线下的某几个文件不一样,不能直接覆盖,需要对比,升级文件通过svn导出(包含文件夹导出),而线上用sz(可sz不能帮助建立文件的目录,导出都在一个目录里),于是否想通过Beyond Compare做文件夹的比较。
问题: 如何把线上的导出的部分需要覆盖的文件在导出后再通过建立文件夹和线上结构一样?【要是sz能帮助在导出时就按文件夹存放好就好了,可好像没有看到有这个选项】
核心: 如何重建线上需要覆盖的文件,好让Beyond Compare比较两个文件夹。
步骤: 两个步骤
       (1)摘取线上的需要覆盖的文件名下载到线下一个文件夹中。
  把线下svn要覆盖的文件导出到目录后用find命令:find . -type f 找出所有的文件,该命令的结果已经包含了目录和文件。
  把这些文件名,前面加上sz及可导出到线下的一个文件夹中。


       (2)建立和线上一样的目录并拷贝对应文件到目录中
       建立和线上一样的目录结构:对线下svn导出的文件(注意是:export才包含文件夹,而save revision to这个的导出比较乱。参考:http://jackxiang.com/post/4847/)
       用find命令找出文件夹:
       find . -type d
       再在find结果的内容前面添加mkdir  ,后到线上导出的文件目录下运行这个mkdir 的命令:在线上代码的文件夹下生成目录。
  (3)构造cp a.php  abc/a.php 类似并运行。
  在线下svn包含目录的文件中,运行如相命令,生成文件a.txt:
  
  以上文件是一个文件名。下一步就是要一个 abc/a.php ,这个好办,直接:find . -type f 就能搞定,为b.txt,
  Linux提供了一个: paste  命令:
  
   结果如下:
   a.php  abc/a.php
  
   再vim或者awk在前面加一个正则替换实现:cp a.php  abc/a.php,即可,再到线上文件下载的目录下运行这个生成好的脚本,也就完成了把原来的文件放到对应的目录下。
我想最多的可能是当vmware在重新安后因系统重装,导致在共享上网时出现原来的Linux上的IP和现在共享分配的IP不一样,导致上不了网的问题,于是否,你可能需要修改Vmware里的配置才行,于是得查看这个Url: http://jackxiang.com/post/5743/

vmware下redhat linux 9使用NAT共享主机IP上网 收藏
VMware提供:桥接,Host Only和NAT三种连网方式. 我个人认为NAT方式较简单,用它来共享主机的IP,适合那种每台主机只允许一个IP的情况。具体设置如下:

1、VMware网络连接选择的是NAT方式。
2、VMware网络设置里的NAT项中查看VMnet8,NAT的网关设置为192.168.X.2。
3、在windows中,查看所有的网络连接,你应该发现除了原有的网卡之外,又多了Vmnet1和Vmnet8。vmnet1是hostonly的接口,而Vmnet8是就是我们要使用的NAT的网络接口。
4、在windows主机上用ipconfig查看VMnet8的IP地址,一般是192.168.X.1。此时VMnet8的设置应该是自动获取IP,现在改成静态IP,并把此IP直接填入VMnet8里,不设网关。
6、在linux下把网卡IP设置成和VMnet8一个网段的IP(192.168.X.Z/255.255.255.0)
7、在linux下网关设置成刚才查看的那个IP192.168.X.2即可。
8、在linux下DNS和windows主机的一样。
9、在linux下运行命令service network restart重新启动linux的网络服务。
10、在linux下ping 192.168.x.1,在windows下ping 192.168.x.z 成功后证明主机和虚拟机已经可以互相访问了,现在也可以实现虚拟机共享主机ip上网了。


现在我们做一下假定,宿主机上有三块网卡,rl0网卡(10.0.0.5)接入真实的网络10.0.0.0/24(取个名叫rnet0子网)、vmnet1网卡(10.0.1.1)接入vmnet1子网(host-only)(10.0.1.0/24)、vmnet8网卡(10.0.8.1)接入vmnet8子网(nat)(10.0.8.0/24)。

宿主机连入rnet0、vmnet1、vmnet8三个子网,所以它和三个子网都是通的。

rnet0和vmnet1分属两个不同网段的子网,在不做其它设置的情况下它们是不能互访的;宿主机属于vmnet1子网的一部分,它是可以访问vmnet1子网的。这就是vmnet1子网为什么被叫做host-only。

rnet0和vmnet8也分属两个不同网段的子网,但vmnet8子网默认被配置了一台nat服务器(ip为10.0.8.2),这时vmnet8子网中的其它虚拟机只要将自己的网关设为那台nat服务器的ip(10.0.8.2)就可以访问rnet0子网。我的疑问在于nat为什么被配置在10.0.8.2而不是10.0.8.1,vmnet8子网中的机器将自己的网关设为10.0.8.2而不是10.0.8.1,这样的情况下是怎么和rnet0子网连通的,我想知道这个拓扑是怎样的?这个nat又是如何配置的?
特别注意:
但是如果因优化软件把Vmware的后台启动服务给关闭了,也是不行的,服务名如下:
VMware Agent Service
VMware Authorization Service
VMware DHCP Service
VMware NAT Service
阅读全文
(0)windows换行变Linux换行:
    在项目上右键后选:新的文本文件行定界符选 第一个:Unix即可。

(1)昨天由zend studio 9.0.0升级到zend studio 9.0.1,发现提并到线上的代码通过Vim查看时都有了:^M,于是发现这是一个Windows的格式,得把换行格式设置 UNIX,设置方法:
本地使用window平台,服务器使用linux,有时候难免会出现在程序在本地window上运行正常,到linux上出现报错,而问题的原因,可能就是这个换行格式的不兼容引起的,window下的换行是'/r/n',而linux/unix下是'/n',下边说说设置方法:

Window->Preferences->General->Workspace [右下角区域]
New text file line delimiter: radio buttons for 'Default' or 'Other' with a dropdown including Unix (yay),选Other:Unix 即可。

同时,你也可以在它旁边设置默认的PHP编码:如修改为Utf8等。

(2)附zend studio 9.0.1 如何取消显示换行符和空格符,有这个换行符和空格符显示反而不美观:
Windows>Preferences>General>Editors>Text Editors 取消Show whitespace characters即可。


(3)自动换行实现:Zend studio9.0.1实践成功。
Zend Studio默认没有自动换行这一功能,我使用的是V9.0.1,在 http://ahtik.com/eclipse-update 有其组件实现自动换行。
实现:菜单"help" –> "Install New Software…",然后点击"Add"按钮,接着填写上Name(随便命名),Location(即http://ahtik.com/eclipse-update ),接下按着提示操作,即可安装成功。
最后重启Zend Studio,在编辑工作区,点上右键,选上“Virtual Word Wrap”便实现文字过长超过编辑区时自动换行了。

自动换行评论:
这个功能目前zend studio只能靠一款插件来完成,随着科学技术的不断进步,zend studio自动换行将越发的显得鸡肋,就我工作的电脑来说,1680×1050的分辨率,看代码似乎一行都是可以看完的(当然我只开了zend studio左侧的php explorer和outline),显示器还会越来越大的,而且我很早的在我的电脑分辨率还是1024的时候就已经养成习惯,太长的字符串或数组会分行来写,所以,也不知道zend公司那帮人用的显示器有多大,他们就是不考虑自动换行,说句心里话,我还真不明白自动换行会带来什么好处。

原因是由于使用swt中的Text组件在setText()中使用的"\n",再通过getText()获取后在win系统上被自动转为"\r\n”,而linux中对换行符的定义为"\n”,故发送失败.而且对于定长报文而言,也引起长度变化.
win:“\r\n”,0x0D0A;
linux:“\n”,0x0A;
mac:"\r",0x0D;
分页: 37/40 第一页 上页 27 28 29 30 31 32 33 34 35 36 37 38 39 40 下页 最后页 [ 显示模式: 摘要 | 列表 ]