Mac OS X 开启Http Ftp服务

Posted _夜风_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac OS X 开启Http Ftp服务相关的知识,希望对你有一定的参考价值。

今天想把我们游戏的app包和更新patch放到服务器上,方便大家下载/更新。手头没有linux服务器,工作用的我有一台Windows PC,一台mac mini。windows机器是工作主机器,不能作为文件服务器,而且mac省电/静音,就折腾了一下Mac开启Http和Ftp服务。Mac系统自带了Apache和Ftp服务,只需要开启、配置一下就可以了。

开启Apache

#sudo apachectl start

终端输入上述命令,apache就开启了。在本机浏览器中输入http://localhost,可以看到页面显示内容”It works!”。该页面位于apache的默认根目录/Library/WebServer/Documents/。

配置Apache

  1. 打开Apche的配置文件,/etc/apache2/httpd.conf
  2. 在httpd.conf中找到#Include /private/etc/apache2/extra/httpd-vhosts.conf,去掉前面的#,保存。
  3. 打开Apache虚拟主机配置文件,/etc/apache2/extra/httpd-vhosts.conf。
  4. 注释掉文件中配置的2个虚拟主机例子
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/usr/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>

添加自己的配置

<VirtualHost *:80>
    DocumentRoot "/Users/YourUserName/Desktop/update"
    ServerName localhost
    ErrorLog "/private/var/log/apache2/error_log"
    CustomLog "/private/var/log/apache2/access_log" common
    <Directory />
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

在alias模块里加
Alias update /Users/YourUserName/Desktop/update
保存后重启Apache,#sudo apachectl restart
5. 在浏览器里访问http://localhost/update,error_log提示”Permission Denied”
官方文档http://wiki.apache.org/httpd/13PermissionDenied,里讲到Apache对访问到的各层级目录都要求644权限,我之前只设置了update目录的,要逐层向上把路径中所有层级目录都chmod 644 dir
6. error_log又提示”Client denied by server configuration”
官方文档https://wiki.apache.org/httpd/ClientDeniedByServerConfiguration,真是好啊,讲的明明白白。针对Apache 2.2访问权限配置是

<Directory /var/www/example.com>
  Order deny,allow
  Deny from all
</Directory>

针对2.4配置是

<Directory /var/www/example.com>
  Require all denied
</Directory>
#sudo apachectl -v

查看我的Mac自带的Apache版本是2.4.16,修改一下配置

<VirtualHost *:80>
    DocumentRoot "/Users/macmini3/Desktop/update"
    ServerName localhost
    ErrorLog "/private/var/log/apache2/sites-error_log"
    CustomLog "/private/var/log/apache2/sites-access_log" common
    <Directory />
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
#        Order deny,allow
#        Allow from all
    </Directory>
</VirtualHost>

7.再访问http://localhost/update,如愿正常显示页面了。

Ftp服务

开启和关闭的命令分别是以下两条,很简单

sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
sudo -s launchctl unload -w /System/Library/LaunchDaemons/ftp.plist

想开机自启动ftp服务就编辑ftp.plist

 <dict>
        <key>Disabled</key>  --> 改为Enabled
        <true/>

访问的用户名和密码是登录mac系统的用户名和密码。

以上是关于Mac OS X 开启Http Ftp服务的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X NTP 服务开启与关闭

Mac OS X上搭建ApachePHPMySQL的Web服务器

Xcode 无法添加 Mac OS X 服务器

Mac OS开启了vnc,要怎样连接

How to Install wget in OS X如何在Mac OS X下安装wget并解决configure: error:

Mac OS X取消Apache(httpd)开机启动(转载)