文档章节

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

SoneWinstone
 SoneWinstone
发布于 2016/11/19 11:11
字数 2130
阅读 28
收藏 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才能活得好,才能有主权,才能减少学习量.

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

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

共有 人打赏支持
SoneWinstone
粉丝 1
博文 16
码字总数 3992
作品 0
兰州
Linux use apktool problem

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

djy1992 ⋅ 04/27 ⋅ 0

Linux虚拟机上搭建ftp服务器

Linux虚拟机上搭建ftp服务器 实验介绍:本文主要介绍在虚拟机的Linux系统上搭建ftp服务器,并且最终可以在另外一台win7虚拟机中能够正常上传和下载文件,并建立访问用户的黑白名单,以及虚拟...

xiaoyaokeyx ⋅ 05/13 ⋅ 0

甲骨文开源企业级内核 Unbreakable Enterprise Kernel

虽然甲骨文"Unbreakable Enterprise Kernel"(UEK)内核的源代码已经可以通过公司自己的服务器获取,但现在该组织正在将其发布到 GitHub,以提高其 Linux 补丁版的受欢迎程度。 甲骨文的 Unbr...

局长 ⋅ 04/15 ⋅ 6

php-config: /bin/sh^M: 坏的解释器: 没有那个文件或目录

因为一些项目需要安装一些PHP扩展,在执行./configure时提示 最开始以为这个文件被修改了,最终和测试服务器上的php-config进行对比发现内容都一样,但是执行php-config返回的结果却不一样,...

小菜鸟儿 ⋅ 04/27 ⋅ 0

如何创建一个 Docker 镜像

在 前面的文章 中,我们学习了在 Linux、macOS、以及 Windows 上如何使用 Docker 的基础知识。在这篇文章中,我们将学习创建 Docker 镜像的基本知识。我们可以在 DockerHub 上得到可用于你自...

作者: Swapnil Bhartiya ⋅ 04/13 ⋅ 0

x86、Linux、GNU、GNOME是什么

一、指令集架构: 指令集架构(英语:Instruction Set Architecture,缩写为ISA),又称指令集或指令集体系,是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,...

easonjim ⋅ 2017/07/16 ⋅ 0

学着学着Linux系统写篇心得

本学期对于linux系统的学习,和自己买的一本《linux就该这么学》这本书,让我对linux有了一定的了解。我知道了linux只是个内核。现在的linux操作系统,都是用这么一个内核,加上其它的应用程...

linuxprobe16 ⋅ 06/03 ⋅ 0

编写有趣且有价值的 Systemd 服务

让我们假设你希望搭建一个游戏服务器,运行 Minetest 这款非常酷、开源的,以采集 & 合成为主题的沙盒游戏。你希望将游戏运行在位于客厅的服务器中,以便搭建完成后可供你的学校或朋友使用。...

24% ⋅ 05/31 ⋅ 0

设置基于Web的Guacamole(鳄鱼)工具以访问远程Linux / Windows计算机

作为系统管理员,你会发现自己(现在或将来)的环境下Windows和Linux共存工作。 这不是秘密,一些大公司喜欢(或必须)在Windows机箱和其他Linux服务器上运行他们的一些生产服务。 如果是这样...

yzy121403725 ⋅ 05/31 ⋅ 0

迁徙到 Linux:命令行环境

刚接触 Linux?在这篇教程中将学习如何轻松地在命令行列出、移动和编辑文件。 这是关于迁徙到 Linux 系列的第四篇文章了。如果您错过了之前的内容,可以回顾我们之前谈到的内容 新手之 Linu...

作者: John Bonesio ⋅ 04/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部