Vps:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
第730行: 第730行:
  fastcgi_pass  127.0.0.1:9000;
  fastcgi_pass  127.0.0.1:9000;
                 fastcgi_read_timeout 300;
                 fastcgi_read_timeout 300;
                fastcgi_send_timeout 300;
  }
  }
  }
  }
第746行: 第747行:
  fastcgi_pass  127.0.0.1:9000;
  fastcgi_pass  127.0.0.1:9000;
                 fastcgi_read_timeout 300;
                 fastcgi_read_timeout 300;
                fastcgi_send_timeout 300;
  }
  }
  }
  }

2011年11月12日 (六) 22:26的版本

Ubuntu Linux VPS 入门指南

拿到的帐号

BurstNET VPS 开通后,你将收到如下的帐号:

ACCOUNT INFORMATION
Order ID: 111111
Hosting Package: VPS #1 (Virtual Private Server) - vePortal - (SCRANTON, PA) - RESALE
Domain: XXX.XXX.XXX
Billing Cycle: Monthly
Next Due Date: 09/12/2011

SERVER INFORMATION
VPS ID: 111111
VPS IP Address: 184.82.9.30
SSH Root Password: pass001
VPS Control Panel URL (non-SSL): http://184.82.9.30:2407
VPS Control Panel URL (SSL): https://184.82.9.30:2408
VPS Control Panel Username: user001
VPS Control Panel Password: pass001

比较重要的事情是:

  • VPS地址:184.82.9.30 ,第二个IP是地址的最后一位+1,如果你的IP是 173.210.202.198 , 第二个IP则是 173.210.202.199
  • 面板的地址:打开 https://184.82.9.30:2408 地址后,会自动跳转到另外一个地址 https://64.120.201.42:2408/ ,请记录此地址,这个才是你真实的面板地址,当VPS无法启动时,使用原地址将无法自动跳转,需要直接使用真实的面板地址才可以登录面板。(不同的VPS,跳转后的地址是不一样的,请勿照搬)

以下的指南都是针对 ubuntu 的,请centos或其它Linux用户到面板reload到ubuntu 10.10 x86 然后继续。

如何远程访问

Linux VPS支持ssh远程访问,因此需要使用putty工具来访问。

1 下载putty

下载地址: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

2 运行putty

这个程序不需要安装,下载后直接运行,后在Host地址输入VPS的IP如下:

3 登录vps

点击上图中的 Open 按钮,第一次登录会出现确认密钥的提示,如下图,请点击 “是” 按钮。

4 如下图输入登录用户名 root 回车,继续输入密码,注意输入密码是不会显示 “*” 的,同时密码是区分大小写的。

有个技巧,直接去复制密码后,鼠标点击 putty 的输入密码窗口,直接按下鼠标右键,然后回车即可登录。 在putty的窗口按下鼠标右键表示粘贴。

5 如果显示下图则表示登录成功了。

6 设置 putty 支持 vps 的中文文件名或中文文件内容显示,此步骤非必需,可以忽略:

在主窗口,点击左上角的图标,在弹出菜单中选择 Change Settings... 菜单,出现设置窗口。

设置显示字体,左边窗口点击 Window -> Appearance ,右边点击 Font settings -> Change 如下图:

字体选择 新宋体 字符集选择 CHINESE_GB2312 ,字体大小随你喜好设置。设置完毕后点确定

设置终端字符,左边窗口点 Window -> Translation ,右边选择 Remote character set 的下拉框选择 UTF-8 ,如下图:

如何上传和下载文件

VPS 直接支持ssh协议,因此不需要采用 ftp 方式上传,可以直接使用支持 sftp 协议的客户端上传文件,这里使用 FileZilla。

1 下载FileZilla

官网下载地址: http://filezilla-project.org/download.php?type=client

或直接点击下载: http://sourceforge.net/projects/filezilla/files/FileZilla_Client/3.5.0/FileZilla_3.5.0_win32-setup.exe/download

2 下载完毕后安装 FileZilla

3 添加站点

运行FileZilla,点击菜单 文件 -> 站点管理器

点击后如下图:

再点击面板的 "新站点" 按钮,在右边的输入地方,输入:

主机:VPS的IP,本例输入 184.82.9.30
协议:选择 SFTP
登录类型:选一般
用户:输入root
密码:输入ssh的登录密码,注意密码区分大小写。

如下图:

输入完毕后,再切换到字符集,选择 "强制 UTF-8" ,如下图:

输入完毕后直接点击 “连接” 按钮即可,连接完毕后如下图所示,你就可以直接上传和下载文件了。

下一次打开 FileZilla 时,直接到站点管理器,点击连接即可。

更新软件源

以下命令均需要使用 putty 登录到服务器远程执行命令操作,你可以直接复制下面的命令,然后点击 putty 窗口按鼠标右键,粘贴命令。

本步骤不可跳过,需要先执行,后面才可以继续,建议每次安装新软件时,都执行一遍本步骤。

输入如下命令更新软件源:

apt-get update

下面的提示不同的Linux的版本存在不同的差异,但有如下类似的提示时,表示更新成功:

root@241541:~# apt-get update
Get:1 http://archive.ubuntu.com maverick Release.gpg [198B]
Ign http://archive.ubuntu.com/ubuntu/ maverick/main Translation-en
Ign http://archive.ubuntu.com/ubuntu/ maverick/restricted Translation-en
Ign http://archive.ubuntu.com/ubuntu/ maverick/universe Translation-en
Get:2 http://archive.ubuntu.com maverick-updates Release.gpg [198B]
Ign http://archive.ubuntu.com/ubuntu/ maverick-updates/main Translation-en
Ign http://archive.ubuntu.com/ubuntu/ maverick-updates/restricted Translation-en
Ign http://archive.ubuntu.com/ubuntu/ maverick-updates/universe Translation-en
Get:3 http://archive.ubuntu.com maverick-security Release.gpg [198B]
Ign http://archive.ubuntu.com/ubuntu/ maverick-security/main Translation-en
Ign http://archive.ubuntu.com/ubuntu/ maverick-security/restricted Translation-en
Ign http://archive.ubuntu.com/ubuntu/ maverick-security/universe Translation-en
Get:4 http://archive.ubuntu.com maverick Release [39.8kB]
Get:5 http://archive.ubuntu.com maverick-updates Release [31.4kB]
Get:6 http://archive.ubuntu.com maverick-security Release [31.4kB]
Get:7 http://archive.ubuntu.com maverick/main i386 Packages [1492kB]
Get:8 http://archive.ubuntu.com maverick/restricted i386 Packages [5992B]
Get:9 http://archive.ubuntu.com maverick/universe i386 Packages [5791kB]
Get:10 http://archive.ubuntu.com maverick-updates/main i386 Packages [380kB]
Get:11 http://archive.ubuntu.com maverick-updates/restricted i386 Packages [1797B]
Get:12 http://archive.ubuntu.com maverick-updates/universe i386 Packages [157kB]
Get:13 http://archive.ubuntu.com maverick-security/main i386 Packages [157kB]
Get:14 http://archive.ubuntu.com maverick-security/restricted i386 Packages [14B]
Get:15 http://archive.ubuntu.com maverick-security/universe i386 Packages [77.9kB]
Fetched 8166kB in 4s (1724kB/s)
Reading package lists... Done

安装常用软件

VPS里面缺乏一些常用工具软件,一次安装好:

输入如下命令安装解压缩、下载和数据同步软件:

apt-get install unzip wget rsync

如果提示如下命令,表示之前已经安装好:

root@241541:~# apt-get install unzip zip wget rsync
Reading package lists... Done
Building dependency tree
Reading state information... Done
unzip is already the newest version.
wget is already the newest version.
rsync is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 26 not upgraded.

如果之前没有安装会提示如下命令,表示已经安装好

root@241541:~# apt-get install unzip zip wget rsync
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  rsync unzip wget zip
0 upgraded, 4 newly installed, 0 to remove and 26 not upgraded.
Need to get 319kB/1125kB of archives.
After this operation, 2314kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ maverick/main zip i386 3.0-3 [319kB]
Fetched 319kB in 0s (417kB/s)
Selecting previously deselected package wget.
(Reading database ... 22549 files and directories currently installed.)
Unpacking wget (from .../wget_1.12-1.1ubuntu3_i386.deb) ...
Selecting previously deselected package rsync.
Unpacking rsync (from .../rsync_3.0.7-2ubuntu1.1_i386.deb) ...
Selecting previously deselected package unzip.
Unpacking unzip (from .../archives/unzip_6.0-4_i386.deb) ...
Selecting previously deselected package zip.
Unpacking zip (from .../archives/zip_3.0-3_i386.deb) ...
Setting up wget (1.12-1.1ubuntu3) ...
Setting up rsync (3.0.7-2ubuntu1.1) ...
Setting up unzip (6.0-4) ...
Setting up zip (3.0-3) ...

使用 Apache 搭建站点

如果希望使用 Nginx ,可以跳过此部分,直接转到指南的 nginx 部分来安装。

安装 Apache2 Web 服务

VPS 默认有安装Apache2,但如果你删除了,就需要重新安装;如果没有删除,执行下面的命令会退出来,不会对系统产生任何影响。

输入如下命令安装

apt-get install apache2

正常情况下会给出如下提示,说明Apache2默认已经安装好了:

root@241541:~# apt-get install apache2
Reading package lists... Done
Building dependency tree... Done
apache2 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

开启 Apache2 的伪静态

如果希望开启Apache2 伪静态 rewrite 支持,输入如下命令安装

a2enmod rewrite

正常情况下会给出如下提示,说明已经安装成功:

root@241541:~# a2enmod rewrite
Module rewrite installed; run /etc/init.d/apache2 force-reload to enable.

提示需要重新加载Apache2的配置,由于下一步是安装mysql,所以暂时不用重启。

安装 mysql 数据库服务

安装mysql前,#1的vps需要先关闭apache2,因为mysql的安装会初始化数据,占了很大内存,如果apache2不关闭,有可能导致安装mysql失败。

1 输入如下命令关闭 apache2

/etc/init.d/apache2 stop

如果输入正确,会提示如下信息,表示apache2已经停止

