标签: virtualhost

如何让虚拟主机在OS X Lion中运行?

我正在尝试在Mac OS X 10.7安装上设置虚拟主机.我正在使用VirtualHostX来管理我的/ etc/hosts和httpd-vhosts.conf文件.目前,我的httpd-vhosts.conf文件如下所示:

NameVirtualHost *:80

<Directory "/Users/yuval/Sites/mysite/">
Allow From All
AllowOverride All
</Directory>
<VirtualHost *:80>
    ServerName "mysite.dev"
    DocumentRoot "/Users/yuval/Sites/mysite"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我的/ etc/hosts文件中有这个:

# VHX START
127.0.0.1 mysite.dev
fe80::1%lo0 mysite.dev
# VHX STOP
Run Code Online (Sandbox Code Playgroud)

我在系统首选项下激活了Web共享,我知道apache正在运行.但是,当我导航到127.0.0.1或mysite.dev时,我得到以下内容:

被禁止

您无权访问此服务器上的/.

我在/ Users/yuval/Sites/mysite上的权限是755.尝试将它们更改为777也没有帮助.请注意,我选择的任何文件夹都会发生这种情况 - 我在/ Users/yuval/Sites/mysite中没有.htaccess文件.

更新:检查apache错误,这些是出现的日志:

[Fri Dec 09 17:59:27 2011] [error] [client 127.0.0.1] (13)Permission denied:
    access to / denied
[Fri Dec 09 17:59:27 2011] [error] [client 127.0.0.1] (13)Permission denied:
    access to /favicon.ico denied
Run Code Online (Sandbox Code Playgroud)

很明显,vhosts + hosts代码在实际确定地址存在方面正在发挥作用,但由于某种原因,这不起作用.有任何想法吗?

apache macos .htaccess hosts virtualhost

12
推荐指数
2
解决办法
1万
查看次数

虚拟主机上的Symfony 2

我在这里遇到Symfony 2的问题.我想在Windows Vista PC上安装虚拟主机,所以我可以像这样访问我的Symfony应用程序myapp.local.com.我尝试过的:

  • 我将这些行添加到hosts文件中

    127.0.0.1 local.com    
    127.0.0.1 myapp.local.com
    
    Run Code Online (Sandbox Code Playgroud)
  • 这些我添加到apache httpd-vhosts.conf

    < VirtualHost myapp.local.com:80 >
       DocumentRoot "d:/data/www/myapp/web"
       ServerName myapp.local.com
       Alias /sf /$sf_symfony_data_dir/web/sf
    < Directory "/$sf_symfony_data_dir/web/sf" >
       AllowOverride All
       Allow from All
    < /Directory >
    < Directory "d:/data/www/myapp/web" >
       AllowOverride All
       Allow from All
    < /Directory >
    < /VirtualHost >
    
    Run Code Online (Sandbox Code Playgroud)

但是当我myapp.local.com在浏览器中写入时,它会带来我的www目录索引.我究竟做错了什么?

host virtualhost symfony

12
推荐指数
1
解决办法
5万
查看次数

从同一本地网络上的计算机访问虚拟主机

我正在尝试进行设置,以便我可以从计算机B访问计算机A中的虚拟主机上的网站.A和B都在同一网络上.我在Win 7上使用xampp.

因此,问题在于计算机A(服务器)在httpd-vhosts.conf文件中具有如下虚拟主机配置.

NameVirtualHost project:81

<VirtualHost project:81>

    DocumentRoot "D:/work/website"
    ServerName project:81
    <Directory "D:/work/website">
    Options Indexes FollowSymLinks Includes ExecCGI    
    AllowOverride All
    Order Allow,Deny
    Allow from all
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

(使用端口81作为端口80运行IIS,但是对这些东西不太了解)

此配置在本地计算机(服务器)上正常工作.即项目:浏览器地址栏中的81开启了网站.

现在在计算机B(客户端)上,我更改了hosts文件以包含服务器的IP以及虚拟主机的名称,如: -

192.168.1.7项目

现在,当我进入项目:客户端浏览器上的81 ..它带我到服务器,但它不带我到虚拟主机目录,而是它采取到默认目录..即在我的情况下是

C:\ XAMPP\htdocs中

