文档章节

使用Linux服务器需要注意的几点

SoneWinstone
 SoneWinstone
发布于 2016/11/19 11:11
字数 2130
阅读 32
收藏 3

一.尽量不要使用sudo apt-get来安装程序

linux上的软件最好使用绿色免安装的,用wget url来下载,用tar -zxvf来解压.

apt方式弊端太多了,上面软件很老!要想使用最新版,必须手动去下载.当你输入java指令,提示安装jre,会发现apt的软件仓库里面jdk都很旧.安装默认的mysql也是5.x的,有点老.

apt方式弊端太多了,它把目录结构弄得混乱不堪!虽然通过指令安装成功了,但是你根本就不知道程序安装到了哪里,想找配置文件都很麻烦.

二.ssh远程登录和ftp两个最重要服务器操作手段

xshell用于SSH加密远程登录服务器,它的同类产品有:SecureCRT,Putty,apache mina项目中有一个SSH子项目.

vsftpd用于ftp上传下载文件,apache mina项目是一个网络相关库,包括SSH,FTP相关库.它下面有一个ftpserver的子项目.

服务器端使用vsftpd作为ftp服务器端,客户端可以使用任意一种ftp工具,比如filezilla.使用vsftpd需要在/etc/vsftpd文件中进行配置,一个是改密码,另一个是允许写数据.

允许写数据,添加这句话:

# Uncomment this to enable any form of FTP write command.
write_enable=YES

有了vsftpd,就可以通过filezilla向服务器上传软件了,有些服务器上wget无法下载的程序,可以从客户端传上去.

三.安装mysql

如果使用apt安装默认的mysql,版本比较老.注意要安装mysql时,有好几个安装包:mysql-core,mysql-client,mysql-server等,它们之间有依赖关系,也就是有包含关系,只需要输入安装mysql-server就够了.一定别安错了,输入sudo apt-get install mysql之后,多按几次tab键.mysql如果手动下载然后安装,会很复杂,比tomcat,ftpserver的安装复杂多了.所以,最好使用sudo apt-get install mysql-server命令来安装mysql.

安装完mysql之后,本地访问正常,在客户端使用workbench连接时总是报错,这是因为需要配置/etc/my.conf.默认情况下,这个文件中有一句:

bind-address=127.0.0.1

这表示mysqld只监听本地的3306端口,不监听外部端口,把这句话中的ip地址改成0.0.0.0表示监听一切端口.或者注释掉这句话,默认情况下监听一切端口.

为了让mysql支持远程登录,先mysql -uroot -p进入数据库,把mysql.user表中的root的host修改为%或者固定的ip地址.

上述两个操作完成之后,sudo service mysql restart

mysql的默认编码是latin而非utf8,为了解决乱码问题,修改/etc/mysql/my.cnf,

[client]

default-character-set=utf8

[mysqld]

#加default-character-set=utf8无法启动

 character-set-server=utf8

四.安装java和tomcat

为了使用java8,从官网上下载jdk需要点击按钮同意,然后才允许下载,这样wget就得换一种方式,让wget带着accept liscense这个cookie去下载.

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"http://download.oracle.com/otn-pub/java/jdk/7u71-b14/jdk-7u71-linux-x64.rpm

也可以用客户端下载完成后使用ftp传上去.解压之后就能使用了.

需要把java和javac命令添加到环境变量中去.

ubuntu中的环境变量跟windows一样,也是分成好几种,包括系统环境变量,用户环境变量,超级用户环境变量.

如果更改~/.profile或者~/.bashrc,那么更改的就是用户环境变量,不影响其他用户.

如果更改/etc/profile及profiled下的文件,那么更改的就是系统环境变量,也影响其他用户.

$PATH变量最开始是在/etc/environment中定义的,所以也可以更改这个文件.

但是上面所有方法都没法在sudo命令下使用java,因为sudo命令会把PATH等环境变量重置,于是你添加的目录就看不见了.这么怪异而偏僻的东西,吾如何知之?不信可以编写一个haha.sh,里面只有一句话:echoPATH等环境变量重置,于是你添加的目录就看不见了.这么怪异而偏僻的东西,吾如何知之?不信可以编写一个haha.sh,里面只有一句话:echoPATH.使用./haha.sh和sudo ./haha.sh输出结果是不一样的.那么如何更改sudo下的PATH呢?更改/etc/sudoers文件.

tomcat可以直接wget下载,解压即用.进入其bin目录下,运行startup.sh就可以启动服务器了,这个startup.sh调用了catalina.sh,setclasspath.sh等文件.它会自动根据java命令所在的位置来定义JAVA_HOME,JRE_HOME.

注意,因为需要绑定端口号,运行tomcat是一个权限较高的操作,所以需要使用sudo ./startup.sh.

这时如果发现提示找不到JAVA_HOME,那就跟我走的坑一样了.我明明在~/.bashrc中把java命令所在文件夹添加到了PATH中,为何找不到?这是因为使用了sudo导致PATH中,为何找不到?这是因为使用了sudo导致PATH被重置了,所以就找不到java命令了!解决方法是更改startup.sh脚本,在脚本中直接定义JAVA_HOME或者直接更改$PATH.这么偏僻的东西我怎么能想到!!!

