2012-04-05 1 views
4

배경 :MAMP 서버에 mod_ftp 모듈을 설치하는 방법

나는 최근 MAMP 설치 및 프로덕션 서버로 사용하고 있습니다. 서버 설정에는 FTP 서버가 없으며, 내가 읽은 것부터 아파치 모듈 인 mod_ftp를 통해 FTP 서버를 설정할 수있다. 나는 빨리 배울 수 있지만 나는 아파치 소프트웨어 나 서버 관리자의 전문가는 아니다. 나는 다음과 같은 점에 도달 할 수있다, 그리고, 나는 붙이게된다. 누군가 나를 도울 수 있습니까?
: 내가 (여기)를 README - FTP 파일을 열

/Applications/MAMP/mod_ftp 

:

은 여기, 저장소에서 mod_ftp 모듈 파일을 체크 아웃 : http://svn.apache.org/repos/asf/httpd/mod_ftp/trunk/ 난에 내용을 압축 해제 http://svn.apache.org/repos/asf/httpd/mod_ftp/trunk/README-FTP

README - FTP :

To build and install as a DSO outside of the httpd source 
build, from the ftp source root directory, simply; 

    ./configure.apxs 
    make 
    make install 

... 

To build static, or as a DSO but within the same build as httpd, 
copy the entire ftp source directory tree on top of your existing 
httpd source tree, and from the httpd source root directory 

    ./buildconf (to pick up ftp) 
    ./configure --enable-ftp {your usual options} 

and proceed as usual. 

몇 가지 질문 :

  1. 는 "구축하고 FTP 소스의 루트 디렉토리에서 아파치 소스 빌드 외부의 DSO 설치는"-는 FTP 소스 루트 디렉토리 mod_ftp입니다 폴더에서 내가 체크 아웃 한 압축 파일에서 생성 한 폴더?

  2. "httpd 소스 빌드 외부"는 무엇을 의미합니까? -이 값은 httpd.conf에서 "/ Applications/MAMP/Library"로 설정 한 ServerRoot 값입니까?

  3. 마찬가지로 "동일한 httpd 빌드 내에서"는 무엇을 의미합니까?이 위치는 무엇을 의미합니까?

  4. 정적 또는 DSO 빌드가 필요한지 어떻게 알 수 있습니까?

  5. "실제로 httpd 원본 트리의 맨 위에 전체 ftp 원본 디렉터리 트리를 복사 하시겠습니까?"라는 문구가 실제로 나에게 묻습니다. (httpd 소스 트리의 상위 디렉토리 또는 동일한 디렉토리의 상단에 있습니까?)

  6. 여러분이 작성한 적이 있다면 칭찬 해주세요!

이 시점부터 첫 번째 옵션을 선택하고 README-FTP에 표시된 명령을 내 터미널에 입력했습니다.

여기 내 터미널의 모습입니다 : 내가 여기에서해야합니까 무엇 그래서

$ ./configure.apxs 
Configuring mod_ftp for APXS in /usr/sbin/apxs 
Detecting features 

Finished, run 'make' to compile mod_ftp 

Run 'make FTPPORT=8021 install' to install mod_ftp 
(The default FTPPORT is 21 if not specified) 

The manual pages ftp/index.html and mod/mod_ftp.html 
will be installed to help get you started. 

The conf/extra/ftpd.conf will be installed as an example 
for you to work from. In your configuration file, 
    /private/etc/apache2/httpd.conf 
uncomment the line '#Include conf/extra/ftpd.conf' 
to activate this example mod_ftp configuration. 
$ make 
Making all in modules/ftp 
$ sudo make install 
Password: 
Making install in modules/ftp 
/usr/share/apr-1/build-1/libtool --silent --mode=install cp mod_ftp.la /usr/libexec/apache2/ 
Installing configuration files 
for i in /private/etc/apache2/httpd.conf /private/etc/apache2/original/httpd.conf; do \ 
     if test -f $i; then \ 
     (awk -f /applications/mamp/library/mod_ftp/build/addloadexample.awk \ 
      -v MODULE=ftp -v DSO=.so -v LIBPATH=libexec/apache2 \ 
      -v EXAMPLECONF=/private/etc/apache2/extra/ftpd.conf \ 
      < $i > $i.new && \ 
      mv $i $i.bak && mv $i.new $i \ 
      ) || true; \ 
     fi; \ 
     done 
Preserving existing FTP documents 
Installing header files 
Installing online manual 
$ 

? mod_ftp가 표시되지 않습니다.

