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

此文仅仅是一名服务器菜鸟折腾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就可以了。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code