在linux上设置apache的子域名
|
我不敢相信我以前没有这样做,但我想要一个明确的答案,所以我都将前进. 我在/ etc / apache2 / sites-available / mysite中有一个apache配置文件,如下所示: <VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/sam/public_html
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/sam/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug,info,notice,warn,error,crit,# alert,emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
所以这提供了从/ public_html的html和php文件都很好.但我有多个项目,所以想开始使用子域名.我想做的是将/ public_html / myproject /中的文件作为myproject.localhost的根目录. 我尝试将以下内容添加到我的apache文件的底部: <VirtualHost myproject.localhost>
DocumentRoot ~/public_html/myproject/
ServerName myproject.localhost
ServerAdmin admin@myproject.localhost
<Directory ~/public_html/myproject>
Options Indexes FollowSymLinks
AllowOverride FileInfo
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
但是apache抱怨说: Restarting web server: apache2[Tue Aug 20 11:06:19 2013] [error] (EAI 2)Name or service not known: Could not resolve host name myproject.localhost -- ignoring! ... waiting [Tue Aug 20 11:06:20 2013] [error] (EAI 2)Name or service not known: Could not resolve host name myproject.localhost -- ignoring! 我知道我犯了一个根本错误,但我不知道是什么. 任何帮助非常感谢. 编辑: 这是我现在完整的文件: <VirtualHost *:80>
DocumentRoot /home/sam/public_html/ryua1226-magento/
ServerName mydomain.localhost
ServerAdmin admin@mydomain.localhost
<Directory /home/sam/public_html/ryua1226-magento>
Options Indexes FollowSymLinks
AllowOverride FileInfo
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/sam/public_html
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/sam/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
解决方法你告诉Apache你想要在<VirtualHost>标签内部回答什么IP和端口,所以这里*表示任何IP,但在端口80上接受对这个站点的请求.接下来你需要告诉Apache文档根目录. /表示您的默认主目录,所以如果您的DocumentRoot恰好是默认的home变量,那么它可以使用现有的符号(取决于您正在运行服务器的用户).然后您将声明服务器名称.
您创建主机的每个域名都需要自己的虚拟主机指令,除非您使用别名. <VirtualHost *:80>
DocumentRoot /home/sam/public_html
ServerName myproject.localhost
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /home/sam/public_html/myproject
ServerName myotherproject.localhost
# Other directives here
</VirtualHost>
关于主机除此之外,您为主机创建的任何特殊名称也需要进入主机文件或DNS服务器.这样,任何正在寻找服务器的Web浏览器都可以找到它,而无需输入IP.因为如果您尝试使用IP访问服务器,您将只能在第一个主机上响应IP(通常是vhosts列表中的顶部),因此您可能会在同一个IP上安装多台主机,. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Python 3.4.3 subprocess.Popen获取命令输出而不管道?
- Linux中的核心转储文件是什么?它提供什么信息?
- 电子邮件 – 从root @ servername更改传出邮件地址 – rack
- Linux的Ctrl-C(KeyboardInterrupt)为Windows cmd行?
- linux – 使用BlueZ堆栈作为外设时错误的有效负载
- Linux – Bash将String重定向到文件
- distributed-filesystems – NFS如何在Debian上读缓存?
- 是否可以从终端运行程序并在关闭终端后继续运行?
- 典型的Linux内核启动的第一个进程是什么?
- linux – 如何在bash上使用filetype将文件排序到文件夹中(使
