我想设置我的本地开发机器,以便将任何请求*.local重定向到localhost.这个想法是,我开发多个网站,我可以再补充虚拟主机到Apache叫site1.local,site2.local等,让他们都决心localhost,而Apache的相应服务于不同的网站.
我在Windows XP上.
我尝试添加
127.0.0.1 *.local
Run Code Online (Sandbox Code Playgroud)
到我的c:\windows\system32\drivers\etc\hosts文件,也尝试过:
127.0.0.1 .local
Run Code Online (Sandbox Code Playgroud)
这两者似乎都不起作用.
我知道我可以在不同的端口号上设置它们,但这很痛苦,因为很难记住哪个端口是哪个端口.
我不想设置本地DNS服务器或任何困难,任何建议?
我通过Xampplite在Windows XP上运行Apache,并且可以使用帮助配置我的虚拟目录.这是我希望在我的开发箱上做的事情:
我有1和2工作,编辑windows hosts文件,并在xampp的apache\conf\extra\httpd-vhosts.conf文件中添加一个虚拟目录.我没有立即看到如何做3而不搞乱4.
我用php 5.2.13干净安装了CentOs.在php.ini中加载并出现在phpinfo()的标题中我有
safe_mode=off
Run Code Online (Sandbox Code Playgroud)
在我的phpinfo()信息中
// local value - safe_mode: On
// master value - safe_mode: off
Run Code Online (Sandbox Code Playgroud)
php文件只有一个phpinfo()函数.我仍在寻找vhost文件,看看是否有任何指令覆盖这个,但仍然有任何建议吗?
我不想使用.htaccess.我该如何更改目录属性?
<VirtualHost *:80>
ServerName abc.com
DocumentRoot /usr/share/uploads
<Directory " /usr/share/uploads">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) 我需要有两个VirtualHosts,它们具有相同的监听端口,用于不同的项目和不同的日志.这是我得到的:
<VirtualHost *:80>
DocumentRoot /home/projects/smk
ErrorLog /var/log/apache2/smk-error.log
RedirectMatch ^/$ /cms
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /home/projects/smk/cms
ErrorLog /var/log/apache2/smk-cms-error.log
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /home/projects/smk/deploy
ErrorLog /var/log/apache2/smk-deploy-error.log
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) Tomcat提供了"虚拟主机"支持的构建:可以将引擎/ Web应用程序配置为负责域列表.必须使用特殊的xml指令将这些域放入server.xml/context.xml文件中.
=>是否有可能以编程方式更改Tomcat配置(通常),尤其是Web应用程序/引擎的"虚拟主机"?
例如,如果新用户注册,我必须将他的域添加到"已接受的虚拟主机/域"列表中.我目前想到的唯一方法是通过脚本更改xml文件,然后重新启动Tomcat.
有没有办法添加它们通过一些Java-Methods以编程方式添加运行时?
非常感谢你!一月
我刚刚在一个站点上设置了nginx来提供静态请求,但是我的服务器上有很多站点,我想知道,我应该为所有这些站点设置新的nginx服务器配置吗?我现在在做什么 我有Apache的所有虚拟主机条目的文件,有这样的东西:
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName sky2high.net
DocumentRoot /home/mainsiter/data/www/sky2high.net
</VirtualHost>
<VirtualHost *:8080>
ServerName surdo.asmon.ru
DocumentRoot /home/surdo/data/www/surdo.asmon.ru
</VirtualHost>
<VirtualHost *:8080>
ServerName surdoserver.ru
DocumentRoot /home/surdo/data/www/surdoserver.ru
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我在apache的ports.conf中有这个:
Listen 8080
Run Code Online (Sandbox Code Playgroud)
所以我设置了nginx来处理一个站点(sky2high.net),创建了下一个配置文件(/etc/nginx/sites-enabled/sky2high.net):
server {
listen 80;
server_name sky2high.net www.sky2high.net;
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
access_log /var/log/nginx.access_log;
location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /home/mainsiter/data/www/sky2high.net/;
index index.php;
access_log off;
expires 30d;
}
location ~ /\.ht {
deny all;
}
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
proxy_connect_timeout 60;
proxy_send_timeout …Run Code Online (Sandbox Code Playgroud) 我不知道也许这是一个错误.
我的服务器上有2个虚拟主机.
virtualhost1.com virtualhost2.com
如果我用端口80打开virtualhost1.com(virtualhost1.com:80)
$_SERVER['HTTP_HOST']='virtualhost1.com';
Run Code Online (Sandbox Code Playgroud)
但如果我打开virtualhost2.com:80
$_SERVER['HTTP_HOST']='virtualhost2.com:80'; // NOTE: with port number
Run Code Online (Sandbox Code Playgroud)
我能知道为什么吗?
对于我正在设置的基于Linux的Apache 2.2服务器,我有一个相当简单的问题.我想在同一台服务器上设置两个完全不同的域.但它只提供第一个标签的内容!我搜索过StackOverflow并在Apache.org上阅读项目但没有运气.
我按照Apache.org上的说明进行操作,并将这两部分放在我的http.conf文件的底部.
<VirtualHost *:80>
DocumentRoot /var/www/mydomain1
ServerName sub1.mydomain1.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/mydomain2
ServerName sub2.mydomain2.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
现在,当我使用浏览器访问:http://sub1.mydomain1.com它很好.但是如果我去http://sub2.mydomain2.com我仍然只能获得位于/ var/www/webfiles/mydomain1中的内容.
我做了许多显而易见的事情,例如: - service httpd restart - 我改变了httpd.conf中两个条目的顺序,再一次,它只服务于列表中的第一个条目. - 我使用Googled的一个支持文档说,确保在您的系统上有一个有效域的以下入口点.所以我输入了这个(但它没有改变任何东西):ServerName sub2.mydomain2.com:80
它一定是愚蠢的东西,但我无法弄清楚!
我正在使用zend服务器,我在extra/httpd-vhosts.conf文件中添加了一个VirtualHost,并从httpd.conf文件中删除了#.
这是我在extra/httpd-vhosts.conf文件中添加的内容:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName quickstart.local
DocumentRoot D:/quickstart/Code
<Directory D:/quickstart/Code>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当我访问quickstart.local它工作正常,但它也影响localhost(即当我尝试加载http:// localhost /时,我看到我为http://quickstart.local/做的同一个站点.
我该如何解决这个问题?我想要localhost(我将其用于另一个项目)和quickstart.local分开.
virtual-hosts ×10
apache ×7
virtualhost ×4
php ×2
windows ×2
apache2 ×1
dns ×1
hosts ×1
java ×1
nginx ×1
port-number ×1
safe-mode ×1
subdomain ×1
superglobals ×1
tomcat ×1