2012-04-05 2 views
4

фона:Как установить модуль mod_ftp на сервере MAMP

Я недавно установил MAMP, и я использую его в качестве сервера. У установки сервера не был FTP-сервер, и из того, что я прочитал, вы можете настроить FTP-сервер через mod_ftp, модуль Apache. Я не специалист по программному обеспечению Apache или администратору сервера, хотя я могу учиться быстро. Я могу перейти к следующему пункту, а затем я застрял. Может кто-нибудь, пожалуйста, помогите мне?

Я проверил файлы модуль mod_ftp из хранилища, здесь: http://svn.apache.org/repos/asf/httpd/mod_ftp/trunk/ и я распаковал содержимое в:

/Applications/MAMP/mod_ftp 

Я открыл файл README-FTP (здесь):
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. "построить и установить DSO вне источника HTTPD сборки, из исходного корневого каталога FTP" - это каталог FTP источник Корневая mod_ftp которую я создал из zip-файлов, которые я проверил из репозитория?

  2. Что означает «вне сборки источника httpd»? - это значение ServerRoot, которое я установил в httpd.conf как «/ Applications/MAMP/Library»?

  3. Точно так же, что означает «внутри одной и той же сборки httpd», - какое местоположение это означает?

  4. Как узнать, хочу ли я статическую или DSO-сборку?

  5. Что такое инструкция: «Скопируйте все дерево исходных каталогов ftp поверх существующего дерева« httpd »« на самом деле просят меня сделать? (вверху? Как в исходном каталоге исходного дерева 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 необходимо интегрировать для правильного функционирования модуля. Кроме того, я не знаю, чего не знаю, так что, наверное, есть один простой вопрос, но, к сожалению, я не могу понять, как его спросить. Спасибо за вашу помощь и терпение!

Cheers!

P.S., да, я часами просматривал интернет.

+0

Вы когда-нибудь это выясняли? Если это так, вы должны обязательно добавить свое решение в качестве ответа ... –

+1

К сожалению, нет. Я закончил тем, что отказался от MAMP и использовал встроенный сервер Mac. В меню «Настройки системы»> «Совместное использование» вы можете включить общий доступ к файлам, в котором есть панель «Параметры», которая позволяет «Обмениваться файлами и папками с помощью FTP». Я смог получить статический IP-адрес через Comcast Business и сконфигурировал переадресацию портов на порт 21 в моем маршрутизаторе для приема трафика. Затем я мог использовать свой FTP-клиент для подключения к моему маршрутизатору с чем-то вроде «123.456.789: 21» в качестве моего хоста. Это было не лучшее или самое безопасное решение, но оно сработало, поэтому возьмите его с солью. –

+0

Полезно знать. Я смотрел на messing с 'mod_wsgi', и хотя это, очевидно, не точно, то же самое, это одна и та же основная проблема. MAMP Pro позволяет переключаться между встроенными и упакованными серверами Apache, поэтому я думаю, что, возможно, я просто закончу использование встроенного сервера и/или используя homebrew для установки последнего Apache для тестирования. Спасибо за ответ. –

ответ

1

Я закончил тем, что отказался от MAMP и использовал встроенный сервер Mac. В меню «Настройки системы»> «Совместное использование» вы можете включить общий доступ к файлам, в котором есть панель «Параметры», которая позволяет «Обмениваться файлами и папками с помощью FTP». Я смог получить статический IP-адрес через Comcast Business и сконфигурировал переадресацию портов на порт 21 в моем маршрутизаторе для приема трафика. Затем я мог использовать свой FTP-клиент для подключения к моему маршрутизатору с чем-то вроде «123.456.789: 21» в качестве моего хоста. Это было не лучшее или самое безопасное решение, но оно сработало, поэтому возьмите его с солью.

1

Право, мне, наконец, удалось установить это на Ubuntu LTS 16.04.

Прежде всего, вы должны установить SVN и APXS функциональность, запустив
SUDO APT-получить установку подрывной apache2-DEV.

Затем, cd в удобную папку, и запустите svn co http://svn.apache.org/repos/asf/httpd/mod_ftp/trunk/. Это загружает все в папку с именем/trunk. Затем, cd в папку/trunk загруженного репо.

Затем выполните указанные инструкции
./configure.apxs -> делает что-то в папке, чтобы включить Makefile работать
макияж -> это компилирует содержимое репо и изменяет вещи.
make install -> вы можете запустить с предлагаемым флагом. По сути копирует вещи туда, где их нужно скопировать, и создает необходимые модули.

Предлагаемые ./buildconf и ./configure должны выполняться только в том случае, если вы одновременно скомпилируете apache2 с ftp. Поскольку вы уже должны установить apache2, это не тот вариант, который вы должны выполнять. Просто придерживайтесь первого набора инструкций, которые используются для компиляции mod_ftp независимо от apache2 и исправления по мере необходимости.

На данный момент установка должна технически работать. Тем не менее, вы еще не полностью вышли из леса. Если вы перезапустите apache2 в этот момент, он не должен запускаться. Если вы запустите systemctl -xe, вы увидите, что это связано с синтаксическими ошибками в разных местах конфигурационных файлов, где кто-то забыл добавить косую черту, поэтому вместо того, чтобы указываться по отношению к корню, указанные каталоги оказываются относительными в/etc/apache2. Исправьте их, используя номера строк в качестве руководства. Пропуски могут быть найдены в файле apache2.conf, где указаны расположение модуля mod_ftp и в файле ftpd.conf, определяющем расположение журнала ошибок.

Теперь вам нужно запутаться с apache2.conf и ftpd.conf (находится в/дополнительной подпапке папки/etc/apache2).Убедитесь, что линии
включают /etc/apache2/extra/ftpd.conf
LoadModule ftp_module /usr/lib/apache2/modules/mod_ftp.so присутствуют и раскоментированы.
Первый в основном сообщает основному файлу apache2.conf, чтобы он включал файлы конфигурации для mod_ftp, чтобы помочь с разделением настроек конфигурации http и ftp. Второй просто гарантирует, что модуль ftp загружен так, чтобы он мог интерпретировать директивы в файле ftpd.conf. Таким образом, вам не нужно добавлять строку «FTP on» или указать порты, поскольку они отлично обрабатываются в ftpd.conf.

Теперь вам должно быть хорошо. Просто обратите внимание, что по какой-то странной причине, если вы установили корень документа в ftpd.conf таким же, как в apache2.conf, apache2 все равно будет работать нормально. Ftp-сервер будет работать нормально, но http-сервер не будет работать. Не знаю, почему, но если вы хотите сделать это, просто обходное решение - просто сделать символическую ссылку на корневой каталог http и установить это как корневой файл ftp.

Смежные вопросы