mac 下利用apache服务器配置项目站点

这里介绍两种方法:

1.Mac OS X 中默认有两个目录可以直接运行你的 Web 程序,一个是系统级的 Web 根目录,一个是用户级的根目录,系统级的根目录是:
/Library/WebServer/Documents/
它对应的网址是:
http://localhost
用户级的根目录(也是站点目录)是:
~/Sites

这里我们需要注意的是你的家目录下面不一定存在这个Sites目录,如果不存在,你需要自行创建。


建立”站点”文件夹之后,检查下面这个文件夹下面是不是有”你的用户名.conf”这个文件。
/etc/apache2/users/
如果没有,那么你需要创建一个,取名为”你的用户名.conf”,你可以使用 vi 或者 nano 这两种编辑器之一来创建。
sudo vi /etc/apache2/users/你的用户名.conf


创建之后将下面的这几行内容写到上面的 conf 文件中:
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
(请将username改成你的用户名)


文件保存之后,给它赋予相应的权限:
sudo chmod 755 /etc/apache2/users/你的用户名.conf


运行
sudo chown root:wheel /etc/apache2/users/你的用户名.conf


修改apache的httpd.conf文件

cd  /etc/apache2/

sudo vim httpd.conf

找到以下信息,将其前面的#去掉:

LoadModule php5_module libexec/apache2/libphp5.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf


修改/etc/apache2/extra/httpd-userdir.conf

sudo vim /etc/apache2/extra/httpd-userdir.conf

找到一下信息修,将其前面的#去掉:

Include /private/etc/apache2/users/*.conf

此时访问http://localhost/~username/, 依然无法访问,提示:You don't have permission to access /~username/ on this server.

这里是就是新版本与老版本的区别了,需要重新打开httpd.conf文件,

sudo vim /etc/apache2/httpd.conf

找到

<Directory />
    AllowOverride none
    Require all denied
</Directory>

修改为:

<Directory />
    AllowOverride none
    Require all granted
</Directory>

重启apache,sudo apachectl restart

浏览器输入:localhost/~username你就可以访问对应~/Sites目录下面的文件内容了(这里需要注意不要使用代理)



2.同第一种方法,你也需要创建自己的站点目录:~/Sites,完成之后,

在终端运行“sudo vi /etc/apache2/httpd.conf”,打开Apache的配置文件

在httpd.conf中找到“#Include /private/etc/apache2/extra/httpd-vhosts.conf”,去掉前面的“”,保存并退出。

运行“sudo apachectl restart”,重启Apache后就开启了虚拟主机配置功能。

运行“sudo vi /etc/apache2/extra/httpd-vhosts.conf”,就打开了配置虚拟主机文件httpd-vhost.conf,配置虚拟主机了。需要注意的是该文件默认开启了两个作为例子的虚拟主机:

< 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 >

而实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问localhost时出现如下提示:

Forbidden
You don't have permission to access /index.php on this server

最简单的办法就是在它们每行前面加上#,注释掉就好了,这样既能参考又不导致其他问题。

增加如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
< VirtualHost  *:80>
     DocumentRoot "/Library/WebServer/Documents"
     ServerName localhost
     ErrorLog "/private/var/log/apache2/localhost-error_log"
     CustomLog "/private/var/log/apache2/localhost-access_log" common
</ VirtualHost >
 
< VirtualHost  *:80>
     DocumentRoot "/Users/snandy/work"
     ServerName mysites
     ErrorLog "/private/var/log/apache2/sites-error_log"
     CustomLog "/private/var/log/apache2/sites-access_log" common
     < Directory  />
                 Options Indexes FollowSymLinks MultiViews
                 AllowOverride None
                 Order deny,allow
                 Allow from all
       </ Directory >
</ VirtualHost >
保存退出,并重启Apache。

运行“sudo vi /etc/hosts”,打开hosts配置文件,加入"127.0.0.1 dev.cloudlab.com",这样就可以配置完成sites虚拟主机了,可以访问“http://dev.cloudlab.com”了.







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值