一聚教程网:一个值得你收藏的教程网站

热门教程

ubuntu 12.04 安装优化lnmp服务器方法

时间:2022-06-30 18:48:25 编辑:袖梨 来源:一聚教程网

直接php+mysql这是Linux web服务器的黄金组合。今天我们一来学如何在ubuntu 12.04 中架设lnmp。

1. 使用官方PPA安装 Nginx 最新版本,使用以下命令:

 代码如下 复制代码

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx

Nginx相关控制命令:
启动 Nginx:

sudo /etc/init.d/nginx start
浏览器浏览运行情况输入:http://localhost ;如果现实”Welcome to nginx!”,表明你的 Nginx 服务器安装成功!
关闭 Nginx:sudo /etc/init.d/nginx stop;
重启 nginx:sudo /etc/init.d/nginx restart;
2. 安装 PHP,输入以下命令:

sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql
配置Nginx站点,设置:

sudo vi /etc/nginx/sites-available/default
修改 “index” 为:“index index.html index.htm index.php;”
删除以下内容:

 代码如下 复制代码

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}

测试,创建网站目录

sudo mkdir /var/www/
建立一个虚拟站点:

sudo vi /etc/nginx/sites-available/default
修改root目录: “root /var/www;”
建立一个测试页面:

sudo vi /var/www/test.php
在测试页面test.php中加入以下代码:

重启nginx

sudo /etc/init.d/nginx restart
浏览器输入以下地址,看看有没有安装成功!

http://localhost/test.php

3.安装 MySQL 数据库

sudo apt-get install mysql-server


Nginx配置优化说明

Nginx配置可优化项
# worker_processes的数目应该不多于服务器的CPU的核数目,
# 每个CPU核超过1个worker不会使得Nginx性能有什么提升
worker_processes 24;

# 给Nginx使用的文件描述符的数目.这个需要一起设置系统内核参数'ulimit -n 200000'
# 或修改'/etc/security/limits.conf', 参考《高负载Linux调优》
worker_rlimit_nofile 200000;

# 设定每个worker进程最多可以服务多少客户端,
# Max clients = worker_connections * worker_processes
# "Max clients"其实也受到系统可使用的socket连接(socket connections)的限制,大约是64K
worker_connections 4000;

# 对于Linux系统来说选择epoll,那样每个线程可以服务更多的客户端
use epoll;

# 在Nginx获得有新连接的通知之后,接受尽可能多的连接
# 需要注意的是:如果worker_connections设置太低的话,这样可能会造成拥堵
multi_accept on;

# 缓存打开的文件描述符(open FDs),经常被访问的文件的信息.
# 适当设置下面这些值可以极大提高每秒的请求数.
# 实际设置的值不一定跟下面的一样,请根据具体机器来调优.下面只是测试环境中的一个设置例子.
open_file_cache max=200000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

# 缓冲日志写入可以加速I/O,或是有可能的话甚至可以禁止,看具体的生产环境要求.
#access_log /var/log/nginx/access.log main buffer=16k;
access_log off;

# 使用sendfile从Linux内核中的一个文件描述符(FD)拷贝数据到另一个文件描述符比read() + write()更有效率,
# 因为read() + write()的方式需要在用户空间(user space)来回传输数据
sendfile on;

# 使用tcp_nopush会使Nginx尝试使用一个数据包发送它的HTTP响应头(HTTP response head),而不是使用部分帧
# (partial frames).无论是对调用sendfile之前追加头部(prepending headers)或是对是吞吐量优化来说,
# 都是非常有用的.
tcp_nopush on;

# 不要缓冲数据发送(data-sends)(禁止Nagle算法).
# 设置为on非常适合于实时频繁发送小数据.(比如图片,pdf,ppt文件之类不是小数据的,应该设置为off)
tcp_nodelay on;

# keep-alive连接的超时时间.服务器在这个超时时间之后会关闭这个连接.
keepalive_timeout 30;

# 可通过keep-alive连接的客户端请求数.下面的值仅是测试环境使用,具体设置请根据实际机器来调.
keepalive_requests 100000;

# 在客户端停止响应之后,允许服务器关闭连接,释放socket关联的内存
reset_timedout_connection on;

# 设置客户端读请求的超时时间,默认是60s
client_body_timeout 10;

# 设置客户端的响应超时时间.如果客户端停止读取数据,在这么多时间之后就释放过期的客户端连接,默认是60s
send_timeout 2;

# 压缩设置.减少网络传输数据量.
gzip on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6].";

热门栏目