1 min read

XAMPP 虚拟主机设置

我系统上 XAMPP 安装在 /opt/lampp 目录下,于是本地服务器根目录处在 /opt/lampp/htdocs,如果不做更改的话,需要把文件放到 htdocs 里才能通过 http://localhost/ 访问到,这会有一个问题,/opt 目录特殊,在其下新建的文件均有权限上的限制,需要 sudo 才能编辑,非常不便。

另外,Eclipse 默认的 Workspace 目录是建在用户主目录下的,即 /home/username/workspace,所以,如果 workspace 目录能享受本地服务器根目录待遇就没什么问题了。

解决办法有几种,但最为方便,也有助于分离不同项目,便于管理、调试的方法是设置虚拟主机 – 我想卖虚拟主机的人们肯定很熟悉这个。

打开 httpd.conf 文件,在末尾加入以下:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /opt/lampp/htdocs
</VirtualHost>

<VirtualHost *:80>
    ServerName ec.localhost
    DocumentRoot /home/sam/workspace
    <Directory /home/sam/workspace>
                Require all granted
        AllowOverride all
        Order Allow,Deny
        Allow from all
    </Directory>
</VirtualHost>

之后打开 /etc/hosts 文件,加入:

127.0.0.1 ec.localhost

将 ec.localhost 域名解析到 127.0.0.1 上。

这时访问 ec.localhost 就没问题了。

更新

2012.12.28 Fri

另一个办法,可以达到相似的目的,并且要比上述办法简单,就是利用 Apache 配置中的 Alias 功能。

打开 httpd.conf 文件,查找 </Directory>,添加以下内容:

Alias /ec /home/sam/ec

重启 Apache,然后我们就可以通过 localhost/ec 来访问 /home/sam/ec 目录了。当然,如果仅这样设置就开始访问 localhost/ec 会显示 403 错误,表示没有权限访问,所以我们还要为其设置权限:

<Directory /home/sam/ec>
  Require all granted
  Order allow,deny
  Allow from all
</Directory>    

将上述语句加到 Alias 语句后,保存 httpd.conf 并重启 Apache 服务器。

参考

  1. Virtual hosts
  2. http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html
  3. Apache Module mod_alias
报告问题 修订

如果你有自建 https 代理的需求,欢迎尝试 Phantom,一键搭建,方便快捷。查看 demo