背景:
我最近安装了MAMP,并将其用作生产服务器。该服务器设置没有附带FTP服务器,根据我所读的内容,您可以通过Apache模块mod_ftp设置FTP服务器。虽然我可以快速学习,但我不是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.
一些问题:
"从 ftp 源根目录构建和安装一个 httpd 外的 DSO"——ftp 源根目录是我从存储库中签出的压缩文件创建的 mod_ftp 文件夹吗?
什么是 "在 httpd 源构建之外" 的意思?——这是我在 httpd.conf 中设置为 "/Applications/MAMP/Library" 的 ServerRoot 值吗?
同样,"在同一个 httpd 构建内" 的意思是什么——这指的是哪个位置?
我如何知道我需要静态构建还是 DSO 构建?
声明 "将整个 ftp 源目录树复制到现有的 httpd 源树顶部" 实际上要求我做什么?(顶部的意思是在 httpd 源树的父目录中,还是在相同的目录中?)
如果你已经走到了这里,我想表扬你!
从这一点开始,我选择了第一种选项,并在我的终端中输入了 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.so文件,特别是我在寻找这个文件:
/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源文件夹之间的文件结构需要如何集成才能使模块正常运行。此外,我不知道自己不知道什么,所以可能有一个简单的问题需要问,但不幸的是我无法弄清楚如何提问。谢谢你的帮助和耐心!
干杯!
附言,是的,我已经在互联网上搜索了几个小时。
mod_wsgi
,虽然这显然不是完全相同的问题,但它是同样基本的问题。MAMP Pro允许您在内置和捆绑的Apache服务器之间切换,因此我认为我可能只会使用内置服务器和/或使用homebrew安装最新的Apache进行测试。感谢您的反馈。 - Chris Krycho