尽管Apache已经占据半片江山,但很多人仍然在寻找其他的方式去托管他们的站点,Apache不只是一个选择,其他很多优秀的服务器程序例如lighthttp和nginx也是不错的选择。本教程将要向您展现如何在Ubuntu操作系统上面安装,教程同样适用在Debian,尽管有一点点小差别,但并没有太大影响。怎么样,下面我们开始吧。 0.开始注意 为了完成教程中提到的操作,我们假设您已经安装了一个基本的Debian或者Ubuntu操作系统。怎么安装系统这是不同的教程了,这里就不再详细说明。本教程主要介绍如何简单获取Nginx+php的运行环境。 1.安装Nginx 第一步要做的就是从库中下载,这个操作是非常简单的。
sudo apt-get install nginx``` 更改默认的虚拟站点配置,文件在:
sudo vim /etc/nginx/sites-available/default
一个漂亮的关键配置是:
server { listen 80; server_name localhost; access_log /var/log/nginx/localhost.access.log;
Default location
location / { root /var/www; index index.php;}
Images and static content is treated different
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { access_log off; expires 30d; root /var/www;}
Parse all .php file in the /var/www directory
location ~ .php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass backend; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k;}
Disable viewing .htaccess & .htpassword
location ~ /\.ht { deny all;}
}upstream backend { server 127.0.0.1:9000;}
2.安装PHP 很多站点都使用PHP提供动态内容,他们可能是一个wiki一个博客,或者一个论坛什么的。 如果你现在运行的是Ubuntu,我们首先需要解决两种不同的deb包,如果你运行的是amd64版本,那需要更改i386为amd64 注意:如果是debian则不需要做这些
cd /tmp wget wget sudo dpkg -i *.deb
下面剩余部分将在Ubuntu和Debian上面都通用。 我们需要增加APT源来增加deb包,所以我们可以使用php5.3和php-fpm
sudo echo "deb stable all" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install php5-cli php5-common php5-suhosin
sudo apt-get install php5-fpm php5-cgi
好了,我们现在已经安装完了nginx和php 一个注意点:如果你使用"php的短标记(
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm restart
4.测试 我们可以在/var/www中创建一个index.php的文件,内容如下:
<?php phpinfo(); ?>
5.问题和最终提示 如果你没有看到phpinfo,可能会出现一些错误,那可以执行:
sudo tail /var/log/nginx/error.log
在默认的配置中nginx是启用了fastcgi的错误日志的,如果看到一个严重的错误(例如出现"cannot redeclare class xyz"),nginx可以看到这个“漂亮的”错误页面,那可能是一些错误发生了。 如果这样你可以关闭,如果php5-fpm不能运行,你的php文件将不会被解析,并且nginx会显示一个错误页面。 好了,我猜你已经完成了,并且现在使用nginx作为你的web服务器,nginx是一个小巧、漂亮并且你可以配置很多东西的一个东东,如果你需要伪静态,注意nginx不会运行 .htaccess 文件,你需要伪静态更改vhost配置。 如果对在Linux下感兴趣的朋友可以查看《Linux下的DedeCMS站点高级安全策略》 翻译:天涯 原文:http://www.howtoforge.com/installing-php-5.3-nginx-and-php-fpm-on-ubuntu-debian