我本人在腾讯云服务器,新用首单户第一年价格优惠,价格仅为99元一年。确实很便宜。根据腾讯云官网上的说明选择套餐即可, 当需要选择云服务器计算机系统时,需要重点关注一下,一般用于作网站服务器、应选择linux系列系统,我选择了较通用的centos系统。
云服务器在我这样的菜鸟看来就是一台远程控制的电脑,而租用一台远程电脑,则像极了10几年前上网吧, 只是这台电脑将长期属于你,所以你需要认真配置好它,而它除了用来当云端硬盘外,还可以用来作服务器建站等。
当成功购买云服务器后,云平台(如腾讯或阿里等)都会提供较傻瓜的远程控制功能,只要输入初始密码,就可以远程登录你的 云服务器桌面。是的,即使是安装了centos系统的云服务器,也预装了图形桌面,但是往往登录后非常卡顿。此时 你需要尝试并习惯远程登录到云服务器的命令行(command line或CLI)界面。就我所知,腾讯和阿里云平台都提供了 相关功能。
当然,这不够好。你需要学习使用ssh远程登录到云服务器的命令行终端。关于该操作的所有疑问,本人是从零摸索完成的,假定你也能顺利地从腾讯或阿里 云的官网文档搜索而解决。
Common Lisp是一种通用的编程语言,它非常酷,学习它你需要掌握最少的语法,但却能轻松地做到包括建立网站之类的很多事。 本文推荐的Common Lisp编程环境是sbcl+emacs+slime。 sbcl是Common Lisp语言的一个实现。你可以把它当作一个linux系统下的软件,而你可以通过如下终端命令来安装该软件。
sudo yum apt-install sbcl
安装完该两个程序后,你可以在终端键入程序名称以运行程序。
试试在sbcl中写代码:
(+ 1 1)
(if (> 3 2)
(print "Three is greater than two."))
恭喜你!已在云端成功安装了LISP语言环境。
emacs的安装同理。它是一个很受黑客欢迎的代码编辑器,关于emacs的基本操作知识你需要google。
现在需要安装slime了,它是一个emacs编辑器中的插件,用于在emacs中运行sbcl,相关的安装配置说明网络上已有很多,我只贴出我正在使用的几行配置代码。
(setq inferior-lisp-program "sbcl -K utf-8")
;;该路径也就是slime工具包的下载路径,本行代码使该路径在emacs中可见
(add-to-list 'load-path "/root/lisp-environment/slime-master/")
;;emacs启动时初始化slime
(require 'slime)
(require 'slime-autoloads)
(slime-setup '(slime-fancy))
在熟悉了emacs的快捷按键之后,你已经可以轻松地在云服务器上使用Common Lisp写代码了。
在习惯了使用quicklisp安装lisp软件包后,才真正让我领略了Common Lisp语言编程的便捷。 我们马上要用到的web网络服务包名为hunchentoot,尽管名字很生僻,不妨碍我们分分钟安装和掌握它。 我们需要先安装quicklisp。你应该在谷歌搜索quicklisp并进入官网(我并不很清晰记得以下步骤,如果你发现你无法做到,请给我留言以索取帮助), 你从官网中获得一个setup.lisp文件,它将用于在sbcl中安装quicklisp。而你需要做的仅仅是在sbcl(也即slime)中执行代码:
(load "/path/to/setup.lisp")
根据相应的提示操作,你将成功安装quicklisp。 然后你就可以愉快地使用quicklisp以迅捷安装lisp软件包了。以下代码将安装hunchentoot并发布一个hello的网布到你的服务器对应的IP地址。
;; 安装hunchentoot及多个常用的web编程软件包。
(ql:quickload '(yason parenscript str cl-who cl-fad drakma hunchentoot hunchentoot-test cl-html-parse flexi-streams ))
;; 定义一个包web,它引用了hunchentoot等软件包。
(defpackage :web
(:use :cl :cl-who :hunchentoot :hunchentoot-test :parenscript))
;; 进入web包
(in-package :web)
;; 启用一个对应于云服务器80端口的web网络服务端。
(defvar *ac* (make-instance 'hunchentoot:easy-acceptor :port 80))
(start *ac* )
;;; 定义一个hello网页define-easy-handler 和remote-addr为hunchentoot包的函数,而format,get-universal-time为lisp内置函数。
(define-easy-handler (hello :uri "/hello")
(name)
;;获取访问者的ip以存入变量name。
(setf name (remote-addr *request*))
(format nil "Hello world of Common Lisp via website Yo, ~A! The Lisp time is ~A."
name (get-universal-time)))
运行后你在任意联网的网络客户端(手机、PAD、计算机)即可访问该网页了,它的路径是"http://你的服务器的公网ip/hello"
HELLO网页示意图
此时,你最好顺便购买一个域名,并绑定到你的服务器IP,记得同步在工信部备案:)。