linux - 웹서버 - 웹 리눅스 터미널




공통 리스프로 웹 서버를 설치하는 방법은? (3)

5 년후.

그것은 quicklisp 매우 쉽습니다. 난 당신이 SBCL 또는 다른 CL 구현을 설치했다고 가정합니다.

  1. REPL로 가서 평가하십시오.

(ql:quickload :aserve)

  1. AllegroServe를 시작하십시오.

(net.aserve:start :port 8000)

  1. 일부 HTML 파일 게시

(net.aserve:publish-file :path "/" :file "~/hello.html")

  1. http://localhost:8000/

행복한 해킹!.

AllegroServe 튜토리얼 소개

몇 달 전, Paul Graham이 쓴 장엄한 저서 인 ANSI Common Lisp 과 그의 블로그에서 같은 저자가 발행 한 Lisp을 웹 개발의 비밀 무기로 사용할 수 있다는 진술에 영감을 받았습니다. 와우, 놀랍습니다. 그것은 제가 오랫동안 찾고 있었던 것입니다. 저자는 실제로 성공적인 웹 애플리케이션을 개발하여 야후에 판매했습니다.

그 고무적인 이미지로, 나는 Common Lisp을 배우는 데 약간의 시간 (1 년 또는 2 년을 아는 사람)을 보내기로 결심했다. 어쩌면 언젠가는 내 웹 응용 프로그램을 개발하고 위대한 Lisp 전문가가 될 것입니다. 사실, 이것이 Lisp을 공부하게 된 두 번째 시간입니다. 처음 몇 년 전에 유명한 책 SICP 에 매료되었지만 나중에 Scheme이 실생활 적용을 위해 너무나 미숙했습니다.

ANSI Common Lisp 의 일부 장을 읽은 후에, 나는 이것이 Common Lisp 의 상세한 탐색으로 가득 찬 위대한 책이라는 것을 확신했다. 그런 다음 Common Lisp에서 웹 서버를 설정하기 시작했습니다. 어쨌든 당신이 무언가를 배우고 싶은 경우에, 이것은 제일 방법이어야한다. 데모는 항상 정의보다 낫습니다.

Practical Common Lisp 의 책에서 제안했듯이 (이것도 훌륭한 책이다), 나는 Common Lisp 구현에 AllegroServe를 설치하기로했다. 그런 다음, 다른 곳에서 Hunchentoot이 AllegroServe보다 더 좋은 것으로 나타났습니다. (나는이 단어가 어디서 누구인지를 기억하지 못한다. 그래서 나와 논쟁하지 마라.)

아이러니하게도, Common Lisp 구현에 두 패키지를 설치할 수 없었습니다. 더 성가신, 나는 심지어 이유를 모른다. 기계는 항상 많은 특수 용어를 뱉어 내게 혼돈 속으로 빠지게한다. 인터넷 검색을 시도했지만 아무 것도 찾지 못했습니다.

리눅스에이 패키지를 성공적으로 설치 한 사람이라면 어떻게했는지 말해 줄 수 있습니까? 어떤 문제가 생겼니? 어떻게 잘못되었는지 알아 냈고 그것을 고쳤습니까? 더 자세하게, 더 도움이됩니다.


기본적으로이 설치 단계는 Frank Shearar가 추천 한 초보자를위한 Simple Lisp Webapp (다시 한 번 감사드립니다)의 내용입니다. 하지만 나는 정확한 단계를 따르지 않았다. 왜냐하면 (1) 로컬 사용자와 함께 Common Lisp을 설치하고 싶다. (2) 나는 저자가 언급 한 몇 가지 사항에 익숙하지 않다. 원본 기사를 확인하거나 여기를 클릭하면됩니다. 나는 나의 지시가 따르기 매우 쉽다 두려워한다. :)

