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详细配置

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