root@241541:~# /etc/init.d/apache2 stop
 * Stopping web server apache2                                                  apache2: Could not reliably determine the server's fully qualified domain name, using 0.3.175.133 for ServerName
 ... waiting                                                             [ OK ]

2 输入如下命令安装mysql

apt-get install mysql-server

如果输入正确,会提示如下信息,

root@241541:~# apt-get install mysql-server
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient16
  libnet-daemon-perl libplrpc-perl mysql-client-5.1 mysql-client-core-5.1
  mysql-common mysql-server-5.1 mysql-server-core-5.1
Suggested packages:
  libipc-sharedcache-perl libterm-readkey-perl tinyca
The following NEW packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient16
  libnet-daemon-perl libplrpc-perl mysql-client-5.1 mysql-client-core-5.1
  mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1
0 upgraded, 12 newly installed, 0 to remove and 26 not upgraded.
Need to get 22.9MB of archives.
After this operation, 54.4MB of additional disk space will be used.
Do you want to continue [Y/n]? 

输入 Y 回车,继续安装 会提示输入 mysql 的 root 用户密码,你可以输入密码后回车,也可以不输入任何密码直接回车。 (不输入密码不会影响到Mysql的安全性,因为Mysql仅仅用于本地监听,但不输入密码会导致后续phpmyadmin无法运行)

需要重新输入一遍密码,如下图所示:

最后提示如下界面,表示mysql安装成功。

安装php环境

执行如下命令安装apache2的php5扩展和php的mysql扩展

apt-get install libapache2-mod-php5 php5-gd php5-mysql php5-curl

如下提示:

root@241541:~# apt-get install libapache2-mod-php5 php5-gd php5-mysql
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libgd2-xpm libjpeg62 libt1-5 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6
  libxpm4 php5-cli php5-common
Suggested packages:
  php-pear libgd-tools php5-suhosin
The following NEW packages will be installed:
  libapache2-mod-php5 libgd2-xpm libjpeg62 libt1-5 libx11-6 libx11-data
  libxau6 libxcb1 libxdmcp6 libxpm4 php5-cli php5-common php5-gd php5-mysql
0 upgraded, 14 newly installed, 0 to remove and 26 not upgraded.
Need to get 8128kB of archives.
After this operation, 22.7MB of additional disk space will be used.
Do you want to continue [Y/n]?

输入 Y,回车继续,以下表示安装完成。

重新启动apache2, 输入如下命令:

/etc/init.d/apache2 start

提示如下,表示启动成功:

root@241541:~# /etc/init.d/apache2 start
 * Starting web server apache2                                                  apache2: Could not reliably determine the server's fully qualified domain name, using 0.3.175.133 for ServerName
                                                                         [ OK ]

测试站点

以上命令已经完整安装好一台Web服务器所具有的环境,以下来搭建一个最简单的站点。

web 的根目录位于 /var/www 你可以将自己的程序直接放到此目录。

安装phpsysinfo

使用putty登录到服务器,依次执行如下命令安装phpsysinfo:

cd /var/www
wget http://sourceforge.net/projects/phpsysinfo/files/phpsysinfo/3.0.13/phpsysinfo-3.0.13.tar.gz/download -O phpsysinfo-3.0.13.tar.gz
tar xzvf phpsysinfo-3.0.13.tar.gz 
cd phpsysinfo
mv config.php.new config.php

执行完毕后,在浏览器的地址输入: http://184.82.9.30/phpsysinfo/ 查看,显示如下:

安装 php 探针

使用putty登录到服务器,依次执行如下命令安装:

cd /var/www
wget http://www.duyaofei.com/downloads/tz.zip
unzip tz.zip

运行结果如下所示:

root@241541:~# cd /var/www
root@241541:/var/www# wget http://www.duyaofei.com/downloads/tz.zip
--2011-08-13 09:18:40--  http://www.duyaofei.com/downloads/tz.zip
Resolving www.duyaofei.com... 74.220.215.201
Connecting to www.duyaofei.com|74.220.215.201|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10490 (10K) [application/zip]
Saving to: `tz.zip'

100%[======================================>] 10,490      --.-K/s   in 0.07s

2011-08-13 09:18:41 (152 KB/s) - `tz.zip' saved [10490/10490]

root@241541:/var/www# unzip tz.zip
Archive:  tz.zip
  inflating: tz.php


执行完毕后,在浏览器的地址输入: http://184.82.9.30/tz.php 查看,显示如下:

安装 phpmyadmin

安装phpmyadmin,需要mysql事先配置好root的密码。

使用putty登录到服务器,执行下面安装

apt-get install phpmyadmin

提示如下:

root@241541:~# apt-get install phpmyadmin
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  dbconfig-common javascript-common libjs-mootools libmcrypt4 php5-mcrypt
  wwwconfig-common
Suggested packages:
  libmcrypt-dev mcrypt postgresql-client apache apache-ssl
The following NEW packages will be installed:
  dbconfig-common javascript-common libjs-mootools libmcrypt4 php5-mcrypt
  phpmyadmin wwwconfig-common
