/**

* lihaibo

* 文章内容都是根据自己工作情况实践得出。

*如有错误,请指正

*转载请注明出处

*/

此文章中用到的软件下载地址:

链接: http://pan.baidu.com/s/1kVCPcLh 密码: zdw5

一、系统环境:

root@ubuntu:/usr/local/pcre-8.38# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"

二、安装pcre

进入/usr/local  获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本

pcre-8.38.tar.bz2    解压:  tar   -jxvf     pcre-8.38.tar.bz2

进入解压缩目录,执行./configure。

遇到问题一:./configure: error: C compiler cc is not found

解决方案: sudo apt-get install -y gcc

遇到问题二:configure: error: You need a C++ compiler for C++ support.

解决方案:sudo apt-get install build-essential

再./configure

pcre-8.38 configuration summary:

    Install prefix .................. : /usr/local
C preprocessor .................. : gcc -E
C compiler ...................... : gcc
C++ preprocessor ................ : g++ -E
C++ compiler .................... : g++
Linker .......................... : /usr/bin/ld -m elf_x86_64
C preprocessor flags ............ :
C compiler flags ................ : -g -O2 -fvisibility=hidden
C++ compiler flags .............. : -O2 -fvisibility=hidden -fvisibility-inlines-hidden
Linker flags .................... :
Extra libraries ................. : Build bit pcre library ........ : yes
Build bit pcre library ....... : no
Build bit pcre library ....... : no
Build C++ library ............... : yes
Enable JIT compiling support .... : no
Enable UTF-// support ...... : no
Unicode properties .............. : no
Newline char/sequence ........... : lf
\R matches only ANYCRLF ......... : no
EBCDIC coding ................... : no
EBCDIC code for NL .............. : n/a
Rebuild char tables ............. : no
Use stack recursion ............. : yes
POSIX mem threshold ............. :
Internal link size .............. :
Nested parentheses limit ........ :
Match limit ..................... :
Match limit recursion ........... : MATCH_LIMIT
Build shared libs ............... : yes
Build static libs ............... : yes
Use JIT in pcregrep ............. : no
Buffer size for pcregrep ........ :
Link pcregrep with libz ......... : no
Link pcregrep with libbz2 ....... : no
Link pcretest with libedit ...... : no
Link pcretest with libreadline .. : no
Valgrind support ................ : no
Code coverage ................... : no

执行make & make  install

三、安装openssl

获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。

openssl-1.1.0-pre1.tar.gz

执行 ./config

Operating system: x86_64-whatever-linux2
Configuring for linux-x86_64
Configuring for linux-x86_64
no-deprecated [default] OPENSSL_NO_DEPRECATED (skip dir)
no-ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
no-gmp [default] OPENSSL_NO_GMP (skip dir)
no-jpake [experimental] OPENSSL_NO_JPAKE (skip dir)
no-md2 [default] OPENSSL_NO_MD2 (skip dir)
no-rc5 [default] OPENSSL_NO_RC5 (skip dir)
no-sctp [default] OPENSSL_NO_SCTP (skip dir)
no-shared [default]
no-ssl-trace [default] OPENSSL_NO_SSL_TRACE (skip dir)
no-store [experimental] OPENSSL_NO_STORE (skip dir)
no-unit-test [default] OPENSSL_NO_UNIT_TEST (skip dir)
no-zlib [default]
no-zlib-dynamic [default]
IsMK1MF=
CC =gcc
CFLAG =-DOPENSSL_THREADS -pthread -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -Wall -O3 -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
EX_LIBS =-ldl
CPUID_OBJ =x86_64cpuid.o
BN_ASM =x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o
EC_ASM =ecp_nistz256.o ecp_nistz256-x86_64.o
DES_ENC =des_enc.o fcrypt_b.o
AES_ENC =aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o
BF_ENC =bf_enc.o
CAST_ENC =c_enc.o
RC4_ENC =rc4-x86_64.o rc4-md5-x86_64.o
RC5_ENC =rc5_enc.o
MD5_OBJ_ASM =md5-x86_64.o
SHA1_OBJ_ASM =sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o
RMD160_OBJ_ASM=
CMLL_ENC =cmll-x86_64.o cmll_misc.o
MODES_OBJ =ghash-x86_64.o aesni-gcm-x86_64.o
ENGINES_OBJ =e_padlock-x86_64.o
PROCESSOR =
RANLIB =/usr/bin/ranlib
ARFLAGS =
PERL =/usr/bin/perl
SIXTY_FOUR_BIT_LONG mode
DES_UNROLL used
DES_INT used
RC4_CHUNK is unsigned long

