常用基础软件安装
备注:
除部分环境已经给出需要的基础环境之外,其他的请自行安装基础编译环境:
yum install gcc* make openssl openssl-devel openssl-clients -y
1. node环境
下载地址: http://nodejs.org/dist/v0.12.2/node-v0.12.2.tar.gz 编译安装: ./configure --prefix=/usr/local/nodejs && make &&make install 设置系统环境: echo "#set nodejs environment export PATH=\$PATH:/usr/local/nodejs/bin" >>/etc/profile && source /etc/profile
2.jxcode环境
下载地址: https://codeload.github.com/jxcore/jxcore/tar.gz/v0.3.1.1 编译安装: ./configure --prefix=/usr/local/jx && make && make install 设置系统环境: echo "#set rabbitmq environment export PATH=\$PATH:/usr/local/jx/sbin" >> /etc/profile && source /etc/profile
3. nginx环境
下载地址: http://nginx.org/download/nginx-1.10.1.tar.gz 编译安装: 基础依赖环境: yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel gd-* GeoIP* 创建nginx用户及用户组并设置不允许登录系统: groupadd -r nginx && useradd -s /sbin/nologin -g nginx -r nginx 编译: ./configure --prefix=/usr/local/nginx --lock-path=/usr/local/nginx/nginx.lock --user=nginx --group=nginx --with-stream --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_geoip_module --with-http_realip_module --with-http_gzip_static_module --http-client-body-temp-path=/usr/local/nginx/client/ --http-proxy-temp-path=/usr/local/nginx/proxy/ --http-fastcgi-temp-path=/usr/local/nginx/fcgi/ --http-uwsgi-temp-path=/usr/local/nginx/uwsgi --http-scgi-temp-path=/usr/local/nginx/scgi --with-pcre --with-file-aio --with-http_image_filter_module --with-http_v2_module && make && make install
增加设定记录日志内容的模块:
cd /usr/local/src && wget https://codeload.github.com/cfsego/ngx_log_if/zip/master && mkdir -p /usr/local/nginx/module && unzip ngx_log_if-master.zip -d /usr/local/nginx/module/ cd nginx-1.13.4 && ./configure --prefix=/usr/local/nginx --lock-path=/usr/local/nginx/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_geoip_module --with-http_gzip_static_module --http-client-body-temp-path=/usr/local/nginx/client/ --http-proxy-temp-path=/usr/local/nginx/proxy/ --http-fastcgi-temp-path=/usr/local/nginx/fcgi/ --http-uwsgi-temp-path=/usr/local/nginx/uwsgi --http-scgi-temp-path=/usr/local/nginx/scgi --with-pcre --add-module=/usr/local/nginx/module/ngx_log_if --with-file-aio --with-http_image_filter_module && make && make install
增加tcp 四层代理模块:
--with-stream
增加mysql 认证模块:
git clone https://github.com/sto/ngx_http_auth_pam_module.git --add-module=/usr/local/nginx/module/ngx_http_auth_pam_module pam_mysql-0.7RC1.tar.gz #http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz ./configure --with-pam=/usr/local/pam_mysql --with-pam-mods-dir=/usr/local/pam_mysql/lib --with-mysql=/usr/local/mysql --with-cyrus-sasl --with-cyrus-sasl2 --with-openssl
增加http/2支持
--with-http_v2_module
启动脚本:
/etc/init.d/nginx
chmod +x /etc/init.d/nginx
chkconfig nginx on
#!/bin/bash # # Startup script for Nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server # processname: nginx # config: /usr/local/nginx/conf/nginx.conf # pidfile: /usr/local/nginx/logs/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/local/nginx/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac
配置文件:
user nginx; worker_processes 8; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; events { worker_connections 10240; } stream { log_format proxy '$remote_addr [$time_local] ' '$protocol $status $bytes_sent $bytes_received ' '$session_time "$upstream_addr" ' '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"'; access_log logs/tcp.log proxy ; open_log_file_cache off; tcp_nodelay on; include tcp.d/*.conf; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; server_tokens off; #隐藏版本号 client_max_body_size 1000m; limit_req_zone $binary_remote_addr zone=allips:10m rate=300r/m; large_client_header_buffers 4 16k; client_body_buffer_size 128k; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; proxy_buffer_size 64k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; charset utf8; include conf.d/*.conf; }
4. mysql环境
下载地址:
http://down1.chinaunix.net/distfiles/cmake-2.8.10.2.tar.gz http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.32.tar.gz
依赖环境:
yum install wget gcc* make openssl openssl-devel openssl-clients ncurses-devel -y && yum groupinstall " Development tools" -y
cmake编译安装:
./configure --prefix=/usr/local/cmake && make && make install echo "#set cmake environment export PATH=\$PATH:/usr/local/cmake/bin" >> /etc/profile && source /etc/profile
mysql编译安装:
groupadd mysql && useradd -r -g mysql -s /etc/nologin mysql
mkdir -p /home/mysql/data && mkdir /home/mysql/var
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/home/mysql/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/home/mysql/var/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci && make && make install
echo "#set mysql environment export PATH=\$PATH:/usr/sbin/:/usr/local/mysql/bin" >> /etc/profile && source /etc/profile
mysql数据库初始化:
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql/data --user=mysql --default-storage-engine=MyISAM
mysql配置文件:my.cnf
[client] default-character-set=utf8 #auto-rehash socket = /home/mysql/var/mysql.sock [mysqld] port = 3306 slave-skip-errors=1022,1032,1062 skip-name-resolve basedir = /usr/local/mysql datadir = /home/mysql/data socket = /home/mysql/var/mysql.sock character-set-server=utf8 collation-server=utf8_general_ci back_log = 300 max_connections = 5000 max_connect_errors = 30 table-definition-cache=2000 table-open-cache=4000 max_allowed_packet = 32M max_heap_table_size = 128M sort_buffer_size = 16M join_buffer_size = 16M #thread_cache_size = 16 #thread_concurrency = 8 query_cache_size = 128M query_cache_limit = 4M ft_min_word_len = 8 default-storage-engine=MYISAM thread_stack = 512K transaction_isolation = REPEATABLE-READ tmp_table_size = 128M slow-query-log long_query_time = 6 #master config # grant replication slave, replication client on *.* to 'root'@'192.168.1.131' identified by 'password'; # ref : http://blog.csdn.net/seteor/article/details/17261733 server-id = 1 log-bin=mysqlmaster-bin #binlog-do-db = cad #指定需要进行主从的数据库 binlog_cache_size = 4M binlog_format=mixed expire_logs_days=3 #binlog-ignore-db=test #不记录test库的binlog #replicate-ignore-db=test #不复制test库的binlog sync_binlog=1 sql_mod=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #lower_case_table_names=1 #slave config #server_id=2 #binlog-do-db = cad #binlog-ignore-db=test #不记录test库的binlog #replicate-ignore-db=test #不复制test库的binlog #log-bin=mysql-bin #binlog_cache_size = 1M #binlog_format=mixed #expire_logs_days=3 key_buffer_size = 128M read_buffer_size = 8M read_rnd_buffer_size = 64M bulk_insert_buffer_size = 256M myisam_sort_buffer_size = 256M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover skip-federated #innodb config innodb_additional_mem_pool_size = 64M innodb_buffer_pool_size = 512M innodb_data_file_path = ibdata1:10M:autoextend innodb_file_io_threads = 4 innodb_thread_concurrency = 16 innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 16M innodb_log_file_size = 512M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 90 innodb_lock_wait_timeout = 120 [mysqldump] quick max_allowed_packet = 32M [mysql] no-auto-rehash [isamchk] key_buffer = 2048M sort_buffer_size = 2048M read_buffer = 32M write_buffer = 32M [myisamchk] key_buffer = 2048M sort_buffer_size = 2048M read_buffer = 32M write_buffer = 32M [mysqlhotcopy] interactive-timeout [mysqld_safe] open-files-limit = 8192
备注:增加全日志输出
log-output=FILE general-log=1 general_log_file=/home/mysql/data/mysql-query.log
设置启动脚本:
cp /usr/local/src/mysql-5.6.28/support-files/mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql chkconfig --add mysql && chkconfig mysql on
设置权限:
chown -R mysql:mysql /home/mysql chown -R mysql:mysql /usr/local/mysql
5. mongodb环境
下载地址:
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.6.tgz
安装:
tar xf /usr/local/src/mongodb-linux-x86_64-2.6.6.tgz -C /usr/local/ mv /usr/local/mongodb-linux-x86_64-2.6.6 /usr/local/mongodb2.6 环境变量设置: echo "#mongodb2.6 environment export PATH=\$PATH:/usr/local/mongodb2.6/bin/" >> /etc/profile && source /etc/profile 创建目录: groupadd -r mongod && useradd -s /sbin/nologin -g mongod -r mongod mkdir -p /home/mongodb/mongodata mkdir -p /home/mongodb/mongolog chown -R mongod:mongod /home/mongodb/mongodata chown -R mongod:mongod /home/mongodb/mongolog 系统环境设置: vim /etc/security/limits.conf =============================== * soft nproc 640000 * hard nproc 640000 * soft nofile 640000 * hard nofile 640000 =============================== vim /etc/profile source /etc/profile ================== ulimit -n 640000 ulimit -u 640000 ==================
配置文件:/etc/mongod_27018.conf
logpath=/home/mongodb/mongolog/mongod.log logappend=true destination=file logRotate=rename #日志切割脚本由跟参数配合,仅支持3.0以上版本 fork=true port=27018 dbpath=/home/mongodb/mongodata pidfilepath=/home/mongodb/mongolog/27018.pid oplogSize=4096 maxConns=640000 directoryperdb=true nojournal=true master=true
启动脚本: /etc/init.d/mongod chmod +x /etc/init.d/mongod chkconfig mongod on
#!/bin/sh # chkconfig: 2345 93 18 # author:qingbo.song # description:MongoDB(MongoDB-2.6.2) #默认参数设置 #mongodb 家目录 MONGODB_HOME=/usr/local/mongodb2.6 #mongodb 启动命令 MONGODB_BIN=$MONGODB_HOME/bin/mongod #mongodb 配置文件 MONGODB_CONF=/etc/mongod_27018.conf #mongodb PID MONGODB_PID=/home/mongodb/mongolog/27018.pid #最大文件打开数量限制 SYSTEM_MAXFD=640000 #mongodb 名字 MONGODB_NAME="mongodb" . /etc/rc.d/init.d/functions if [ ! -f $MONGODB_BIN ] then echo "$MONGODB_NAME startup: $MONGODB_BIN not exists! " exit fi start(){ ulimit -HSn $SYSTEM_MAXFD $MONGODB_BIN --config="$MONGODB_CONF" ret=$? if [ $ret -eq 0 ]; then action $"Starting $MONGODB_NAME: " /bin/true else action $"Starting $MONGODB_NAME: " /bin/false fi } stop(){ PID=$(ps aux |grep "$MONGODB_NAME" |grep "$MONGODB_CONF" |grep -v grep |wc -l) if [[ $PID -eq 0 ]];then action $"Stopping $MONGODB_NAME: " /bin/false exit fi kill -HUP `cat $MONGODB_PID` ret=$? if [ $ret -eq 0 ]; then action $"Stopping $MONGODB_NAME: " /bin/true rm -f $MONGODB_PID else action $"Stopping $MONGODB_NAME: " /bin/false fi } restart() { stop sleep 2 start } case "$1" in start) start ;; stop) stop ;; status) status $prog ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|status|restart}" esac
mongodb3.2.X部署安装及主从设置参考:
http://www.cnblogs.com/songqingbo/articles/5409396.html
mongodb设置用户名和密码
mongodb密码和传统数据如mysql等有些区别: mongodb的用户名和密码是基于特定数据库的,而不是基于整个系统的。所有所有数据库db都需要设置密码 mongodb设置管理用户和密码: show dbs 在mongodb新版本里并没有admin数据库,但是并不妨碍第2步操作。 use admin 进入admin数据库 创建超级管理员账户 db.createUser({ user: "useradmin", pwd: "adminpassword", roles: ["root"] }) mongodb中的用户是基于身份role的,该管理员账户的 role是 root。 验证第3步用户添加是否成功 db.auth("useradmin", "adminpassword") 如果返回1,则表示成功。 exit退出系统 db.auth()方法理解为 用户的验证功能 修改配置 sudo vi /etc/mongod.conf 找到#security: 取消注释,修改为: security: authorization: enabled #注意缩进,缩进参照配置文件其他配置。缩进错误可能第6步重启不成功。 重启mongodb sudo service mongod restart 进入mongodb,用第3步的 管理员账户登录,用该账户创建其他数据库管理员账号 use admin db.auth("useradmin", "adminpassword") 新建你需要管理的mongodb 数据的账号密码。 use yourdatabase db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] }) rote:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等 新建数据库读写账户 use yourdatabase db.createUser({ user: "youruser2", pwd: "yourpassword2", roles: [{ role: "readWrite", db: "yourdatabase" }] }) 该用户用于该数据的读写,只拥有读写权限。 现在数据的用户名和密码就建好了。 可以使用:mongodb://youruser2:yourpassword2@localhost/yourdatabase来链接
6. tomcat +java环境
下载地址:
tomcat下载地址: http://apache.opencas.org/tomcat/tomcat-9/v9.0.0.M4/bin/apache-tomcat-9.0.0.M4.tar.gz jdk下载地址: http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.rpm?AuthParam=1459060338_576a5595d42fe20dacf501814e2064d3
http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.tar.gz
tomcat安装:
tar xf apache-tomcat-9.0.0.M4.tar.gz && mv apache-tomcat-9.0.0.M4 /usr/local/tomcat
jdk安装:
rpm包:yum localinstall jdk-8u77-linux-x64.rpm
tar包:tar xf jdk-8u77-linux-x64.tar.gz -C /usr/local/jdk
echo "#set java environment
export PATH=\$PATH:/usr/local/jdk/bin:/usr/local/src/jdk/jre/bin" >> /etc/profile && source /etc/profile
7. redis环境
下载地址:
http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz http://download.redis.io/releases/redis-3.0.0.tar.gz
编译安装:
tcl编译安装: tar xf /usr/local/src/tcl8.6.1-src.tar.gz -C /usr/local/ cd /usr/local/tcl8.6.1/unix/ && ./configure && make && make install redis编译安装: tar xf /usr/local/src/redis-3.0.0.tar.gz -C /usr/local/src cd /usr/local/src/redis-3.0.0 && make test && make PREFIX=/usr/local/redis install
创建目录:
mkdir -p /home/redis/data/6380 && mkdir -p /home/redis/log && mkdir -p /home/redis/var
配置文件:/etc/redis/6380.conf
daemonize yes pidfile /home/redis/var/redis_6380.pid port 6380 tcp-backlog 511 maxclients 20000 timeout 30 tcp-keepalive 60 loglevel warning logfile /home/redis/log/redis_6380.log databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir /home/redis/data/6380 slave-serve-stale-data yes slave-read-only yes repl-disable-tcp-nodelay no slave-priority 100 appendonly no appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes #设置密码 requirepass zesG!rw&#s@qmT!UjV
1 daemonize yes 2 pidfile /home/redis/redis_6380.pid 3 port 6380 4 tcp-backlog 511 5 maxclients 20000 6 timeout 30 7 tcp-keepalive 60 8 loglevel warning 9 logfile /home/redis/log/redis_6380.log 10 databases 16 11 save 900 1 12 save 300 10 13 save 60 10000 14 stop-writes-on-bgsave-error yes 15 rdbcompression yes 16 rdbchecksum yes 17 dbfilename dump.rdb 18 dir /home/redis/data/6380 19 slave-serve-stale-data yes 20 slave-read-only yes 21 repl-disable-tcp-nodelay no 22 slave-priority 100 23 appendonly no 24 appendfilename "appendonly.aof" 25 appendfsync everysec 26 no-appendfsync-on-rewrite no 27 auto-aof-rewrite-percentage 100 28 auto-aof-rewrite-min-size 64mb 29 lua-time-limit 5000 30 slowlog-log-slower-than 10000 31 slowlog-max-len 128 32 latency-monitor-threshold 0 33 notify-keyspace-events "" 34 hash-max-ziplist-entries 512 35 hash-max-ziplist-value 64 36 list-max-ziplist-entries 512 37 list-max-ziplist-value 64 38 set-max-intset-entries 512 39 zset-max-ziplist-entries 128 40 zset-max-ziplist-value 64 41 hll-sparse-max-bytes 3000 42 activerehashing yes 43 client-output-buffer-limit normal 0 0 0 44 client-output-buffer-limit slave 256mb 64mb 60 45 client-output-buffer-limit pubsub 32mb 8mb 60 46 hz 10 47 aof-rewrite-incremental-fsync yes 48 notify-keyspace-events Ex 49 protected-mode no
启动脚本:/etc/init
.d
/redis-6380
chmod
+x
/etc/init
.d
/redis-6380
&& chkconfig redis-6380 on
#!/bin/sh # # redis - this script starts and stops the redis-server daemon # # chkconfig: - 85 15 # description: Redis for uzAll session # processname: redis-server-6379 REDISPORT=6380 EXEC=/usr/local/redis/bin/redis-server CLIEXEC=/usr/local/redis/bin/redis-cli PIDFILE=/home/redis/redis_${REDISPORT}.pid CONF="/etc/redis/${REDISPORT}.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac
8. rabbitmq环境
下载地址:
http://erlang.org/download/otp_src_19.3.tar.gz https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-generic-unix-3.6.10.tar.xz #二进制文件不需要编译 https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10.tar.xz
依赖环境安装:
yum -y install xmlto python-simplejson python
编译安装:
otp编译安装: tar xf /usr/local/src/otp_src_19.3.tar.gz -C /usr/local/src #--with-ssl=/usr 开启ssl支持 erl-ssl cd /usr/local/src/otp_src_19.3 && ./configure --prefix=/usr/local/erlang --with-ssl=/usr --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac && make && make install echo "#set erlang environment export PATH=\$PATH:/usr/local/erlang/bin" >> /etc/profile && source /etc/profile rabbit编译安装: tar xf rabbitmq-server-3.6.10.tar.gz -C /usr/local/src cd /usr/local/src/rabbitmq-server-3.6.10 && make TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/bin MAN_DIR=/usr/local/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc install echo "#set rabbitmq environment export PATH=\$PATH:/usr/local/rabbitmq/sbin" >> /etc/profile && source /etc/profile
创建用户&&目录:
groupadd -r rabbitmq && useradd -s /sbin/nologin -g rabbitmq -r rabbitmq mkdir -p /usr/local/rabbitmq/var/log/ /usr/local/rabbitmq/plugins /usr/local/rabbitmq/data 备注:日志存放位置/usr/local/rabbitmq/var/log/ pid文件存放/usr/local/rabbitmq/var/
启动脚本:/etc/init.d/rabbit chmod
+x
/etc/init
.d
/rabbit
&& chkconfig rabbit on
#!/bin/sh # # rabbitmq-server RabbitMQ broker # # chkconfig: - 80 05 # description: Enable AMQP service provided by RabbitMQ # ### BEGIN INIT INFO # Provides: rabbitmq-server # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Description: RabbitMQ broker # Short-Description: Enable AMQP service provided by RabbitMQ broker ### END INIT INFO # Source function library. . /etc/init.d/functions export HOME=/usr/local/rabbitmq PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/erlang/bin/ NAME=rabbitmq-server DAEMON=/usr/local/rabbitmq/sbin/${NAME} CONTROL=/usr/local/rabbitmq/sbin/rabbitmqctl DESC=rabbitmq-server USER=rabbitmq ROTATE_SUFFIX= INIT_LOG_DIR=/usr/local/rabbitmq/var/log/ PID_FILE=/usr/local/rabbitmq/var/rabbitmq.pid START_PROG="daemon" LOCK_FILE=/var/lock/subsys/$NAME test -x $DAEMON || exit 0 test -x $CONTROL || exit 0 RETVAL=0 set -e [ -f /etc/default/${NAME} ] && . /etc/default/${NAME} start_rabbitmq () { status_rabbitmq quiet if [ $RETVAL = 0 ] ; then echo RabbitMQ is currently running else RETVAL=0 set +e RABBITMQ_PID_FILE=$PID_FILE $START_PROG $DAEMON \ > "${INIT_LOG_DIR}/startup_log" \ 2> "${INIT_LOG_DIR}/startup_err" \ 0<&- & $CONTROL wait $PID_FILE >/dev/null 2>&1 RETVAL=$? set -e case "$RETVAL" in 0) echo SUCCESS if [ -n "$LOCK_FILE" ] ; then touch $LOCK_FILE fi ;; *) echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\} RETVAL=1 ;; esac fi } stop_rabbitmq () { status_rabbitmq quiet if [ $RETVAL = 0 ] ; then set +e $CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err RETVAL=$? set -e if [ $RETVAL = 0 ] ; then if [ -n "$LOCK_FILE" ] ; then rm -f $LOCK_FILE fi else echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err fi else echo RabbitMQ is not running RETVAL=0 fi } status_rabbitmq() { set +e if [ "$1" != "quiet" ] ; then $CONTROL status 2>&1 else $CONTROL status > /dev/null 2>&1 fi if [ $? != 0 ] ; then RETVAL=3 fi set -e } rotate_logs_rabbitmq() { set +e $CONTROL rotate_logs ${ROTATE_SUFFIX} if [ $? != 0 ] ; then RETVAL=1 fi set -e } restart_running_rabbitmq () { status_rabbitmq quiet if [ $RETVAL = 0 ] ; then restart_rabbitmq else echo RabbitMQ is not runnning RETVAL=0 fi } restart_rabbitmq() { stop_rabbitmq start_rabbitmq } case "$1" in start) echo -n "Starting $DESC: " start_rabbitmq echo "$NAME." ;; stop) echo -n "Stopping $DESC: " stop_rabbitmq echo "$NAME." ;; status) status_rabbitmq ;; rotate-logs) echo -n "Rotating log files for $DESC: " rotate_logs_rabbitmq ;; force-reload|reload|restart) echo -n "Restarting $DESC: " restart_rabbitmq echo "$NAME." ;; try-restart) echo -n "Restarting $DESC: " restart_running_rabbitmq echo "$NAME." ;; *) echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2 RETVAL=1 ;; esac exit $RETVAL
设置rabbitmq配置文件:/etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_MNESIA_BASE=/usr/local/rabbitmq/data RABBITMQ_LOG_BASE=/usr/local/rabbitmq/var/log RABBITMQ_PLUGINS_DIR=/usr/local/rabbitmq/plugins
开启rabbit-plugins
rabbitmq-plugins enable rabbitmq_management service rabbit restart
设置用户并禁用guest用户
#新增用户 rabbitmqctl add_user server HcvqNFDEuE8ps4OPg70T #设置权限 rabbitmqctl set_user_tags server administrator #删除guest用户 rabbitmqctl delete_user guest #修改用户密码 rabbitmqctl change_password Username Newpassword #查看用户列表 rabbitmqctl list_users 附录用户级别: 1、administrator 可以登录控制台、查看所有信息、可以对rabbitmq进行管理 2、monitoring 监控者 登录控制台,查看所有信息 3、policymaker 策略制定者 登录控制台,指定策略 4、managment 普通管理员 登录控制台
问题:
[root@test rabbitmq]# rabbitmq-plugins enable rabbitmq_management --online Plugin configuration unchanged. Applying plugin configuration to rabbit@test... failed. Error: unable to connect to node rabbit@test: nodedown DIAGNOSTICS =========== attempted to contact: [rabbit@test] rabbit@test: * connected to epmd (port 4369) on test * epmd reports node 'rabbit' running on port 25672 * TCP connection succeeded but Erlang distribution failed * Authentication failed (rejected by the remote node), please check the Erlang cookie current node details: - node name: 'rabbitmq-cli-47@test' - home dir: /root - cookie hash: /zJvGPlr21THO6YWIta1BQ==
解决办法:
/root/.erlang.cookie 与 /usr/local/rabbimq/.erlang.cookie 保持一致即可解决
9. python2.7.8环境:
依赖环境:
yum -y install zlib zlib-devel openssl-devel gcc python-devel mysql mysql-devel mysql-connector-odbc
下载地址:
https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz https://pypi.python.org/packages/source/s/setuptools/setuptools-20.6.7.tar.gz https://pypi.python.org/packages/source/p/pip/pip-8.1.1.tar.gz https://sourceforge.net/code-snapshots/git/m/my/mysql-python/code.git/mysql-python-code-947b1a2cb72eacb78c86a0a025a3f2110fe14caf.zip
(MySQLdb-1.2)
安装:
python 2.7.8安装 cd /usr/local/src/ && tar xf Python-2.7.8.tgz && cd Python-2.7.8 ./configure --prefix=/usr/local/python2.7.8 && make && make install mv /usr/bin/python /usr/bin/python_old && ln -s /usr/local/python2.7.8/bin/python2.7 /usr/bin/python sed 's/^#!\/usr\/bin\/python/#!\/usr\/bin\/python2.6' /usr/bin/yum setuptools编译安装: tar xf setuptools-20.6.7.tar.gz cd setuptools-20.6.7 python setup.py build python setup.py install pip编译安装: tar xf pip-8.1.1.tar.gz cd pip-8.1.1 python setup.py build python setup.py install 配置系统环境: echo "#set python_pip environment export PATH=\$PATH:/usr/local/python2.7.8/bin" >> /etc/profile && source /etc/profile MySQLdb编译安装: unzip -o mysql-python-code-947b1a2cb72eacb78c86a0a025a3f2110fe14caf.zip cd mysql-python-code-947b1a2cb72eacb78c86a0a025a3f2110fe14caf/MySQLdb >>vim site.cfg ============================= threadsafe = False mysql_config = /usr/bin/mysql_config =================================== python setup.py build python setup.py install simplejson安装 pip install simplejson