出处:http://yjmyzz.cnblogs.com

mac 10.9.x已经自带了apache,可按如下步骤开启:

1、启动

sudo apachectl start

启动后,访问 http://localhost/ 应该能看到"It works!"的初始页面,如果对初始页面的内容感到好奇,可以打开"/etc/apache2/httpd.conf",197行可以看到如下代码片段:

  1. <Directory "/Library/WebServer/Documents">
  2. #
  3. # Possible values for the Options directive are "None", "All",
  4. # or any combination of:
  5. # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
  6. #
  7. # Note that "MultiViews" must be named *explicitly* --- "Options All"
  8. # doesn't give it to you.
  9. #
  10. # The Options directive is both complicated and important. Please see
  11. # http://httpd.apache.org/docs/2.2/mod/core.html#options
  12. # for more information.
  13. #
  14. Options Indexes FollowSymLinks MultiViews
  15.  
  16. #
  17. # AllowOverride controls what directives may be placed in .htaccess files.
  18. # It can be "All", "None", or any combination of the keywords:
  19. # Options FileInfo AuthConfig Limit
  20. #
  21. AllowOverride None
  22.  
  23. #
  24. # Controls who can get stuff from this server.
  25. #
  26. Order allow,deny
  27. Allow from all
  28.  
  29. </Directory>

Code

It works的内容,就在/Library/WebServer/Documents/index.html.en这个文件里,这是apache的默认页,相当于windows下IIS的C:\inetpub\wwwroot\iisstart.htm

另外,如果要监听多端口,可以修改http.conf,类似下面这样:

Listen 80
Listen 81

这样就同时监听了80,81二个端口

2、重启/停止

sudo apachectl restart

sudo apachectl stop

3、创建个人站点目录

cd ~/

mkdir Sites

echo "hello" >> index.html

sudo apachectl restart

然后再访问 http://localhost/~jimmy/ 应该就能看到"hello"的个人目录初始页面(注:~jimmy需换成~你的用户名

如果失败,请检查"/etc/apache2/users"目录下,是否有名为“jimmy.conf”的配置文件(同样:jimmy需换成你的用户名),如果没有,手动创建一个,内容参考下面:

  1. <Directory "/Users/jimmy/Sites/">
  2. Options FollowSymLinks Indexes MultiViews
  3. AllowOverride All
  4. Order allow,deny
  5. Allow from all
  6. </Directory>

Code

