RSS Feed

Posts Tagged ‘Debian’

  1. Debian安装LNMP指南及多站点配置

    July 18, 2011 by nonozone

    此文仅仅是一名服务器菜鸟折腾LNMP的学习笔记而已,各位老鸟就不用点击进来查看了。

    至于为什么选择LNMP而不是LAMP,除了装逼+折腾+跟风+从众心理,估计找不到其他理由了。说是跟Apache相比Nginx更轻巧性能也更优,不管是有多么好,估计对我那么一两个访问量不过千的小博客基本上没啥区别。对于自己独立配置服务器,其实内心一直战战兢兢,生怕由于不慎,让主机变成肉鸡,唉,总是要走出这一步,貌似自己也确实如此一步一步走过来的。好了,不说废话,下面开始正题,这篇文章基本是两个内容,一个是debian环境下LNMP的安装指南,一个是Nginx的多站点配置指南。

    Debian环境的LNMP安装指南

    由于本人技术比较弱,所以选择的是网上教程众多的LNMP一键安装包,项目主页:http://lnmp.org/,上面本身也有安装教程:http://lnmp.org/install.html,其实这个教程已经很完备了,以至于我没什么好说的。自己其实用不到那么多组件,有Nginx,Mysql,PHP,phpmyadmin就可以了,所以我直接下载的lnmp0.7.tar.gz这个文件包然后默认安装就完成了,其他什么诸如FTP,ionCute,eAccelerator什么的暂时就不需要了。

    安装的过程会提示你需要绑定一个域名,将域名的A记录解析到VPS的IP,LNMP一键安装完毕,直接访问域名就会出现一个安装成功的提示页面,同时还包含一个主机探针页面和PHPinfo函数的页面,这个都没啥好说的。安装过程大概会持续一段时间,估计有20-30分钟?我没仔细计时,因为我下载的是lnmp0.7.tar.gz文件包,这个文件包基本是一些脚本命令,执行的时候需要自己下载一些软件包,这本身需要一定的时间。

    相关的目录和配置文件

    nginx : /usr/local/nginx
    mysql : /usr/local/mysql
    php : /usr/local/php
    网站目录: /home/wwwroot/
    Nginx日志目录:/home/wwwlogs/
    Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
    MySQL配置文件:/etc/my.cnf
    PHP配置文件:/usr/local/php/etc/php.ini

    这里面我最不满意的就是Nginx的配置文件目录了,这么长一窜实在不方便。比较喜欢Apache默认的配置文件都在/etc/apache2/这个里面,一目了然什么的,接下来要把这个改掉!

    到这一步,其实LNMP已经成功安装完毕了,安装的时候绑定的域名也可以访问了,但是如果想多站点怎么办呢?比如你有两个域名aaa.com和bbb.com,分别是两个不同内容的网站,又要怎么设置呢,下面就是关于Nginx的多站点配置指南吧。

    Nginx多站点配置指南

    在Apache的多站点配置里面很方便,只需要在/etc/apache2/sites-available/里分别添加aaa.com和bbb.com两个配置文件就可议了,这里我也打算按照这么个思路吧。

    1首先,建立Nginx站点配置目录

    mkdir –p /etc/nginx/vhost

    然后编辑nginx配置文件

    ~# vim /usr/local/nginx/conf/nginx.conf

    将里面的server部分删除,最终变成的是下面这个样子,注意,这里不需要把我的代码复制过去,你只需要把这个配置文件的server 整个部分删掉就可以了。

                   use epoll;
    worker_connections 51200;
    }

    http
    {
    include       mime.types;
    default_type  application/octet-stream;

    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 50m;

    sendfile on;
    tcp_nopush     on;

    keepalive_timeout 60;

    tcp_nodelay on;

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 256k;

    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

    #limit_zone  crawler  $binary_remote_addr  10m;

    include /etc/nginx/vhost/*.conf;
    }

    注意最后的一行修改为,原配置文件不是这样的,此处需要修改过来。

    include /etc/nginx/vhost/*.conf;

    其实这个动作的作用就是以后直接读取/etc/nginx/vhost/这个目录下的所有配置文件。然后重启nginx:

    /etc/init.d/nginx restart

    这个时候,应该最开始绑定的那个域名aaa.com是不能访问的,因为配置文件已经修改了。下面来为这个域名增加配置文件。

    进入/etc/nginx/vhost/,创建aaa.com.conf

    然后将以下内容复制进去:

    server
    {
    listen       80;
    server_name aaa.com;
    index index.html index.htm index.php;
    root  /srv/www/aaa.com/public_html;

    location ~ .*\.(php|php5)?$
    {
    fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fcgi.conf;
    }

    location /status {
    stub_status on;
    access_log   off;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
    expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
    expires      12h;
    }

    log_format  access  ‘$remote_addr – $remote_user [$time_local] “$request” ‘
    ‘$status $body_bytes_sent “$http_referer” ‘
    ‘”$http_user_agent” $http_x_forwarded_for’;
    access_log  /srv/www/aaa.com/logs/access.log  access;
    }

    其实这段就是刚才在/usr/local/nginx/conf/nginx.conf里面删除的那段代码。上面蓝色著名的地方其实就是这个域名所在的跟目录和日志文件的目录。这个目录可以根据自己的需要修改,下面创建网站的根目录和日志目录:

    mkdir –p /srw/www/aaa.com/public_html
    mkdir –p /srw/www/aaa.com/logs

    然后重启nignx

    /etc/init.d/nginx resart

    这样整个网站就配置好了,按照同样的方式创建bbb.com就可以了。这个时候直接访问aaa.com应该是不行的,因为没有内容,你可以再根据这篇SSH安装WordPress指南安装个Wordpress试试,应该是没问题的。

    但是这里还有一个问题,由于LNMP安装的时候跟目录是/home/wwwroot,同时默认的phpmyadmin安装目录也在这里,这个时候通过访问http://xxx.xxx.xxx.xxx/ phpmyadmin是无法访问的,因为此时跟目录已经被修改到/srv/www了,这个时候加个链接过来

    ln –s /home/wwwroot/phpmyadmin /srv/www/aaa.com/public_html

    这时通过访问aaa.com/phpmyadmin就可以了。



  2. SSH安装WordPress指南

    April 12, 2011 by nonozone

    本篇是紧接上篇基于Debian的VPS搭建LAMP指南之后,直接用SSH在VPS上安装wordpress过程。

    下面还是直接在root账户下操作,不过建议各位可以新建一个普通账户然后使用sudo命令。

    下载解压Wordpress

    #wget http://wordpress.org/latest.tar.gz
    #tar zxvf lastest.tar

    安装Wordpress

    #cp ./wordpress/* /srv/www/site.com/public_html/ –a

    如果想复制整个目录,以下两个命令都可以

    cp   -R   source/   des/
    cp   source/   des/   -a

    这个时候就可以直接在浏览器上输入你的域名按照正常的wordpress安装流程就可以了。这个时候可能无法自动创建wp-config.php文件,提示权限不够,可以自己在进入wordpress目录

    #cp  wp-config-simple.php  wp-config.php

    然后这里修改你的数据库相关信息,保存退出。

    修改Wordpress固定链接

    为了让URL对SE更加友好,这里可以自定义Wordpress的固定链接。我的方法是进入控制面板–Settings–Permalink选择Custom Structure,输入/%postname%.html。

    但是这样可能你的固定链接并没有生效,这是因为你的VPS还没有开机rewrite功能。

    #a2enmod rewrite
    #/etc/init.d/apache2 restart

    这样以及好了,但是如果访问某个文章的时候提示你找不到页面,必须要在网站根目录新建一个.htaccess文件,将下面这段内容复制进去,

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    然后这样就全部OK了。



  3. 基于Debian的VPS搭建LAMP指南

    April 11, 2011 by nonozone

    此文基本是在海豚微笑的背后一文VPS建站LAMP 101基础上进行的,只是将自己按照其过程操作下来的几个问题稍微注明下。

    根据海豚叔这篇文章我前前后后折腾了很久,总是会出错,搜索了很久也一直没有解决。本来都打算把上次获得Linode的100美金优惠券购买的VPS停止不用的,昨天稍微折腾了下,竟然所有问题都搞定了,特地整篇文章让自己也有个笔记留作以后参考。

    基本内容大致相同,把自己遇到的问题和解决方法在相应位置特别说明了下。

    设置时区
    系统安装完毕后,最好先设置一下时区。一般来说大部分发行版本默认的时区设置是UTC,这里可以选择中国所在的时区shanghai。

    dpkg-reconfigure tzdata

    设置HostName
    HostName设置成自己喜欢的就行,不过有些系统保留的名字不要用。

    echo “youlikename” > /etc/hostname
    hostname -F /etc/hostname

    这里直接编辑 /etc/hostname 效果是一样,比如你想把自己的主机名称修改为Coolhost,直接vim /etc/hostname 填写Coolhost保存退出就可以了。

    设置完HostName后,继续让这个名字和Linode分配给你的公网ip地址相关联。
    修改/etc/hosts:

    127.0.0.1 localhost
    12.34.56.78 youlikename

    这里需要注意的一点就是,hosts的完整格式应该如下

    127.0.0.1 localhost.localdomain  localhost
    12.34.56.78 youlikename.localdomian  youlikename

    这个要特别注意,不然的话到最后重新加载apache服务端时候,会一直提示出错你找不到你的主机名,在这个问题上我折腾了相当久。然后需要重启一次,你的主机名才可以生效。

    安装配置Apache服务
    对于Debian Like用户来说安装任何东西都极其简单,使用以下命令就可安装Apache Web服务。

    apt-get install apache2

    然后需要修改/etc/apache2/ports.conf,加入以下内容:

    NameVirtualHost 12.34.56.78:80

    IP地址当然是VPS供应商提供给你的独立IP,如果不想站点公开化当然也可以更改80端口。
    然后需要修改默认的虚拟主机IP地址和端口,修改/etc/apache2/sites-available/default:

    <VirtualHost 12.34.56.78:80>

    配置虚拟主机

    /etc/apache2/sites-available/

    每个配置文件和域名一一对应,便于管理。比如需要设置两个站点,可以创建如下两个配置文件:site1.com; site2.org。
    /etc/apache2/sites-available/site1.com

    <VirtualHost *:80>
    ServerAdmin admin@site1.com
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /srv/www/site1.com/public_html/
    ErrorLog /srv/www/site1.com/logs/error.log
    CustomLog /srv/www/site1.com/logs/access.log combined
    </VirtualHost>

    /etc/apache2/sites-available/site2.org

    <VirtualHost *:80>
    ServerAdmin admin@site2.org
    ServerName site2.org
    ServerAlias www.site1.org
    DocumentRoot /srv/www/site2.org/public_html/
    ErrorLog /srv/www/site2.org/logs/error.log
    CustomLog /srv/www/site2.org/logs/access.log combined
    </VirtualHost>

    然后建立相应的目录:

    mkdir -p /srv/www/site1.com/public_html
    mkdir -p /srv/www/site1.com/logs
    mkdir -p /srv/www/site2.org/public_html
    mkdir -p /srv/www/site2.org/logs

    以上步骤需要注明的是,由于这里使用的并不是Apache默认的网站根目录地址,所以在<VirtualHost *:80>这个位置,同样需要把*更改成自己VPS的IP地址,否则即使域名绑定到VPS,但是访问的时候会提示你访问Apache默认地址/var/www,而不是这里的/srv/www。

    最后启用这两个站点:

    a2ensite site1.com
    a2ensite site2.org

    /etc/init.d/apache2 reload

    Apache2提供了两个命令来快速启用和关闭某个站点:a2ensite和a2dissite。

    安装配置Mysql

    apt-get install mysql-server

    安装配置PHP

    apt-get install php5 php-pear php5-suhosin

    为了让php支持Mysql,安装下面这个包:

    apt-get install php5-mysql

    安装phpmyadmin

    apt-get install phpmyadmin

    这里会提示你输入根管理员账户名称和密码,安装完成以后,直接输入你绑定的某个域名 abc.com/phpmyadmin 就可以访问了,然后根据需要创建数据库和用户,就可以了。

    上面这几部完成,基本上你的网站就可以按正常步骤安装并且可以访问。

    不过这些仅仅是最基本的访问设置,在折腾VPS的时候,需要很注意安全问题,比如我的这个主机以及朋友的几个VPS都有被人入侵的记录,我的一台VPS曾经被人入侵然后疯狂的上传下载一些数据,导致几天内CPU持续高负荷运转,并且导致磁盘爆满。哎呀,对于一个非技术人员来,有时候会折腾死人的。



  4. Ramhost安装OpenSSH新手指南

    July 16, 2010 by nonozone

    其实早就想整个VPS折腾了,一是为了更加稳定的翻墙,而是为了可以自己方便学习linux的一些相关知识。经过别人的推荐,最终选择的Ramhost这家VPS提供商。

    ramhost据说是一家一个人的公司,网上的评价都是蛮不错的,性能可靠,服务也不错,我选择的是他们的Micro方案,128内存,150G流量,对于我这样一个新手来说,一切都够用了。提醒一下,ramhost的VPS经常处于售罄状态,需要购买的朋友需要多多关注,或者给他发email提前通知你。最好的办法是在twitter上关注@ramhost,这样有最新的消息就最快知道了。

    还有一个需要提醒的是,Ramhost采用的是openVZ虚拟化方案,如果安装VPN的话只能安装openVPN,对于一些手机用户可能不大方便。

    其实这也是我第一次购买使用VPS,虽然以前也折腾过ubuntu什么的,都是在桌面,这次就把我的详细安装OpenSSH的详细过程写下来。我选择是debian5的系统,所以下面的过程也是针对debian5来进行的!

    首先你需要一个可以登录SSH的客户端,这里推荐putty,免费并且是绿色免安装。打开putty以后如下图:

    putty

    主机名称填写你的VPS地址,主要在你的ramhost控制面板中,有两个ip地址,一个VPS IP Address另外一个是Host Machine,这里你需要填写的是Host machine地址。然后端口填写22,连接类型选择SSH,然后点击打开就可以啦,这样可以看到下面的画面:

    2010-7-16 1-08-57

    这样说明你已经连接上了。ramhost第一次获取root权限的方式比较特别,第一次登录的时候,你的账号和密码都是VZ,然后继续如上图提示让你输入一个ramcp的用户名和密码,这个就是在ramhost网站登录控制面板的账号面板,进去以后,就是root权限了。

    为了更加好用,我首先安装了一个fish,方括号是我的注解,不用输入。

       1:  apt-get update
       2:  apt-get upgrade
       3:  apt-get install fish

    fish是一个非常好用的shell,自带的就有命令补全等其他非常好用的功能,速度也比debian自带的bash快得多。不用怎么设置,就是一个非常好用的shell,推荐使用。

    下面开始安装配置SSH,由于ramhost的vps非常干净,连基本的ssh服务都没有,这里我们选择安装openSSH

       1:  apt-get install openssh-server

    这样,SSH就基本开启了。由于这台VPS是想让几个朋友利用SSH翻墙使用,所以我还需要新建一个用户群,让他们都可以访问。基本的命令如下

    创建用户组

       1:  groupadd SSHProxy

    创建用户

       1:  useradd -g SSHProxy -s /bin/bash -d /home/tunnel SSHProxylUser1

    为该用户创建密码

       1:  passwd SSHProxylUser1

    设置sftp权限

       1:  chmod 700 /usr/lib/openssh/sftp-server

    在/etc/ssh/sshd_config中添加

       1:  Match Group SSHProxy
       2:  AllowTcpForwarding yes
       3:  ForceCommand sh /home/tunnel/tunnelproxyshell.sh

    由于刚才新建用户的时候并不会自动新建用户目录,所以我们需要先新建一个用户目录

       1:  mkdir /home/tunnel

    然后创建 tunnelproxyshell.sh文件

       1:  vim /home/tunnel/tunnelproxyshell.sh

    内容如下

       1:  #!/bin/sh
       2:  echo ""
       3:  echo "  ****************************************************  "
       4:  echo "  * welcome to SSHProxyTunnel,press any key to exit. *  "
       5:  echo "  ****************************************************  "
       6:  echo ""
       7:  read x
       8:  exit

    然后重启sshd

       1:  /etc/init.d/ssh restart

    接下来如果还需要添加其他用户只需要如下命令

       1:  useradd -g SSHProxy -s /bin/bash -d /home/tunnel SSHProxylUser2
       2:  passwd SSHProxylUser2

    这些动作只有一个目的,就是让这些proxy用户,即可以通过ssh连接vps,但是又无法获取其他权限。为了验证新创建的用户是否可以连接,可以用putty连接试试,这个时候需要注意的是,刚才我们第一次连接ssh使用的是Host machine地址,但是现在需要我们连接VPS IP Address,其实是这样的,Host machine address是这台vps所在服务器的网卡的IP,而这台服务器可能虚拟出来好几个vps,而那个VPS IP Address才是这个虚拟出来的vps的IP地址!切记!我第一次折腾好久无法连接,就是因为这个地方没有搞明白!

    用你刚刚创建的用户,连接你的VPS IP Address地址,然后可以看到下面这个提示,就说明你成功了!

    2010-7-16 1-50-00

    然后接下来如何使用SSH翻墙,这里就不介绍了,自己网上搜索下吧。

    最后广告一下,如果需要SSH的可以留言,每月5块,基本满足你访问twitter,facebook等其他国外网站了!

    本文基本参考了 http://blog.stevenwang.name/vps-opensshserver-104002.html 特此注明!