make  & make install

四、安装zlib

获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本

zlib-1.2.8.tar.gz    解压: tar -zxvf zlib-1.2.8.tar.gz

进入解压缩目录,执行./configure。

root@ubuntu:/usr/local/zlib-1.2.# ./configure
Checking for gcc...
Checking for shared library support...
Building shared library libz.so.1.2. with gcc.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for strerror... Yes.
Checking for unistd.h... Yes.
Checking for stdarg.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.

make  & make install

root@ubuntu:/usr/local/zlib-1.2.# make install
cp libz.a /usr/local/lib
chmod /usr/local/lib/libz.a
cp libz.so.1.2. /usr/local/lib
chmod /usr/local/lib/libz.so.1.2.
cp zlib. /usr/local/share/man/man3
chmod /usr/local/share/man/man3/zlib.
cp zlib.pc /usr/local/lib/pkgconfig
chmod /usr/local/lib/pkgconfig/zlib.pc
cp zlib.h zconf.h /usr/local/include
chmod /usr/local/include/zlib.h /usr/local/include/zconf.h

五、安装nginx

获取nginx,在http://nginx.org/en/download.html上可以获取当前最新的版本

nginx-1.4.6.tar.gz     解压: tar -zxvf nginx-1.4.6.tar.gz

进入解压缩目录,执行./configure

make & make install

root@ubuntu:/usr/local/nginx-1.4.# make install
make -f objs/Makefile install
make[]: Entering directory `/usr/local/nginx-1.4.'
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin' || mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx' || mv '/usr/local/nginx/sbin/nginx' '/usr/local/nginx/sbin/nginx.old'
cp objs/nginx '/usr/local/nginx/sbin/nginx'
test -d '/usr/local/nginx/conf' || mkdir -p '/usr/local/nginx/conf'
cp conf/koi-win '/usr/local/nginx/conf'
cp conf/koi-utf '/usr/local/nginx/conf'
cp conf/win-utf '/usr/local/nginx/conf'
test -f '/usr/local/nginx/conf/mime.types' || cp conf/mime.types '/usr/local/nginx/conf'
cp conf/mime.types '/usr/local/nginx/conf/mime.types.default'
test -f '/usr/local/nginx/conf/fastcgi_params' || cp conf/fastcgi_params '/usr/local/nginx/conf'
cp conf/fastcgi_params '/usr/local/nginx/conf/fastcgi_params.default'
test -f '/usr/local/nginx/conf/fastcgi.conf' || cp conf/fastcgi.conf '/usr/local/nginx/conf'
cp conf/fastcgi.conf '/usr/local/nginx/conf/fastcgi.conf.default'
test -f '/usr/local/nginx/conf/uwsgi_params' || cp conf/uwsgi_params '/usr/local/nginx/conf'
cp conf/uwsgi_params '/usr/local/nginx/conf/uwsgi_params.default'
test -f '/usr/local/nginx/conf/scgi_params' || cp conf/scgi_params '/usr/local/nginx/conf'
cp conf/scgi_params '/usr/local/nginx/conf/scgi_params.default'
test -f '/usr/local/nginx/conf/nginx.conf' || cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf'
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/usr/local/nginx/logs' || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/logs' || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html' || cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' || mkdir -p '/usr/local/nginx/logs'
make[]: Leaving directory `/usr/local/nginx-1.4.'

若安装时找不到上述依赖模块,使用--with-openssl=<openssl_dir>、--with-pcre=<pcre_dir>、--with-zlib=<zlib_dir>指定依赖的模块目录。如已安装过,此处的路径为安装目录;若未安装,则此路径为编译安装包路径,nginx将执行模块的默认编译安装。

修改配置文件:

编辑/usr/local/nginx/conf下的nginx.conf文件,修改listen端口和server_name(即IP)

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOIAAABCCAIAAADFbp1uAAACGklEQVR4nO3a25LbIAwAUP7/p92HdtrdIMnyJV2SnDOZnZhFgG3ZJCZjAAAAAAAAAAA8yTbG9tNjgB1ylBcgTXkB0pR/ti+vufChJHwzps1OeGdgMMaUSUXhiDLsYnhzYBAnX3aLnWPn9/3w3YHBN518Csu36V+HwptD4qMdnbWzFjoh0pSTwtl5JFN2WHMkJf3wYmywOqtQAAAAsILiwdPHfnO/8iwvq8kNrhzWNzslF38jEdbkHtL0r2Iprpmm8yb32F3Weijfps26hRO/DPwpz0vTxXf8BXQOa3/1v/gpVtHdOnw2XVTz6j968rLUXPksmvTXdWiS2j0lu62tfBal6bpumfTrG6c05bxsgq4Lw0bCZufNrJF1dL4UHi0ca+8y/CFNAQAA4P97xvOyuc3FH8nxGp6RQ7cvAUj0TydNlxMuLxXz1PxmTJud8GIwYbXOUlnW+1HZSlvWUX3owjabuxl2VOx7OPiXFy5MZ6vV4eG7Ep4NaW6q6Ghr1Dzq9G4WvYeZd6XNN0zHQn3t1sclO6zN8Gw8Wch8Q334W/R+yNE0ncPrS7rT5u4V/llp+lsnn8LybfrXofD+SLJ7T3E3Pe1KmmYVrqRpp8F3dn2WqdP0rrvpW076F9u898pcWjY/hlN2NpOGJf3wLHCe4ufX+F45670v+8zQPEphC0VJsZthg+Fo50JYnTS9U3hrBAAAAAAAAADgiF+i6jXn66VkQwAAAABJRU5ErkJggg==" alt="" />

六、验证nginx是否安装成功

     将/usr/local/nginx/sbin设置到PATH中,在/etc/profile中的PATH中添加/usr/local/nginx/sbin

以后使用nginx的时候就直接输入   nginx

由于是root用户编译安装的

root用户下启动nginx    root@ubuntu:/usr/local/nginx/sbin# /usr/local/nginx/sbin/nginx   #输入后,如果无反应 则正确启动,如需确定是否启动,可使用

netstat  -anp|grep 8181

# netstat -anp |grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /nginx

