利用Apache/Virtualhost,在一台电脑上运营多个网站
首先
我需要一个使用MacOS X(El Capitan)的Apache运行多个网站的方法,所以在进行各种调查后尝试了一下。
另外,如果只是想启动服务器的话,可以先参考 “Yosemite(MacOS:10.10.X)启用Apache”。
El Capitan的启动方法也没有改变。
环境-Environment
苹果操作系统 iMacOS X (El Capitan)
Apache 2.4.16 (Unix)
前期准备
我会先完成Apache的初始设置。
参考:尝试在Yosemite(MacOS:10.10.X)上使用Apache
有关端口打开的方法,请咨询您的供应商。
我认为通常可以通过浏览器访问默认网关的地址进行设置,但是……
设定
现在我们将来进行Virtualhost的设置。
创建服务器文件夹
httpd.conf的配置文件
我要修改安定的http.conf文件。
sudo vim /etc/apache2/httpd.conf
大约在第500行左右,
删除/include /private/etc/apache2/extra/httpd-vhosts.conf中的”#”符号。
httpd-vhosts.conf的配置设置
我将编辑刚刚删除了#的httpd-vhosts.conf文件。
sudo vim /private/etc/apache2/extra/httpd-vhosts.conf
我会在这个文件的最底部连续写下设置内容。
这次的情况下,
-
- ~/Sites/
- ~/FileServer/
我想把网站分配到这两个文件夹中,所以……
<virtualhost *:80>
DocumentRoot "/Users/ユーザID/Sites/"
ServerName 割り当てるDNSサーバのアドレス
ErrorLog "/private/var/log/apache2/local.howtohp.com-error_log"
CustomLog "/private/var/log/apache2/local.howtohp.com-access_log" common
</virtualhost>
<virtualhost *:80>
DocumentRoot "/Users/ユーザID/FileServer/"
ServerName 割り当てるDNSサーバのアドレス
ErrorLog "/private/var/log/apache2/local.howtohp.com-error_log"
CustomLog "/private/var/log/apache2/local.howtohp.com-access_log" common
</virtualhost>
我会按照这种方式办理。
关于分配DNS服务器地址,我使用了诸如NoIP的服务,所以指定了从那里获取的URL就行了。
【注意】
如果没有进行指导的话,
<virtualhost *:80>
DocumentRoot "/Users/ユーザID/Sites/"
ServerName 割り当てるDNSサーバのアドレス
ErrorLog "/private/var/log/apache2/local.howtohp.com-error_log"
CustomLog "/private/var/log/apache2/local.howtohp.com-access_log" common
<Directory /Users/ユーザID/Sites/>
Require all granted
</Directory>
</virtualhost>
<virtualhost *:80>
DocumentRoot "/Users/ユーザID/FileServer/"
ServerName 割り当てるDNSサーバのアドレス
ErrorLog "/private/var/log/apache2/local.howtohp.com-error_log"
CustomLog "/private/var/log/apache2/local.howtohp.com-access_log" common
<Directory /Users/ユーザID/FileServer/>
Require all granted
</Directory>
</virtualhost>
如果不这样做,可能会显示“Forbidden”。
更改访问目标(通过hosts文件配置)。
将之前所设置的内容进行关联。
sudo vim /etc/hosts
我们将以下信息添加到hosts文件的末尾。
127.0.0.1 ~/SitesへのDNSのURL
127.0.0.1 ~/FileServerへのDNSのURL
重启Apache
#設定ファイルに間違いがないかチェック
$ sudo apachectl configtest
Syntax OK #これが出ればOK
$sudo apachectl restart
我认为你可以通过这个来访问。
请看这个。
-
- MacのApacheでヴァーチャルホストを使ってテスト環境の構築
-
- apache2.confにNameVirtualHostを書いたらNameVirtualHost has no effect and will be removed in the next releaseと言われました
-
- UbuntuでVirtualHost設定【Apache】
-
- 【Apache】MaxOSのApacheで複数のサイトを外部公開する方法
- 【Apache(MacOS)】Apacheのバーチャルホストの設定方法がわからない