使用Linux服务器需要注意的几点
使用Linux服务器需要注意的几点
SoneWinstone 发表于11个月前
使用Linux服务器需要注意的几点
  • 发表于 11个月前
  • 阅读 26
  • 收藏 3
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

一.尽量不要使用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才能活得好,才能有主权,才能减少学习量.

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

标签: Linux
共有 人打赏支持
粉丝 2
博文 16
码字总数 3992
×
SoneWinstone
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: