自从电脑更换为mac后, 一直没有时间去配置php的环境。导致每次要更改php代码的时候, 都是本地更改,然后直接推送到服务器上运行 这样的开发和测试及其耗时且繁琐, 所以早上特地决定弄好mac下的php开发环境,毕竟磨刀不误砍柴工,一劳永逸嘛。

下载按照好mamp后,选择web服务器为apache。更改配置文件httpd.conf,添加相应的加载moudle。打开虚拟配置。httpd-vhost.conf,因为当前的项目存在两个独立的项目,分别是front.xxx.local.admin.xxx.local

httpd-vhost.conf配置如下:

#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.#
# Use name-based virtual hosting.
#
#NameVirtualHost *:80#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#<VirtualHost *:80>DocumentRoot "/Users/fly_popc/Desktop/code/front/web" ServerName front.xxx.localServerAlias front.xxx.local<Directory "/Users/fly_popc/Desktop/code/front/web">RewriteEngine on      RewriteCond %{REQUEST_FILENAME} !-f  RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule . index.php </Directory>
</VirtualHost><VirtualHost *:80>DocumentRoot "/Users/fly_popc/Desktop/code/admin/web" ServerName admin.xxx.localServerAlias admin.xxx.local<Directory "/Users/fly_popc/Desktop/code/admin/web">RewriteEngine on      RewriteCond %{REQUEST_FILENAME} !-f  RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule . index.php </Directory>
</VirtualHost>

重启apache后,环境运行正常。

但是...

当访问后台项目的时候,却一直路由到了第一个地址上, 也就是apache配置多个域名指向的虚拟主机访问总是指向第一个虚拟主机。查询了好几个帖子后,依然不能解决问题。最后终于了解到有个配置没有打开,那就是:

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

本着追本溯源的精神, 查询了下这个配置的意思,得到的原因如下:

NameVirtualHost 如果没有这个,<VirtualHost>标签就没什么作用。基于域名访问的情况,若是基于IP访问的,以第一个指定IP的VirtualHost为准,每个IP可以单独指定)一个NameVirtualHost 可以对用多个<VirtualHost>,每个<VirtualHost>必须有自己的NameVirtualHostNameVirutalHost *:80制定这个主机的IP和端口,如果服务器上有多个IP,就可以制定某个IP的某个端口是哪个主机。(新版的Apache已经去除了NameVirtualHost 这个配置,因为确实没什么用,参数在VirtualHost中都已经指明了)。

至此打开浏览器,分别访问http://front.xxx.local 和http://admin.xxx.local 都能各自访问到对应的页面,大功告成!下面记录下整个流程.

1.先要在httpd.conf(这个是Apache 总的配置文件)中,将虚拟路径的注释去掉。
#Include etc/extra/httpd-vhosts.conf
使httpd-vhosts.conf文件起作用,或者直接在httpd.conf中写配置也可以,但不建议这么做。
相关的配置有:Listen NameVirtualHost <VirtualHost>

2.Listen要监听的端口,多个端口,要写多个Listen;否则Apache启动的时候,不会启动相应的套接字。

比如

Listen 80
Listen 8080

3.NameVirtualHost 如果没有这个,<VirtualHost>标签就没什么作用。

4.最关键的VirtualHost。
重要:Apache 在接受到请求时,首先会默认第一个VirtualHost,然后再找匹配的,如果没有匹配的,就是第一个VirtualHost起作用。
因此在httpd.conf中,将<Dicrectory />(这个是所有目录的默认配置)
和<Direcotry /opt/lampp/htdocs>的权限,都是deny from all.作为默认;或者直接在httpd.conf中配置

<Directory />Options Indexes FollowSymLinks AllowOverride All
</Directory>

至此,项目就能正常运行起来了!

转载于:https://www.cnblogs.com/_popc/p/7228106.html