现在我卡住了,无法让客户端指向当前目的地.因此,任何人都可以建议我在这里做错了什么或我需要做的其他事情,以便从客户端机器访问正确的虚拟主机站点.

在此先感谢您的帮助

apache xampp networking client-server virtualhost

12
推荐指数
1
解决办法
3万
查看次数

带有通配符VirtualDocumentRoot的VirtualHost

我正在尝试为我的虚拟主机创建一个回退.我的配置如下所示:

# Fetch all pre-defined hosts

Include "conf/extra/vhosts/*.conf"

# Fallback

NameVirtualHost *:80

<Directory "C:/LocalServer/usr">
    Options Indexes FollowSymLinks Includes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
<VirtualHost *:80>
    VirtualDocumentRoot "C:/LocalServer/usr/%-1/projects/%-2+/public/"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这里的目标如下:如果我尝试访问http://test.lab/,我希望它自动获取以下目录:C:/LocalServer/usr/lab/projects/test/public/.

现在,我创建了文件夹和一个空索引文件(index.php).尽管如此,Apache仍然向我显示一个空的目录索引("索引").

不太清楚现在该做什么.尝试过一些东西,但似乎都没有.

有任何想法吗?

更新 - 6月1日

我现在使用此代码,基于第一个答案(嗯,唯一的答案):

<VirtualHost *:80>
    UseCanonicalName Off
    ServerAlias *.lab
    VirtualDocumentRoot "C:/LocalServer/%2/%1/public"
    <Directory "C:/LocalServer/%2/%1/public">
        Options Indexes FollowSymLinks Includes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我现在从Apache 获得Access forbidden错误.通常,当目录不存在时,通常会收到此错误?C:/LocalServer/lab/test/public确实存在,并且空目录index.php位于public目录中.

一般错误日志中的错误: …

xampp apache2 wildcard virtualhost directoryindex

12
推荐指数
1
解决办法
2万
查看次数

WAMP虚拟主机无法正常工作

我使用的是wamp版本2.5我的Apache是​​2.4.9 PHP:5.5.12 MySQL:5.6.17

我有这些配置:

在我的 httpd.conf

# Virtual hosts
Include conf/extra/httpd-vhosts.conf
Run Code Online (Sandbox Code Playgroud)

在我的 G:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhost.conf

# Virtual Hosts
#
# Required modules: mod_log_config

# 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.4/vhosts/>
# for …
Run Code Online (Sandbox Code Playgroud)

php mysql apache wamp virtualhost

12
推荐指数
3
解决办法
3万
查看次数

Tomcat cookie无法通过我的ProxyPass VirtualHost工作

当使用ProxyPass将端口80上的流量重定向到通过Tomcat托管的Web应用程序时,我遇到了使cookie工作的一些问题.

我启用cookie的动机是摆脱附加到URL的"jsessionid ="参数.

我在META-INF /的context.xml中为我的Web应用程序启用了cookie.
当我通过http:// url:8080/webapp访问webapplication时,它按预期工作,jsessionid参数在URL中不可见,而是存储在cookie中.

当通过apache2虚拟主机访问我的网站时,cookie似乎不起作用,因为现在"jsessionid"被附加到URL.我该如何解决这个问题?

这是我的VHost配置:

<VirtualHost *:80>
        ServerName somedomain.no
        ServerAlias www.somedomain.no

        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>

        ProxyPreserveHost Off
        ProxyPass / http://localhost:8080/webapp/
        ProxyPassReverse / http://localhost:8080/webapp/

        ErrorLog /var/log/apache2/somedomain.no.error.log
        CustomLog /var/log/apache2/somedomain.no.access.log combined
</VirtualHost>

编辑:实际上正在设置cookie.我猜测问题是cookie包含"Path:/ webapp".

apache cookies tomcat virtualhost mod-proxy

11
推荐指数
1
解决办法
9375
查看次数

如果不使用.htaccess文件,我在哪里将RewriteRules放在Apache2中?

我想在不使用.htaccess文件的情况下配置mod_rewrite规则.当我在.htaccess文件中放置规则时,它们工作正常,但我更愿意将所有配置保留在/ etc/apache2/sites-available/[site name]配置文件中.

