GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu13.10にApacheWebサーバーをインストールして構成する方法

ApacheWebサーバーをインストールする

しばらく前に、ubuntuを13.10に更新したところ、apachephpのインストールが台無しになりました。そのため、PHPプロジェクトで作業を続けるには、すぐに再インストールする必要がありました。

Apacheはubuntuリポジトリにあるので、手間をかけずにインストールできます。ターミナルで起動するために必要なクイックコマンドは次のとおりです。

$ sudo apt-get install apache2

Apacheはデフォルトでそれ自体をすばやく構成するため、ローカルホストのURLを使用してブラウザーから開くことができます

http://localhost/

apacheの開始/停止

コマンドラインからApacheWebサーバーを起動または停止するには、次のコマンドを使用します。

# Start web server
$ sudo service apache2 start
# Stop the web server
$ sudo service apache2 stop
# Restart the web server
$ sudo service apache2 restart
# Reload configuration without restarting
$ sudo service apache2 reload

デフォルトのWebルートディレクトリは/var/wwwです。したがって、このディレクトリに配置されているファイルはすべて、ローカルホストのURLからアクセスできます。後で、デフォルトのWebルートディレクトリを変更する方法を確認します

インストールされているapacheのバージョンを確認するには、vオプションを指定してapache2コマンドを使用します/

$ apache2 -v
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56

構成ファイルを見つける

システムでapacheがどのように正確に構成されているかについての詳細は、apache2ctlコマンドを使用してください。

$ apache2ctl -V
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56
Server's Module Magic Number: 20120211:23
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"
.....

これは、構成ファイルの名前、使用されているサーバーmpm、およびその他の多くの詳細を示します。これらは、apacheをさらに構成するときに役立ちます。

メインの設定ファイルは/etc/apache2/apache2.confにあります
設定ファイルの実際の場所を取得するには、HTTPD_ROOTの前にSERVER_CONFIG_FILEを追加するだけです。

または、apacheに関するさまざまな構成の詳細を報告する別のオプションSがあります

$ apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

これらの情報はすべて、apacheを設定するときに非常に役立ちます。推測に費やされる時間を節約できます。

Apacheに関連する構成ファイルはたくさんあります。上記のように、メインの設定ファイルは「apache2.conf」です。この構成ファイルには、さらに構成ファイルをロードするための指示が含まれています。これがそれを行う行です。

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

エラーメッセージを修正

Apacheはデフォルトで、次のエラーメッセージを表示します

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

これを修正するには、ServerName変数をapache構成ファイルのホスト名または完全修飾ドメイン名に設定します

$ sudo nano /etc/apache2/apache2.conf

最後に次の行を追加します

ServerName yourhostname

Apache構成をリロードします

$ sudo service apache2 reload

Webルートディレクトリを変更する

Webルートディレクトリを変更するには、「サイト対応」構成ファイルの設定を変更する必要があります。標準的な方法として、仮想ホストごとにサイト対応ディレクトリ内に個別の構成ファイルが作成されます。

仮想ホストはドメインです。したがって、apacheによって複数のドメインを提供することができます。ただし、この例では、デフォルトの構成ファイルを使用しています。

/ etc / apache2/sites-enabledディレクトリ内に000-default.confというファイルがあるはずです。そこにない場合は、/ etc / apache2/sites-availableからコピーします。ファイルは最初は次のようになります。

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...
</VirtualHost>

DocumentRootパスを、使用する新しいWebルートに変更します。ファイルを保存してapacheを再起動します。

$ sudo service apache2 restart

ここで、localhostにアクセスしてみてください。動作しない場合は、

にあるエラーログを確認してください
$ cat /var/log/apache2/error.log

Apache 2.4.3の時点で、apacheが他のディレクトリにアクセスするのを防ぐセキュリティ機能があります。次に、ローカルホストのURLに「禁止」エラーメッセージが表示され、エラーログには次のようなメッセージが含まれます

[Sun Nov 03 11:25:24.521491 2013] [authz_core:error] [pid 6950] [client 127.0.0.1:41078] AH01630: client denied by server configuration: /var/www/phpinfo.php
>

このエラーは、設定が原因でapacheがWebルートディレクトリにアクセスできないことを意味します。これを修正するには、vhost構成に以下を追加します

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
The "Require" directive fixes the problem. Newer version of Apache (2.3+) require the "Require" directive to allow access.

最終的な000-default.confファイルは次のようになります

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www2

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...

         # New directive needed in Apache 2.4.3: 
          <Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
</VirtualHost>

ここでapacheを再起動すると、新しいWebルートディレクトリが最終的に機能するはずです。

さらにvhostまたはドメインを追加する

さらに仮想ホストを追加するには、000-default.confのような構成ファイルをさらに作成し、conf拡張子以外の名前を付けます。各ファイルに一意のServerNameを設定し、各ホストに個別のWebルートディレクトリを指定します。

または、sites-availableディレクトリに構成ファイルを作成し、a2ensiteコマンドを使用してサイトを有効にします。 「sites-enabled」ディレクトリに必要なシンボリックリンクが作成されます。

したがって、最初にデフォルトの構成ファイルをコピーして構成ファイルを作成します。

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mysite.conf

必要に応じて構成ファイルを編集します。変更する重要なことは、新しいサイトのドキュメントルートです。
次に、a2ensiteコマンドを使用してドキュメントルートを有効にします

$ sudo a2ensite mysite

apacheを再起動します。そして、新しいサイトは正常に機能するはずです。

htaccessファイルを有効にする

htaccessファイルを使用すると、実行時にディレクトリごとにさまざまなApache設定パラメータを変更できます。デフォルトでは、apacheはhtaccessファイルを使用するように設定されていません。これを行うには、上記の[ディレクトリ]セクションに次の行を追加するだけです。

AllowOverride FileInfo

上記は、apacheにhtaccessファイルの読み取りを開始し、それらに書き込まれた構成手順を解析するように指示します。

最終的な構成は次のようになります-

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   AllowOverride FileInfo
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>

Apacheをインストールした後、必要なものに応じて、php、mysql、phpmyadminなどの他のものをインストールすることをお勧めします。どうぞお楽しみください!!


Ubuntu
  1. Ubuntu20.04にNFSサーバーをインストールして構成する方法

  2. Ubuntu20.04にDHCPサーバーをインストールして構成する方法

  3. UbuntuにRedisサーバーをインストールして構成する方法

  1. Ubuntu20.04にVNCをインストールして構成する方法

  2. Ubuntu18.04にVNCをインストールして構成する方法

  3. Ubuntu18.04にNFSサーバーをインストールして構成する方法

  1. Ubuntu 18.04 /Debian9にNginxをインストールして構成する方法

  2. Ubuntu20.04にApacheHadoopをインストールして構成する方法

  3. Ubuntu18.04にDHCPをインストールして構成する方法