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)中被自动执行,执行顺序与注册顺序相反。