运行startup.sh之后,运行ps -a命令会发现有一个java正在运行,这说明tomcat已经启动.额.打开浏览器,访问服务器8080端口,结果一直显示正在请求,一直无法加载成功.为啥呀?这个问题让我纠结了一晚上,我到底做错了什么,为啥服务器启动了无法访问?在服务器上使用wget localhost:8080看看能不能本地访问,也说:请求已发送,正在等待回复.这时,如果你静静的等待个半小时,会发现好了,一切正常运行,网页访问速度也丝毫不慢.然而,我昨天晚上纠结这个问题时,没有等待这么长时间,所以一直不知道错误原因.百度"linux 安装tomcat"看看别人是怎么安的,结果人家都是解压就用.昨晚真是气冲斗牛,错了不知道哪里错了这种感觉真是人间最痛苦的感觉之一.实际上,我什么都没有做错,错的是系统,这个问题网上有大量的资料,百度"ubuntu tomcat启动慢"就可以了,原因是为了加密,生成某个随机数,那个随机数需要收集系统噪音,所以需要等待很长时间,在startup.sh中添加一句话就可以了

export CATALINA_OPTS="-Djava.security.egd=file:/dev/./urandom"

要想停止tomcat,有两种方法:一是运行bin/shutdown.sh;另一种方法是ps -a,kill 名字叫java的那个程序.

实际上,运行tomcat完全不需要sudo,因为tomcat占用的是8080端口!这样也确实能够运行,但是打开浏览器却无法访问很多webapp,这是因为CATALINA_HOME这个文件夹下有很多owner为root的文件,webapp无法访问这些文件,解决方法是:

chown 用户名 apache-tomcat  -R

-R表示递归更改文件所属用户

五.使用ubuntu的几个原则

尽量自己下载解压即用的软件,不要使用apt-get.

尽量在~/和/opt/目录下操作,不要掺和其他目录.比如tomcat说没有JAVA_HOME,那么就更改它的startup.sh,在里面添加一句JAVA_HOME,而不要更改/etc/sudoer.即尽量把问题在自己家里解决,不要把问题在系统级别上解决.

尽量避免rm指令,不对,一定不要使用rm指令,而是要自己编写一个del脚本,它把删除了的文件移到rubbish文件夹中.

总之,只有DIY才能活得好,才能有主权,才能减少学习量.

最后,上面所说的每一个坑我都躺了半天,耗费了大量时间与精力,我认为这是不值得的,因为这些知识毫无用处,只是"知道了",如果有人指导我,那将省去很多功夫.这么纠结而茫然求索的过程十分痛苦,不利于身体健康,有这功夫就不如去研究一下深度学习.在"人造"的坑里躺着远远不如在"天然"坑里面躺着舒服.

本文转载自:http://www.cnblogs.com/weidiao/p/5898752.html

共有 人打赏支持
SoneWinstone
粉丝 1
博文 17
码字总数 3992
作品 0
兰州
私信 提问
apache服务器 和 Tomcat的集群搭建处理

近期在公司项目需要集群部署,根据以前的经验及网上收集的资料搭建了集群环境,但是不太符合要求(至少要求是:将所有的Tomcat服务器隐藏在内网,对外暴露的只是Apache服务器),便对Apache、...

lee123lee
2013/08/10
0
0
Linux use apktool problem

Linux服务器在线打包遇到的问题 转载请标明出处: https://blog.csdn.net/DJY1992/article/details/80110942 本文出自:【奥特曼超人的博客】 在线打包的流程 遇到奇怪的BUG(Linux apktool 包...

djy1992
04/27
0
0
rsync+inotify-tools实现Linux服务器之间的实时文件同步

关于rsync+inotify-tools实现Linux服务器之间的实时文件同步,在网上搜索了一篇值得参考的博客,照着其说明的步骤进行了尝试,配置运行成功了,链接如下: http://dl528888.blog.51cto.com/2...

chace0120
2014/04/19
0
0
图片等静态资源服务器的设计和应用

最近网站需要上传一些图片,于是考虑做一个专门管理静态资源的服务; 归纳的实现有几点: 1,使用jsonp或http跨域上传(文件流传输); 2,本地上传并服务器之间同步(windows做IIS,linux做...

菜蚜
2014/11/18
0
2
在Linux中搭建 samba服务器

下面说一下如何在RHEL5.4中搭建samba服务器,在搭建samba服务器之前要了解: (1)samba服务器是干什么用的; (2)它的主要作用是什么; (3)它在什么情况下会使用到。 SMB协议 SMB协议是在...

杨泓晨
2015/08/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

七牛qshell工具 批量删除操作

qshell 下载地址&文档(http://developer.qiniu.com/code/v6/tool/qshell.html) 这里我们演示的是windows下的操作,将下载的工具改名为:qshell.exe 然后将文件的路径添加到PATH 然后 点击 “...

koothon
55分钟前
1
0
Fastjson-fastjson中$ref对象重复引用问题

import java.util.ArrayList;import java.util.List;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;/** * fastjson中$ref对象......

小黄狗
今天
1
0
mybatis一级缓存

mybatis执行查询的流程,最终都是通过动态代理进入到MapperProxy的invoke方法 @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try......

wuyiyi
今天
6
0
安装weblogic wls1033_generic.jar 遇见的坑

接别人的烂摊子,weblogic部署没部署成功不部署了 让我远程给别人部署weblogic 11g 部署完成启动域的时候启动不了报错如下 Unrecognized option: -jrockit Error: Could not create the Ja...

雁南飞丶
今天
1
0
通过7个python函数理解区块链

我想对于那里的很多人来说,区块链就是这种现象,很难不让你头脑发热。我开始观看视频和阅读文章,但对我个人而言,直到我编写自己的简单区块链,我才真正理解它是什么以及它的潜在应用价值。...

笔阁
今天
26
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部