博采众长,精于一技。Live for love, work for dream.

Ubuntu 10.04安装Nginx+PHP+MySQL

0.前言
本文为Ubuntu10.04下快速安装教程,如果你想在源码上编译安装,本文不适合你,但你可参考
在 Ubuntu 9.10 Server 上安装 Nginx 0.8.34
ubuntu安装 nginx,PHP,php-fpm
或我之前写的Ubuntu下安装Nginx + PHP-FPM +MySQL

1.安装PHP-FPM
1.1 添加第三方源
sudo add-apt-repository ppa:sushkov/personal
sudo apt-get update

1.2 安装php环境(请根据自己的应用来选择安装,我只是装PHP来测试,所以只装了最基本的组件)
sudo apt-get install php5-cli php5-common php5-suhosin php5-fpm php5-cgi php5-mysql

2.安装Nginx
2.1 添加第三方源
在/etc/apt/sources.list添加PPA的源
deb http://ppa.launchpad.net/jdub/devel/ubuntu lucid main
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E9EEF4A1
sudo apt-get update

2.2 安装Nginx
sudo apt-get install nginx
至此Nginx安装完成。

3. 配置Nginx
3.1 编辑Nginx.conf
如果你想添加或更改配置,可以编辑/etc/nginx/nginx.conf。
用下面的内容替换原来的所有内容
user www-data;
worker_processes  2;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

worker_rlimit_nofile 10240;
events
{
        use epoll;

        worker_connections  2000;
}

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

        access_log    /var/log/nginx/access.log;
#optimize_server_names off;
        server_name_in_redirect off;
        server_names_hash_bucket_size 128;
        client_header_buffer_size 1k;
        large_client_header_buffers 4 4k;

        sendfile        on;
        tcp_nopush     on;

        client_body_timeout 10;
        client_header_timeout 10;
        send_timeout 60;

        keepalive_timeout  5 5;
        tcp_nodelay        on;

        output_buffers 1 32k;
        postpone_output 1460;

        open_file_cache max=2000 inactive=20s;
        open_file_cache_min_uses 1;
        open_file_cache_valid 30s;

        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 128k;

        gzip on;
        gzip_min_length  1100;
        gzip_buffers     4 8k;
        gzip_http_version 1.0;
        gzip_comp_level 7;
        gzip_types       text/plain application/x-javascript text/css application/xml;

        include /etc/nginx/sites-enabled/*;
}

如果要添加虚拟主机,可以在/etc/nginx/sites-availale/目录里面添加,
打开/etc/nginx/sites-availale/default,我们看到已经指定了默认目录到了/var/www,但是这个目录并不存在,下面我们添加一个默认目录。
sudo mkdir /var/www
然后在该目录下,新建一个index.html,然后打开浏览器,输入http://localhost/,就可以看到效果了。

3.2配置Nginx,以支持PHP
编辑/etc/nginx/sites-availale/default
server {
    root  /var/www;
    server_name     localhost;
    listen          80;
    access_log  /var/log/nginx/localhost.access.log;
    location / {
        index  index.html index.htm index.php;
    }
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        include fastcgi_params;
    }
}

3.3 优化PHP配置
如果要在PHP中加入些特殊的$_SERVER变量,可以编辑/etc/nginx/fastcgi_params
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
如果要调整PHP的进程数,可以编辑/etc/php5/fpm/php5-fpm.conf
<value name="max_children">64</value> 
<value name="rlimit_files">32768</value> 
<value name="max_requests">8192</value>

请根据自己的实际情况进行调整

3.4 保存配置,并运行nginx和php-fpm
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm restart

4.安装MySQL
apt-get install mysql-server libtcmalloc-minimal0
libtcmalloc-minimal0是什么?为什么要装?请看Using the Google Perftools to speed up your MySQL server,据说能提升~15-20%的性能
编辑mysql启动文件 /etc/init.d/mysql
在文件开头加上下面一句,并保存
export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.0"
编辑Mysql的配置文件 /etc/mysql/my.cnf
[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/english
skip-external-locking
bind-address            = 127.0.0.1
key_buffer              = 16K
max_allowed_packet      = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K

thread_stack            = 64K
thread_cache_size       = 8
myisam-recover         = BACKUP
query_cache_limit       = 64K
query_cache_size        = 256K
expire_logs_days        = 10
max_binlog_size         = 10M
[mysqldump]
quick
quote-names
max_allowed_packet      = 16M

[mysql]

[isamchk]
key_buffer              = 16M

!includedir /etc/mysql/conf.d/

5.测试
新建/var/www/index.php
<?php
phpinfo
();

如果看到正确的php信息,则表示安装成功!
最后感谢“心自逍遥”的好文ubuntu nginx + mysql + php5-fpm + wordpress详细配置

日志信息 »

该日志于2010-07-03 14:41由 Rebill 发表在操作系统,运维管理分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过评论 RSS订阅这个日志的所有评论。

相关日志 »

赞助链接 »

已有 2 条评论 »

  1. 然然 然然

    我按照你的教材做,但php没链接上数据库,数据库也启动不成功。
    最后发现是因为我根本就没有这个文件:/var/run/mysqld/mysqld.sock
    我该怎么弄呢?
    非常感谢!

    1. MySQL安装成功后,执行sudo /etc/init.d/mysql start来启动MySQL

添加新评论 »

返回顶部
无觅相关文章插件,快速提升流量