Apache VirtualHost的配置相关推荐

  1. Nginx+Apache Yii2.0 配置方案

    最近用Yii2.0框架做了个小项目,虽然项目本身业务逻辑不复杂,但是由于本身业务逻辑的特殊性,在上午9点到12点之间系统访问量会突然上升(浏览量和用户上传文件量).导致系统单纯的部署在Apache下, ...

  2. Linux下Apache虚拟主机配置

    说明: Apache版本:httpd-2.2.31 Apache安装目录:/usr/local/apache 目的: 配置Apache虚拟主机 具体操作: 1.修改Apache主配置文件 cp /us ...

  3. Apache经常使用配置

      Apache採用IBM HTTPServer,内核为Apache/2.0.47 Server version: IBM_HTTP_Server/6.1.0.13 Apache/2.0.47   查 ...

  4. Ubuntu 16.04与Apache虚拟主机配置的步骤详解

    这篇文章主要给大家介绍了关于Ubuntu 16.04与Apache虚拟主机配置的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ubuntu16.04系统具有一定的参考学习价值,需要的朋友 ...

  5. apache多站点配置+多端口配置

    Apache多站点配置 这种方法是配置不同的地址访问不同的文件夹的配置1:修改本机的hosts文件,如下: 示例:127.0.0.1 localhost127.0.0.1 www.dede.com12 ...

  6. 如何在Apache环境下配置Rewrite规则

    原文链接:http://faq.comsenz.com/viewnews-12 URL 静态化是一个利于搜索引擎的设置,通过 URL 静态化,达到原来是动态的 PHP 页面转换为静态化的 HTML 页 ...

  7. 初次使用Apache、ip地址、防火墙、域名、DNS、hosts文件、端口、URL介绍、Apache配置文件、配置虚拟主机、请求响应、http协议、

    Apache提供web服务: 启动Apache,让其客户端可以使用你机器上安装的Apache提供的web服务,访问你机器上的网站.这种情况下你的计算机就是服务器,别人的机器就是客户端. 注意:确保配置 ...

  8. apache服务器详细配置

    --------------------------------------------- 配置文件  RPM 包安装 Apache  /etc/httpd/conf/httpd.conf ----- ...

  9. Apache多站点配置

    闲话不多说,直接进入主题: 1.首先打开Apache安装目录下 conf/httpd.conf 文件,找到下面两行文字,把最前面的 # 号去掉,然后保存. 参考位置:128行  #LoadModule ...

  10. 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(二):Apache安装和配置

    基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...

最新文章

  1. 【 Notes 】COMPARISON OF BASIC METHODS AND POSITIONING SYSTEMS
  2. mysql json_set多维_mysql之json高级使用
  3. 单链表基本操作(可执行程序),二级指针使用必要性的初步理解
  4. MySQL为表的指定字段添加数据
  5. 《剑指offer》不用加减乘除做加法
  6. mysql优化 运维_MySQL运维---MySQL优化
  7. ios 图片居中裁剪_[ iOS Shortcuts / Workflow ] 分享一个给照片批量加「底部居中偏上」水印的捷径,可适应不同水印的尺寸...
  8. imgaug批量椒盐噪声 python_python手写给图像加椒盐噪声和高斯噪声
  9. Linux修改hostname的几种方式,及遇到的问题
  10. 使用Sci-kit学习和XGBoost进行多类别分类:使用Brainwave数据的案例研究
  11. ubuntu linux镜像文件下载地址,ubuntu7.04下载地址大合集
  12. 【我拼搏的2016】为自己充电,发出耀眼的光
  13. [FPGA] 三位四选一数据选择器
  14. 冠层、叶片和光系统尺度的日光诱导叶绿素荧光SIF模拟的辐射传输模型:SCOPE模型介绍
  15. [Hadoop] - Win7下提交job到集群上去
  16. html5怎么调用cur指针,win7鼠标指针主题包怎么用
  17. 2021-06-22 加水印后原本EXCEL内容被覆盖
  18. CSS 固定定位 position fixed
  19. python安装apk到手机_安卓手机怎么安装APK文件
  20. Tesra平台训练数据(没有足够强大的显卡情况下使用云端跑代码)(一)

热门文章

  1. 圆柱体积怎么算立方公式_祖暅原理和球的体积公式
  2. php扩展leonis,LNMP环境部署
  3. NYOJ 40 公约数和公倍数
  4. 【2020牛客寒假基础算法训练营】第二场总结
  5. SVM支持向量和逻辑回归的decision_function用法详解
  6. ruby分割字符串_Ruby中常用的字符串处理函数使用实例
  7. 翻译: 3.线性神经网络 概览 深入神经网络 pytorch
  8. 算法:回溯解决电话拨号中的字母组合Letter Combinations of a Phone Number
  9. php文件显示代码行数,php统计文件中的代码行数
  10. JAVA常见的异常6_Java常见异常总结