Application - 拳不离手、曲不离口 - Speak with your code, my friend, not your word.

vsftpd

简介:linux下常用的ftp服务器。

足迹:

1,安装并配置vsftpd,使得局域网内的其他电脑可以通过(z1)(z2)(z3)(z4)

 

障碍:

z1:如何安装

参考http://www.noob2geek.com/linux/setup-vsftpd-debian-ubuntu/

z2:ftp的目录是什么?

 

# cat /etc/passwd | grep ftp

 

通常是/var/ftp

z3: 碰到LIST Error: Connection timed out Error: Failed to retrieve directory listing

没有开启VSFTPD 的 Passive Mode。

 

/etc/vsftpd/vsftpd.conf
未尾添加:
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40080
pasv_promiscuous=YES

/etc/sysconfig/iptables
加入:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 40000:40080 -j ACCEPT

重启iptables & vsftpd,就可以使用pasv模式了。

关于passive mode,参考http://jackiechen.blog.51cto.com/196075/193883

z4:出现226 Transfer done (but failed to open directory).

selinux引起的,除非你有明确的需求要用selinux或者闲得蛋疼,否则装完centos后的第一件事就是把selinux给disabled掉。参考http://www.thegeekstuff.com/2009/06/how-to-disable-selinux-redhat-fedora-debian-unix/

Centos

认识:centos是常用的服务器linux操作系统,往往我们在上面搭建LAMP。

足迹:

1,下载镜像,安装centos6.2(z1)

2,   刻成光盘,光驱启动安装(z2)(z3)

3,安装选择web server版本(z4)

4,装完后搭建起LAMP环境(z5)(z6)

5,安装ftp服务器(z7)

6,安装网站(z8)

7,安装git服务器(z9)

障碍:

z1:下载哪个版本?

2dvd版本

z2:优盘安装可以吗?

很麻烦,刻盘安装保险。 

z3:对机器的要求?

越常用越好,最好是名牌主板,显卡网卡声卡全部集成。特别注意不要搞什么显卡交火、无线网卡、集成RAID、独立甚至外置声卡这些东东,linux服务器不需要这些。

z4:应该安装哪个版本?

无所谓,既然是用来做LAMP服务器,自然web server合适一点,其它的也行,反正后面可以自己安装package,而且不会冲突,已经安装的不会重复安装。

z5:LAMP安装步骤

参考 http://library.linode.com/lamp-guides/centos-6

z6:LAMP安装完后就能在外网访问吗?

有可能centos的防火墙没有开启80端口,默认只会开通22端口(ssh),所以需要开通一下,开通方法

 

#vi /etc/sysconfig/iptables

 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

其中443是https的端口,顺便一起开了

 

#service iptables restart

z7:为什么要用ftp服务器?

我们需要上传文件到服务器,常规的方法就是ftp上传,所以要在服务器上建ftp服务器,一般centos上用的是vsftpd

z8:网站目录遇到权限问题怎么办?

把相关文件夹的owner换成apache试试,例如drupal

#chown -R apache /var/www/html/drupalsite.local/site/sites/

z9:如何安装?

安装这个东西首先要搞清楚git的基本原理,git不像svn,远程有一个仓库,本地也有一个仓库,仓库之间是独立的,所以不要把服务器和客户端区分得那么清楚,服务器上装一个git,客户端也装同样得一个git,某一端的搞明白了,用好了,再去管之间的联系。另外git这东西是没什么权限控制的,要通过另外的软件去做,gitolite什么的,又是后话。

用position:relative无法在IE6中定位的建议。

IE6似乎不能感知到操作对象上级对象的position:relative属性,但在firefox和chrome中可以,所以把上级对象的position类属性移到当前对象试试。

android发起HTTP Request给PHP,然后获得json数据,结果发生异常。

异常信息:A JSONObject text must begin with '{' at character 1...

原因:生成json的php文件编码格式为带BOM的UTF-8,导致获得的字符串数据不是以'{'为第一个字符。

解决办法:用notepad++或其它编辑器把格式改成不带BOM的UTF-8。

facebook的example code不起作用。

facebook.php里, makeRequest()函数里,
构造$ch之前,加一条语句:$opts[CURLOPT_PROXY] = “你的代理地址”;

原因你懂的

[UNIX.API]一个c程序在Unix系统中是如何启动和终止的?

一个c程序的入口函数总是main函数,用户在用户空间执行这个c程序后,将会引起系统调用,kernel调用exec函数,将具体main函数的某些信息作为参数传给exec,由exec函数启动这个main函数,main函数执行完后,如果单线程,则有两种方式终止,(1)调用exit函数(return)。(2)调用 _exit(POSIX)函数或者_Exit函数(ISO C)。两者的区别在于,2只是直接返回kernel,而1会做一些清理工作。1的清理工作主要包括三部分,(a)调用exit handler;(b)调用fclose等函数关闭与I/O库的联系;(c)调用_exit或者_Exit函数。其中的exit handler需要用户自己定义并在退出函数之前用atexit函数注册,然后在exit函数(return)中被自动执行,执行顺序与注册顺序相反。