运维

启用mac自带Apache & 虚拟主机配置

csxiaoyao · 9月4日 · 2017年 · 本文2904字 · 阅读8分钟22

启用mac自带Apache & 虚拟主机配置

Write By CS逍遥剑仙
我的主页: csxiaoyao.com
GitHub: github.com/csxiaoyaojianxian
Email: sunjianfeng@csxiaoyao.com
QQ: 1724338257

1. 启动Apache

mac 自带 Apache,在系统的私有目录 /private/etc 下

<code class="language-Shell">sudo apachectl start</code>

启动apache,浏览器中输入 http://localhost,看到 "It works" 说明启动成功

apache默认虚拟主机(网站根目录)目录:/Library/WebServer/Documents/

2. 在apache中开启PHP

修改 httpd.conf 前先备份 -> httpd.conf.bank

<code class="language-Shell">sudo vim /etc/apache2/httpd.conf</code>

找到并去掉注释符号(#)

<code>#LoadModule php5_module libexec/apache2/libphp5.so</code>

3. 查看 phpinfo()

复制一份 /Library/WebServer/Documents/index.html.en,命名为 info.php

<code class="language-Php"><html>  
<body>
    <?php phpinfo(); ?>
</body>
</html></code>

浏览器中输入 http://localhost/info.php

4. 设置虚拟主机和虚拟目录

1. 配置 Apache 主配置文件 —— httpd.conf

设置监听网卡的IP地址和端口

<code>#Listen 12.34.56.78:80
Listen 80</code>

指定可以访问虚拟主机的IP地址和端口,其中IP地址必须是自己的网卡的IP地址

<code>NameVirtualHost *:80
Include conf/vhosts.conf</code>

2. 配置 Apache 虚拟主机 —— vhosts.conf

3. 配置本地 DNS 文件 —— hosts

设置自己的网站的根目录(虚拟主机)

<code class="language-Shell">sudo vim /etc/apache2/httpd.conf</code>

找到并去掉注释符号(#)

<code>#LoadModule authn_core_module libexec/apache2/mod_authn_core.so
#LoadModule authz_host_module libexec/apache2/mod_authz_host.so
#LoadModule authz_core_module libexec/apache2/mod_authz_core.so
#LoadModule dir_module libexec/apache2/mod_dir.so
#LoadModule userdir_module libexec/apache2/mod_userdir.so
#LoadModule alias_module libexec/apache2/mod_alias.so</code>

找到并修改

<code>DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents"></code>

<code>DocumentRoot "/Users/sunshine/Workspace"
<Directory "/Users/sunshine/Workspace"></code>

找到并去掉注释符号(#)

<code>#Include /private/etc/apache2/extra/httpd-userdir.conf
#Include /private/etc/apache2/extra/httpd-vhosts.conf
#Include /private/etc/apache2/other/*.conf</code>

创建虚拟主机

<code class="language-Shell">sudo vim /etc/apache2/extra/httpd-vhosts.conf</code>

找到并去掉注释符号(#)

<code>#Include /private/etc/apache2/users/*.conf</code>

用#注释掉原有的两个VirtualHost并添加

<code><VirtualHost *:80>
    DocumentRoot "/Users/sunshine/Workspace"
    ServerName phpworkspace
    ErrorLog "/private/var/log/apache2/phpworkspace-error_log"
    CustomLog "/private/var/log/apache2/phpworkspace-access_log" common
    <Directory />
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost></code>

Apache 配置说明:

1. Listen 命令

<code>Listen 80    //监听本机的所有IP地址的80端口的请求
Listen 192.168.3.100   //监听本机的指定IP地址192.168.3.100的所有端口的访问
Listen 192.168.18.89:8080  //监听本机指定IP地址192.168.18.89的8080端口的访问</code>

2.

设置网站根目录的外部的(客户端)访问权限

<code>Options:指定服务器将启用哪些服务器特性。取值:none、All、Indexes
  None:禁用启用服务器特性
  All:开启所有服务器特性
  Indexes:如果首页文件不存在,则显示目录列表
Order:指定Allow(允许)和Deny(禁止)的执行顺序
  Order Allow,Deny   先允许访问,再禁止IP访问
  Order Deny,Allow   先禁止所有访问,再开启指定IP的访问
Deny:禁止哪些IP访问主机
  Deny From All  禁止所有IP访问主机,包括自己
  Deny From 192.168.18.76 192.168.18.74    禁止指定IP访问你的主机。禁止客户端的IP地址
  Deny From 192.168.18    禁止网段介于192.168.18.0~192.168.18.255之间所有IP访问
Allow:允许哪些IP访问主机
  Allow From All  允许所有IP访问主机,包括自己
  Allow From 192.168.18.76  192.168.18.74   允许指定IP访问主机
  Allow From 192.168.18   允许网段介于192.168.18.0~192.168.18.255之间所有IP访问</code>

5. 添加DNS解析

<code class="language-Shell">sudo vi /etc/hosts</code>

添加

<code>127.0.0.1        phpworkspace</code>

将先前创建的info.php拷贝到网站的根目录,在浏览器中输入创建的主机名 http://phpworkspace/info.php

6. 遇到的问题

打开网站错误码403,检查根站点下有没有页面文件,若有文件,尝试设置默认页面,若还有问题,尝试修改目录权限

修改 httpd.conf

<code>DirectoryIndex index.html index.php index.jsp index.htm</code>

修改目录权限

<code class="language-shell">sudo chmod -R 775 /Users/sunshine/Workspace</code>

启用mac自带Apache & 虚拟主机配置-禅林阆苑

0 条回应

×