설치하기 전에 세 가지 패키지를 다운로드해야합니다. sbcl 바이너리 및 소스 패키지는 here 에서 다운로드 할 수 있으며 smanek 패키지는 here 다운로드 할 수 있습니다.

  • sbcl-1.0.38-x86-linux-binary.tar.bz2

  • sbcl-1.0.38-source.tar.bz2

  • smanek-trivial-lisp-webapp-3681c1

참고 :이 에세이를 볼 때 버전 번호가 변경되었을 수 있습니다. 따라서 정확한 패키지를 얻지 않아도됩니다. 그러나, 이것은 나를 위해 일하는 올바른 패키지입니다.

다음은 내가하는 일입니다 ( YOURPATH를 실제 경로로 바꾸면 바스를 사용한다고 가정합니다 ).

1. 바이너리 sbcl 패키지 설치

tar jxf sbcl-1.0.38-x86-linux-binary.tar.bz2

cd sbcl-1.0.38-x86-linux

INSTALL_ROOT=YOURPATH sh install.sh

cd ..

바이너리 sbcl 패키지가 설치되었습니다. 설치 프로그램이 "수동 없음"과 같은 문구로 불만을 표시 할 때, 매뉴얼 내용은 바이너리 패키지에 포함되어 있지 않기 때문에 괜찮습니다. 그대로 놔둬.

2. PATH 및 SBCL_HOME을 설정하십시오.

export PATH=YOURPATH/bin/:$PATH

export SBCL_HOME=YOURPATH/lib/sbcl/

3. 소스 sbcl 패키지를 설치하십시오.

tar jxf sbcl-1.0.38-source.tar.bz2

cd sbcl-1.0.38

sh make.sh

export SBCL_HOME=''

INSTALL_ROOT=YOUROTHTERPATH sh install.sh

cd ..

참고 : 설치를 위해 다른 디렉토리를 지정해야 할 수도 있고 바이너리 sbcl이있는 디렉토리와 동일한 디렉토리에 설치 될 수도 있습니다.

4. PATH 및 SBCL_HOME을 설정하십시오.

export PATH=YOUROTHERPATH/bin/:$PATH

export SBCL_HOME=YOUROTHERPATH/lib/sbcl/

5. smanek 패키지 설치

unzip smanek-trivial-lisp-webapp-36816c1.zip

cd smanek-trival-lisp-webapp-36816c1

cd scripts

./startserver.sh

"Webserver가 포트 8080에서 시작되었습니다"라고 말하면 웹 브라우저에서 " http : // localhost : 8080 "을 방문 할 수 있습니다. 거기에있다, 그렇지?

6. 몇 마디

  • 3 개의 패키지를 하나의 디렉토리에 넣은 후 위의 스크립트를 하나씩 또는 일괄 적으로 실행할 수 있습니다. PATH를 실제 경로로 바꾸는 것을 잊지 마십시오.
  • Shaneal Manek이 $ HOME / .sbclrc와 $ HOME / .sbcl에서 아무 것도 찾지 못했기 때문에 asdf 및 hunchentoot 패키지를 해킹했다고 의심합니다. 고마워요, Shaneal Manek, 당신은 많은 사람들을 많이 도왔습니다.
  • 나는 항상 많이 말하고 조금하는 사람들에게는 여전히 증오를 느낍니다. 사람들이 화가났다해도, 그들이 말하는 방식이 아니라 그것이 중요하다고 말하는 것은 분명합니다. 그럼에도 불구하고, 나는 나쁜 기분으로 나쁜 것을 말하기는 잘못입니다.

이 지시 사항 을 시도 했습니까?

이미 SBCL 설치 작업을 했으므로 지침의 두 번째 부분 만 따랐습니다. 아주 최소한의 웹 앱을 설정하므로 자신의 웹 앱을 구성하는 방법 만 볼 수 있습니다.

이 지침 은 당신이 찾고있는 것과는 다를 수도 있습니다 - 우분투에서 원격 서버와 상호 작용하는 웹 서버를 설정하기위한 것이지만 "원격 상호 작용"은 localhost를 의미 할 수 있습니다.







common-lisp