安装Ngnix
在安装 Nginx 之前,如果你已经安装 Apache2 先删除在安装 nginx:
service apache2 stop
update-rc.d -f apache2 remove
apt-get remove apache2
apt-get install nginx
启动 nginx 服务:
service nginx start
安装 MySQL 数据库
安装 MySQL 运行命令:
apt-get install mysql-server mysql-client php5-mysql
安装过程中会询问建立 Root 账户密码,连续输入两次:
New password for the MySQL “root” user: <– 输入你的密码
Repeat password for the MySQL “root” user: <– 再输入一次
安装 PHP5
我们必须通过 PHP-FPM 才能让PHP5正常工作,安装命令:
apt-get install php5-fpm
php-fpm是一个守护进程。
配置 nginx
使用Vi打开默认虚拟主机设置文件 /etc/nginx/sites-available/default 按如下设置:
vi /etc/nginx/sites-available/default
[...]
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
}
# Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
#location /RequestDenied {
# proxy_pass http://127.0.0.1:8080;
#}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /.ht {
deny all;
}
}
[...]
server_name _; 默认主机名 (当然你可以修改,例如修改为: www.example.com).
index主页这一行我们加入 index.php。
PHP 重要配置配置 location ~ .php$ {} 这几行我们需要启动,反注释掉。另外再添加一行:try_files $uri =404。
(其他配置查看http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP 和 http://forum.nginx.org/read.php?2,88845,page=3).
保存文件并重新加载 nginx 命令:
service nginx reload
如果加载失败,直接用删除所有配置内容,用上面的信息替换。 打开配置文件
/etc/php5/fpm/php.ini… vi /etc/php5/fpm/php.ini …
如下设置 cgi.fix_pathinfo=0:
[...] ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=0 [...]
重新加载 PHP-FPM:
service php5-fpm reload
reload 加载时出现了fail的状态 记得用root身份去执行
在 /usr/share/nginx/html目录下 vi /usr/share/nginx/html/phpinfo.php
<?php
phpinfo();
?>
浏览器下访问的phpinfo.php
