Debian下的SSH+Nginx+MySQL+PHP+FTP安装
虚拟机装上Debian.然后第一件事就是开始启动SSH
方法也很简单了,直接
apt-get install openssh-server
于是默认就帮你配置好了
然后,让我们关掉那个每次让自己卡到半死的DNS反查功能吧.
vim /etc/ssh/ssh_config
在末尾行加入
UseDNS no
然后重启SSH
网上很多说重启可以用
/etc/init.d/ssh restart
但是我运行这个命令似乎没有效果...于是还是用很土鳖的办法
/usr/sbin/sshd stop
/usr/sbin/sshd start
虽然我在SSH上执行这个命令的,但是执行了stop命令之后我并没有丧失当前的SSH链接,而且可以正确的再次启动它,当然了,这个更改的效果也只有在第二次登录的时候可以体会到了.
结果现在就碰到了问题:安装的时候选择的语言是中文呢的,Putty连上去了之后中文的显示是乱码,于是就需要做以下设置了:
首先确认你自己所在的local是zh_CN.utf-8
方法是运行:
dpkg-reconfigure locales
会出现界面让你选择,选择为zh_CN.UTF-8即可
系统会进行重新配置
然后编辑environment
vim /etc/environment
添加以下一行进去:
LC_CTYPE="zh_CN.UTF-8"
保存退出就可以了.
接下来是客户端的Putty的设置:
在Window-Translation中把字符集改为UTF-8
然后再把界面字体更换为宋体或者其他随便支持中文字符的字体.
再次连接界面进入就会发现已经可以显示中文了,不过伴随而来的就是....英文字体真是无比的丑恶...于是还是把它改回来成英文好了...
接下来需要修改一下Bash了,先把ls的染色功能打开好了
#cd ~
~#vim .bashrc
修改
# export LS_OPTIONS='--color=auto'
# alias ls='ls $LS_OPTIONS'
去掉前面的#
然后自己添加一个
vi='vim'
这样就好了...(我还是更加习惯vim,虽然不得不在AIX上用vi...)
现在的任务是开始安装PHP+Nginx+MySQL了:
具体的参考对象是这篇文章:
Debian 5 VPS下的nginx+php+mysql的解决方案
Ubuntu/Debian包管理命令大全
唯一有变化的就是Nginx的版本了...我现在看到的Nginx最高稳定版本为0.8.54,但是排除掉架构区别,光i386上的版本就有extras,full,light版,不好决策...所以直接还是下载了full版(dbg标识的是代表Debug包,没必要安装).
wget http://ftp.us.debian.org/debian/pool/main/n/nginx/nginx-full_0.8.54-2_i386.deb
然后
dpkg -i ./nginx-full_0.8.54-2_i386.deb
结果报错..看来是先决条件没有安装完成...
没辙了,只能启动新立得,然后看看自带的0.6版本的先决条件:
Depends: libc6(>=2.7-1)
Depends: libpcre3(>=7.4)
Depends: libssl0.9.8(>=0.9.8f-5)
Depends: zlib1g(>=1:1.1.4)
那现在只能逐个的安装它们咯,首先检查它们在不在系统中:
dpkg -l| grep libc6
....
然后把没有安装的安装上
apt-get install libssl
...
结果一切装完之后,发现还是没办法安装...我就傻了,没辙,跑到Debian的官方网站查看一下,结果发现nginx的软件依赖其实是更加高版本的....也就是Debian整个需要升级才可以.
因为是在家里虚拟机上的环境,我觉得还是放弃升级比较方便一点,于是还是选择直接安装老版本的算了...于是很简单的开始安装...
apt-get install nginx
apt-get install mysql-server-5.0
这俩都很简单,然后到安装PHP的时候又碰上了问题..因为PHP有CGI和CLI两种模式,老实说,我写这么多年的PHP,却并没有分析这两种模式的不同,于是参考了以下文章:
nginx +php-cgi,apahce+php-cli,cgi的比较
所以,起码知道了一点:那就是nginx只能和CGI配合,于是确定安装PHP-CGI
apt-get install php5-common php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
接下来就需要安装php-fpm了..这个东西需要严格的跟你所安装的PHP的版本相对应,选择高版本是只能造成兼容性问题的,所以首先查看它的版本对应列表
http://php-fpm.org/downloads/
然后,我安装的PHP是5.2.6,对应的只有0.59版,于是下载它..
结果捣鼓了半天不知道该怎么玩,最后才发现原文里面有句话:使用php-fpm就必须重新编译php,不能使用系统自带的php。既然要自己重新编译PHP,那还不如下载最新的PHP算了,至少最新的PHP还自带了有PHP-fpm这个东西的...于是
wget http://cn2.php.net/get/php-5.3.5.tar.gz/from/this/mirror
然后
tar zxvf php-5.3.5.tar.gz
准备开始编译安装的..结果又卡在了默认的MySQL安装目录不清的问题上了,查了半天大概认为这个应该可以成功了吧:
./configure --prefix=/usr/bin/php5 --with-config-file-path=/etc/php --with-mysql=/var/lib/mysql --with-mysqli=/etc/mysql/my.cnf --with-iconv-dir=/usr/bin --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap -with-fpm-user=www –with-fpm-group=www
结果发现了一个更加简单的安装办法:
Debian Lenny安装nginx+PHP+MySQL傻瓜手记
里面提到了一个更加简单的编译好了的安装源
deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all
于是毫不犹豫的中途停掉了那个编译的打算,然后开始编辑/etc/apt/source.list,然后加入以上两行,然后apt-get update,然后按照文章所说的开始
apt-get install php5-cgi php5-fpm
很顺利的就开始安装了,而且安装完成了之后直接就是最新版的PHP-5.3.5,真的很强大...
按照文章所说的,运行了
ps aux|grep php
但是却没有检查到PHP在跑,运行php-cgi -i又可以看到正常的输出,说明了PHP-CGI没有启动,于是手动启动它.
/etc/init.d/php5-fpm start
之后就可以看到正常了,然后最后一步就是编辑Nginx的conf文件了..两种办法,一种是直接修改/etc/nginx/sites-enabled/default文件,第二种是在/etc/nginx/sites-enabled/下随便建立一个.conf文件,这文件全部会被Nginx自动载入进来成为配置文件的一部分.
我修改的结果如下:
# You may add here your
# server {
# ...
# }
# statements for each of your virtual hosts
server {
listen 80;
server_name localhost;
root /var/www/nginx-default;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www/nginx-default;
index index.php index.html index.htm;
}
location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
方法也很简单了,直接
apt-get install openssh-server
于是默认就帮你配置好了
然后,让我们关掉那个每次让自己卡到半死的DNS反查功能吧.
vim /etc/ssh/ssh_config
在末尾行加入
UseDNS no
然后重启SSH
网上很多说重启可以用
/etc/init.d/ssh restart
但是我运行这个命令似乎没有效果...于是还是用很土鳖的办法
/usr/sbin/sshd stop
/usr/sbin/sshd start
虽然我在SSH上执行这个命令的,但是执行了stop命令之后我并没有丧失当前的SSH链接,而且可以正确的再次启动它,当然了,这个更改的效果也只有在第二次登录的时候可以体会到了.
结果现在就碰到了问题:安装的时候选择的语言是中文呢的,Putty连上去了之后中文的显示是乱码,于是就需要做以下设置了:
首先确认你自己所在的local是zh_CN.utf-8
方法是运行:
dpkg-reconfigure locales
会出现界面让你选择,选择为zh_CN.UTF-8即可
系统会进行重新配置
然后编辑environment
vim /etc/environment
添加以下一行进去:
LC_CTYPE="zh_CN.UTF-8"
保存退出就可以了.
接下来是客户端的Putty的设置:
在Window-Translation中把字符集改为UTF-8
然后再把界面字体更换为宋体或者其他随便支持中文字符的字体.
再次连接界面进入就会发现已经可以显示中文了,不过伴随而来的就是....英文字体真是无比的丑恶...于是还是把它改回来成英文好了...
接下来需要修改一下Bash了,先把ls的染色功能打开好了
#cd ~
~#vim .bashrc
修改
# export LS_OPTIONS='--color=auto'
# alias ls='ls $LS_OPTIONS'
去掉前面的#
然后自己添加一个
vi='vim'
这样就好了...(我还是更加习惯vim,虽然不得不在AIX上用vi...)
现在的任务是开始安装PHP+Nginx+MySQL了:
具体的参考对象是这篇文章:
Debian 5 VPS下的nginx+php+mysql的解决方案
Ubuntu/Debian包管理命令大全
唯一有变化的就是Nginx的版本了...我现在看到的Nginx最高稳定版本为0.8.54,但是排除掉架构区别,光i386上的版本就有extras,full,light版,不好决策...所以直接还是下载了full版(dbg标识的是代表Debug包,没必要安装).
wget http://ftp.us.debian.org/debian/pool/main/n/nginx/nginx-full_0.8.54-2_i386.deb
然后
dpkg -i ./nginx-full_0.8.54-2_i386.deb
结果报错..看来是先决条件没有安装完成...
没辙了,只能启动新立得,然后看看自带的0.6版本的先决条件:
Depends: libc6(>=2.7-1)
Depends: libpcre3(>=7.4)
Depends: libssl0.9.8(>=0.9.8f-5)
Depends: zlib1g(>=1:1.1.4)
那现在只能逐个的安装它们咯,首先检查它们在不在系统中:
dpkg -l| grep libc6
....
然后把没有安装的安装上
apt-get install libssl
...
结果一切装完之后,发现还是没办法安装...我就傻了,没辙,跑到Debian的官方网站查看一下,结果发现nginx的软件依赖其实是更加高版本的....也就是Debian整个需要升级才可以.
因为是在家里虚拟机上的环境,我觉得还是放弃升级比较方便一点,于是还是选择直接安装老版本的算了...于是很简单的开始安装...
apt-get install nginx
apt-get install mysql-server-5.0
这俩都很简单,然后到安装PHP的时候又碰上了问题..因为PHP有CGI和CLI两种模式,老实说,我写这么多年的PHP,却并没有分析这两种模式的不同,于是参考了以下文章:
nginx +php-cgi,apahce+php-cli,cgi的比较
所以,起码知道了一点:那就是nginx只能和CGI配合,于是确定安装PHP-CGI
apt-get install php5-common php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
接下来就需要安装php-fpm了..这个东西需要严格的跟你所安装的PHP的版本相对应,选择高版本是只能造成兼容性问题的,所以首先查看它的版本对应列表
http://php-fpm.org/downloads/
然后,我安装的PHP是5.2.6,对应的只有0.59版,于是下载它..
结果捣鼓了半天不知道该怎么玩,最后才发现原文里面有句话:使用php-fpm就必须重新编译php,不能使用系统自带的php。既然要自己重新编译PHP,那还不如下载最新的PHP算了,至少最新的PHP还自带了有PHP-fpm这个东西的...于是
wget http://cn2.php.net/get/php-5.3.5.tar.gz/from/this/mirror
然后
tar zxvf php-5.3.5.tar.gz
准备开始编译安装的..结果又卡在了默认的MySQL安装目录不清的问题上了,查了半天大概认为这个应该可以成功了吧:
./configure --prefix=/usr/bin/php5 --with-config-file-path=/etc/php --with-mysql=/var/lib/mysql --with-mysqli=/etc/mysql/my.cnf --with-iconv-dir=/usr/bin --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap -with-fpm-user=www –with-fpm-group=www
结果发现了一个更加简单的安装办法:
Debian Lenny安装nginx+PHP+MySQL傻瓜手记
里面提到了一个更加简单的编译好了的安装源
deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all
于是毫不犹豫的中途停掉了那个编译的打算,然后开始编辑/etc/apt/source.list,然后加入以上两行,然后apt-get update,然后按照文章所说的开始
apt-get install php5-cgi php5-fpm
很顺利的就开始安装了,而且安装完成了之后直接就是最新版的PHP-5.3.5,真的很强大...
按照文章所说的,运行了
ps aux|grep php
但是却没有检查到PHP在跑,运行php-cgi -i又可以看到正常的输出,说明了PHP-CGI没有启动,于是手动启动它.
/etc/init.d/php5-fpm start
之后就可以看到正常了,然后最后一步就是编辑Nginx的conf文件了..两种办法,一种是直接修改/etc/nginx/sites-enabled/default文件,第二种是在/etc/nginx/sites-enabled/下随便建立一个.conf文件,这文件全部会被Nginx自动载入进来成为配置文件的一部分.
我修改的结果如下:
# You may add here your
# server {
# ...
# }
# statements for each of your virtual hosts
server {
listen 80;
server_name localhost;
root /var/www/nginx-default;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www/nginx-default;
index index.php index.html index.htm;
}
location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}
location /images {
root /usr/share;
autoindex on;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/nginx-default;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $http_host;
fastcgi_ignore_client_abort on;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#deny all;
#}
}
多余的注释文件我就没有在这里写出了
然后运行
/etc/init.d/nginx restart
重新启动Nginx,然后到/var/www/nginx-default文件夹下建立一个index.php,内容也就是最简单的:
phpinfo();
?>
看到正常的页面输出就是正确的标志了.
那么再之后的任务就是安装FTP了...我可不想一直用vi来写程序,会疯掉的...
FTP服务器就有很多了,最后还是选择了安装vsftpd,据说这个比较轻量级,毕竟我的电脑也只是开发用而已,不需要那么多的FTP功能,能读能写就足够了.
apt-get install vsftpd
这就完成了安装,然后我需要让它能够读写www目录下的文件了.用户就用我自己就行了,不用多做添加了.首先把自己的home目录给换到www下面去
usermod -d /var/www/nginx-default/ siglud
修改一下目录的所有者为此用户,并更改权限为755
chown siglud /var/www/nginx-default/
chmod 755 /var/www/nginx-default/
再修改一下conf文件,/etc/vsftpd.conf
Anonymous_enable=NO
禁掉匿名登录
Local_enable=YES
允许本地帐户登录
Chroot_local_user=YES
锁定主目录
Userlist_enable=yes
允许黑名单
Ascii_upload_enable=yes
启用ASCII上传
Ascii_download_enable=yes
启用ASCII下载
Write_enable=YES
允许删除和修改文件
local_umask=022
默认上传的文件权限为755
然后重启服务器
/etc/init.d/vsftpd restart
结果发现传上去的文件权限一塌糊涂,竟然连PHP都无法执行了...没办法,只能更改默认权限了,首先切换到FTP用户执行
umask 022
然后再次重启vsftpd,但是这个时候建立文件夹的权限正确了,但是上传文件后的权限居然变成了644,而不是预想的755..很奇怪的问题,但是却并不妨碍使用就是了..于是就这样听之任之了..
接下来就差不多了...下一步计划安装OpenVPN
接下来就差不多了...下一步计划安装OpenVPN
评论
发表评论