/Applications/MAMP/Library/modules (where all of Apache's other mod_*.so files are...) 

이 디렉토리 : 그래서 어디, 나는 특히이 디렉토리에 찾고 궁극적으로

/Applications/MAMP/mod_ftp/modules/ftp (where all of mod_ftp's various .c, .h and other files are) 

, 난으로 실행하고 문제가 내가 어떻게 파일을 이해하지 못하는 것을 생각 내 mod_ftp 소스 폴더와 httpd 소스 폴더 사이의 구조가 제대로 작동하려면 모듈을 통합해야합니다. 또한, 내가 모르는 것을 모르기 때문에 질문 할 수있는 간단한 질문이 있지만 유감스럽게도 묻는 방법을 알 수는 없습니다. 도움과 인내심에 감사드립니다.

건배!

추신 : 예, 몇 시간 동안 인터넷을 샅샅이 뒤졌습니다.

+0

당신은 이것을 알아 냈습니까? 그렇다면 솔루션을 답으로 추가해야합니다 ... –

+1

불행히도, 아니요. 나는 MAMP를 폐기하고 Mac에 내장 된 서버를 사용했다. 시스템 환경 설정> 공유 메뉴를 통해 "FTP를 사용하여 파일 및 폴더 공유"를 수행 할 수있는 옵션 창이있는 파일 공유를 활성화 할 수 있습니다. 컴캐스트 비즈니스를 통해 고정 IP 주소를 얻을 수 있었고 트래픽을 수용하기 위해 라우터의 포트 21에 포트 포워딩을 구성했습니다. 그런 다음 내 FTP 클라이언트를 사용하여 라우터에 "123.456.789 : 21"과 같은 호스트를 연결할 수 있습니다. 최고 또는 가장 안전한 솔루션이 아니었지만 효과가 있었으므로 소금 한 알을 가지고 섭취하십시오. –

+0

잘 알고 있습니다. 나는 mod_wsgi를 망쳐보고 있었고, 분명히 똑같은 것은 아니지만, 똑같은 기본 이슈 다. MAMP Pro를 사용하면 내장 된 Apache 서버와 번들로 제공되는 Apache 서버를 전환 할 수 있으므로 내장 서버를 사용하거나 homebrew를 사용하여 테스트 용 최신 Apache를 설치하게 될 것입니다. 의견을 보내 주셔서 감사합니다. –

답변

1

나는 MAMP를 폐기하고 Mac에 내장 된 서버를 사용했다. 시스템 환경 설정> 공유 메뉴를 통해 "FTP를 사용하여 파일 및 폴더 공유"를 수행 할 수있는 옵션 창이있는 파일 공유를 활성화 할 수 있습니다. 컴캐스트 비즈니스를 통해 고정 IP 주소를 얻을 수 있었고 트래픽을 수용하기 위해 라우터의 포트 21에 포트 포워딩을 구성했습니다. 그런 다음 내 FTP 클라이언트를 사용하여 라우터에 "123.456.789 : 21"과 같은 호스트를 연결할 수 있습니다. 최고 또는 가장 안전한 솔루션이 아니었지만 효과가 있었으므로 소금 한 알을 가지고 섭취하십시오.

1

맞았습니다. 마침내 우분투 LTS 16.04에 설치했습니다. 우선

, 당신은
는 sudo apt-get을 설치 전복 아파치-DEV를 실행하여 SVN과 apxs 옵션 기능을 설치해야합니다.

그런 다음 편리한 폴더로 이동하고 svn co http://svn.apache.org/repos/asf/httpd/mod_ftp/trunk/을 실행하십시오. 이 명령은/trunk라는 폴더에있는 모든 것을 다운로드합니다. 그런 다음 다운로드 한 repo의/trunk 폴더로 cd합니다.

그런 다음, 명시된 지침
./configure.apxs를 실행 ->은
메이크업을 작동하는 메이크 파일을 사용하려면 하위 폴더에 무언가를 ->이는 환매 특약의 내용을 컴파일하고 주위에 물건을 변경합니다.
make install -> 제안 된 플래그로 실행하고 싶을 수도 있습니다. 본질적으로 사물을 복사해야하는 곳으로 복사하고 필요한 모듈을 만듭니다.

제안 된 ./buildconf 및 ./configure는 apache2를 ftp로 동시에 컴파일하는 경우에만 수행해야합니다. 이미 apache2가 설치되어 있어야하므로이 옵션을 선택하지 않아야합니다. apache2와 독립적으로 mod_ftp를 컴파일하고 필요에 따라 패치하는 데 사용되는 첫 번째 지침 집합을 고수하십시오.

이 시점에서 설치가 기술적으로 작동해야합니다. 그러나 아직 완전히 숲에서 나가지 못했습니다. 이 시점에서 apache2를 다시 시작하면 시작되지 않습니다. systemctl -xe를 실행하면 config 파일의 여러 위치에서 구문 오류가 발생한다는 것을 알 수 있습니다. 누군가가 슬래시를 앞에 두는 것을 잊어 버렸기 때문에 루트에 상대적으로 지정하지 않고 지정된 디렉토리가 상대적으로 끝납니다 대신/etc/apache2. 줄 번호를 가이드로 사용하여 문제를 해결하십시오. 누락은 mod_ftp 모듈의 위치를 ​​지정하는 apache2.conf 파일과 오류 로그의 위치를 ​​지정하는 ftpd.conf 파일에서 찾을 수 있습니다.

이제 apache2.conf 및 ftpd.conf (/ etc/apache2 폴더의/extra 하위 폴더에 있음)를 사용해야합니다.행
에 /etc/apache2/extra/ftpd.conf가 포함되어 있는지 확인하십시오.
LoadModule ftp_module /usr/lib/apache2/modules/mod_ftp.so가 있으며 주석 처리되지 않았습니다.
첫 번째 것은 기본적으로 apache2.conf 파일에 http 및 ftp 구성 설정을 분할하는 데 도움이되는 mod_ftp 구성 파일을 포함합니다. 두 번째는 ftpd 모듈이 ftpd.conf 파일의 지시문을 해석 할 수 있도록로드되었는지 확인합니다. 따라서 ftpd.conf에서 완벽하게 잘 처리되므로 "FTP on"라인을 추가하거나 포트를 지정할 필요가 없습니다.

이제 가야합니다. ftpd.conf의 문서 루트를 apache2.conf의 문서 루트와 동일하게 설정하면 일부 이상한 이유로 인해 apache2가 계속 정상적으로 실행됩니다. ftp 서버는 정상적으로 작동하지만 http 서버는 작동하지 않습니다. 이유는 모르겠지만 간단한 해결 방법은 http 문서 루트에 대한 심볼릭 링크를 만들고 ftp 문서 루트로 설정하는 것입니다.