RSS Feed

Posts Tagged ‘linux’

  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. 基于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持续高负荷运转,并且导致磁盘爆满。哎呀,对于一个非技术人员来,有时候会折腾死人的。



  3. Ubuntu8.10不能上网解决方法

    November 3, 2008 by nonozone

    前一篇文章里,我也反映了自己安装好Ubuntu8.10以后,不能上网,并且在那个Network Manager里面网络貌似也不能正确配置,后来在网上和ubuntu中文论坛看了一下,貌似出现这个问题的朋友还挺多,大概了解了一下,貌似是由于Network Manager有BUG引起的,经过好久的尝试,终于解决这个不能上网的问题了,这里把方法分享一下!

    首先,卸载掉Network Manager。你可以在新立得软件管理器卸载,也可以直接在终端敲入命令,当然我觉得敲一个命令比在新立得里更新,再搜索,再卸载方便多了,尤其在没有网络的情况下!

    sudo apt-get remove network manager

    然后手动配置网卡,因为这个时候,在System系统设置里面,是没有网络这一项的,所以我们要手动编辑,看来还是得熟悉一些常用的配置,不然在出问题的时候比较麻烦。

    在终端输入:

    sudo gedit /etc/network/interfaces#总之你可以选用你喜欢的文本编辑器。

    进入文本编辑器以后,开始配置接口!

    如果是你使用的静态IP,比如在一个office,然后office 的都是使用的固定ip的话,你应该如下设置:

    auto eth0
    #iface eth1 inet dhcp (如果有这一行代码,麻烦你在前加一个"#",把它注释掉)
    iface eth0 inet static
    address 192.168.1.168  //这个IP地址,这些设置请根据你自己的情况填,不要抄我的
    netmask 255.255.255.0  //子网掩码
    gateway 192.168.1.1。  //网关

    如果你是IP自动获取的话,跟我一样。我也是在公司上网,但是ip都是自动获取,那就更加简单了:

    auto eth0
    #iface eth1 inet dhcp (如果有这一行代码,麻烦你在前加一个"#",把它注释掉)
    iface eth0 inet static

    注意:解释一下,eth0指的是你的第一款网卡,eth1意思是第二网卡,介于一般用户只有一块网卡,其实只有eth0,那你设置好eth0就可以了,别的不用管了。还有一点就是在弹出的文本编辑器里的这段配置,可能里面不是空白的,我的就不是,我的第一个配置貌似是什么lo,也就是网卡的测试用的自循环,不用管它,把这些配置添加进去就可以了。

    这个时候,你就可以ping一下你的网关,看看有网络有没有通。

    ping 192.168.0.1#或者有的是192.168.1.1,如果是公司的网络不是这两个跟网关咨询。

    这个时候还不一定能上网,但是网络估计没有问题了,你还需要添加DNS信息,不然是没有办法访问网站的。

    sudo gedit /etc/resolv.conf

    在弹出的文本输入框输入:

    DNSnameserver 192.168.1.1 //这里填入你所在地方的 DNS 服务器的地址

    这里的192.168.1.1也就是你的默认网关。但是这里保险最好填写两个DNS信息,一个是网关,我还加入了本地区电信的DNS,我目前是在广东电信,用的DNS是202.96.128.86,所以我的配置信息是如下:

    DNSnameserver 192.168.1.1
    DNSnameserver 202.96.128.86

    如果你使用的网通,总之不知道自己DNS的话,请电话查询你的网络接入商。

    还有如果你是ADSL拨号上网,我记得命令应该是:

    sudo pppoeconfig

    这里会出现一步一步的提示,填写帐号和密码,仔细看提示操作因该就没有问题了,因为这个我这里没有尝试,具体的就不写了。

    不过我ubuntu现在还是会偶尔出现关机不顺畅的问题,就是关机的时候进入一个黑屏,一个光标闪闪闪就不动了,必须按电源才能继续关机,如果有朋友也有这个问题解决了,还希望能赐教一下!



  4. Ubuntu8.10版正式发布!

    October 31, 2008 by nonozone

    Ubuntu8.10版本正式发布了!

    Ubuntu 是一个由 社区 开发的,适用于笔记本电脑、 桌面电脑服务器。 无论您是在家庭、学校还是工作时使用,Ubuntu 都包含了您所需的所有程序:无论是文字处理和电子邮件,还是 Web 服务和编程工具。

    大家可以到这里下载。我也在第一时间下载好镜像用wubi安装在笔记本上,可惜不知道为什么一直不能上网,貌似这个问题在ubuntu中文论坛上反映还挺多的。我是在安装完毕时重启的时候,进入一个黑屏然后一个光标一直闪一直闪就不动了,后来按了一下电源键才继续关机重启。

    还有就是提醒一下,下载的时候最好选择BT下载,一是因为现在新版本刚刚发布,下载的人很多,服务器负载不够,另一方面是由于下载人多,BT种子其实很多,很快就可以让你满速,比HTTP下载速度快多了!

    唉,第一时间就不能体验ubuntu新版本的特点了,过几天再试试吧。