server_serverlet - CSDN
精华内容
参与话题
  • 什么是WEBserver? 经常使用的WEBserver有哪些?   一、什么是WEBserver  Webserver能够解析HTTP协议。当Webserver接收到一个HTTP请求,会返回一个HTTP响应,比如送回一个HTML页面。为了处理一个请求Webserver能够...

    什么是WEBserver? 经常使用的WEBserver有哪些?

     
    一、什么是WEBserver

        Webserver能够解析HTTP协议。当Webserver接收到一个HTTP请求,会返回一个HTTP响应,比如送回一个HTML页面。为了处理一个请求Webserver能够响应一个静态页面或图片,进行页面跳转或者把动态响应的产生托付给一些其他的程序比如CGI脚本,JSP脚本,servlets,ASP脚本,server端JavaScript,或者一些其他的server端技术。不管它们(译者注:脚本)的目的怎样,这些server端的程序通常产生一个HTML的响应来让浏览器能够浏览。 

     

    二。经常使用的WEBserver有哪些?

         在UNIX和LINUX平台下使用最广泛的免费HTTPserver是W3C、NCSA和APACHEserver,而Windows平台NT/2000/2003使用IIS的WEBserver。在选择使用WEBserver应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理server、缓冲服务和集成应用程序等,以下介绍几种经常使用的WEBserver。

     

    Microsoft IIS
         Microsoft的Webserver产品为Internet Information Server (IIS), IIS 是同意在公共Intranet或Internet上公布信息的Webserver。IIS是眼下最流行的Webserver产品之中的一个,非常多著名的站点都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。

         IIS是一种Web服务组件,当中包含Webserver、FTPserver、NNTPserver和SMTPserver,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包含互联网和局域网)上公布信息成了一件非常easy的事。它提供ISAPI(Intranet Server API)作为扩展Webserver功能的编程接口;同一时候,它还提供一个Internet数据库连接器,能够实现对数据库的查询和更新。

     

    IBM WebSphere
         WebSphere Application Server 是 一 种功能完好、开放的Web应用程序server,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。 这一整套产品进行了扩展,以适应 Web 应用程序server的须要,范围从简单到高级直到企业级。

         WebSphere 针对以 Web 为中心的开发者,他们都是在基本 HTTPserver和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可反复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩执行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。

     

    BEA WebLogic
         BEA WebLogic Server 是一种多功能、基于标准的web应用server,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署全部关键性的任务,不管是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。因为 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。

         BEA WebLogic Server 在使应用server成为企业应用架构的基础方面继续处于率先地位。BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自己主动化。

     

    APACHE

         apache仍然是世界上用的最多的Webserver,市场占有率达60%左右。它源于NCSAhttpdserver,当NCSA WWWserver项目停止后,那些使用NCSA WWWserver的人们開始交换用于此server的补丁,这也是apache名称的由来(pache 补丁)。世界上非常多著名的站点都是Apache的产物,它的成功之处主要在于它的源码开放、有一支开放的开发队伍、支持跨平台的应用(能够执行在差点儿全部的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

     

    Tomcat
         Tomcat是一个开放源码、执行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是依据servlet和JSP规范进行执行的,因此我们就能够说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件server要好。
         Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是全然重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此眼下很多WEBserver都是採用Tomcat。
    眼下,很多大型Web应用一般将Apache和Tomcat结合使用,Apache负责接收用户的HTTP请求,假设请求是Servlet、Jsp,则把请求转发给Tomcat处理,并将处理结果封装响应给用户。

    展开全文
  • Server(简单详细)

    2018-06-17 23:52:44
    Server是Android中实现程序后台运行的解决方案. 它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务 服务的运行不依赖于任何界面,即使程序被切换到后台,或者用户打开另一个应用程序,服务任然能够正常...

    介绍

    1. Server是Android中实现程序后台运行的解决方案.
    2. 它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务
    3. 服务的运行不依赖于任何界面,即使程序被切换到后台,或者用户打开另一个应用程序,服务任然能够正常运行
    4. 我们需要在Server的内部创建子线程,否则可能出现主线程被阻塞的情况

    创建自己的MyServer类

    继承Service类

    public class MyService extends Service {
        public MyService() {
        }
    
        @Override
        public IBinder onBind(Intent intent) {
            //和活动进行通信使用
            throw new UnsupportedOperationException("Not yet implemented");
        }
    }

    继承完还不够,还需重写几个常用的方法

    public class MyService extends Service {
        public MyService() {
        }
    
        @Override
        public IBinder onBind(Intent intent) {
            //和活动进行通信使用
            throw new UnsupportedOperationException("Not yet implemented");
        }
    
        @Override
        public void onCreate() {
            //在服务创建的时候调用
            super.onCreate();
        }
    
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            //每次服务启动的时候调用
            return super.onStartCommand(intent, flags, startId);
        }
    
        @Override
        public void onDestroy() {
            //在服务销毁的时候调用
            super.onDestroy();
        }
    }

    别忘了在AndroidManifest进行注册

    <service
        android:name=".MyService"
        android:enabled="true"
        android:exported="true">
    </service>
    enabled是否启用这个服务
    exported是否允许除了当前程序之外的其他程序访问这个服务

    启动和暂停服务

    布局文件代码
    只有2个按钮,一个启动,一个暂停

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <Button
            android:id="@+id/start_service"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="start_service" />
    
        <Button
            android:id="@+id/stop_service"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="stop_service" />
    
    </LinearLayout>

    MainActivity

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private Button startService;
        private Button stopService;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //初始化View
            startService = (Button) findViewById(R.id.start_service);
            stopService = (Button) findViewById(R.id.stop_service);
            //注册监听
            startService.setOnClickListener(this);
            stopService.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.start_service:
                    //开启服务
                    Intent startIntent = new Intent(MainActivity.this, MyService.class);
                    startService(startIntent);
                    break;
                case R.id.stop_service:
                    //暂停服务
                    Intent stopIntent = new Intent(MainActivity.this, MyService.class);
                    stopService(stopIntent);
                    break;
                default:
                    break;
            }
        }
    }

    活动和服务进行通信

    上面再MainActivity中启动了服务,但是启动后,就没下文了…,服务确实启动了,然而活动并不知道服务到底去做了什么事情,以及完成的如何.

    比如说,我们希望在MyService里提供一个下载功能,然后在活动中决定何时开始下载,以及随时查看下载进度.

    重写下MyService代码

    public class MyService extends Service {
    
        private DownloadBinder mBinder = new DownloadBinder();
    
        public MyService() {
        }
    
        @Override
        public IBinder onBind(Intent intent) {
            //和活动进行通信使用
            throw new UnsupportedOperationException("Not yet implemented");
        }
    
        @Override
        public void onCreate() {
            //在服务创建的时候调用
            super.onCreate();
        }
    
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            //每次服务启动的时候调用
            return super.onStartCommand(intent, flags, startId);
        }
    
        @Override
        public void onDestroy() {
            //在服务销毁的时候调用
            super.onDestroy();
        }
    
        class DownloadBinder extends Binder {
    
            public void startDownload() {
                //开始下载
            }
    
            public void getProgress() {
                //查看进度
            }
        }
    }

    布局文件修改,添加2个按钮,一个绑定服务,一个解绑服务

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <Button
            android:id="@+id/start_service"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="start_service" />
    
        <Button
            android:id="@+id/stop_service"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="stop_service" />
    
        <Button
            android:id="@+id/bind_service"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="bind_service" />
    
        <Button
            android:id="@+id/unbind_service"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="unbind_service" />
    
    </LinearLayout>

    MainActivity修改

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private Button startService;//开启服务
        private Button stopService;//暂停服务
        private Button bindService;//绑定服务
        private Button unbindService;//解绑服务
    
        private MyService.DownloadBinder downloadBinder;
    
        private ServiceConnection connection = new ServiceConnection() {
    
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                //当活动与服务成功绑定
                //service向下转型
                downloadBinder=(MyService.DownloadBinder)service;
                //开始下载
                downloadBinder.startDownload();
                //查看进度
                downloadBinder.getProgress();
            }
    
            @Override
            public void onServiceDisconnected(ComponentName name) {
                //当活动与服务连接断开时
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //初始化View
            startService = (Button) findViewById(R.id.start_service);
            stopService = (Button) findViewById(R.id.stop_service);
            bindService = (Button) findViewById(R.id.bind_service);
            unbindService = (Button) findViewById(R.id.unbind_service);
            //注册监听
            startService.setOnClickListener(this);
            stopService.setOnClickListener(this);
            bindService.setOnClickListener(this);
            unbindService.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.start_service:
                    //开启服务
                    Intent startIntent = new Intent(MainActivity.this, MyService.class);
                    startService(startIntent);
                    break;
                case R.id.stop_service:
                    //暂停服务
                    Intent stopIntent = new Intent(MainActivity.this, MyService.class);
                    stopService(stopIntent);
                    break;
                case R.id.bind_service:
                    //绑定服务
                    Intent bindIntent = new Intent(this, MyService.class);
                    bindService(bindIntent, connection, BIND_AUTO_CREATE);
                    break;
                case R.id.unbind_service:
                    //解绑服务
                    unbindService(connection);
                    break;
                default:
                    break;
            }
        }
    }
    展开全文
  • Eclipse开发JavaWeb项目配置Tomcat,详细教程

    万次阅读 多人点赞 2018-01-23 15:22:40
    以下都经过本人自学时一一自己动手配置实验。 首先介绍eclipse开发JavaWeb项目需要配置的相关环境,使用tomcat软件在本地搭建服务器,然后再在eclipse环境下配置tomcat: 第一步:使用tomcat软件在本地搭建服务器...

    以下都经过本人自学时一一自己动手配置实验。

    首先介绍eclipse开发JavaWeb项目需要配置的相关环境,使用tomcat软件在本地搭建服务器,然后再在eclipse环境下配置tomcat:

    第一步:使用tomcat软件在本地搭建服务器,这个本地的tomcat服务器与eclipse环境下配置tomcat服务器都可以使用,但是只能启动一个,否则会报端口冲突,到时安装好环境会介绍

    tomcat软件是apache旗下的一个开源项目。软件下载链接:http://tomcat.apache.org/,如图,我选择的是7.0的环境,并且选择的安装板,不需要配置相关的环境变量,zip版各种环境变量配置麻烦死了,这些个环境软件会在我的结束语中给一个下载地址,也可以根据自己的环境需求下载需要的版本

    安装版教程链接可参考:https://wenku.baidu.com/view/869562cd58f5f61fb736668f.html),网上也有很多安装教程链接,介绍下安装成功之后,在计算机管理-应用中就可以看到tomcat的服务如图第三个图标:


    打开该图标出现如下窗口:


    该窗口中有一个start按钮,点击start按钮,tomcat本地服务器就开启了,点击stop按钮,服务就关闭了

    只有在服务开启的情况下,在浏览器中输入http://localhost:8080 进入如下页面表示安装成功。


    这里本地tomcat安装成功了。

    第二步:eclipse环境下如何配置tomcat服务器:

    打开Eclipse,单击“Window”菜单,选择下方的“Preferences”,看是否存在“Server”选项,我目前使用的是eclipse版,不带额外插件,一些使用的Myeclipse集成了J2EE可以忽略此过程。我使用的EclipsePreferences下是没有Server选项,此时需要安装server插件,我的上一篇博客介绍了如何安装server插件,我这里就不详细叙述了,安装了server之后;如图


    上图中,点击“add”的添加按钮,弹出如下界面:


    上图中,选择对应的Tomcat版本,点击next,如图:


    上图中,选择Tomcat的路径,以及JRE(使用工作平台默认的,不用做额外添加修改),点击“完成”,配置完毕。

    第三步:建立一个web项目

    File → New → Dynamic Web Project ,一路next,在该窗口时如图,勾选Gernerate web.xml deployment descriptor ,finish 就ok了


    让tomcat服务器显示在控制台上,将web应用部署到tomcat中,Window → Show View → Servers如图


    点击链接No servers are available. Click ths link to create a new server. ,在弹出的对话框中选择Tomcat版本 如图:


    点击“Next”,添加我们的项目 如图:,点击finish


    返回eclipse控制台下方的“Servers”面板,右键单击该面板中的“Tomcat v7.0 Server at localhost”节点,在弹出的快捷菜单中单击“Start”,即可启动指定的Web服务器,这里要说明一下就是:很重要,尤其对于不懂的初学者,我也是搞了很久查资料才弄明白,在快捷菜单中单击“Start”启动Web服务器时,弹出如图窗口:


    这个是由于你开启了本地tomcat服务器,又开启eclipse集成的tomcat服务器,引起端口冲突,可以先关掉本地tomcat服务器,如图点击stop之后

    在操作快捷菜单中单击“Start”启动Web服务器就不会有端口冲突窗口出现了,控制台出现如下提示就ok啦。

    测试下,建立一个jsp文件放在webcontent目录下,如图,关于javaweb项目结构,以及建立jsp文件中文乱码就不详细叙述了,网上文档太多了,如图:


    随便运行一个jsp文件,右键——>Run As ——>Run on Server, 效果如图:整个过程就ok了


    再看下一个细节:

    看下一 根据前面的介绍,上图表明,我们新建的项目已经部署到Tomcat服务器上去了,也就是看到了javaweb这个工程发布出去了,双击“Tomcat v7.0 Server at localhost”节点,出现如图信息


    上图的红框部分表明,服务的部署是在eclipse里面(默认是放在工作空间里的.metadata文件夹下),而不是在Tomcat里面。我们来改一下,前提是工程并没有发布到Tomcat中去,那我们先把之前发布的版本删了吧(稍后重新发布):


    这时再次双击“Tomcat v7.0 Server at localhost”节点,使用Tomcat的安装目录作为部署的位置,并修改部署的路径Deploy path(建议改成Tomcat的webapps目录下),然后保存即可。

    这时,重新运行程序。现在来到Tomcat的webapps目录下,发现多了一个javaweb文件夹(即工程文件名),并且文件夹下包含了工程文件中WebContent的内容:


    上图说明,说明这才是真正将程序发布到服务器上。

    我们再来到Tomcat的work目录中,看一下编译之后的文件:


    上图表明,Tomcat会先将jsp文件转为java文件,然后再把java文件编译为class文件,最终执行的是class文件。现在来看一下JSP运行的原理。

    到这里总结以下:上面的整个过程,让我们学会了如何配置Tomcat和部署工程文件,明白了jsp文件是怎样发布到服务器上并最终显示出来。关于JSP的进一步学习可以参考网上的教程自学

































    展开全文
  • >>> docker pull ubuntu >>> docker run -v /home/pi/share:/root/share -p 8888:8888 -p 3100:3100 -itd ubuntu:latest >>... docker exec -it xxxx /bin/bash ...# 安装zs...
    >>> docker pull ubuntu
    >>> docker run -v /home/pi/share:/root/share -p 8888:8888 -p 3100:3100 -itd ubuntu:latest
    >>> docker exec -it xxxx /bin/bash
    
    • 安装zsh、oh-my-zsh

    # 安装zsh
    >>> apt install zsh
    # 修改默认sh
    >>> chsh -s /bin/zsh
    # 安装git
    >>> apt install git
    # 安装curl
    >>> apt install curl
    # 安装oh-my-zsh
    >>> sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    # 重启
    >>> reboot now
    
    • 安装vim修改配置

    >>> apt install vim
    >>> vim .vimrc
    set nocompatible "去掉vi的一致性"
    set number "显示行号"
    set guioptions-=r " 隐藏滚动条"    
    set guioptions-=L
    set guioptions-=b
    set showtabline=0 "隐藏顶部标签栏"
    set guifont=Monaco:h13 "设置字体"        
    syntax on   "开启语法高亮"
    set background=dark     "设置背景色"
    set nowrap  "设置不折行"
    set fileformat=unix "设置以unix的格式保存文件"
    set cindent     "设置C样式的缩进格式"
    set tabstop=4   "设置table长度"
    set shiftwidth=4        "同上"
    set showmatch   "显示匹配的括号"
    set scrolloff=5     "距离顶部和底部5行"
    set laststatus=2    "命令行为两行"
    set fenc=utf-8      "文件编码"
    set backspace=2
    set mouse=a     "启用鼠标"
    set selection=exclusive
    set selectmode=mouse,key
    set matchtime=5
    set ignorecase      "忽略大小写"
    set incsearch
    set hlsearch        "高亮搜索项"
    set noexpandtab     "不允许扩展table"
    set autoread
    set cursorline      "突出显示当前行"
    set cursorcolumn        "突出显示当前列"
    set ts=4
    set expandtab
    set autoindent
    
    • 安装中文

    >>> apt install language-pack-zh-hans
    >>> vim /var/lib/locales/supported.d/local
    en_US.UTF-8 UTF-8
    zh_CN.UTF-8 UTF-8
    zh_CN.GBK GBK
    zh_CN GB2312
    >>> locale-gen
    >>> apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming
    >>> vim .zshrc
    export LANG=en_US.UTF-8
    export LANGUAGE=en_US.UTF-8
    >>> source .zshrc
    
    • 安装ss、proxyxxxxxx

    • 安装Python与包

    >>> apt install python3, python3-dev
    >>> python3 -m pip install --upgrade pip
    # >>> apt install python3-pip
    # 安装lxml时需要下面两个包,否则会报错
    >>> apt install libxml2-dev libxslt1-dev
    # 安装matplotlib时需要下面的包,否则会报错
    >>> apt install libfreetype6-dev
    >>> pip3 install pandas numpy matplotlib lxml xlrd xlsxwriter requests bs4 impyla sqlalchemy apscheduler pymysql py3amf
    

    注:
    sqlalchemy依赖impyla,否则会报错:

    Traceback (most recent call last):
      File "/usr/local/lib/python3.6/dist-packages/apscheduler/executors/base.py", line 125, in run_job
        retval = job.func(*job.args, **job.kwargs)
      File "crawl_dw_so_customerinfo.py", line 64, in main
        engine = data.create_engine()
      File "crawl_dw_so_customerinfo.py", line 15, in create_engine
        engine = sqlalchemy.create_engine('impala://{}:{}/{}'.format(self.ip, self.port, self.database))
      File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/__init__.py", line 435, in create_engine
        return strategy.create(*args, **kwargs)
      File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/strategies.py", line 61, in create
        entrypoint = u._get_entrypoint()
      File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/url.py", line 172, in _get_entrypoint
        cls = registry.load(name)
      File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/langhelpers.py", line 240, in load
        "Can't load plugin: %s:%s" % (self.group, name)
    sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:impala
    

    如果无法安装impyla,错误中有:

    xxxxxxxxxx: fatal error: Python.h: No such file or directory
    

    则先安装python3-dev
    如果要使用pyhanlp,则需要安装OpenJDK

    apt install openjdk-8-jre
    pip3 install pyhanlp
    
    • 设置时区

    Ubuntu server默认没有设置时区,会导致无法使用apscheduler进行定时运行程序,安装tzdata设置时区:

    >>> apt install tzdata
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following NEW packages will be installed:
      tzdata
    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
    Need to get 190 kB of archives.
    After this operation, 3,106 kB of additional disk space will be used.
    Get:1 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf tzdata all 2019b-0ubuntu0.18.04 [190 kB]
    Fetched 190 kB in 2s (102 kB/s)                    
    debconf: delaying package configuration, since apt-utils is not installed
    Selecting previously unselected package tzdata.
    (Reading database ... 21572 files and directories currently installed.)
    Preparing to unpack .../tzdata_2019b-0ubuntu0.18.04_all.deb ...
    Unpacking tzdata (2019b-0ubuntu0.18.04) ...
    Setting up tzdata (2019b-0ubuntu0.18.04) ...
    debconf: unable to initialize frontend: Dialog
    debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
    debconf: falling back to frontend: Readline
    Configuring tzdata
    ------------------
    
    Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the time zones in which they are located.
    
      1. Africa  2. America  3. Antarctica  4. Australia  5. Arctic Ocean  6. Asia  7. Atlantic Ocean  8. Europe  9. Indian Ocean  10. Pacific Ocean  11. System V timezones  12. US  13. None of the above
    Geographic area: 6
    
    Please select the city or region corresponding to your time zone.
    
      1. Aden      9. Baghdad   17. Chita       25. Dushanbe          33. Irkutsk    41. Kashgar       49. Macau         57. Omsk        65. Rangoon        73. Taipei    81. Ujung Pandang  89. Yekaterinburg
      2. Almaty    10. Bahrain  18. Choibalsan  26. Famagusta         34. Istanbul   42. Katmandu      50. Magadan       58. Oral        66. Riyadh         74. Tashkent  82. Ulaanbaatar    90. Yerevan
      3. Amman     11. Baku     19. Chongqing   27. Gaza              35. Jakarta    43. Khandyga      51. Makassar      59. Phnom Penh  67. Sakhalin       75. Tbilisi   83. Urumqi
      4. Anadyr    12. Bangkok  20. Colombo     28. Harbin            36. Jayapura   44. Kolkata       52. Manila        60. Pontianak   68. Samarkand      76. Tehran    84. Ust-Nera
      5. Aqtau     13. Barnaul  21. Damascus    29. Hebron            37. Jerusalem  45. Krasnoyarsk   53. Muscat        61. Pyongyang   69. Seoul          77. Tel Aviv  85. Vientiane
      6. Aqtobe    14. Beirut   22. Dhaka       30. Ho Chi Minh City  38. Kabul      46. Kuala Lumpur  54. Nicosia       62. Qatar       70. Shanghai       78. Thimphu   86. Vladivostok
      7. Ashgabat  15. Bishkek  23. Dili        31. Hong Kong         39. Kamchatka  47. Kuching       55. Novokuznetsk  63. Qostanay    71. Singapore      79. Tokyo     87. Yakutsk
      8. Atyrau    16. Brunei   24. Dubai       32. Hovd              40. Karachi    48. Kuwait        56. Novosibirsk   64. Qyzylorda   72. Srednekolymsk  80. Tomsk     88. Yangon
    Time zone: 70
    
    
    Current default time zone: 'Asia/Shanghai'
    Local time is now:      Tue Sep 24 17:06:40 CST 2019.
    Universal Time is now:  Tue Sep 24 09:06:40 UTC 2019.
    Run 'dpkg-reconfigure tzdata' if you wish to change it.
    

    2019-09-28 更新

    • 设置双网卡并开机自动执行

    >>> ip route add 10.0.0.0/8 via 10.x.x.x
    >>> route delete default gw 10.x.x.x enp3s0
    

    机器重新启动后无法生效,通过将上面的命令添加至rc.local开机自动运行

    >>> sudo cp /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
    >>> sudo vim /etc/rc.local
    #!/bin/sh -e
    
    ip route add 10.0.0.0/8 via 10.x.x.x
    route delete default gw 10.x.x.x enp3s0
    
    exit 0
    >>> sudo chmod a+x /etc/rc.local
    >>> sudo systemctl enable rc-local
    >>> sudo reboot now
    # 启动
    >>> sudo systemctl start rc-local.service
    # 查看启动日志
    >>> sudo systemctl status rc-local.service
    

    参考

    如果在’sudo systemctl enable rc-local’后出现:

    The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
    settings in the [Install] section, and DefaultInstance for template units).
    This means they are not meant to be enabled using systemctl.
    Possible reasons for having this kind of units are:
    1) A unit may be statically enabled by being symlinked from another unit's
       .wants/ or .requires/ directory.
    2) A unit's purpose may be to act as a helper for some other unit which has
       a requirement dependency on it.
    3) A unit may be started when needed via activation (socket, path, timer,
       D-Bus, udev, scripted systemctl call, ...).
    4) In case of template units, the unit is meant to be enabled with some
       instance name specified.
    

    >>> sudo vim /etc/systemd/system/rc-local.service
    ...
    [Install]
    WantedBy=multi-user.target
    

    参考

    如果每次重启后报错:

    ● rc-local.service - /etc/rc.local Compatibility
       Loaded: loaded (/etc/systemd/system/rc-local.service; enabled; vendor preset: enabled)
      Drop-In: /usr/lib/systemd/system/rc-local.service.d
               └─debian.conf
       Active: failed (Result: exit-code) since Sat 2019-12-21 03:25:33 UTC; 3min 3s ago
         Docs: man:systemd-rc-local-generator(8)
      Process: 1249 ExecStart=/etc/rc.local start (code=exited, status=2)
    
    Dec 21 03:25:33 ubuntu systemd[1]: Starting /etc/rc.local Compatibility...
    Dec 21 03:25:33 ubuntu rc.local[1249]: Error: Nexthop has invalid gateway.
    Dec 21 03:25:33 ubuntu systemd[1]: rc-local.service: Control process exited, code=exited, status=2/INVALIDARGUMENT
    Dec 21 03:25:33 ubuntu systemd[1]: rc-local.service: Failed with result 'exit-code'.
    Dec 21 03:25:33 ubuntu systemd[1]: Failed to start /etc/rc.local Compatibility.
    

    则可能是由于网络还没启动完全就执行那两条命令,因而用sleep延迟一会儿再执行.

    >>> sudo vim /etc/rc.local
    #!/bin/sh -e
    
    sleep 1
    ip route add 10.0.0.0/8 via 10.8.15.1
    route delete default gw 10.8.15.1 eth1
    
    exit 0
    

    2019-10-02更新

    • 使用中科大源

    >>> vim /etc/apt/sources.list
    # 将 http://ports.ubuntu.com/ 全部替换为 http://mirrors.ustc.edu.cn/
    

    2019-11-18更新

    • 配置双网卡

    # 显示所有网卡
    >>> ifconfig -a
    # 启用xxxx网卡
    >>> sudo ifconfig xxxx up
    # 网卡配置
    >>> sudo vim /etc/netplan/50-cloud-init.yaml
    network:
        ethernets:
            eth0:
                addresses:
                - 192.168.1.202/24
                gateway4: 192.168.1.1
                nameservers:
                    addresses: [8.8.8.8, 8.8.4.4]
                optional: true
            eth1:
                addresses:
                - 10.8.15.52/24
                optional: true
        version: 2
    # 使其生效
    >>> sudo netplan apply
    

    参考:https://www.hi-linux.com/posts/49513.html

    • 设置ssh root用户登录
    >>> sudo passwd root
    Enter new UNIX password: 
    Retype new UNIX password: 
    passwd: password updated successfully
    >>> sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
    >>> sudo service ssh restart
    

    参考

    • 修改username、hostname
    # 使用root账号登录
    >>> vim /etc/hostname
    >>> usermod -l <newname> -d /home/<newname> -m <oldname>
    >>> sudo reboot now
    

    参考

    • 安装docker (以下方法会安装edge版,而非stable版,不建议使用)

    安装

    >>> curl -sSL https://get.docker.com | sh
    

    配置权限

    >>> cat /etc/group | grep docker # 查找 docker 组,确认其是否存在
    >>> groups # 列出自己的用户组,确认自己在不在 docker 组中
    # 如果 docker 组不存在,则添加之:
    >>> sudo groupadd docker
    # 将当前用户添加到 docker 组
    >>> sudo gpasswd -a ${USER} docker
    # 重启机器
    >>> sudo reboot now
    

    2019-12-29更新

    Kerberos认证依赖库

    impala使用Kerberos认证,则需要安装库

    >>> apt install libsasl2-dev libsasl2-2 libsasl2-modules-gssapi-mit
    >>> pip3 install thrift_sasl==0.2.1
    

    若thift_sasl不为0.2.1版,则有可能报错:

    AttributeError: 'TSocket' object has no attribute 'isOpen'
    

    参考:
    https://github.com/cloudera/impyla/issues/268#issuecomment-522853969
    https://github.com/cloudera/impyla/issues/149#issuecomment-398270409


    2020-01-06更新

    安装jupyterhub

    >>> apt install nodejs
    >>> apt install npm
    >>> apt install libffi-dev
    >>> npm install -g configurable-http-proxy
    >>> pip3 install notebook
    >>> python3 -m pip install jupyterhub
    >>> pip3 install --upgrade cython
    >>> pip3 install --upgrade jupyterthemes
    >>> jt -t oceans16 -f fira -fs 13 -cellw 90% -ofs 11 -dfs 11 -T
    >>> cd /etc
    >>> mkdir jupyterhub
    >>> cd jupyterhub
    >>> jupyterhub --generate-config
    >>> adduser gaoxiang
    >>> chgrp -R gaoxiang notebook
    >>> chown -R gaoxiang notebook
    

    参考:https://blog.cequn.wang/2018/03/10/%E8%85%BE%E8%AE%AF%E4%BA%91-jupyter-notebook%E5%92%8Cjupyterhub/


    2020-01-13更新

    pip切换源、更新pip包

    使用apt install python3-pip安装的pip3无法使用

    pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    

    因而需要重新安装
    因而需要升级至最新版本

    # >>> python3 -m pip install --upgrade pip
    # >>> apt-get remove python3-pip
    # >>> apt autoremove
    >>> pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -U pip
    

    更新全部pip包

    >>> pip3 freeze --local | grep -v '^-e' | cut -d = -f 1  | xargs -n1 pip3 install -U
    

    如果升级后thrift_sasl自动变为0.3.0,则需要降为0.2.1版

    >>> pip3 install thrift_sasl==0.2.1
    

    2020-04-26更新

    thrift-sasl 0.4.0+版已经修复问题,不再需要指定安装0.2.1版本!

    >>> pip3 install thrift_sasl
    

    参考:https://github.com/cloudera/impyla/issues/268#issuecomment-578007708


    2020-05-07更新


    2020-06-11更新

    • 使用中科大源

    方式1:

    >>> vim /etc/apt/sources.list
    # 将 http://ports.ubuntu.com/ 全部替换为 http://mirrors.ustc.edu.cn/
    

    方式2(树莓派)

    >>> sudo sed -i 's/ports.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
    

    2020-06-16更新

    • zsh下docker命令自动补全

    >>> vim ~/.zshrc
    plugins=(git docker docker-compose)
    >>> source $ZSH/oh-my-zsh.sh
    

    2020-07-01更新

    om my zsh没有正常启动

    如果出现oh my zsh没用启动则:

    >>> sudo vim ~/.zshrc
    # 结尾添加
    source $ZSH/oh-my-zsh.sh
    >>> source ~/.zshrc
    

    2020-08-01更新

    安装docker-compose

    树莓派安装

    https://blog.csdn.net/MacwinWin/article/details/107726017

    Linux服务器安装

    官方给的地址下载docker-compose在下载速度非常慢,尤其是阿里云ECS上

      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   638  100   638    0     0    492      0  0:00:01  0:00:01 --:--:--   492
      0 11.6M    0  118k    0     0   1290      0  2:38:19  0:01:34  2:36:45     0
    

    所以要换成国内链接,注意版本号要改成最新的

    >>> curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   423  100   423    0     0     72      0  0:00:05  0:00:05 --:--:--   117
    100 11.6M  100 11.6M    0     0  1341k      0  0:00:08  0:00:08 --:--:-- 4709k
    >>> sudo chmod +x /usr/local/bin/docker-compose
    >>> sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    
    展开全文
  • 实现Http Server的三种方法

    万次阅读 2017-04-26 08:39:33
    一、使用SUN公司在JDK6中提供的新包com.sun.net.httpserver   JDK6提供了一个简单的Http Server API,据此我们可以构建自己的嵌入式Http Server,它支持... Server API来实现,程序员必须自己实现HttpHandler接口,H
  • windows server 2016版介绍与安装

    千次阅读 2019-06-01 13:59:24
    软公司进行研发推出的Windows Server 2016正式版;它也继以前的版本进行开发的第六个Windows Server版本,许多的用户将这款软件理解成为服务器版的Windows10;它和以前的版本不相同的是,这款系统是根据处理器所运行...
  • AndServer初探

    千次阅读 2019-01-04 17:21:25
    AndServer初探 详细了解请戳这里 AndServer的github地址【https://github.com/yanzhenjie/AndServer】 AndServer文档地址【https://www.yanzhenjie.com/AndServer/】 AndServer的相关博客地址...
  • AndServer,一个Android端的web服务器

    万次阅读 多人点赞 2017-05-13 15:33:37
    AndServer是一个Android端的Web服务器,类似Apache或者Tomcat,它是一个普通的Android Library,Android项目Gradle远程依赖或者添加Jar包皆可引入即可进行开发。
  • 微软操作系统 Windows Server 2012 R2 官方原版镜像 Windows Server 2012 R2 是由微软公司(Microsoft)设计开发的新一代的服务器专属操作系统,其核心版本号为 Windows NT 6.3 。提供企业级数据中心与混合云解决...
  • 彻底卸载SQL Server

    万次阅读 多人点赞 2019-02-21 17:02:02
    很多人在面对SQL Server出现的一些无法解决的问题时,会选择卸载重装,但是SQL Server卸载不干净的话,后续安装过程会出现很多问题,因此安全干净的卸载软件是很重要的步骤。 1、在运行中输入services.msc,然后...
  • 如何把SQLServer数据库从高版本降级到低版本?

    万次阅读 多人点赞 2017-03-07 08:57:35
    由于目前还广泛使用着SQLServer2000,很多公司又想使用新的SQLServer,从而直接【分离/附加】或者【备份/还原】数据库,在不同版本之间存放。往往就会遇到版本不兼容的问题。前几天遇到了从我本机2008R2上备份的一个...
  • 先选择服务器如何选择SQL Server 2012 选择自己要的版本,这里笔者选的是中文企业版,下载地址附上,复制到迅雷下载即可 注意这里的是64位版,如果32位机器去网站上找x86的版本,笔者还是建议换成64位的系统吧 ed...
  • sql server 2014 express没有Management Studio

    万次阅读 2017-07-04 10:55:55
     如果你不小心安装的是sql server 2014 express版本,或者是别的express版本,那你就比较头疼了,而且后期麻烦事也挺多,特别是安装了tfs,总有一天会突然出现这个问题:TF30042:数据库已满,为什么呢?...
  • SQL Server 下载安装教程

    万次阅读 多人点赞 2020-06-01 15:33:12
    SQL Server 2017下载安装教程 第一步:打开浏览器,在浏览的搜索框中我们输入“SQL Server”。如图,会匹配出中文两条微软官方下载页面(一个页面内容是英文、一个页面内容是中文)。这里我们以中文的为例。 第二步...
  • live-server的安装

    万次阅读 2019-12-03 17:18:00
    一、关于live-server的介绍 live-server插件实现了——修改文件浏览器自动刷新;浏览器自动打开项目;本地开发搭建临时的服务。 二、关于live-server的安装 1:安装node.js 在官网http://nodejs.cn/download/ ...
  • SQL Server 2019 安装教程

    万次阅读 多人点赞 2020-02-29 09:05:28
    SQL Server 2019 安装教程 下载安装SQL: 1、下载SQL Server 2019 Developer 官方网址:下载地址。 2、下拉选择免费版本,直接点击下载(别问,问就是家境贫寒????)。 3、双击启动安装文件,示例: 4、等待… 5、...
  • SQL Server 2014 安装图解

    万次阅读 多人点赞 2020-09-21 09:38:50
    SQL Server 2014安装图解 1 SQLServer2014简介 SQL Server2014 是Microsoft 公司推出的关系型数据库管理系统。它用于大规模联机事务处理(OLTP)、数据仓库和电子商务应用的数据库平台;也是用于数据集成、分析和...
  • 目录 错误界面 解决方案 第一,设置mysql时区。 第二,同步mysql驱动。 前进的道路充满荆棘。...进入“高级”选项卡,手动设置“serverTimezone”属性。 看起来是时区出了问题。时区怎么会出问题?坑真多。网...
  • SQL Server 2017下载,安装,打开步骤

    万次阅读 多人点赞 2018-11-17 15:44:59
    SQL Server 2017下载内容分为两部分SQL Server 2017 Developer和SQLserver Mamngement Studio 第一部分: 1.官网下载SQL Server 2017 Developer ...
  • “The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.”,在web开发的过程中,看到这一段错误提示,不管是在入门阶段还是已经是web...
1 2 3 4 5 ... 20
收藏数 3,816,008
精华内容 1,526,403
关键字:

server