在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Ubuntu 从官方源安装 Nginx cd ~ wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key sudo nano /etc/apt/sources.list # 添加以下两句 deb http://nginx.org/packages/ubuntu/ precise nginx deb-src http://nginx.org/packages/ubuntu/ precise nginx sudo apt-get update sudo apt-get install nginx Ubuntu 从PPA源安装 Nginx : sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx Ubuntu 从常规源安装 Nginx : sudo apt-get install nginx 编译安装Nginx wget http://nginx.org/packages/mainline/ubuntu/pool/nginx/n/nginx/nginx_1.5.7-1~precise_i386.deb wget http://nginx.org/download/nginx-1.5.7.tar.gz tar xzf nginx-1.5.7.tar.gz cd nginx-1.5.7 (注意:Nginx1.5.7是Mainline版而非Stable版) 为了方便开发和管理,我在根目录下新建了一个png目录,并且目录所有者设置为当前用户,nginx就编译在/png/nginx/1.5.7下面: sudo mkdir /png sudo chown eechen:eechen /png 运行用户我定义为png:png,所以我需要新建这样一个用户: sudo addgroup png --system sudo adduser png --system --disabled-login --ingroup png --no-create-home --home /nonexistent --gecos "png user" --shell /bin/false (新建用户的命令可以参考官方Deb包里的预安装脚本DEBIAN/preinst) 编译参数参考了Nginx官方提供的Deb包(nginx -V可见). ./configure \ --prefix=/png/nginx/1.5.7 \ --sbin-path=/png/nginx/1.5.7/sbin/nginx \ --conf-path=/png/nginx/1.5.7/conf/nginx.conf \ --error-log-path=/png/nginx/1.5.7/var/log/error.log \ --http-log-path=/png/nginx/1.5.7/var/log/access.log \ --pid-path=/png/nginx/1.5.7/var/run/nginx.pid \ --lock-path=/png/nginx/1.5.7/var/run/nginx.lock \ --http-client-body-temp-path=/png/nginx/1.5.7/var/cache/client_temp \ --http-proxy-temp-path=/png/nginx/1.5.7/var/cache/proxy_temp \ --http-fastcgi-temp-path=/png/nginx/1.5.7/var/cache/fastcgi_temp \ --http-uwsgi-temp-path=/png/nginx/1.5.7/var/cache/uwsgi_temp \ --http-scgi-temp-path=/png/nginx/1.5.7/var/cache/scgi_temp \ --user=png \ --group=png \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_stub_status_module \ --with-mail \ --with-mail_ssl_module \ --with-file-aio \ --with-ipv6 注意:这一步按错误提示安装依赖的包,这时就是apt要发威的时候了,比如我的系统安装了这些包: sudo apt-get -y install \ build-essential \ autoconf \ libtool \ libxml2 \ libxml2-dev \ openssl \ libcurl4-openssl-dev \ libbz2-1.0 \ libbz2-dev \ libjpeg-dev \ libpng12-dev \ libfreetype6 \ libfreetype6-dev \ libldap-2.4-2 \ libldap2-dev \ libmcrypt4 \ libmcrypt-dev \ libmysqlclient-dev \ libxslt1.1 \ libxslt1-dev \ libxt-dev \ libpcre3-dev 安装好这些包后,下次编译新版Nginx就不用再装了,而且基本也满足编译PHP时configure的需求. time make && make install time主要用来查看本次编译耗时. du -sh /png/nginx/1.5.7/sbin/nginx 5.5M /png/nginx/1.5.7/sbin/nginx 环境简单配置总结 # debug # CFLAGS="$CFLAGS -g" 这样编译后的主程序大小则为700多K,和Nginx官方提供的Deb包程序大小相近. PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC=nginx NAME=nginx CONFFILE=/etc/nginx/nginx.conf DAEMON=/usr/sbin/nginx PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME 改为 PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC=nginx NAME=nginx CONFFILE=/png/nginx/1.5.7/conf/nginx.conf DAEMON=/png/nginx/1.5.7/sbin/nginx PIDFILE=/png/nginx/1.5.7/var/run/$NAME.pid SCRIPTNAME=/png/nginx/1.5.7/$NAME 启动前先创建一个cache目录,否则会提示出错: mkdir /png/nginx/1.5.7/var/cache 启动Nginx: sudo /png/nginx/1.5.7/nginx start 测试页面: curl -I `hostname` 看一下端口: sudo netstat -antp|grep nginx 查看一下它占用的内存: 用top同样能看到类似内容: top -b -n1|head -n7 && top -b -n1|grep nginx 主要看RES这个值,常驻内存(resident),不包括SWAP空间的物理内存, 单位为KB,%MEM就是以RES为参照对象. ps aux|head -n1 && ps aux|grep nginx 还有我们可以看到Nginx的工人进程只有一个线程: cat /proc/25047/status|grep Threads Threads: 1 其中25047是Nginx工人进程PID号. sudo ln -s /png/nginx/1.5.7/nginx /etc/init.d/png-nginx sudo update-rc.d png-nginx defaults #开机自启动 sudo update-rc.d -f png-nginx remove # 以后不想开机自启动可以这样禁止 sudo service png-nginx reload #这样就可以用service来管理Nginx服务了,比如重载配置 最后,Nginx的主配置文件位于/png/nginx/1.5.7/conf/nginx.conf,自己按需配置. |
请发表评论