在linux安装软件的时候,我总会有这样的想法,软件到底安装到那个目录下。由于linux系统有别与Windows系统,不是在那个盘建立一个文件夹把你须要安装的程序安装到指定目录便可。linux目录相似一个树,最顶层是其根目录,每一个目录有本身不一样的做用。html
Linux 的软件安装目录是也是有讲究的,正确的选择安装目录对系统管理是有益的,这里讲解一下程序安装目录/opt目录和/usr/local目录的区别。java
/opt目录用来安装附加软件包,是用户级的程序目录,能够理解为D:/Software。安装到/opt目录下的程序,它全部的数据、库文件等等都是放在同个目录下面。opt有可选的意思,这里能够用于放置第三方大型软件(或游戏),当你不须要时,直接rm -rf掉便可。在硬盘容量不够时,也可将/opt单独挂载到其余磁盘上使用。linux
例如:nginx
/usr:系统级的目录,能够理解为C:/Windows/。git
/usr/lib:理解为C:/Windows/System32。github
/usr/local:用户级的程序目录,能够理解为C:/Progrem Files/。用户本身编译的软件默认会安装到这个目录下。redis
这里主要存放那些手动安装的软件,即不是经过“新立得”或apt-get安装的软件。它和/usr目录具备相相似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面。apache
其实安装软件程序并非非要在指定的目录下完成,安装java、tomcat等也能够安装在opt目录下,可是安装程序的扩展性和管理性来讲,方便使用才是最好的。总结opt目录和usr/local目录就是/usr/local下通常是你安装软件的目录,这个目录就至关于在windows下的programefiles这个目录。/opt这个目录是一些大型软件的安装目录,或者是一些服务程序的安装目录 。vim
实际工做中,通常把源码解压到root/src/,软件安装disk1的install文件夹下,数据保存到install的/data/文件夹下。windows
linux系统安装完,之后经过命令模式配置网卡IP。配置文件一般是/etc/sysconfig/network-scripts/ifcfg-interface-name
1.配置网卡IP地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0 #第二块网卡:vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0 #物理设备名
IPADDR=192.168.1.10 #IP地址
NETMASK=255.255.255.0 #掩码值
NETWORK=192.168.1.0 #网络地址(可不要)
BROADCAST=192.168.1.255 #广播地址(可不要)
GATEWAY=192.168.1.1 #网关地址
ONBOOT=yes # [yes|no](引导时是否激活设备)
USERCTL=no #[yes|no](非root用户是否能够控制该设备)
BOOTPROTO=static #[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)
2.配置网卡DNS
配置文件在/etc/resolv.conf下面。
vi /etc/resolv.conf
nameserver 202.109.14.5 #主DNS
nameserver 219.141.136.10 #次DNS
search localdomain
因此网络配置完成后,都须要重启网络服务:service network restart 或/etc/init.d/network restart
3.单网卡绑定两个IP
linux的网络设备配置文件存放在/etc/sysconfig/network-scripts里面, 对于以太网的第一个网络设备,配置文件名通常为ifcfg-eth0。若是须要为第一个网络设备多绑定一个IP地址,只须要在/etc/sysconfig/network-scripts目录里面建立一个名为ifcfg-eth0:0的文件,内容样例为:
DEVICE="eth0:0"
IPADDR="211.100.10.119"
NETMASK="255.255.255.0"
ONBOOT="yes"
其中的DEVICE为设备的名称,IPADDR为此设备的IP地址,NETMASK为子网掩码,ONBOOT 表示在系统启动时自动启动。
若是须要再绑定多一个IP地址,只须要把文件名和文件内的DEVICE中的eth0加一便可。LINUX最多能够支持255个IP别名。
2)防火墙关闭&端口暴露
暴露80端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#持久化防火墙配置
/etc/rc.d/init.d/iptables save
查看防火墙状态
/etc/init.d/iptables status
因为非root用户不能占用80端口因此使普通用户以root身份启动nginx。
cd /ucenter/soft/nginx/sbin
chown root nginx
chmod u+s nginx
关闭防火墙
service iptables stop
而后/etc/init.d/network restart 重启网络
1.首先要去下载好JDK,Java SE 8的官方网址是http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2 tar -zxvf jdk-8u102-linux-x64.tar.gz
3 而后咱们来新建一个目录,并将解压好的文件移动过去
mkdir /usr/java
mv ./jdk1.8.0_102 /usr/java
4 先用vim(若是没有vim,能够用vi、gedit,也能够去安装个vim) 打开/etc/profile文件
vim /etc/profile
5 在文件最后加入
export JAVA_HOME=/usr/java/jdk1.8.0_172
export JRE_HOME=/usr/java/jdk1.8.0_172/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
6.使配置生效: source /etc/profile
7 查看java版本
java -version
8.常见错误
安装JDK出现错误:-bash: /usr/java/jdk1.7.0_71/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such fi
一、错误描述:安装好jdk以后,经过java -version,javac,java等命令测试是否安装成功时出现错误-bash: /usr/java/jdk1.7.0_71/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
二、错误缘由:没有那个文件或目录,须要安装glibc
第一步:安装 jdk(此步省略,我给你们提供的镜像已经安装好JDK)
第二步:把 zookeeper 的压缩包(资源\配套软件\dubbox\zookeeper-3.4.6.tar.gz)上传到 linux 系统。或
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
Alt+P 进入SFTP ,输入put d:\zookeeper-3.4.6.tar.gz 上传
第三步:解压缩压缩包
tar -zxvf zookeeper-3.4.6.tar.gz |
第四步:进入 zookeeper-3.4.6 目录,建立 data 文件夹。
mkdir data |
第五步:进入conf目录 ,把 zoo_sample.cfg 更名为 zoo.cfg
cd conf mv zoo_sample.cfg zoo.cfg |
第六步:打开zoo.cfg , 修改 data 属性:dataDir=/root/zookeeper-3.4.6/data
进入bin目录,启动服务输入命令
./zkServer.sh start |
输出如下内容表示启动成功
Starting zookeeper .... STARTED
关闭服务输入命输出如下提示信息
Starting zookeeper .... STOPPED
查看状态:
./zkServer.sh status |
若是启动状态,提示
Mode: standalone
若是未启动状态,提示:
not running
[root@localhost redis-5.0.3]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz
[root@localhost redis-5.0.3]# tar xzf redis-5.0.3.tar.gz
[root@localhost redis-5.0.3]# cd redis-5.0.3
[root@localhost redis-5.0.3]# make
提示错误 make: cc: Command not found make: *** [adlist.o] Error 127
没有安装gcc环境,须要安装gcc
[root@localhost redis-5.0.3]# yum install gcc
安装后检查是否安装成功
[root@localhost redis-5.0.3]# rpm -qa |grep gcc
以后从新make
[root@localhost redis-5.0.3]# make
[root@localhost redis-5.0.3]# make install PREFIX=/disk1/install/redis
The binaries that are now compiled are available in the src directory. Run Redis with:
[root@localhost redis-5.0.3]# /disk1/install/redis/bin/redis-server
#此时将不能关闭窗口,若是关闭将将关闭服务。
You can interact with Redis using the built-in client:
[root@localhost redis-5.0.3]# /disk1/install/redis/bin/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
redis>config get requirepass //获取当前密码
redis>config set requirepass "yourpassword" //设置当前密码,服务从新启动后又会置为默认,即无密码;不建议此种方式
redis>exit
[root@localhost redis-5.0.3]# redis-cli shutdown
便可,也能够指定端口关闭
[root@localhost redis-5.0.3]#redis-cli -p 6379
关闭:
[root@localhost redis-5.0.3]#shutdown
后端启动:
[root@localhost bin]#./redis-server /root/src/redis-5.0.3/redis.conf
测试:
4.设置开机自启动 (设置开机自启动只为运维方便,如下步骤可省略)
(4.1)先将redis.conf中daemonize设置为yes,确保守护进程开启。
(4.2)编写开机自启动脚本
[root@localhost redis-5.0.3]# vi /etc/init.d/redis
【注】注意修改为本身的redis地址
PATH=/usr/local/bin:/sbin:/disk1/install/redis/bin:/bin
REDISPORT=6379
EXEC=/disk1/install/redis/bin/redis-server
REDIS_CLI==/disk1/install/redis/bin/redis-cli
PIDFILE=/var/run/redis.pid
CONF="/root/src/redis-5.0.3/redis.conf"
AUTH="123456"
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
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE exists, process is not running."
else
PID=$(cat $PIDFILE)
echo "Stopping..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
sleep 2
while [ -x $PIDFILE ]
do
echo "Waiting for Redis to shutdown..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac
【注】: redis设置AUTH命令
redis 127.0.0.1:6379> AUTH PASSWORD
(error) ERR Client sent AUTH, but no password is set
redis 127.0.0.1:6379> CONFIG SET requirepass "1234"
OK
redis 127.0.0.1:6379> AUTH 123456
Ok/
(4.3)设置权限
# chmod 777 redis
(4.4)关机重启测试
reboot
#安装依赖
yum install gcc pcre pcre-devel gzip gzip-devel zlib zlib-devel
yum install -y git
#下载fdfs 和nginx模块源码
test -d /root/src || mkdir /root/src
cd /root/src
git clone https://github.com/happyfish100/libfastcommon.git
git clone https://github.com/happyfish100/fastdfs-nginx-module.git
git clone https://github.com/happyfish100/fastdfs.git
cd /root/src/libfastcommon/
./make.sh
./make.sh install
cd /root/src/fastdfs
./make.sh
./make.sh install
cd /etc/fdfs
rm -rf *.sample
#注意最后一个点,别漏掉了
cp /root/src/fastdfs/conf/* .
mkdir /disk1/data/fastdfs -p
# sed 是替换命令
sed -i 's#/home/yuqing/fastdfs#/disk1/data/fastdfs#g' tracker.conf
#启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
sed -i 's#/home/yuqing/fastdfs#/disk1/data/fastdfs#g' storage.conf
sed -i 's/192.168.209.121/192.168.248.131/g' storage.conf
#启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
sed -i 's#/home/yuqing/fastdfs#/disk1/data/fastdfs#g' client.conf
sed -i 's/192.168.209.121/192.168.248.131/g' client.conf
#拷配置并修改
cp /root/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
sed -i 's/tracker:22122/192.168.248.131:22122/' /etc/fdfs/mod_fastdfs.conf
sed -i 's/url_have_group_name = false/url_have_group_name = true/' /etc/fdfs/mod_fastdfs.conf
sed -i 's%store_path0=/home/yuqing/fastdfs%store_path0=/disk1/data/fastdfs%g' /etc/fdfs/mod_fastdfs.conf
# 下载和编译安装nginx cd /root/src
wget http://nginx.org/download/nginx-1.15.8.tar.gz
./configure --prefix=/disk1/install/nginx --user=nobody --group=nobody --with-http_ssl_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --add-module=/root/src/fastdfs-nginx-module/src
成功标志:
【常见问题】:
缺乏SSL
解决办法:yum install openssl openssl-devel
make
make install
#修改nginx 配置
在nginx.conf server中添加
location /group1/M00 {
ngx_fastdfs_module;
}
/usr/local/nginx/sbin/nginx -s reload
#启动nginx
/disk1/install/nginx/sbin/nginx
#上传测试
cd /etc/fdfs/
/usr/bin/fdfs_test /etc/fdfs/client.conf upload ./anti-steal.jpg
修改client.conf文件
若是访问不到请把80端口暴露除去,或关闭防火墙