在浏览器输入nginx服务器所在IP和端口

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4YAAAF3CAIAAAB2QMLPAAAgAElEQVR4nO3db5AU54Hn+XzDVVx0xHK86NgLETqFTjOhiyX6aiPM7RHS+TxiZq25EdcjZlbLqkXN/mEtI52JWTPW7Qy+EdjTjF0rCZ1OMEZeD54xsmTaGMqDkC0kPNjYtP7QjRtK3YBBCJCGBkkthLqbskZ23YuszHz+Z2Z1dT/V3d9PKBRUZeaTTz6Z3fXr53kyK3j77bcngWkwOjr68ssvHwEAAEgT+M4tmMvOnz/f39/v+yIHAADtjkiK6XX69GnfFzkAAGh3RFJMr7GxscHBQd/XOQAAaGtEUky7N954w/d1DgAA2loLI2lfT9DVO9C68jwb6O0Kevp812I2mJiYcK/w4YcfNjejdMWKFStWrGj5RQ8AANqNGkn7egIxiA30dmmvbTmNSDrXmkC0evXqY8eO6e8fPXr03nvv/fDDD92bV6vVJq5OIikAAPOE1ksqp6q+niAQMqkzpvnIY23WlTmHI2l/f//q1asHBwfFN8M8+tprr6Vu/uabbzZxdRJJAQCYJ7RIOtDblcSqvp6gp6dHem2PXETSyb6edqpNqympNHsenZycHB0dbeLqJJICADBP6HNJhZQ30NvV1TuQRM0+OZ02RG+JSwd6u6LFUUZLNohXC3cVLejpSzbTOmqVN9USo70YdqIdWrxOkh7jt7p6e6OjSNrBuFlfT7yLZHbD3I6kk5OTL7/8cphKwzx69OjRjBt+8MEHr7zySt6rk0gKAMA8Ybi9Kc5iYSJNglb0WvyXsHqfGOaUaCZNUY1fhAk0iXhixouL0ndkqqt9J8ragZAzk+qKIdkYSfXN4hWEHDrnI+nk5OQrr7yyevXqXHk0lOVRUCsymIGfCgAAMMNMd9w3cmASBxtJKw5cQh+o0CMZRVJDdFTG9KM11ECpTRAw70iuqpgHTTuxrG2uhBKsxV5SQxmN6km9rXM+kob9o/fdd9/AQL5ZGidPnky9HImkAADMT8aHQIWxrK9H6DsMB/CTAX1D9JqmSOrMeETSmRWP17/yyit5U2kTdziRQQEAmCfMzyVt3NYk5rCunp4uKZcJ+TEeejeNhPc2BvUtA/fOSGrekSD/wL2eLYVZofaBe0Mkbfyrze6wmkbK/NHXXnutp6cneyq9fPly3quTSAoAwDxheVR+X0+gP59UGjVPbiQy9VIK9wvpNzxJvYzuSGrckSgqVp9RYFjb1t2ZbOa4vUneTJwvG2daKUDPMcb7mcJUmnFS6fj4+LFjx3JdnURSAADmCb5QVDZ/+jxzst3PdPTo0fvuuy9jIadOncp1dRJJAQCYJ4ik0oQA03A/WubixYu5rk4iKQAA8wSRdHLS9exTtFLTX3YPAADmNiIpZtTZs2d9X/MAAKDtEEkxoz744INqter7sgcAAO2FSIqZdunSpVdffdX3lQ8AANoIkRQenD9/3veVDwAA2giRFH68/fbbx48f9339AwCAtkAkhTdjY2O/+MUvuAcfAAAQSeHZe++9d+7cuaGhoVdeecX3jwMAAPCDSAoAAADPiKQAAADwjEgKAAAAz4Ljx48PDg4ODg4ODQ0NDw+fOXPmypUrExMTvisGAACA+SK4evXqxMTExMTE1atX33333YsXLw4PDw8ODp49e/batWu+qwcAAIC5L7huMj4+/uabbx47duzUqVNvAwAAANPJHElD165dO3Xq1MjIyEcffVQHAAAApocrkobOnz8/NDR0/fp131UFAADA3JQeSa9fvz46Ojo0NERfKQAAAKZDpkga9pWOjIz8+te/no5KXLt2bTqKBQAAQMtNR3LLGkmvX79+6tSpt956q+U1qNfrp06dmo5iAQAA0HLTkdwakfQHP/jBgQMH3JH02rVrP//5z3/5y1+2vBLVarXlZQIAAGA6TEdyC65fv/6Nb3xjxYoVK1as+O53v+tOpefOnTt//nxqoZcuXerv79+9e/fu3bv7+/tHR0fd6xNJAQAAUv2PTw/+939zNPW//+mZY7YSNj+xQ/nP/b7RtETSOI+uWLFi5cqVk5OT7o7SwcFBx4zSDz/88IUXXjh8+PCVK1dqtVqtVrty5cpPfvKTH/7whx9++OFMHhgAAMAc89vff/1fvrjh7h9/VvzvwaEH/rj6wBdOPvinpx/84pkH7z+28XefG7aV0Pv/fsP40va+0RST28GDB/U3gxWC733ve6kzSoeHh99//33jDq5du9bX1/fOO+/oi955551du3bZJsM6D6xaLhbL8vJKKYiUKsa3pfezFFmvV8vFaGNhofldXaWk7FLYUNkyqaazxOaKtB348J7HNzU8vke7TA/t2LTjkPZWRF1k3gAAAEy3Pzr4i0/94C+NkfQ//Ozezw3+uy+eefDelx+5/9BZWwlf3vL18P/iP5SX8Wo2GSPpe++9V6lUHn300U2bNj366KOVSmVsbOzgwYObNm3SV04iaeqofejChQvnzp3TC/r1r3994MCB9957L37nhRdeePHFF+OX77777osvvmjsYbUeWCNqSfmrWi7Gb1RKgfjvOI5VStZwZipSLlRZufF2tVy0FBklRXGhGHqr5aKwv0opWs9eYr4ixXLEBhEc2hEn0eE9j0shM8qqUsIUVxK2tW8AAABmwJdeu/gv/m6bHkn/YP+KP3vp//4P3/+jB4+W7vr7p74yYL0ffdMj28P/i/9QXsar2WSJpKdPn968eXPYu/XlL39Z+Ye+fpArj16/fv3dd98dGRnRC7p06dKRI0fEd5RIWq/Xf/azn126dCnjgVXLxaBU0cJipSQltUrJ3NeorOYsMno/pRBjkY39G5dJ5Rtqac/BeYqUSzGWeWiHmCCFV4d2bHp8z7CyPEydSQoVX1k2AAAAM+Fbp678z997+u4ff7b7R2s+Xbn79//+P97948/e/dz/uf6FP/7oVx/96NzBu//uzt/64be/deqKrYQ/L28zvrS9b5QaSd97773e3t5Nmzbt27fvgw8+CN954okn4iFYfRNp4F70hS98wRhJr169evz4cb2gV1555coV6/GHLl++/Oqrr+Y7MCVjqZHLEuucgc5UhrX/U4qk1pH2VkbSvEVK9UqqLPR0Du95XI6kyti9ljClVeStzRsAAIAZcOjtD27d9f3uH62569t3fu21bb+z+/f+5d7uz/zdv699XDv5zsidO5c/eLT0z/c+97NL1ueGfvEv/z/lP/f7RqmR9Pvf/36YR+N3wvH6ZiLpihUrjJF0YmJicHBQL2jv3r3/+I//KL6j95J+9NFHe/fuzXdgKb2k5ljnGBM3F1ksV5KJmnLxycC9Y+qnMz9aRtPdmTNPkcmcBWH2gjRCP7zn8WTgXptMakiYyWRR07RRIikAAD6cv1a76em//919/+orh3vr9frOob/5oz33vn997PzVN+/69p3/7if/+otnHvyNZw9d/DDlkZ1/+heP/+lfPO7+t0NqJN2yZcumTZviu4+UPDq9kXTPnj3KN44+9dRTTz31lPjORx99VKkYUlaeSCqlsXDOpfHuJ0d+NHS8KkUKMz8DgT1A2vNjWLoSojPc3JSjSPG2J0uxws1Khmmg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" alt="" />

