我的Ubuntu上运行XAMPP,我想创建我的项目一个虚拟主机,让我有一个顶级域名分配给我的服务器的根目录(例如.LOCAL)和里面的文件夹,通过的网址访问为http://foldername.local
。
此外,这将是多么复杂得多使用的.htaccess有http://someotherdomain.local
重定向到/foldername
在服务器的根路径?
我的Ubuntu上运行XAMPP,我想创建我的项目一个虚拟主机,让我有一个顶级域名分配给我的服务器的根目录(例如.LOCAL)和里面的文件夹,通过的网址访问为http://foldername.local
。
此外,这将是多么复杂得多使用的.htaccess有http://someotherdomain.local
重定向到/foldername
在服务器的根路径?
我已经成功地做我自己。 这是可能做到这一点,但是你需要安装一个DNS服务器 。
注:我决定用.dev作为我的地域,所以在下面的例子中,
dev
部分将把我所选择的领域。 记在脑子里。
它不应该不管是哪一个,但你需要知道如何正确配置它。 配置取决于它的DNS服务器您选择。 我去的dnsmasq。 它的重量轻,非常方便。
为Ubuntu用户一个重要的注意的是,对于Ubuntu 11.10已经有轻版本,称为的dnsmasq基地安装,这将在安装过程中造成冲突。 我不会在这里解释如何解决这个问题,因为有其他地方提供许多指令。
一旦你安装你的DNS服务器,你应该把它设置为监听地址等于你想要的域名。
在我的情况跟的dnsmasq,这意味着打开
/etc/dnsmasq.conf
和变化的线路#62本:address=/dev/127.0.1.1
假设你已经安装了某种服务器软件,你需要做一些调整。
首先,你应该编辑您的hosts
文件到你想要的域名映射到本地主机。
在我的XAMPP的Linux Ubuntu上的情况下,这意味着我打开
/etc/hosts
,改变的行127.0.0.1 localhost 127.0.1.1 tomica-ubuntu
至
127.0.0.1 localhost 127.0.1.1 tomica-ubuntu dev
这将重定向
http://dev
到我的本地服务器。
接下来,创建一对夫妇的特定选项,这样一个新的虚拟主机:
在我而言,这意味着打开
/opt/lampp/etc/extra/httpd-vhosts.conf
,并在文件末尾添加此:<VirtualHost *:80> DocumentRoot "/opt/lampp/htdocs/dev" ServerName dev ServerAlias *.dev <Directory /opt/lampp/htdocs/dev> AllowOverride All </Directory> </VirtualHost>
为了简便起见,我不会解释这一段代码,因为文档也可以。
毕竟这是做了,开始你的DNS服务器和Web服务器,或重新启动他们 ,如果他们已经在运行。
新创建的主机打开根文件夹。 这是一个在你的devined的文件夹。 就我而言,那是/opt/lampp/htdocs/dev
。 在那里,创建.htaccess
文件,并把这个在它:
# Specify order of index files; if none exist, show files list
DirectoryIndex index.php index.html
# Interpret .html files as .php scripts
AddHandler php5-script .php .html
# THE MAGIC - Redirect subdomains of .dev to their respective folders
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.dev$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.dev(.*)?$ [NC]
RewriteRule !^%2\.dev%3?/$ http://dev/%2%{REQUEST_URI}/ [P]
同样,解释这一切都需要太多的空间和时间。 只需复制/粘贴,不要担心:)但是,不要忘了我的变化dev
,以任何你选择了你的域名。
那就是它! 现在,你应该能够浏览使用类似地址项目http://folder.dev/
, http://www.folder.dev
, http://folder.dev/file.html
, http://folder.dev/subfolder/document.txt
等
作为奖励,我会添加只是多了一个建议。 为什么我做这一切的原因是,这样我可以更轻松地开发我的Laravel和WordPress prjects。 然而,随着Laravel,你应该URL重定向http://lvproject.dev/
到的位置/lvproject/public
。 这里是.htaccess
文件,使这一点。 打开/lvproject
文件夹中创建.htaccess
文件,并在其中放置以下代码:
RewriteBase /lvproject/
RewriteCond %{REQUEST_URI} lvproject/index\.php [NC]
RewriteRule index\.php(.*)$ public/ [L]
该解决方案的两个缺点是:1) RewriteBase
规则需要为每个新项目中重新设置(即你需要手动创建.htaccess
在每个新项目); 2)你的项目将可从两个http://lvproject.dev/
和http://lvproject.dev/public/
,这是不冷静,但我懒得在此刻得到它固定:)