0 upgraded, 7 newly installed, 0 to remove and 26 not upgraded.
Need to get 5184kB of archives.
After this operation, 21.3MB of additional disk space will be used.
Do you want to continue [Y/n]?

输入 Y, 回车继续。

按 空格键 选择 Apche2 如下图:

选择完毕后,回车继续,提示如下图,是否需要创建phpmyadmin数据库,

直接回车继续,提示输入mysql的管理员密码,输入后如下所示:

回车继续后,如下图,提示输入phpmyadmin连接数据的密码,直接回车由系统随机产生一个即可。

完成安装提示如下:

现在访问如下地址测试: http://184.82.9.30/phpmyadmin/

输入mysql的root帐号和mysql的密码,点击 执行 进行登录,进行正常访问如下:

如果访问提示 404 ,检查输入无问题后, 尝试执行如下命令:

ln -s /usr/share/phpmyadmin /var/www

然后再访问。

配置虚拟站点

假设前提: 你有一个域名 test.com ,你希望搭建两个站点,第一个站点是 www.test.com 和 test.com 为主页,同时希望提供 bbs.test.com 为论坛。

注意,下面的文档对多个不同的域名也是适用的。

配置域名

去域名商提供的面板将 test.com 的 A 记录修改为 VPS 的 IP

由于这里只是测试站点,直接在本地的windows下修改 Hosts 文件,让本地的系统识别这个域名,方便测试,如果是真实域名,忽略此步骤。

修改 C:\WINDOWS\system32\drivers\etc\hosts 文件

双击选择 记事本 打开,在文件最后另起一行输入如下

184.82.9.30     test.com
184.82.9.30     www.test.com
184.82.9.30     bbs.test.com

如图所示,保存退出。

上传程序

约定两个站点的目录如下,为了方便备份,站点的目录最好集中存放在 /var/www 目录。

www.test.com(test.com) 对应目录: /var/www/test
bbs.test.com 对应目录: /var/www/bbs

假设主站点安装帝国的CMS程序,论坛采用DZ的论坛,程序需要下载UTF-8的版本。

使用前面提到的上传方法,利用 FileZilla 连接服务器,创建这两个目录。

分别上传程序

多域名配置

编辑www.test.com的站点配置文件 test.com.txt

<VirtualHost *:80>
    ServerName www.test.com
    ServerAlias test.com
    DocumentRoot /var/www/test/
</VirtualHost> 

编辑bbs.test.com的站点配置文件 bbs.test.com.txt

<VirtualHost *:80>
    ServerName bbs.test.com
    DocumentRoot /var/www/bbs/
</VirtualHost>

如图所示:

将这两个文件上传到 /etc/apache2/sites-enabled/ 目录

如图所示:

修改上传文件权限

由于上传的文件的所有者为 root ,Apache 无法正常写入,所以需要设置上传文件的宿主为 www-data。

使用putty登录vps执行如下命令,设置 /var/www下的所有文件的宿主都是 www-data,这样apache2就可以正常读写:

chown -R www-data:www-data /var/www/*
/etc/init.d/apache2 restart

执行结果如下所示:

root@241541:~# chown -R www-data:www-data /var/www/*
root@241541:~# /etc/init.d/apache2 restart
 * Restarting web server apache2                                                apache2: Could not reliably determine the server's fully qualified domain name, using 0.3.175.133 for ServerName
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 0.3.175.133 for ServerName
                                                                        [ OK ]

安装配置

主站点程序访问 http://www.test.com 如下图所示,进一步安装:

论坛程序访问 http://bbs.test.com 如下图所示,进一步安装:

以上就是完成多域名的配置。

mysql 管理

对于mysql数据库维护可以使用前面安装的 phpmyadmin 进行维护,或直接在 putty 中输入 mysql -p 进行管理如图所示:

使用 Nginx 搭建站点

为什要使用nginx?因为apache太耗内存了,使用nginx可以节约内存。

采用 nginx + php-fpm + mysql 搭建。

删除 apache2

使用putty登录vps,执行如下命令:

输入如下命令关闭 apache2

/etc/init.d/apache2 stop

如果输入正确,会提示如下信息,表示apache2已经停止

root@241541:~# /etc/init.d/apache2 stop
 * Stopping web server apache2                                                  apache2: Could not reliably determine the server's fully qualified domain name, using 0.3.175.133 for ServerName
 ... waiting                                                             [ OK ]

输入如下命令删除 apache2

apt-get remove apache2 apache2.2-common

出现类似如下提示时,输入 Y 并回车。

0 upgraded, 1 newly installed, 7 to remove and 26 not upgraded.
Need to get 5837kB of archives.
After this operation, 14.5MB disk space will be freed.
Do you want to continue [Y/n]?

最后会出现如下提示,表示已经删除 apache2

Removing libapache2-mod-php5 ...
Module php5 disabled.
Run '/etc/init.d/apache2 restart' to activate new configuration!
Removing apache2-mpm-prefork ...
 * Stopping web server apache2                                                  apache2: Could not reliably determine the  server's fully qualified domain name, using 0.3.175.133 for ServerName
 ... waiting                                                             [ OK ]
Removing apache2.2-common ...
Removing apache2-utils ...
Removing apache2.2-bin ...

安装 php5-fpm php5-cgi

由于 Ubuntu 10.04 没有 php5-fpm 软件,需要增加第三方源,所以请先检查下 Ubuntu 的版本,使用putty登录vps执行如下命令来检查:

cat /etc/issue

如果看到,执行结果如下所示:

root@195669:~# cat /etc/issue
Ubuntu 10.04 LTS \n \l

则表示你当前的版本的 10.04 ,需要执行如下步骤,增加第三方源,否则略过。

apt-get -y install python-software-properties
add-apt-repository ppa:nginx/stable
add-apt-repository ppa:brianmercer/php
apt-get -y update

和前面一样,如果碰到 “Do you want to continue [Y/n]? ” 的提示,请输入 Y 回车继续。

Ubuntu 10.10 或 执行完毕上述命令的 Ubuntu 10.04 系统可以开始安装 php5-fpm 了,执行如下命令:

apt-get install php5-cgi php5-fpm php5-gd php5-mysql php5-curl

出现下面的提示表示安装成功

root@241541:~# apt-get install php5-cgi php5-fpm php5-gd php5-mysql
Reading package lists... Done
Building dependency tree
Reading state information... Done
php5-cgi is already the newest version.
php5-cgi set to manually installed.
Suggested packages:
  php-pear
The following NEW packages will be installed:
  libevent-1.4-2 php5-fpm
0 upgraded, 2 newly installed, 0 to remove and 26 not upgraded.
Need to get 3002kB of archives.
After this operation, 7967kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ maverick/main libevent-1.4-2 i386 1.4.13-stable-1 [56.2kB]
Get:2 http://archive.ubuntu.com/ubuntu/ maverick-updates/universe php5-fpm i386 5.3.3-1ubuntu9.5 [2946kB]
Fetched 3002kB in 1s (2181kB/s)
Selecting previously deselected package libevent-1.4-2.
(Reading database ... 21902 files and directories currently installed.)
Unpacking libevent-1.4-2 (from .../libevent-1.4-2_1.4.13-stable-1_i386.deb) ...
Selecting previously deselected package php5-fpm.
Unpacking php5-fpm (from .../php5-fpm_5.3.3-1ubuntu9.5_i386.deb) ...
Setting up libevent-1.4-2 (1.4.13-stable-1) ...
Setting up php5-fpm (5.3.3-1ubuntu9.5) ...
update-rc.d: warning: php5-fpm stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (none)
 * Starting PHP5 FPM...                                                         Aug 13 06:25:50.352643 [WARNING] [pool  www] pm.start_servers is not set. It's been set to 20.
                                                                        [ OK ]

Creating config file /etc/php5/fpm/php.ini with new version
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

安装 mysql

见前面的安装 mysql 的步骤。

安装 nginx

使用putty登录vps,执行如下命令:

apt-get install nginx

出现如下提示,表示已经安装完毕:

root@241541:~# apt-get install nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  ufw
The following NEW packages will be installed:
  nginx
0 upgraded, 1 newly installed, 0 to remove and 26 not upgraded.
Need to get 341kB of archives.
After this operation, 827kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ maverick/universe nginx i386 0.7.67-3ubuntu1 [341kB]
Fetched 341kB in 0s (437kB/s)
Selecting previously deselected package nginx.
(Reading database ... 21918 files and directories currently installed.)
Unpacking nginx (from .../nginx_0.7.67-3ubuntu1_i386.deb) ...
Setting up nginx (0.7.67-3ubuntu1) ...

再执行下面的命令启动nginx服务:

/etc/init.d/nginx start

结果如下所示,表示nginx顺利启动:

root@241541:~# /etc/init.d/nginx start
Starting nginx: nginx.

测试站点

由于nginx默认的站点不支持php,所以需要修改默认站点。

编辑文件名为 default.txt ,注意下面的 server_name 修改为你的vps的ip地址,可以写一个IP,也可以都写上,IP和IP之间有空格。

配置文件中的 root 就是站点的目录了,可以更改为你的站点的路径。

server	{
	listen       80;
	server_name 184.82.9.30 184.82.9.31;
	index index.html index.htm index.php;
	root  /var/www/;
	location ~ \.php$ {
		include /etc/nginx/fastcgi_params;
		fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
		fastcgi_pass  127.0.0.1:9000;
                fastcgi_read_timeout 300;
		}
	}


将 default.txt 文件使用 filezilla 上传到 /etc/nginx/sites-enabled 目录下

使用 putty 登录vps,输入如下命令重启 nginx 服务

/etc/init.d/nginx restart

重启结果如下所示:

root@241541:~# /etc/init.d/nginx restart
Restarting nginx: nginx.

安装phpsysindo

按照前面apache2讲述的安装

安装 php 探针

按照前面apache2讲述的安装

安装 phpmyadmin

照前面 Apache2 安装 phpmyadmin, 注意第二步不要再按空格选择 apache2 , 直接回车下一步。

如果已经之前已经安装过 phpmyadmin ,不需要删除,继续使用。

安装完毕 phpmyadmin 后, 继续在 putty 里面执行如下命令即可:

cd /var/www
ln -s /usr/share/phpmyadmin .

执行情况如下所示:

root@241541:~# cd /var/www
root@241541:/var/www# ln -s /usr/share/phpmyadmin .
root@241541:/var/www#

然后就可以在浏览器里面访问 phpmyadmin 了。 访问地址: http://184.82.9.30/phpmyadmin/

配置虚拟站点

以上运行环境均已经安装完毕,下面讲如何配置 nginx 的多域名。

假设前提: 你有一个域名 test.com ,你希望搭建两个站点,第一个站点是 www.test.com 和 test.com 为主页,同时希望提供 bbs.test.com 为论坛。

下面的文档对多个不同的域名也是适用的。

配置域名

参考上面 apache2 的配置域名部分。

上传程序

参考上面 apache2 的上传程序部分。

多域名配置

编辑www.test.com的站点配置文件 test.com.txt

server	{
	listen       80;
	server_name www.test.com test.com;
	index index.html index.htm index.php;
	root  /var/www/test/;
	location ~ \.php$ {
		include /etc/nginx/fastcgi_params;
		fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
		fastcgi_pass  127.0.0.1:9000;
                fastcgi_read_timeout 300;
                fastcgi_send_timeout 300;
		}
	}


编辑bbs.test.com的站点配置文件 bbs.test.com.txt

server	{
	listen       80;
	server_name bbs.test.com;
	index index.html index.htm index.php;
	root  /var/www/bbs/;
	location ~ \.php$ {
		include /etc/nginx/fastcgi_params;
		fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
		fastcgi_pass  127.0.0.1:9000;
                fastcgi_read_timeout 300;
                fastcgi_send_timeout 300;
		}
	}


将这两个文件使用 filezilla 上传到 /etc/nginx/sites-enabled/ 目录

修改上传文件权限

由于上传的文件的所有者为 root ,Nginx 无法正常写入,所以需要设置上传文件的宿主为 www-data。

使用putty登录vps执行如下命令,设置 /var/www下的所有文件的宿主都是 www-data,这样nginx就可以正常读写:

chown -R www-data:www-data /var/www/*
/etc/init.d/nginx restart

执行结果如下所示:

root@241541:~# chown -R www-data:www-data /var/www/*
root@195669:~# /etc/init.d/nginx restart
Restarting nginx: nginx.

安装配置

见 apache2 的安装配置部分

安全相关事项

vps的root密码不要设置的太简单,这样很容易被攻破,你可以安装如下软件来降低vps被攻破的机会。

输入如下命令:

apt-get install denyhosts

提示如下表示安装完成:

root@241541:/# apt-get install denyhosts
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  denyhosts
0 upgraded, 1 newly installed, 0 to remove and 26 not upgraded.
Need to get 73.8kB of archives.
After this operation, 451kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ maverick/universe denyhosts all 2.6-7 [73.8kB]
Fetched 73.8kB in 0s (131kB/s)
Selecting previously deselected package denyhosts.
(Reading database ... 22621 files and directories currently installed.)
Unpacking denyhosts (from .../denyhosts_2.6-7_all.deb) ...
Setting up denyhosts (2.6-7) ...
 * Starting DenyHosts denyhosts                                          [ OK ]

这样如果用户5次密码输入错误,将会自动将其IP加到黑名单,不允许再登录。

备份站点

将 vps 成功安装好软件后,面临的第二大的事情是如何备份现有的东西?

你需要备份 3 个方面的内容: 1 站点配置文件 2 站点文件 3 数据库, 分别讲解如下:

备份站点配置文件

看前面的设置,一般情况,我们需要备份Apache或Nginx,如果你修改了Mysql的配置,则需要备份Mysql的配置。

注意在使用 tar 备份时,推荐使用 “tar czf 备份文件名 需要备份的路径” 来备份,你也可以使用 “tar czvf ..." 来显示备份详细的进度;但当备份文件很多时,显示中间的备份过程会很花时间和带宽,所以并不建议使用。

备份完毕后,就可以直接使用 filezilla 到 /root 目录去下载你备份的文件了。

备份Apache配置文件

执行如下命令备份Apache的配置到 /root 下 :

cd
tar czf apache2.tar.gz /etc/apache2

备份的文件名叫 apache2.tar.gz ,执行结果如下:

root@241541:~# cd
root@241541:~# tar czf apache2.tar.gz /etc/apache2
tar: Removing leading `/' from member names

检查下备份的文件大小,输入

 ls -l apache2.tar.gz

结果显示如下,表示备份成功

root@241541:~# ls -l apache2.tar.gz
-rw-r--r-- 1 root root 31021 Aug 13 18:32 apache2.tar.gz

备份Nginx配置文件

执行如下命令备份Nginx的配置到 /root 下 :

cd
tar czf nginx.tar.gz /etc/nginx

备份的文件名叫 nginx.tar.gz ,执行结果如下:

root@241541:~# cd
root@241541:~# tar czf nginx.tar.gz /etc/nginx
tar: Removing leading `/' from member names

检查下

root@241541:~# ls -l nginx.tar.gz
-rw-r--r-- 1 root root 5179 Aug 13 18:21 nginx.tar.gz

备份Mysql配置文件

执行如下命令备份Mysql的配置到 /root 下 :

cd
tar czf mysql.tar.gz /etc/mysql

备份的文件名叫 mysql.tar.gz ,执行结果如下:

root@241541:~# cd
root@241541:~# tar czf mysql.tar.gz /etc/mysql
tar: Removing leading `/' from member names

检查下

root@241541:~# ls -l mysql.tar.gz
-rw-r--r-- 1 root root 2639 Aug 13 18:25 mysql.tar.gz

备份站点文件

执行如下命令备份 /var/www 的配置到 /root 下 :

cd
tar czf www.tar.gz /var/www

备份的文件名叫 www.tar.gz ,执行结果如下:

root@241541:~# cd
root@241541:~# tar czf www.tar.gz /var/www
tar: Removing leading `/' from member names

检查如下

root@241541:~# ls -l www.tar.gz
-rw-r--r-- 1 root root 12042534 Aug 13 18:43 www.tar.gz

备份数据库

由于数据库本身包含了帐号和权限信息,所以我们完整备份整个数据库。

执行以下命令备份数据库到 /root 目录

cd
mysqldump -p --all-databases |gzip > mysql.sql.gz

会提示输入密码,输入mysql的密码后回车完成备份,如下所示。

root@241541:~# mysqldump -p --all-databases |gzip > mysql.sql.gz
Enter password:

备份的文件名为 mysql.sql.gz ,检查一下备份的时间和大小

root@241541:~# ls -l mysql.sql.gz
-rw-r--r-- 1 root root 133351 Aug 13 19:01 mysql.sql.gz

恢复站点

当 vps 出现故障后如何恢复?

首先你需要重新去reload系统到原来的系统,然后再按照前面的指南,安装好和之前一样的运行环境。

然后将你备份的所有文件使用 filezilla 上传到 vps 的 /root 目录下。

最后需要恢复 3 个方面的内容: 1 站点配置文件 2 站点文件 3 数据库, 分别讲解如下:

恢复站点配置文件

恢复Apache配置文件

假设 apache 的备份文件名为 apache2.tar.gz ,使用 putty 登录 vps ,执行如下命令恢复:

cd
tar xzf apache2.tar.gz
cp -a etc/apache2 /etc/apache2

执行结果如下,不会有任何回应:

root@241541:~# cd
root@241541:~# tar xzf apache2.tar.gz
root@241541:~# cp -a etc/apache2 /etc/apache2

使用如下命令重启 Apache2 :

/etc/init.d/apache2 restart

恢复Nginx配置文件

假设 nginx 的备份文件名为 nginx.tar.gz ,使用 putty 登录 vps ,执行如下命令恢复:

cd
tar xzf nginx.tar.gz
cp -a etc/nginx /etc/nginx

执行结果如下,不会有任何回应:

root@241541:~# cd
root@241541:~# tar xzf nginx.tar.gz
root@241541:~# cp -a etc/nginx /etc/nginx

使用如下命令重启 nginx :

/etc/init.d/nginx restart

恢复Mysql配置文件

假设 mysql 的备份文件名为 mysql.tar.gz ,使用 putty 登录 vps ,执行如下命令恢复:

cd
tar xzf mysql.tar.gz
cp -a etc/mysql /etc/mysql

执行结果如下,不会有任何回应:

root@241541:~# cd
root@241541:~# tar xzf mysql.tar.gz
root@241541:~# cp -a etc/mysql /etc/mysql

恢复站点文件

由于站点占用的空间比较大,所有我们不复制过去,解压缩后直接移动过去。

假设站点的备份文件名为 www.tar.gz ,使用 putty 登录 vps ,执行如下命令恢复:

cd
tar xzf www.tar.gz
rm -fr /var/www/*
mv var/www/* /var/www/

执行结果如下,不会有任何回应:

root@241541:~# cd
root@241541:~# tar xzf www.tar.gz
root@241541:~# rm -fr /var/www/*
root@241541:~# mv var/www/* /var/www/

恢复数据库

假设 mysql 的备份文件名为 mysql.sql.gz ,使用 putty 登录 vps ,执行如下命令恢复:

cd
gunzip < mysql.sql.gz | mysql -p

会提示输入当前新安装的mysql密码,输入密码后回车继续。

执行结果如下:

root@241541:~# cd
root@241541:~# gunzip < mysql.sql.gz | mysql -p
Enter password:

关于Zend Optimizer

由于Zend Optimizer 不支持 php 5.3.x ,如果必须要使用,则需要降级:

注意不要去尝试安装 ZendServer-CE 的 optimizerplus 或 Zend Guard Loader,因为,php 5.3.x 上的解密都不支持 php5.2.x 上的加密,除非你手头上的加密程序可以重新针对 php 5.3.x 重新加密,所以必须降级 php 的版本为 5.2.x 。

并且仅仅支持 Apache , 不支持 Nginx (问题是降级后不再支持 php5-fpm,当然有能力者,可以采用 spawn-fcgi 来代替)。

如果是Nginx用户,请还原到 Apache 环境,并且参考上面步骤事先安装好Apache和php,并测试php正常运行。

php 降级

依次逐行输入如下命令,如果碰到如下:

Do you want to continue? [Y/n/?] 

请出入 y 回车继续

apt-get install aptitude lsb-release
php_installed=`dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
aptitude purge $php_installed
echo -e "Package: php5\nPin: release a=karmic\nPin-Priority: 991\n"  > /etc/apt/preferences.d/php 
apt-cache search php5-|grep php5-|awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'  >> /etc/apt/preferences.d/php 
apt-cache search -n libapache2-mod-php5 |awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}' >> /etc/apt/preferences.d/php 
echo -e "Package: php-pear\nPin: release a=karmic\nPin-Priority: 991\n"  >> /etc/apt/preferences.d/php 
egrep '(main restricted|universe|multiverse)' /etc/apt/sources.list|grep -v "#"| sed s/`lsb_release -s -c`/karmic/g > /etc/apt/sources.list.d/karmic.list
apt-get update
apt-get install $php_installed
aptitude hold `dpkg -l | grep php5| awk '{print $2}' |tr "\n" " "`

php 高级安装技巧

如果需要支持nginx或采用fastcgi来运行php,在执行完毕上面的步骤后,参考如下命令安装(注意,Apache环境不需要执行):

采用fastcgi,即用于spawn-fcgi:

aptitude install -t karmic php5-cli php5-cgi 

返回到Apache:

apt-get install -t karmic  libapache2-mod-php5

安装 Zend Optimizer

cd ~
wget http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
tar zxvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
mkdir -p /usr/local/zend/
cp ZendOptimizer-3.3.3-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /usr/local/zend/
echo "zend_extension=/usr/local/zend/ZendOptimizer.so" > /etc/php5/conf.d/zend.ini

安装成功验证

运行:

php -v

返回如下提示:

root@241541:~# php -v
PHP 5.2.10-2ubuntu6 with Suhosin-Patch 0.9.7 (cli) (built: Oct 23 2009 16:30:10)

Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

显示成功安装 Zend Optimizer。

重启 Web 服务

如果是 apache :

/etc/init.d/apache restart

如果是Nginx:

/etc/init.d/php5-fpm restart

日常维护

查看硬盘剩余空间大小

df

显示

root@241541:/# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/simfs            20971520    583508  20388012   3% /

查看硬盘可用文件数

df -i

显示

root@241541:/# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/simfs            400000   26568  373432    7% /

查看内存剩余大小

free

显示

root@241541:/# free
             total       used       free     shared    buffers     cached
Mem:        524800     245240     279560          0          0          0
-/+ buffers/cache:     245240     279560
Swap:            0          0          0

如何从其他网站上下载文件

wget "下载文件的链接地址"

如下所示下载 DZ 论坛的最新版:

wget http://download.comsenz.com/DiscuzX/2.0/Discuz_X2_SC_UTF8.zip

你也可以指定需要保存的文件名为 dz.zip 如下:

wget http://download.comsenz.com/DiscuzX/2.0/Discuz_X2_SC_UTF8.zip -O dz.zip

如果对方有防盗链可以这样下:

wget http://download.comsenz.com/DiscuzX/2.0/Discuz_X2_SC_UTF8.zip --referer=http://download.comsenz.com/

常用服务重启

重启 Apache2

/etc/init.d/apache2 restart

重启 Mysql

/etc/init.d/mysql restart

重启 Nginx

/etc/init.d/nginx restart

重启 php

/etc/init.d/php5-fpm restart


查看内存被什么消耗

ps -eo pid,rss,cmd --sort -rss

显示:

PID RSS CMD
5599 29460 /usr/bin/python /usr/bin/yum install gcc
31804 23768 /usr/sbin/httpd
25665 23100 /usr/sbin/httpd
26582 22736 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock
31805 20240 /usr/sbin/httpd
31807 19652 /usr/sbin/httpd
31810 19536 /usr/sbin/httpd
32279 19308 /usr/sbin/httpd
31808 19224 /usr/sbin/httpd
31806 19160 /usr/sbin/httpd
31811 19100 /usr/sbin/httpd
31809 18980 /usr/sbin/httpd
12181 7016 /usr/sbin/httpd
30640 6500 /usr/sbin/httpd
22150 3988 /usr/sbin/httpd
9590 1916 sendmail: accepting connections
9599 1540 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
26530 1188 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --user=mysql
9624 1108 crond
9343 1064 /usr/sbin/sshd
19801 672 ps -eo pid,rss,cmd --sort -rss
1 660 init [3]
9238 572 syslogd -m 0
7795 556 /sbin/udevd -d

动态显示系统程序情况

top

显示

mysql 手工恢复 phpmyadmin 备份的 sql 文件

xxxx.sql 是你备份的sql文件名。

 mysql -p 数据库名 < xxxx.sql

手工备份单个 mysql 数据库

xxxx.sql 是你备份的sql文件名。

mysqldump -p 数据库名 > xxxx.sql

更多命令参考

Ubuntu 技巧

常见故障

"Temporary failure resolving"

使用 wget 或 apt-get 时出现上面的提示,是官方的dns服务器出现故障了,采用如下命令修复:

echo nameserver 8.8.8.8 > /etc/resolv.conf