-----------------------

参考文档:

http://www.openssl.org/source/

http://www.pcre.org/

http://www.zlib.net/

http://www.cnblogs.com/skynet/p/4146083.html

----------------------------

http://www.cnblogs.com/yecao8888/articles/5316044.htmlnginx配置参考:

安装nginx

$ cd /usr/local/
$ wget http://nginx.org/download/nginx-1.8.0.tar.gz
$ tar -zxvf nginx-1.8.0.tar.gz
$ cd nginx-1.8.0
$ ./configure --prefix=/usr/local/nginx

$ make      #这里经常出现这样的提示  make[1]:leaving directory  '/usr/local/nginx-1.8.0
#不用理睬 就可以
$ make install

# 在--prefix后面接以下命令:

================================================================================================================================
--prefix=/usr/local/nginx ==>安装部署后的根目录,默认为/usr/local/nginx
--conf-path=/etc/nginx/nginx/nginx.conf ==>配置文件的放置路径,默认<prefix>/conf/nginx.conf
--user=nginx ==>指定worker进程运行时所属的用户
--group=nginx ==>指定worker进程运行是所属的组
--error-log-path=/var/log/nginx/errpr.log ==>error日志放置位置
--http-log-path=/var/log/nginx/access.log ==>access日志放置的位置
--pid-path=/var/run/nginx/nginx.pid ==>pid文件的存放路径;默认<prefix>/logs/nginx.pid
--lock-path=/var/lock/nginx.lock ==>lock文件的放置路径;默认<prefix>/logs/nginx.lock

--with-http_ssl_module ==>提供HTTPS服务;该模块的安装依赖于OpenSSL开源软件
--with-http_stub_status_module ==>能够获取Nginx自上次启动以来的工作状态
--with-http_gzip_static_module ==> 如果采用gzip 模块把一些文档进行gzip 格式压缩后再返回给客户端,那么对同一个文件每次都会重新压缩,这是比较消耗服务器CPU 资源的. gzip static 模块可以在做gzip 压缩前,先查看相同位置是否有已经做过gzip 压缩的.gz 文件,如果有,就直接返回。这样就可以预先在服务器上做好文档的压缩,给CPU 减负
--wiht-http_flv_modle ==>可以在向客户端返回响应肘,对FLV 格式的视频文件在header 头做一些处理,使得客户端可以观看、拖动FLV 视频
--with-http_mp4_module ==>使客户端可以观看、拖动MP4 视频
--http-client-body-temp-path=/var/tmp/nginx/client ==>set path to store http client request body temporary files
--http-proxy-temp-path=/var/tmp/nginx/proxy ==>Nginx 作为HTTP 反向代理服务器时,上游服务器产生的HTTP 包体在需要临时存放到磁盘文件时,这样的临时文件将放到该路径下;默认<prefix>/proxy _temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi ==>Fastcgi 所使用临时文件的放置目;默认<prefix>/fastcgi_temp
================================================================================================================================

关闭iptables
service iptables stop
chkconfig iptables stop

关闭selinux
setenforce 0
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled

