検索
ホームページバックエンド開発PHPチュートリアルubuntu での Apache 仮想ホストの構成と使用ガイド

ubuntu での Apache 仮想ホストの構成と使用ガイド

Nov 25, 2016 pm 02:42 PM
apacheubuntu仮想ホスト

サイトを有効化および無効化する方法

a2ensite 站点名
a2dissite 站点名

名前ベース(ドメイン名で区別)の仮想ホスト

Apacheをインストールすると、デフォルトでdefaultと呼ばれる仮想ホストが存在します。新しい仮想ホストを作成する場合、デフォルトの仮想ホストの構成ファイルを直接コピーし、それに基づいて新しい仮想ホストの構成パラメータを変更できます。

#copy /etc/apache2/site-available/default /etc/apache2/site-available/sitename

テスト環境

オペレーティングシステム: Ubuntu Server 12.04 LTS

テストマシンのアドレス: 10.39.6.59

テストマシンのドメイン名: *.example.com

基本構成

単一のマシン マシン上に複数のドメイン名またはホスト名を設定する場合は、名前ベースの仮想ホストを使用します。では、どのように設定すればよいのでしょうか?それがこのガイドの目的です。 Ubuntu の /etc/apache2/ ディレクトリには、Apache2 のメイン設定ファイル apache2.conf があります。このファイルには次のフィールドが表示されます:

# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/[^.#]*(12.04版本里无[^.#]*)

この行の意味は、ファイルが /etc/apache2/sites-enabled/ ディレクトリにあるファイル名に「.」または「」の 2 文字を含まないことを示しています。 #" すべてのファイル。このディレクトリ内のファイルをリストすると、000-default のソフト リンク ファイルが 1 つだけあることがわかります。実際の接続は、/etc/apache2/sites-available ディレクトリにあるデフォルトのファイルであることがわかります。ファイル名に「.」または「#」が含まれない。したがって、当然のことながら、このファイルは設定ファイル apache2.conf に含める必要があります。ファイルを開くと、実際には仮想ホストの構成ファイルであることがわかります。ただし、ファイル内の仮想ホストは * であるため、実際には一般的な構成ファイルです。仮想ホストを作成したい場合は、ファイルを次のように変更する必要があります:

<VirtualHost *:80>
ServerName www.firehare.com
ServerAdmin admin@mail.firehare.com
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
# This directive allows us to have apache2&#39;s default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>

上記の設定で仮想ホストに関連する設定ステートメントを分析してみましょう:

`NameVirtualHost :80`: は何を意味しますか私たちがやりたいのは名前ベースの仮想ホストで、リッスン ポートは 80 です。

` および `: は仮想ホストの構成を示します。ポート番号が上記のフィールドで指定されている場合は、ここでも指定する必要があることに注意してください

`ServerName www.firehare.com`: 仮想ホストのドメイン名を設定します。www.firehare.com は任意のドメイン名にすることができます。登録済み

`ServerAdmin admin@mail .firehare.com`: 仮想ホストのネットワーク管理者のメールアドレスを設定します

`DocumentRoot /var/www/`: 仮想ホストのホームディレクトリのパスを設定します

`ErrorLog / var/log/apache2/error.log`: 仮想ホストのエラーメッセージを設定します

`CustomLog /var/log/apache2/access.log generated`: 仮想ホストのアクセス情報を設定します

このように、仮想ホスト www.firehare.com を設定しました。ただし、これはデフォルト設定であるため、Apache2 の再起動後は、DNS サーバーでこのホストを指すドメイン名を入力しても、www.firehare のデフォルト設定が指す /var/www ディレクトリにリダイレクトされます。コム。たとえば、ドメイン名が他の仮想ホスト構成で使用されている場合を除き、このマシンを指すように edunuke.firehare.com も構成し、対応する仮想ホストを構成しました。この場合、ドメイン名 edunuke.firehare.com を入力すると、ドメイン名真ん中に対応するディレクトリに含まれます。

さらなる説明

わかりやすく説明するために、別の仮想ホスト サイト example.com を追加しましょう。まず、/etc/apache2/sites-available/ ディレクトリにファイル edunuke を作成し、そのファイルを編集します。設定の意味は同じです。上記の類似点についてはこれ以上説明しません。次に、コマンド

<VirtualHost *:80>
ServerName edunuke.example.com
ServerAdmin edunuke@mail.example.com
DocumentRoot "/var/www/edunuke/"
ErrorLog "/var/log/apache2/edunuke_errors.log"
CustomLog "/var/log/apache2/edunuke_accesses.log" common    
</VirtualHost>

