CentOS Mono Nginx MVC4 + WebApi 배치

19021 단어 centos
CentOS Mono Nginx MVC4 + WebApi 배치
며칠 간 의 고통 끝 에 CentOS 에 MVC4 + WebApi 를 성공 적 으로 배치 했다.모 노 의 서버 는 두 가 지 를 추천 합 니 다.본 고 는 Nginx 가 MVC4 + WebApi 를 어떻게 배치 하 는 지 를 소개 한다.
환경:
CentOS 6.4 (32, 64 위)
Mono-3.2.1
Nginx 1.5.4
ASP.NET MVC 4
WebApi 1.0
 
1. 우선 필요 한 패 키 지 를 설치 합 니 다.
1、  먼저 CentOS 의 패 키 지 를 업데이트 합 니 다: yum – y update.
2、  필요 한 라 이브 러 리 설치:
yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel  cairo-devel

yum –y install build-essential automake autoconf libtool bison libglib2.0-dev libfreetype6-dev libfontconfig-dev gettext libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg-dev

이상 의 가방 은 매우 많 지만 안전 을 위해 서 는 모두 설치 하 세 요. 가방 이 부족 할 수도 있 으 니 yum 으로 직접 설치 하 세 요.
2. 다운로드 에 필요 한 패키지
나 는 모든 패 키 지 를 / usr / local / src 에 다운로드 하 였 으 니, 너 도 다른 위 치 를 선택 할 수 있다.
    먼저 명령 행 에서 실행: cd / usr / local / src, 그리고 다음 패 키 지 를 다운로드 하기 시작 합 니 다.
1、  모 노: 모 노 3.0 이후 소스 코드 를 컴 파일 하려 면 원래 오래된 모 노 환경 이 있어 야 하기 때문에 두 가지 버 전의 모 노: 모 노 - 2.11.4 와 모 노 - 3.2.1 을 다운로드 해 야 합 니 다.
Mono-2.11.4:

wget http://origin-download.mono-project.com/sources/mono/mono-2.11.4.tar.bz2

Mono-3.2.1:

wget http://origin-download.mono-project.com/sources/mono/mono-3.2.1.tar.bz2

2、  Libgdiplus:
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2

3、  xsp: xsp 는 모 노 가 제공 하 는 테스트 버 전의 서버 이지 만 Nginx 가 asp. net 을 실행 하 는 fastcgi 도 제공 합 니 다.
홈 페이지 의 xsp 는 2. x 입 니 다. 이 버 전의 fastcgi - mono - server 4 는 사용 할 수 없습니다.그래서 github 에서 최신 3.0 버 전 을 다운로드 해 야 합 니 다.(git 전에 yum – y intall git 를 사용 하여 git 패 키 지 를 설치 해 야 합 니 다.)
Yum –y install git。

Git clone https://github.com/mono/xsp.git

4、  pcre:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.bz2

5、  Nginx:
wget http://nginx.org/download/nginx-1.5.4.tar.gz

Nginx 에 대해 서 는 최신 버 전 을 다운로드 합 니 다. 직접 설치 해 야 합 니 다. yum 원본 을 설정 하 는 방식 으로 설치 할 수도 있 습 니 다. 이 설치 의 장점 은 yum 명령 을 실행 하면 자동 으로 설치 되 고 마지막 으로 nginx 의 도움말 명령 파일 을 생 성하 여 nginx 의 시작, 재 부팅, 닫 기 등 을 도와 줄 수 있 습 니 다.본 고 는 먼저 자신 이 컴 파일 하여 설치 한 상황 을 소개 한다. (개인 적 으로 이런 방식 을 좋아한다. 왜냐하면 새 버 전의 Nginx 는 이미 보조 명령 을 추 가 했 기 때문에 나중에 소개 한다.)
3. 패키지 설치
1、  모 노 설치:
(1)    먼저 모 노 2.11.4 설치: 다음 명령 을 수행 합 니 다.
      :Cd /usr/local/src

  :tar –jxvf mono.2.11.4.tar.bz2

        :Cd mono-2.11.4

Configure:  mono   usr   ,        :

./configure --prefix=/usr

    :make && make install(        ,      。)

(2)    Mono 2.11.4 설치 완료 후 Mono 3.2.1 설치 시작: 다음 명령 을 수행 합 니 다.
cd /usr/local/src

tar –jvxf mono-3.2.1.tar.bz2

cd mono-3.2.1

./autogen.sh –prefix=/usr

make (        )

(3)    mono - 3.2.1 컴 파일 이 완 료 된 후에 먼저 Mono - 2.11.4 를 마 운 트 해제 해 야 합 니 다.
cd /usr/local/src/mono-2.11.4

make uninstall

(4)    mono - 2.11.4 를 마 운 트 해제 한 후 mono - 3.2.1 을 설치 하기 시작 합 니 다.
cd /usr/local/src/mono-3.2.1

make install

(5) 설치 가 완료 되면 ldconfig 명령 을 실행 하여 새로 설 치 된 동적 라 이브 러 리 를 찾 을 수 있 도록 합 니 다.
 ldconfig 

