在Kloxo控制面板里面给网站安装SSL证书

Posted by zuzhihui in Linux技术 on 2009/11/07 with No Comments

用http方式访问网站是没有加密的,网络上传输的都是明文,在网络上很容易被窃听。

用https方式访问网站是经过SSL加密的,这种加密技术是国际上公认的,所有的网上银行都用https方式加密。RASHOST的客户中心也是要通过https访问的。

要实现https加密,就需要在Web服务器配置一个SSL证书。可以自己随便做一个SSL证书,但这样的证书只适合测试使用,要在正式网站上用SSL,还是要购买一个正式的SSL证书。

产生CSR

在购买SSL证书之前要先产生一个CSR。登录Kloxo控制面板,在首页的Resource部分有个SSL Certificate图标,点击这个图标,然后点击Add SSL Certificate,输入您的各项信息后点击确定就可以生产CSR了。

购买SSL证书

在客户中心 http://my.rashost.com 可以购买SSL证书,付款之后会很快收到一封邮件,这封邮件会给出一个地址,进入该地址来配置SSL证书的详细信息和自己产生的CSR。

配置完上面的信息之后,系统会列出该域名所有人的Email和这个域名为后缀的几个邮件地址,让你选择一个邮件,系统会给这个地址发送邮件,用来验证您是这个域名的所有人。验证域名完成之后,就等待证书吧,这个等待的过程大概要几个小时。

在phpmyadmin里面导入大数据库的方法

Posted by zuzhihui in Linux技术 on 2009/11/06 with 2 Comments

phpmyadmin是个很方便的mysql数据库管理工具,可以用来管理mysql数据库,导入,导出等。

phpmyadmin在导入mysql的时候有个问题,如果要导入的数据库文件比较大,那么导入就会失败。下面介绍一个方法,可以导入任意大小的mysql数据库,步骤如下:

  1. 通过FTP把数据库的SQL文件上传到网站的根目录下
  2. 在网站的根目录下,创建文件import.php,该文件的内容见文章末尾
  3. 在浏览器里面访问这个import.php,假设你的网站域名是www.a.com,那么就在浏览器里面访问 http://www.a.com/import.php , 只要浏览器一开始访问这个import.php文件,数据就开始导入了
  4. 数据导入结束后,屏幕上会出现”import ok”的字样

import.php文件的内容如下:

<?
system("mysql -uroot -pmypassword database < a.sql");
print "import ok";
?>

其中root表示数据库用户名,mypassword表示root的密码,database表示要导入的数据库的名字,a.sql表示数据库文件的文件名,该文件是解压缩后的文件。这几个变量可以根据实际情况修改。

在Debian/Ubuntu VPS下配置Nginx做反向代理

Posted by zuzhihui in Linux技术 on 2009/11/06 with No Comments

Debian和Ubuntu都自带了Nginx,用他们来配置Nginx的反向代理,非常方便。

安装Nginx

运行如下命令安装并运行Nginx

apt-get install nginx
/etc/init.d/nginx start

然后在浏览器里面访问该IP的80端口,就会看到”Welcome to Nginx!”的信息,这说明Nginx安装完成了!

配置Nginx做反向代理

Nginx的缺省站点的配置文件是/etc/nginx/sites-available/default,修改这个文件中的如下部分:
        location / {
root   /var/www/nginx-default;
index  index.html index.htm;
}