nginx(一)----ubuntu14.04下安装nginx的更多相关文章

  1. Ubuntu14.04下安装Hadoop2.5.1 (单机模式)

    本文地址:http://www.cnblogs.com/archimedes/p/hadoop-standalone-mode.html,转载请注明源地址. 欢迎关注我的个人博客:www.wuyudo ...

  2. 二、Ubuntu14.04下安装Hadoop2.4.0 (伪分布模式)

    在Ubuntu14.04下安装Hadoop2.4.0 (单机模式)基础上配置 一.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml ...

  3. Ubuntu14.04下安装Flash Player

    Ubuntu14.04下安装Flash Player youhaidong@youhaidong:~$ sudo apt-get install flashplugin-nonfree [sudo] ...

  4. Ubuntu14.04下 安装p4c

    参考: Github p4c README Ubuntu14.04下 安装p4c 这里提供一个直接安装p4c的脚本:install_p4c.sh. 1.git clone下来p4c: $ git cl ...

  5. Ubuntu14.04下安装Libsvm,并使用Libsvm

    (1)Ubuntu14.04下安装Libsvm 转载:https://blog.csdn.net/katrinawj/article/details/78915874 一.下载: 网址:http:// ...

  6. ubuntu14.04下安装ffmpeg

    ubuntu14.04下安装ffmpeg 一.安装各种依赖包 1.yasm(libx264需要依赖yasm) sudo apt-get install yasm 2.libx264 sudo apt- ...

  7. ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录

    已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...

  8. 在Ubuntu14.04下安装Docker CE(1) - repository篇

    从2017年3月开始,Docker开始分为社区版本和企业版,也就是Docker CE和Docker EE, 原来Ubuntu14.04下,通过sudo apt-get install docker.i ...

  9. ubuntu14.04下安装爬虫工具scrapy

    scrapy是目前准备要学习的爬虫框架,其在ubuntu14.04下的安装过程如下: ubuntu14.04下默认安装了2.7的python以及setuptools,若未安装,可通过下面指令安装: s ...

随机推荐

  1. 原版的WEB认证客户端,提供源代码,让用户自行编译

    今天在翻找文件,偶尔发现这个文件,就把源代码发给大家吧. 有需要的,可以尽管改,程序在D7下编译 下载地址:下载地址1

  2. Xcode : svn 无法上传静态库(.a)文件

    1.打开终端,输入cd,空格,然后将需要上传的.a文件所在的文件夹(不是.a文件)拖拽到终端(此办法无需输入繁琐的路径,快捷方便) ,回车:2.之后再输入如下命令:svn add xxx.a,回车:3 ...

  3. Tomcat介绍 安装jdk 安装Tomcat

    Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共同开发而 ...

  4. 条理清晰的搭建SSH环境之整合Hibernate和Spring

    上篇博客整合了Struts和Spring,感觉很简单,这篇博客主要讲述Hibernate和Spring的整合. 如果说上篇博客中的整合是以为Spring的IOC可以管理对象,让Struts2里的对象管 ...

  5. Objective-C语法之NSDictionary和NSMutableDictionary

    Java 有Map,可以把数据以键值对的形式储存起来,取值的时候通过key就可以直接拿到对应的值,方便快捷.在Objective-C语言中,词典就是做这样的事情的,和NSArray一样,一个词典对象也 ...

  6. 内存管理 初始化(六)vmalloc_init 及 ioremap

    是不是我错了,本想这个函数会如网上所说将进行非连续内存管理的初始化,但是对于2.6.34的ARM架构而言,该函数实际完成的业务非常少. 内存管理的初始化读到此处,我感觉原有的认识存在很大缺陷: (1) ...

  7. 【Postgresql】use

    http://www.jianshu.com/p/0ed65e630fd0 http://www.linuxidc.com/Linux/2013-12/94354.htm tag 是一个Array字段 ...

  8. 在eclipse中查看sources源码和JavaDoc帮助文档

    今天学习Netty的过程中,从官网下载的netty里面的内容如下: 其中jar文件夹里面的内容如下: 可以看到每一个具体的jar包就对应有一个sources.jar包,然后所有的帮助文档在javaDo ...

  9. 2 URL的玩法

    preface 这里我主要说说flask的URL玩法 include: 动态URL规则 自定义URL转换器 HTTP方法 唯一的URL 构造URL 跳转和重定向 动态URL规则 URL规则可以添加变量 ...

  10. windows 环境内网超快同步 DFS

    记录下: 在WINDOWS环境下,内网同步使用DFS可以超快实现文件同步,效果非常OK 纯粹记录下!