2、  libgdiplus 설치:
cd /usr/local/src

tar –jxvf libgdiplus-2.10.9.tar.bz2

cd libgdiplus-2.10.9

./configure –prefix=/usr

Make && make install

ldconfig

3、  xsp 설치:
cd /usr/local/src/xsp

./autogen.sh –prefix=/usr

make && make install

4、  설치 pcre:
cd /usr/local/src

tar –jxvf pcre-8.33.tar.bz2

cd pcre-8.33

./configure –prefix=/usr

make && make install

5、  설치 nginx:
nginx 의 설 치 는 yum 소스 를 사용 할 수 있 고 자신 이 컴 파일 하 는 방식 도 사용 할 수 있 습 니 다. 다음은 자신 이 컴 파일 하 는 방식 입 니 다.
cd /usr/local/src

tar zxvf nginx-1.5.4.tar.gz

cd nginx-1.5.4

./configure –prefix=/usr/nginx(nginx   nginx    )

make && make install

(주: 두 번 째 nginx 를 설치 하 는 방법: http://www.cnblogs.com/highend/archive/2013/03/06/centos6_3_install_nginx_1_2_7.html
4. nginx 설정:
1、  80 포트 열기:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT

service iptables save (             ,          80  )

  nginx

/usr/nginx/sbin/nginx

시작 하면 주소 로 nginx 에 접근 할 수 있 습 니 다. 직접 방문 해 보 세 요.
2、  nginx 설정:
vi /usr/nginx/conf/nginx.conf

서버 수정 은 다음 과 같 습 니 다.
server {

         listen   80;

         server_name  localhost;

         location / {

                 root /usr/nginx/html;

                 index index.html index.htm;

                 fastcgi_index Default.aspx;

                 fastcgi_pass 127.0.0.1:9000;

                 include /usr/nginx/conf/fastcgi_params;

         }

 }

fastcgi 열기params, 맨 뒤에 다음 두 마디 추가:
vi /usr/nginx/conf/fastcgi_params

fastcgi_param  PATH_INFO          "";

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

 
5. MVC + WebApi 프로그램 작성:
1、  vs 를 사용 하여 mvc 4 프로젝트 를 만 들 고 '기본' 또는 '빈' 을 선택 하 십시오.
2、  프로젝트 가 만들어 진 후 System. Web. Providers. dll 에 대한 인용 을 삭제 합 니 다. 이것 은 지원 되 지 않 는 것 같 습 니 다. 추가 하면 프로그램 을 실행 할 수 없습니다.
3、  아래 dll 은 로 컬 에서 복사 하여 프로젝트 아래 에 놓 고 libs 를 만들어 여기에 놓 으 세 요.
이 dll 들 은 이미 복사 되 었 습 니 다. 나중에 첨부 파일 다운로드 에 넣 으 세 요. 자신 이 하나씩 복사 하고 싶 지 않 으 면 첨부 파일 에 있 는 것 을 사용 하 세 요.
Mvc4   dll:

Microsoft.Web.Infrastructure.dll

System.Web.Helpers.dll

System.Web.Mvc.dll

System.Web.Razor.dll

System.Web.WebPages.Deployment.dll

System.Web.WebPages.dll

System.Web.WebPages.Razor.dll

WebApi  dll:

System.Net.Http.dll(  :  dll   4.0  ,  2.0 。)

System.Net.Http.Formatting.dll

System.Net.Http.WebRequest.dll

Webgrease   dll:

System.Web.Optimization.dll

 
4、  원래 항목 에서 상기 dll 에 대한 인용 을 삭제 하고 인용 을 다시 추가 합 니 다. 주 소 는 프로젝트 의 libs (복사 한 dll 폴 더 저장) 입 니 다. 주의:
Mvc 4 에 대응 하 는 dll "로 컬 복사" 는 모두 "True" 를 선택 합 니 다.
WebApi 에 대응 하 는 dll 에서 System. Net. Http. Formatting. dll 에서 로 컬 복 사 를 선택 하면 됩 니 다.
Webgrease 에 대응 하 는 dll: System. Web. Optimization. dll 에서 로 컬 복 사 를 선택 하 십시오.
5、  Web. config 설정
System. Net. Http. dll 의 4.0 버 전 을 사 용 했 기 때문에 Webgrease 도 버 전 문제 로 저 장 될 수 있 으 므 로 설정 파일 에 업그레이드 설정 을 설정 해 야 합 니 다. 구체 적 으로 다음 과 같 습 니 다.
<runtime>

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

      <dependentAssembly>

        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>

        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />

      </dependentAssembly>

      <dependentAssembly>

        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />

        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />

      </dependentAssembly>

      <dependentAssembly>

        <assemblyIdentity name="System.Web.WebPages"publicKeyToken="31bf3856ad364e35" />

        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />

      </dependentAssembly>

 
      <dependentAssembly>

        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />

        <bindingRedirect oldVersion="1.0.0.0-1.3.0.0" newVersion="1.3.0.0" />

      </dependentAssembly>

 
      <dependentAssembly>

        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" />

        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />

      </dependentAssembly>


    </assemblyBinding>

  </runtime>

runtime 이 설정 절 이 있 으 면 이 설정 에 따라 없 으 면 스스로 추가 합 니 다.그 중에서 도 WebGrease 와 System. Net. Http 만 필요 하 며, 다른 것 은 있어 도 되 고 없어 도 된다.
6、  Controller, View, WebApi 추가
Controllers 폴 더 에 HomeController 컨트롤 러 를 추가 하고 Index 보 기 를 추가 합 니 다.
그리고 First Apicontroller 의 WebApi 를 추가 합 니 다.
7. 파일 방식 에 따라 프로그램 을 발표 합 니 다.
 
배치
ftp 나 winscp 등 도 구 를 사용 하여 발 표 된 프로그램 을 centos 의 / usr / nginx / html 에 업로드 합 니 다.
그리고 중요 한 단계: 발표 가 완료 되면 웹. config 를 삭제 하 는 것 을 수정 해 야 합 니 다.


이 두 줄 은 mono 가 < httpRuntime targetFramework = "4.5" / > 이 중의 targetFramework 를 지원 하지 않 기 때문에 안전 을 위해 < compilation targetFramework = "4.5" / > 도 삭 제 했 습 니 다.
시동
1. nginx 재 부팅
/usr/nginx/sbin/nginx –s reload

2 、 fastcgi 시작모 노 서버
fastcgi-mono-server4 /applications=/:/usr/nginx/html /socket=tcp:127.0.0.1:9000

 
8. 방문 을 시작 합 시다
너 는 네가 여기에 오 면 너의 프로그램 에 정확하게 접근 할 수 있 을 것 이 라 고 생각 하 니, 네가 이렇게 생각한다 면 너 는 틀 렸 다.windows 에서 우 리 는 xxx, xxx / home 또는 xxx / home / index 를 입력 하면 정확하게 방문 할 수 있 습 니 다. mono 에서 도 이렇게 하면 틀 렸 습 니 다. url 주소 의 대소 문 자 를 주의해 야 합 니 다. 만약 당신 의 Controller 가 HomeController 이 고 첫 페이지 가 Index 라면 성실 하 게 xxx / Home 또는 xxx / Home / Index 를 이렇게 방문 해 야 합 니 다.안 그러면 늙어 죽어도 보 기 를 못 찾 겠 다 는 걸 알려 줄 거 야.nginx 나 mono 아래 에서 설정 할 수 있 을 것 입 니 다. 잠시 설정 할 곳 을 찾 지 못 했 습 니 다. 아 는 형제 가 있 으 면 알려 주 십시오.
한 마디 로 모 노 에 서 는 대소 문자 에 주의해 야 한다.
 
 
 
부록: nginx 대신 jexus 사용 하기
Jexus 는 좋 은 물건 입 니 다. nginx 보다 설정 이 간단 하고 최신 mono 를 잘 지원 합 니 다.
1、  다운로드 Jexus
cd /usr/local/src

wget http://www.linuxdot.net/down/jexus-5.4.3.tar.gz

2、  Jexus 설치
tar -zvxf jexus-5.4.tar.gz

cd jexus-5.4

sudo ./install

3、    Jexus

cd /usr/jexus

sudo ./jws start

4、  배치 하 다.
게시 파일 을 jexus 에 대응 하 는 웹 디 렉 터 리 에 올 리 면 됩 니 다. 배치 방식 은 위의 nginx 와 같 습 니 다. 주의 점도 마찬가지 입 니 다.
배치 가 완료 되면 jexus 를 다시 시작 하면 됩 니 다 (sudo. / jws restart).
그리고 당신 은 마음껏 방문 할 수 있 습 니 다.
 
좀 급 하 게 쓰 여 있 고 불합리한 부분 을 지적 해 주 십시오. 감사합니다!
 
참고:
1. CentOS 6.3 에 Mono 3.2 와 Jexus 5.4 를 설치한다.
http://www.cnblogs.com/shanyou/p/3218611.html
2. Ubuntu 13.04 에 Jexus + Mono 3.2 를 설정 하여 Asp. Net Mvc 4 사이트 실행 (1)
http://www.cnblogs.com/windvoice/p/3221974.html
3. Linux 에 Asp. net MVC 3 환경 구축 (CentOS + Nginx + Mono)
http://www.cnblogs.com/bboy/archive/2012/10/08/2714626.html
4. CentOS 에 Nginx + Mono 를 구축 하여 asp. net 을 실행 합 니 다.
http://www.cnblogs.com/wander1129/archive/2011/12/16/mono.html
5, CentOS 6.3 - 설치 Nginx 1.2.7 (yum 소스)
http://www.cnblogs.com/highend/archive/2013/03/06/centos6_3_install_nginx_1_2_7.html
6、FastCGI Nginx
http://www.mono-project.com/FastCGI_Nginx
 
첨부 파일:
필요 한 dll 첨부 파일
배치 가능 한 프로젝트 원본 코드

좋은 웹페이지 즐겨찾기