Nginx

发布于

用久了 apache 后,决定试试 nginx(LNMP),网上搜了搜,都是什么一键包,集成环境。反正也是闲着,于是我决定闭门造车,盲人摸象一回,自己摸索去。

首先在新立得(Synaptic)里边搜索 nginx、php、mysql 等,捡看着顺眼的安装之,好吧,╮(╯_╰)╭ 我也不知道准确的有哪些。。直接 apt-get 一番之后应该就可以看到这个页面。

更新:需要装上 php5-fpm 这个,不然会报错:502 bad gateway

nginx

先习惯性翻到 /etc/nginx/ 里看看,配置文件应该就是 nginx.conf 这个 。比起 apache 确实是轻量级了,才不到一百行。

先把 log 都改成自己的目录(方便备份) (33、34行)

access_log /home/h-kylin/Hosts/access.log;
error_log /home/h-kylin/Hosts/error.log;

虚拟主机目录(72行)改成自己的

include /home/h-kylin/Hosts/2014.conf;

然后再编辑自定义的虚拟主机配置(参考 sites-available 的默认配置)

2014.conf

# 主目录
server {
	listen 80 default_server;
	listen [::]:80 default_server ipv6only=on;

	root /home/h-kylin/Hosts;
	index  index.php index.html index.htm;

	server_name index.home;

	location / {
 		try_files $uri $uri/ =404;
 	}
 
	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
	#	# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
	#
	#	# With php5-cgi alone:
	#	fastcgi_pass index.home:80;
	#	# With php5-fpm:
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}

}

然后修改用户组权限

chown -R www-data /home/h-kylin/Hosts

检查配置文件

nginx -t

重启 Nginx,启动 直接用 “ nginx

nginx -s reload (可选 stop, quit, reopen, reload)

在主目录里边新建个 test.php

<?php 
phpinfo(); 
?>

能看到这个页面,说明已经成功!

phpinfo

后面卡在 fastcgi 这里,查阅一堆资料都无解,看 # NOTE: 说的,大概是 单独用 php5-cgi 的时候,要设置 fastcgi_pass 这一行,但我把下面 php5-fpm 也启用了,便没有管那一行了。

Nginx 不像 Apache 那样直接装好了就行了,非要用 php5-cgiphp5-fpm 才能和 php 一起工作。

续,总是出现 403 Forbidden 可能是因为缺少 index.html 或者 index.php 文件,在 index 一行添加

修改 mysql 空密码 用这个

root@kylin:/home/h-kylin# mysqladmin -u root password 123456(改成自己的密码)

Nginx 中添加 对 wordpress 的 rewrite 支持,来自 [↗]

if (-f $request_filename/index.html){
	rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
	rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
	rewrite (.*) /index.php;
}

修改上传文件大小限制:

在 apache 里边只需要修改 php.ini 里边的 upload_max_filesizepost_max_size 两行即可。 但 nginx 中 nginx.conf 里的

types_hash_max_size 2048;

这一行也限制了上传大小。并且, nginx.conf 的优先级是高于 php.ini 的。