を実行します。この場合、仮想ホスト サイト edunuke.example.com がインストールされています。現時点では、/etc/apache2/sites-enabled/ ディレクトリに /etc/apache2/sites-available/edunuke への追加のソフト リンクもあります。次のステップは、Apache2 を再起動して仮想ホスト サイトを実行することです:

sudo a2ensite edunuke

このようにして、ブラウザに edunuke.example.com と入力すると、/var/www/edunuke ディレクトリなどを指すようになります。入力はローカル マシンを指します。ドメイン名は、デフォルト構成の /var/www ディレクトリを指します。 Apache2 に詳しい友人は、なぜそんなに面倒なのかをファイルに入れることができないのかと尋ねます。なぜ 2 つのファイルを使用するのでしょうか? edunuke サイトを保守したい場合は、

sudo /etc/init.d/apache2 restart  这里可以使用reload 重新加载

コマンドを実行するだけなので、実際には非常に簡単です。これにより、他のサイトの通常の動作に影響を与えることなく edunuke サイトを保守できます。

高度な構成

上面谈了一下简单的虚拟主机配置方法。这个基本上能满足我们大部分的需要。但如果要是安装 Zope+Plone 的话,上面的这点设置是远远不够的,由于 Zope+Plone 结构所采用的端口并非是80端口,所以我们还得做端口重定向。为了能够做这个,我们得激活 Rewrite 和 Proxy 两个模块。激活模块很简单,同站点配置目录一样,在 Apache2 中也有两个模块配置目录:mods-available 和 mods-enabled。在 mods-available 目录中的是所有可用的模块,而在 mods-enabled 目录中的则是已被安装到 Apache2 中的模块。由于在 mods-available 目录中已经有了 Rewrite 和 Proxy 模块的配置引导文件,所以只需要简单地将其安装到 Apache2 中即可。使用命令:

sudo a2enmod rewrite
sudo a2enmod proxy

然后,添加虚拟主机站点 plone.example.com,同 edunuke 站点创建相似在/etc/apache2/sites-available/ 目录中建立一个文件 plone。显然这个文件名中是没有 "." 或 "#" 这两个字符的了。然后编辑该文件:

<VirtualHost plone.example.com:80>
ServerName plone.example.com
ServerAdmin plone@mail.example.com
ErrorLog "/var/log/apache2/plone_errors.log"
CustomLog "/var/log/apache2/plone_accesses.log" common
RewriteEngine on
RewriteRule ^/(.*) http://127.0.0.1:8081/VirtualHostBase/http/plone.firehare.com:80/plone/VirtualHostRoot/$1 [L,P]
<Proxy *>
Order Deny,Allow
Deny from all
Allow from all
</Proxy>
</VirtualHost>

这样就安装好了 plone.example.com 虚拟主机站点,可以在浏览器中地址栏中输入 http://plone.example.com 就可以重定向到 Zope+Plone 站点去了。


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHP依存性噴射コンテナ:クイックスタートPHP依存性噴射コンテナ:クイックスタートMay 13, 2025 am 12:11 AM

aphpDependencyInjectionContaineriSATOULTAINATINAGECLASSDEPTINCIES、強化測定性、テスト可能性、および維持可能性。

PHPの依存噴射対サービスロケーターPHPの依存噴射対サービスロケーターMay 13, 2025 am 12:10 AM

SELECT DEPENTENCINGINOFCENT(DI)大規模なアプリケーションの場合、ServicElocatorは小さなプロジェクトまたはプロトタイプに適しています。 1)DIは、コンストラクターインジェクションを通じてコードのテスト可能性とモジュール性を改善します。 2)ServiceLocatorは、センター登録を通じてサービスを取得します。これは便利ですが、コードカップリングの増加につながる可能性があります。

PHPパフォーマンス最適化戦略。PHPパフォーマンス最適化戦略。May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

PHPメールの検証:電子メールが正しく送信されるようにしますPHPメールの検証:電子メールが正しく送信されるようにしますMay 13, 2025 am 12:06 AM

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

PHPアプリケーションをより速くする方法PHPアプリケーションをより速くする方法May 12, 2025 am 12:12 AM

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

PHP依存性インジェクション:コードのテスト可能性を改善しますPHP依存性インジェクション:コードのテスト可能性を改善しますMay 12, 2025 am 12:03 AM

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

PHPパフォーマンスの最適化:データベースクエリの最適化PHPパフォーマンスの最適化:データベースクエリの最適化May 12, 2025 am 12:02 AM

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。