当我在VirtualHost或Directory指令中放置相同的RewriteRules时,没有任何作用.我究竟做错了什么?以下是我的VirtualHost配置文件中的示例:

<Directory />
 Options FollowSymLinks
 # AllowOverride is on for the .htaccess files to work
 AllowOverride All
 RewriteEngine On
 RewriteRule ^oldsite\.php$ newsite.php
</Directory>
Run Code Online (Sandbox Code Playgroud)

我想我可能会忽略apache2.conf文件中的一些指令,但我不确定.救命.:)

mod-rewrite apache2 virtualhost

11
推荐指数
1
解决办法
9080
查看次数

Wampserver 403位于/ www之外的命名虚拟主机上

当我尝试在c:/ wamp/www /目录之外创建一个虚拟主机时,Wampserver告诉我被拒绝.我可以在该目录中做一个罚款.即使创建一个文件夹的符号链接,但我宁愿不必使用符号链接.为什么不起作用?

这是我在httpd.conf末尾使用的代码

NameVirtualHost *:80

<VirtualHost *:80>  
DocumentRoot "c:/wamp/www" 
ServerName localhost 
ServerAlias localhost 
</VirtualHost> 

<VirtualHost *:80>
ServerName local.cascade
DocumentRoot c:/wamp/www/cascade/
</VirtualHost>

<VirtualHost *:80>
ServerName local.md9
ServerAlias local.md9
DocumentRoot "m:/Work/New MD9.ca/site/"
</VirtualHost>

<Directory "m:/Work/New MD9.ca/site/">
    Order Allow,Deny
    Allow from All
</Directory>
Run Code Online (Sandbox Code Playgroud)

"级联"vh工作得很好.

wamp virtualhost wampserver http-status-code-403

11
推荐指数
3
解决办法
2万
查看次数

如何使用Apache VirtualHost获取.htaccess文件

我的问题是.htaccess我的本地服务器上的文件没有被读取.VirtualHost文件中的设置似乎始终优先.

我尝试过以下方法:

  • 启用 mod_rewrite
  • 更改AllowOverrideAll但这会导致a HTTP Error 500 Internal server error.我尝试了各种选项,但它总是导致500错误.

我在Ubuntu上使用VirtualHost文件,如下所示:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /web/website
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /web/website>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

在我的.htaccess文件中,/web/website我有以下规则(未被阅读):

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit
RewriteRule ^(.*)$ ogtags.php?$1 [L,QSA]
ErrorDocument 404 /404
ErrorDocument 401 /401
Run Code Online (Sandbox Code Playgroud)

我尝试过的一件事就是将这些规则直接附加到VirtualHost文件中,但我希望我的 …

.htaccess apache2 virtualhost

11
推荐指数
1
解决办法
4万
查看次数

AWS-EC2,如何只用一个实例设置多个公共站点?

我在SO中阅读了很多文章和主题,但无法找到任何进一步的帮助.

我有AWS-EC2的实例,并希望在其中包含几个公共站点.

我已经将我的第一个公共站点运行如下:http:
//ec2-50-xxx-214-xxx.us-west-2.compute.amazonaws.com/

我所做的只是在/ etc/apache2/sites-available下添加了一个名为manmu的文件

<VirtualHost *:80>
    ServerName ec2-50-xxx-214-xxx.us-west-2.compute.amazonaws.com
    DocumentRoot /home/ubuntu/manmu/YYYYY/web
    DirectoryIndex index.php
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

然后
ubuntu @ ip-10-245-38-136:/ etc/apache2/sites-enabled $ ln -s ../sites-available/manmu

但是我怎么能让我的其他网站运行?
例如,我可能想要一些子域,例如:
http://abc.ec2-50-xxx-214-xxx.us-west-2.compute.amazonaws.com/
等等.

而且,我可以让我的本地机器运行多个站点(我的意思是网址),例如: http://abc.manmu.localhost
http://def.manmu.localhost
我正在使用/ etc/hosts和/ etc/apache2/site-availables(和../site-enabled).
但我真的不知道如何为多个网址的公共访问配置AWS.

我刚刚听到类似Elastic IP的内容,这有什么帮助而不是真正的域名?

谢谢.
最好的问候,
tech_me

linux apache virtualhost amazon-web-services

10
推荐指数
1
解决办法
9934
查看次数