修改为:
        location / {
proxy_pass http://www.google.com/;
proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

然后重启Nginx:

/etc/init.d/nginx restart

然后在浏览器里面重新访问该IP上面的80端口,应该就看到google的主页了,反向代理配置成功了

多域名反向代理配置实例

在一个VPS上配置多个域名的反向代理,比如我们有两个域名test1.rashost.com和test2.rashost.com,我们希望客户在访问test1.rashost.com的时候出现www.baidu.com的内容,希望客户在访问test2.rashost.com的时候出现www.kernel.org的内容,客户只知道test1.rashost.com和test2.rashost.com的存在,而不知道www.baidu.com和www.kernel.org的存在。

首先需要把域名test1.rashost.com和test2.rashost.com指向VPS的IP地址。

然后在/etc/nginx/sites-available 目录下增加两个文件,文件名分别是test1.rashost.com和test2.rashost.com

test1.rashost.com的文件的内容如下:
server {
listen   80;
server_name  test1.rashost.com;

location / {
proxy_pass http://www.baidu.com/;
proxy_redirect off;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

test2.rashost.com的文件的内容如下:
server {
listen   80;
server_name  test2.rashost.com;

location / {
proxy_pass http://www.kernel.org/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

然后运行命令:

cd /etc/nginx/sites-enabled
ln -sf /etc/nginx/sites-available/test1.rashost.com .ln -sf /etc/nginx/sites-available/test2.rashost.com .
/etc/init.d/nginx restart

这时候在浏览器里面访问test1.rashost.com将会出现www.baidu.com的内容,访问test2.rashost.com将会出现www.kernel.org的内容。

反向代理的高级配置

关于Nginx反向代理的一些高级配置,我们会不断写博客介绍,敬请关注。

在Debian 5 VPS上配置pptpd VPN

Posted by zuzhihui in Linux技术 on 2009/11/01 with 2 Comments

美国VPS的一大用途就是做为加密的VPN服务器,在国内连上这些VPN服务器就可以无限 制访问互联网。常用的VPN服务器一般分两种,一种是SSL VPN,代表软件有openvpn,这个VPN软件有Windows下的客户端软件;另外一种是pptpd VPN,Windows自带这种VPN的客户端支持。本文记录了在64位Debian 5 VPS下安装pptpd VPN服务器的过程。

内核支持

pptpd VPN需要内核支持mppe,我们的VPS自带的内核已经把mppe编译进去了,没有把mppe另外当作内核的模块,在安装pptpd的时候如果碰到mppe模块相关的错误信息都可以忽略。

软件安装

Debian自带了pptpd的软件包,安装命令:

apt-get install -y ppptpd

然后编辑置文件 /etc/ppp/pptpd-options 内容如下:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 8.8.8.8
ms-dns 8.8.4.4

编辑配置文件 /etc/pptpd.conf 内容如下:

option /etc/ppp/pptpd-options
logwtmp
localip 192.168.92.1
remoteip 192.168.92.11-15

编辑配置文件 /etc/ppp/chap-secrets,配置用户名为johndoe,密码为password,内容如下:

johndoe pptpd password *

修改配置文件/etc/sysctl.conf中的相应内容如下:

net.ipv4.ip_forward = 1

‘配置iptables,可以把这个命令写入/etc/rc.local

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.92.0/24 -j MASQUERADE
iptables -I FORWARD -p tcp --syn -i ppp  -j TCPMSS --set-mss 1356

然后运行reboot重新启动即可,在Windows客户端应该可以拨号连接VPN了

CentOS的时区配置文件/etc/sysconfig/clock详解

Posted by zuzhihui in Linux技术 on 2009/10/20 with No Comments

CentOS的时区配置文件是:/etc/sysconfig/clock 。 这个配置文件里面支持UTC,ARC,SRM,ZONE这几个配置选项,关于这几个配置选项详解如下:

  • UTC – 指定BIOS中保存的时间是否是GMT/UTC时间,true表示BIOS里面保存的时间是UTC时间,false表示BIOS里面保存的时间是本地时间。
  • ZONE – 指定时区,ZONE的值是一个文件的相对路径名,这个文件是相对 /usr/share/zoneinfo 目录下的一个时区文件。比如ZONE的值可以是:“Asia/Shanghai”, “US/Pacific”, “UTC” 等
  • ARC – 这个选项一般配置false,在一些特殊硬件(Alpha)下才配置该选项为true。
  • SRM – 同ARC,该选项一般配置false,在一下特殊硬件下才配置该选项为false。

这个配置文件里面的参数和 hwclock 命令关系很大,系统在启动的时候读取 /etc/sysconfig/clock 文件的内容,根据这些内容调用 hwclock 命令。

CentOS VPS下yum下载的比较慢怎么办?

Posted by zuzhihui in Linux技术 on 2009/10/10 with No Comments

CentOS VPS用户,尤其是国内的CentOS VPS用户可能会碰到过yum更新的时候,下载速度特别慢的情况。

yum源大多数使用的都是官方的默认配置,这个默认的yum源配置会在yum运行的时候,动态确定去哪个镜像站点下载,这个动态确定的镜像站点如果没有找对,找了一个慢的,那么yum更新的过程会非常慢。

好在yum是支持断点续传的,慢的时候按下ctrl-c,yum会自动去下一个镜像站点下载,如果还是很慢,就再次按下ctrl-c找下一个镜像站点。按一次ctrl-c不会中断yum,在两秒钟内连续按两次ctrl-c才可以中断yum的运行。这个方法笔者试过很多次,用起来很方便。

另外一个办法就是修改yum的源配置文件,修改到一个自己访问比较快的镜像站点,不推荐使用这个方法,因为修改配置修改不好就无法更新,另外自己找的镜像站点也没有官方的稳定,万一哪天这个镜像站点不通了,还要为这个找半天原因。

在CentOS 5 VPS上配置rsync服务器

Posted by zuzhihui in Linux技术 on 2009/09/30 with No Comments

rsync是Linux下最好的同步软件,本文记录了在centos 5 VPS下配置rsync服务端的过程。

安装:
yum install -y rsync xinetd

然后rpm -ql rsync就可以看到rsync安装了哪些文件。编辑/etc/xinetd.d/rsync文件,修改disable=no,然后重启xinetd:
/etc/init.d/xinetd restart

创建文件 /etc/rsyncd.conf 内容如下:

pid file = /var/run/rsyncd.pid
port = 873
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow=68.68.99.184/255.255.255.0 216.18.195.23/255.255.255.0
hosts deny=*
max connections = 5
motd file = /etc/rsyncd.motd
log file = /var/log/rsyncd.log
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[public]
path = /home/pics/www
list=yes
ignore errors
auth users = user
secrets file = /etc/rsyncd.secrets
comment = pics www

创建文件 /etc/rsyncd.motd 内容随便写即可

创建文件 /etc/rsyncd.secrets 内容是用户名和密码,比如:

user:password

然后执行如下命令:

chmod 700 /etc/rsyncd.secrets

这样就配置好了,在客户端就可以用rsync命令了,比如:

rsync rsync://user@216.18.195.23/
rsync --recursive --times --links --hard-links --delete -av rsync://user@216.18.195.23/public /home/pics/www

用美国VPS和Putty的SSH Tunnel(隧道)做安全代理

Posted by zuzhihui in Linux技术 on 2009/09/30 with 1 Comment

很多客户在美国VPS上配置VPN,然后连上美国的VPN畅游互联网。其实利用putty的ssh tunnel功能也可以实现安全的代理,原理是当用putty ssh连接到美国VPS的时候,putty可以在本地开启一个端口,本地的应用程序连接到本地的这个端口。相当于putty在本地充当了一个socks代理服务器为本地的应用程序提供socks代理。而这个socks代理通过美国VPS连接外网,socks代理和美国VPS直接的数据通信是在ssh隧道里进行的,是安全的。

配置putty的ssh隧道很简单,按照下图增加一个动态端口转发即可。另外Putty的配置不容易保存,生手要保存putty配置请参考 http://rashost.com/blog/my-putty-configure

putty ssh tunnel

上面配置完成之后,通过ssh登录到美国VPS,putty就在本地建立了一个socks代理服务器,代理地址是127.0.0.1,端口是7070。打开浏览器,设置socks代理即可无限制访问互联网了。

如果你用Firefox浏览器,推荐使用autoproxy插件,这个插件默认有ssh tunnel的socks代理配置。

Debian 5 VPS下的nginx+php+mysql的解决方案

Posted by zuzhihui in Linux技术 on 2009/09/08 with No Comments

本文介绍在Debian 5 VPS下的nginx php mysql的解决方案,本方案使用php-fpm作为fastcgi的进程管理器。

本文基于64位的Debian 5 VPS,如果是32位的Debian VPS,请在相应部分做修改。

使用php-fpm就必须重新编译php,不能使用系统自带的php。MySQL使用Debian自带的,Nginx是从Debian官方软件库中下载的最新版本。

安装Nginx

Debian 5系统自带的nginx版本比较低,现在Nginx的新稳定版本0.7.61,即将发行的Debian 6里面带的是最新版本的nginx,测试后发现这个nginx在Debian 5下可以运行。我们在 http://ftp.us.debian.org/debian/pool/main/n/nginx/ 下载了Nginx的deb包,放到了 http://dl.rashost.com/方便客户下载

安装命令:


dpkg -i nginx_0.7.61-3_amd64.deb
/etc/init.d/nginx start
mkdir -p /var/www/nginx-default
echo 'nginx ok'>/var/www/nginx-default/index.html
echo '<?phpinfo()?>' > /var/www/nginx-default/test.php

另外运行dpkg -L nginx命令可以看到nginx的文件都安装在哪些目录下面了

Debian下nginx的缺省网页目录是/var/www/nginx-default,这个目录安装的时候没有创建,我们是手工创建的。

通过浏览器访问,应该能看到nginx的缺省网页了,说明nginx正常工作了!

安装MySQL

我们使用Debian自带的MySQL,安装命令:


apt-get install mysql-server-5.0
/etc/init.d/mysql start

运行mysql -uroot -p命令,应该可以正常连接到MySQL

安装php & php-fpm

安装php所需要的库文件:


apt-get update
apt-get install libxml2 libldap-2.4-2 libmhash2 curl libpng3 libjpeg62 libsasl2-2 libmcrypt4

http://dl.rashost.com下载安装我们自己在Debian下编译的php-fpm:


cd /opt
tar zxf php-fpm-5.2.10-amd64.tar.gz
ln -s /opt/php/sbin/php-fpm /etc/init.d/php-fpm
update-rc.d -f php-fpm defaults
/etc/init.d/php-fpm start

整合

首先在/var/www/nginx-default目录下创建文件test.php,其内容很简单,只要下面一行:

<?phpinfo();?>

假设所在VPS的地址是debian5.rashost.com,这时通过浏览器访问http://debian5.rashost.com/test.php是得不到正确的显示结果的。

修改nginx的配置文件/etc/nginx/sites-enabled/default,在文件内搜索fastcgi_pass,修改该部分内容为:

      location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default/$fastcgi_script_name;
include        fastcgi_params;
}

注意,Debian下的nginx配置文件和centos下的区别比较大,Debian下把配置分割成多个文件了,推荐一个站点一个配置文件,我们修改的是/etc/nginx/sites-enabled/default。另外fastcgi_param参数后面的/var/www/nginx-default/部分,这是具体的网页目录,如果像Debian下那样写成$document_root不知道为什么就不工作了。

然后重启nginx:

/etc/init.d/nginx/restart

然后在浏览器中访问test.php页面,就应该能正确显示了,reboot VPS测试一下,各个模块应该都能自带启动。大功告成!

在Debian 5 VPS下编译php-fpm

Posted by zuzhihui in Linux技术 on 2009/09/08 with No Comments

php-fpm和spawn-fcgi一样,是一个php的fastcgi进程管理器。 spawn-fcgi是个独立的程序,而php-fpm是和php集成在一起的。一般的Linux都不带php-fpm,本文介绍在debian 5 VPS下怎样编译php-fpm。

编译环境准备

首先查看debian的apt软件库的配置,确保/etc/apt/sources.list这个文件里面至少有:

deb http://ftp.us.debian.org/debian lenny main
deb http://security.debian.org/ lenny/updates main

然后同步一下:

apt-get update

安装编译所需要的工具:

apt-get install build-essential vim

安装编译所需要的库:

apt-get install libxml2-dev libmcrypt-dev libssl-dev libldap2-dev libmhash-dev libmysqlclient15-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libsasl2-dev

编译

下载php 5.2.10和相应的php-fpm补丁,然后开始编译:

tar zxf php-5.2.10.tar.gz
cd php-5.2.10
cat ../php-5.2.10-fpm-0.5.13.diff | patch -p1
./configure --prefix=/opt/php --with-iconv --with-zlib --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  --without-pear --with-mysql --with-mysqli --enable-sqlite-utf8 --with-pdo-mysql --enable-ftp --with-jpeg-dir --with-freetype-dir --with-png-dir
make install
cp php.ini-dist /opt/php/lib/php.ini
ln -s /opt/php/sbin/php-fpm /etc/init.d/php-fpm
update-rc.d -f php-fpm defaults

编译后的php安装在/opt/php下面,php的配置文件是/opt/php/lib/php.ini

和其他Linux下不同,在Debian下这时候启动php-fpm会失败,原因是在Debian下php-fpm的配置文件中必须指定运行时的用户才行。

优化php-fpm

编辑php-fpm的配置文件/opt/php/etc/php-fpm.conf,

  • 去掉display_errors参数的注释,修改参数值为1
  • 去掉sendmail_path参数的注释
  • 去掉user,group参数的注释
  • 修改max_children参数的值为10

安装php加速器eAccelerator

tar jxf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
apt-get install -y autoconf
/opt/php/bin/phpize
./configure --enable-eaccelerator --with-php-config=/opt/php/bin/php-config
make install
mkdir /opt/php/eaccelerator_cache

然后vim /opt/php/lib/php.ini,在文件末尾加入:

[eaccelerator]
zend_extension="/opt/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/opt/php/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

然后重启php-fpm,在phpinfo()页面中应该能看到eaccelerator的信息了。

打包

我们把/opt/php目录打包为php-fpm-5.2.10-amd64.tar.gz,放到http://dl.rashost.com/下面,供客户下载使用。

Back to Top

2007-2017 © 北京瑞豪开源科技有限公司 京ICP备13004995号-2