Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
如果大家使用Debian或它的衍生版本的系统,可以使用 sudo apt-get install nginx 去安装并使用nginx.
在这种情况下 ,默认所安装的configure选项如下:
‘–conf-path=/etc/f’, #配置文件路径,默认是conf/nginx
‘–error-log-path=/var/log/nginx/error.log’, #错误日志路径,默认是/logs/error.log
‘–http-client-body-temp-path=/var/lib/nginx/body’, #指定http客户端请求缓存文件存放目录的路径
‘–http-fastcgi-temp-path=/var/lib/nginx/fastcgi’, #指定http FastCGI缓存文件存放目录的路径
‘–http-log-path=/var/log/nginx/access.log’, #指定http默认访问日志的路径
‘–http-proxy-temp-path=/var/lib/nginx/proxy’, #指定http反向代理缓存文件存放目录
在这种情况下 ,默认所安装的configure选项如下:
‘–conf-path=/etc/f’, #配置文件路径,默认是conf/nginx
‘–error-log-path=/var/log/nginx/error.log’, #错误日志路径,默认是/logs/error.log
‘–http-client-body-temp-path=/var/lib/nginx/body’, #指定http客户端请求缓存文件存放目录的路径
‘–http-fastcgi-temp-path=/var/lib/nginx/fastcgi’, #指定http FastCGI缓存文件存放目录的路径
‘–http-log-path=/var/log/nginx/access.log’, #指定http默认访问日志的路径
‘–http-proxy-temp-path=/var/lib/nginx/proxy’, #指定http反向代理缓存文件存放目录
‘–http-scgi-temp-path=/var/lib/nginx/scgi’, #指定http sigi缓存文件存放目录的路径
‘–http-uwsgi-temp-path=/var/lib/nginx/uwsgi’, #指定http uwsgi缓存文件存放目录的路径
‘–lock-path=/var/lock/nginx.lock’, # 指定nginx.lock文件的路径
‘–pid-path=/var/run/nginx.pid’, # 指定nginx.pid文件的路径,默认是/logs/nginx.pid
‘–with-debug’, #启用调试日志
‘–with-http_addition_module’, #启用http_addition_module
‘–with-http_dav_module’, #启用http_dav_module
‘–with-http_geoip_module’,
‘–with-http_gzip_static_module’,
‘–with-http_image_filter_module’,
‘–with-http_realip_module’,
‘–with-http_stub_status_module’,
‘–with-http_ssl_module’,
‘–with-http_sub_module’,
‘–with-http_xslt_module’,
‘–http-uwsgi-temp-path=/var/lib/nginx/uwsgi’, #指定http uwsgi缓存文件存放目录的路径
‘–lock-path=/var/lock/nginx.lock’, # 指定nginx.lock文件的路径
‘–pid-path=/var/run/nginx.pid’, # 指定nginx.pid文件的路径,默认是/logs/nginx.pid
‘–with-debug’, #启用调试日志
‘–with-http_addition_module’, #启用http_addition_module
‘–with-http_dav_module’, #启用http_dav_module
‘–with-http_geoip_module’,
‘–with-http_gzip_static_module’,
‘–with-http_image_filter_module’,
‘–with-http_realip_module’,
‘–with-http_stub_status_module’,
‘–with-http_ssl_module’,
‘–with-http_sub_module’,
‘–with-http_xslt_module’,
‘–with-ipv6′,
‘–with-sha1=/usr/include/openssl’,
‘–with-md5=/usr/include/openssl’,
‘–with-mail’,
‘–with-mail_ssl_module’,
‘–add-module=/build/buildd/nginx-0.8.54/debian/modules/nginx-upstream-fair’
‘–with-sha1=/usr/include/openssl’,
‘–with-md5=/usr/include/openssl’,
‘–with-mail’,
‘–with-mail_ssl_module’,
‘–add-module=/build/buildd/nginx-0.8.54/debian/modules/nginx-upstream-fair’
安装完成后Nginx所使用的目录如下
/usr/sbin/nginx
/usr/share/nginx
nginx 配置文件/usr/share/doc/nginx
/etc/nginx
/etc/init.d/nginx
/etc/default/nginx
/etc/logrotate.d/nginx
/etc/ufw/applications.d/nginx
/
/usr/sbin/nginx
/usr/share/nginx
nginx 配置文件/usr/share/doc/nginx
/etc/nginx
/etc/init.d/nginx
/etc/default/nginx
/etc/logrotate.d/nginx
/etc/ufw/applications.d/nginx
/
var/lib/nginx
/var/lib/update-rc.d/nginx
/var/log/nginx
/var/lib/update-rc.d/nginx
/var/log/nginx
网站文件可以放就在 /usr/share/nginx/www下.
在Debian Squeeze上安装Nginx+PHP5+MySQL
这是一篇纯粹为菜鸟谋福利的翻译教程(也是哥第一次翻译)。为啥说是为菜鸟谋福利呢,因为老外写的教程通常都非常详细,每一步你需要做什么,为什么要这样做,会遇到什么问题都一一列了出来。所以,你懂的。
原文地址:
/installing-nginx-with-php5-and-mysql-support-on-debian-squeeze
Tips:如果是想从Apache上迁移到Nginx只需要先停止apache服务
/etc/init.d/apache2 stop
/etc/init.d/apache2 stop
然后卸载之
apt-get remove apache2
apt-get remove apache2
再然后略过以下已安装过软件步骤即可。
1、安装MySQL5
apt-get install mysql-server mysql-client
执行后进入安装,过程中会遇到MySQL提示为root用户设置密码:
New password for the MySQL “root” user: <– yourrootsqlpassword
Repeat password for the MySQL “root” user: <– yourrootsqlpassword
Repeat password for the MySQL “root” user: <– yourrootsqlpassword
2、安装Nginx
Nginx已经被包含在了Debian Squeeze软件源中,所以我们只需要直接从源中安装:
apt-get install nginx
apt-get install nginx
安装完成之后启动Nginx:
/etc/init.d/nginx start
/etc/init.d/nginx start
Nginx默认的根目录是/var/www。如果没有这个目录,必须创建一个(并且设置目录所有者和用户组,以确保有权访问):
mkdir /var/wwwchown www-data:www-data /var/www
mkdir /var/wwwchown www-data:www-data /var/www
在浏览器里面输入你服务器的IP或者域名(例如 192.168.0.100),你会看到与下图相似的页面:
因为/var/www下面没有索引页面,所以会出现以上403拒绝访问的错误提示。
4、安装PHP5
我们可以通过FastCGI让PHP5在Nginx中运行。很幸运,Debian Squeeze软件源中已经包含了一个PHP5的FastCGI模块包,所以我们只需要像这样子安装(其中包含了一些PHP的
其它模块,例如php-mysql):
apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
然后打开/etc/php5/cgi/php.ini,去掉cgi.fix_pathinfo=1:对应行的注释(即;号):
vi /etc/php5/cgi/php.ini
vi /etc/php5/cgi/php.ini
[...]
; 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
;
; 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.
; php/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]
; php/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]
因为Debian Squeeze上没有一个单独的FastCGI程序包,所以我们要用lighttpd的spawn-fcgi,安装lighttpd:
apt-get install lighttpd
apt-get install lighttpd
安装后你会看到一个错误提示,告诉你因为80端口被占用所以lighttpd无法启动:
Starting web server: lighttpd2011-02-24 01:43:18: (358) can’t bind to port: 80 Address already in use
failed!
failed!
invoke-rc.d: initscript lighttpd, action “start” failed.
那是因为之前已经将Nginix启动,80端口被占用了。接着运行:
update-rc.d -f lighttpd remove
update-rc.d -f lighttpd remove
这样以后lighttpd就不会随开机启动了。
我们安装lighttpd只是因为要用它的spawn-gcgi(它的路径是/usr/bin/spawn-fcgi)。现在我们可以使用它了,输入以下命令:
spawn-fcgi --help
spawn-fcgi --help
可以得到它的一些使用的相关说明。
启动一个以www-data的用户和用户组运行在9000端口上的PHP FastCGI后台程序,我们可以输入以下命令:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
当然了,谁都不想每次开机的时候都输入这么一长串的命令来启动一个程序。所以我们让它开机就自动启动。
打开/etc/rc.local
vi /etc/rc.local
vi /etc/rc.local
然后将以上启动PHP FastCGI的命令粘贴到文件末尾
[...]
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
[...]
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
[...]
5、配置Nginx
Nginx的配置文件在/etc/f 中,将它打开:
vi /etc/f
vi /etc/f
配置文件非常容易理解,你可以去 demongers/NginxFullExample 和demongers/NginxFullExample2 了解更多的内容。
首先将为worker processes添加一个数值(这一步是可选的),以及将keepalive_timeout设置为一个合量的值
[...]
worker_processes 5;
[...]
keepalive_timeout 2;
[...]
worker_processes 5;
[...]
keepalive_timeout 2;
[...]
虚拟主机(vhost)被定义在server{}中。默认的虚拟主机配置文件路径是/etc/nginx/sites-available/default。我们来修改一下:
vi /etc/nginx/sites-available/default
vi /etc/nginx/sites-available/default
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_pass 127.0.0.1;
#}
#location ~ \.php$ {
#proxy_pass 127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache’s document root
# concurs with nginx’s one
#
location ~ /\.ht {
deny all;
}
}
[...]
#
location ~ /\.ht {
deny all;
}
}
[...]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论