如果好奇目录名为什么是Sites? 可以查看"/etc/apache2/extra/httpd-userdir.conf"

  1. # Settings for user home directories
  2. #
  3. # Required module: mod_userdir
  4.  
  5. #
  6. # UserDir: The name of the directory that is appended onto a user's home
  7. # directory if a ~user request is received. Note that you must also set
  8. # the default access control for these directories, as in the example below.
  9. #
  10. UserDir Sites
  11.  
  12. #
  13. # Users might not be in /Users/*/Sites, so use user-specific config files.
  14. #
  15. Include /private/etc/apache2/users/*.conf
  16. <IfModule bonjour_module>
  17. RegisterUserSite customized-users
  18. </IfModule>

Code

第10行就是答案

4、启用虚拟主机

默认情况下,apache的虚拟主机功能是关闭的,在“/etc/apache2/httpd.conf”中找到下面这行:

  1. #Include /private/etc/apache2/extra/httpd-vhosts.conf

将前面的#去掉,然后再打开“/etc/apache2/extra/httpd-vhosts.conf”,内容修改成类似下面的样子:

  1. NameVirtualHost *:
  2.  
  3. <VirtualHost *:>
  4. DocumentRoot "/Users/jimmy/Sites"
  5. ServerName www.yjmyzz.com
  6. ErrorLog "/Users/jimmy/Sites/log/error.log"
  7. CustomLog "/Users/jimmy/Sites/log/access.log" common
  8. <Directory />
  9. Options Indexes FollowSymLinks MultiViews
  10. AllowOverride None
  11. Order deny,allow
  12. Allow from all
  13. </Directory>
  14. </VirtualHost>

Code

注:

a) /Users/jimmy/Sites/log/ 日志文件目录,必须存在,否则apache启动将失败,而且不会有任何错误提示

b) 虚拟主机的站点根目录,建议放在~/Sites/下,否则mac环境中会报类似“无权限访问”的错误。

这段配置绑定了一个不存在的域名www.yjmyzz.com到站点http://localhost/~jimmy/,为了验证域名绑定的效果,手动修改下hosts文件

sudo vi /etc/hosts 以管理员身份打开hosts文件,追加一行

127.0.0.1       www.yjmyzz.com

保存退出,重启apache,再次浏览 http://www.yjmyzz.com 应该ok了,看到的内容跟http://localhost/~jimmy/ 一样

tips: 如果站点根目录,想放到其它位置,在httpd.conf中找到

  1. 1 <Directory />
  2. 2 Options FollowSymLinks
  3. 3 AllowOverride None
  4. 4 Order deny,allow
  5. 5 Deny from all
  6. 6 </Directory

把4,5行删除掉就行了

5、URL转发

先打开httpd.conf,确保下面这二行没有被注释掉:

  1. 1 LoadModule proxy_module libexec/apache2/mod_proxy.so
  2. 2 LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so

然后在httpd.conf最后加上

  1. 1 ProxyPass /HelloApp http://localhost:8080/HelloApp/
  2. 2 ProxyPassReverse /HelloApp http://localhost:8080/HelloApp/

这样访问 http://localhost/HelloApp、http://ip/HelloApp、http://www.yjmyzz.com/HellpApp  都相当于访问 http://localhost:8080/HelloApp

6、端口转发

假如服务器上有一个应用 http://x.x.x.x:8080/ ,如果想通过类似 http://www.yjmyzz.com 的域名来直接访问,就需要做端口转发,仍然打开httpd.conf

  1. 1 LoadModule proxy_connect_module modules/mod_proxy_connect.so
  2. 2 LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

在"5、URL转发"的基础上,再打开这二项

然后修改extra/httpd-vhosts.conf

  1. NameVirtualHost *:
  2.  
  3. <VirtualHost *:>
  4. ProxyPreserveHost On
  5. ServerName www.yjmyzz.com
  6.  
  7. ProxyPass / http://www.yjmyzz.com:8000/
  8. ProxyPassReverse / http://www.yjmyzz.com:8000/
  9.  
  10. ServerAdmin webmaster@localhost
  11. </VirtualHost>

Code

这样就相当于把 80端口转发到8080端口上了

[转]mac 10.9.4下配置apache的更多相关文章

  1. mac 10.9.4下配置apache

    mac 10.9.x已经自带了apache,可按如下步骤开启: 1.启动 sudo apachectl start 启动后,访问 http://localhost/ 应该能看到"It wor ...

  2. 【高可用HA】Apache (4) —— Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk

    Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk httpd版本: httpd-2.4.17 jk版本: tomcat-connectors-1.2.41 参考 ...

  3. Mac下配置Apache Httpd的Https/SSL

    Mac下配置Apache Httpd的Https/SSL httpd版本: httpd-2.4.17 jdk版本: jdk1.8.0_65 参考来源: Mac下安装Apache Httpd Mac O ...

  4. 【高可用HA】Apache (3) —— Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_proxy

    Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_proxy httpd版本: httpd-2.4.17 参考来源: Apache (1) -- Mac下安装Apac ...

  5. 一步一步教你如何在linux下配置apache+tomcat(转)

    一步一步教你如何在linux下配置apache+tomcat   一.安装前准备. 1.   所有组件都安装到/usr/local/e789目录下 2.   解压缩命令:tar —vxzf 文件名(. ...

  6. ubuntu下配置Apache

    ubuntu下配置Apache Apache的默认文档根目录是在Ubuntu上的/var/www目录 配置文件是/ etc/apache2/apache2.conf配置存储在的子目录在/etc/apa ...

  7. Mac OS X 10.10 Yosemite下配置 apache+php

    自从系统从OS X Mavericks 10.9升级到OS X Yosemite 10.10 后之前配置apache和php均不能正常使用了, 重新设置配置如下: 首先,查看当前系统的apache版本 ...

  8. mac下 配置 Apache Php Mysql

    参考 http://www.guomii.com/posts/30136 参考 http://forums.mysql.com/read.php?11,600754,600754 MacOS 10.8 ...

  9. Mac下配置apache

    一.前言 今天遇到问题,怎么配置apache在Mac上,原来Mac自带apache,只需要自己开启配置一下就行了. 二.步骤: 1.修改apache的http_conf文件 打开finder前往/pr ...

随机推荐

  1. 微软BI 之SSRS 系列 - 如何设置页标题重复

    开篇介绍 这个问题大家经常碰到,特意写一下如何解决这个小问题. 问题 默认情况下当报表超过一定的高度会自动分成多页. 第二页默认是看不到标题的. 解决方法 2012版本下在 Column Groups ...

  2. mongodb(二) 安装和使用

    mongodb的安装和使用 最近的项目需要使用到mongodb,从而开始熟悉nosql,有了本篇文章,记录和方便他人. mongodb的安装 下载地址:http://www.mongodb.org/d ...

  3. ConcurrentHashMap--锁的分段技术

    ConcurrentHashMap是Java 5中支持高并发.高吞吐量的线程安全HashMap实现. HashTable容器在竞争激烈的并发环境下表现出效率低下的原因,是因为所有访问HashTable ...

  4. ubuntu安装ftp服务器

    ubuntu安装ftp服务器 1: 安装vsftpd ~$ sudo apt-get install vsftpd ubuntu10.10自己装了,这步省略. 2: 配置vsftpd 2.1 修改vs ...

  5. paip . 解决spring No unique bean of type [com.mijie.homi.search.service.index.MoodUserIndexService]

    paip . 解决spring No unique bean of type   [com.mijie.homi.search.service.index.MoodUserIndexService] ...

  6. Essential C++中文版——满汉全席之外

    满汉全席之外 Stanley B. Lippman 所著的C++ Primer 雄踞书坛历久不衰,堪称C++最佳教科书.但是走过十个年头之后,继1237 页的C++ Primer 第3 版,Lippm ...

  7. 在C#中如何读取枚举值的描述属性

    在C#中,有时候我们需要读取枚举值的描述属性,也就是说这个枚举值代表了什么意思.比如本文中枚举值 Chinese ,我们希望知道它代表意思的说明(即“中文”). 有下面的枚举: 1 2 3 4 5 6 ...

  8. tbb flow graph node types

  9. zz 圣诞丨太阁所有的免费算法视频资料整理

    首发于 太阁实验室 关注专栏   写文章     圣诞丨太阁所有的免费算法视频资料整理 Ray Cao· 12 小时前 感谢大家一年以来对太阁实验室的支持,我们特地整理了在过去一年中我们所有的原创算法 ...

  10. Linux下tomcat部署

    进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 如果你想直接干掉Tomcat,你可以使用kill命令,直接杀死Tomcat进程 kill -9 7010 然后继续查看 ...