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などの他のものをインストールすることをお勧めします。どうぞお楽しみください!!