リソース使用量とメモリフットプリントが非常に保守的なウェブサーバーがあります。そのサーバーはlighttpd(「ligity」と発音)として知られています。 1つのlighttpdインスタンスを設定するのは少し難しい場合があるため、このチュートリアルは、Linuxでlighttpdサーバーを適切に構成する方法についての明確なガイドとして役立ちます。
各Webサーバーインスタンスの設定ファイルを理解することは、lighttpdを正常に実行するための鍵です。このチュートリアルでは、PHPサポートの追加についても説明します。 Webサーバー用。
lighttpd設定オプション
lighttpdをインストールした後、Webサーバーの設定を定義するファイルを作成することから始めます。これをホームディレクトリで「example.conf」と呼びましょう。 / etc/lighttpdにあるデフォルトの設定ファイルをコピーするだけです。これは標準の「.conf」ファイルであるため、通常の構文規則が適用されます。たとえば、「#」の後の文字はコメントとして扱われます。
$ cp /etc/lighttpd/lighttpd.conf ~/webservers/example.conf $ vim ~/webservers/example.conf # Or whatever editor you wish
サーバーモジュール
「server.modules」フィールドには、サーバーが使用するモジュールの配列が含まれています。ここで、「mod_fastcgi」と「mod_setenv」の2つをリストに追加しましょう。 Mod_fastcgiを使用すると、PHPサポートを追加できます。 Mod_setenvを使用すると、サーバーが他のドメインにリクエストを送信できるようにするヘッダーを渡すことができます。これは、外部ライブラリの読み込みに役立ちます。
注:リストに「mod_status」も含める場合は、その前に「mod_setenv」を付けます。
サーバー設定
次のセクションを調べてみましょう:
server.document-root = "/var/www/html" server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) server.errorlog = "/var/log/lighttpd/error.log" server.pid-file = "/var/run/lighttpd.pid" server.username = "www-data" server.groupname = "www-data" server.port = 80
これらのフィールドは本当に自明です。これらは、 / etc / lighttpdの設定ファイルにあるデフォルトです。 。これはデフォルトの設定ファイルからコピーされた新しいファイルなので、必要に応じて変更できます。ドキュメントルートは、Webサーバーに表示される最上位のディレクトリレベルを指定します。フィールド「upload-dirs」には、アップロードを保存するディレクトリの配列が含まれています。システムで見つかったものに対応するユーザー名とグループ名。デフォルトでは、ユーザー「www-data」はこのlighttpdのインスタンスによって作成されたファイルの所有者です。エラーログが「www-data」(少し後で説明します)によって書き込み可能であることを確認する必要があります。
この構成では、ドキュメントルートのディレクトリを‘/ var / www / mysite / html’に変更しましょう。 次に、エラーログを別の名前「/var/log/lighttpd/mysite/error.log」に変更します。次に、必要に応じてポートを8080に変更します。
FastCGIと「setenv」のサポート
これらの2つのモジュールを追加したので、サーバー設定の下のファイルに構成を配置する必要があります(「php」と「php-cgi」の実行可能ファイルが別の場所にある場合は、代わりにそれらを指定します):
fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/tmp/php.socket" )))cgi.assign = ( ".php" => "/usr/bin/php" )
私たちが行ったことは、PHPスクリプトがサーバーから要求された場合、それを処理するためにコンピューター上でPHPインタープリターを起動する必要があることをlighttpdに伝えています。 FastCGIモジュールは、PHPスクリプトを実行するために使用するものです。
クロスオリジンリソースシェアリング(CORS)を許可する必要がある場合は、以下にこの行を追加してください。 setenv.add-response-header =(“ Access-Control-Allow-Origin” =>“ *”)ドメインを1つだけ指定するには、「*」を目的のドメインに置き換えます。
構成ファイルの内容は次のとおりです。
PHPのインストール方法
PHPのサポートが必要な場合は、PHP、特に「php」および「php-cgi」パッケージをインストールする必要があります。 MySQLをサポートするには、「php-mysql」もインストールする必要があります。 PHPコードを実行できるように、構成ファイルでWebサーバーを既に構成しました。
いくつかの追加手順
ログファイル
設定で指定したログファイルの場所はまだ存在しないフォルダにあるため、lighttpdを実行するとエラーがスローされます。まず、フォルダを作成する必要があります:
$ sudo mkdir /var/log/lighttpd/mysite
次に、ログファイルを作成し、ファイルのユーザーとグループの所有権を、構成ファイルで指定されている「www-data」ユーザーに変更します。
$ sudo touch /var/log/lighttpd/mysite/error.log $ sudo chown www-data /var/log/lighttpd/mysite/error.log $ sudo chgrp www-data /var/log/lighttpd/mysite/error.log
次に、構成ファイルを使用してサーバーを実行しようとします。
$ sudo lighttpd -f mysite.conf
インデックスファイルをコピーする
/ var / www/htmlディレクトリにあるインデックスファイルをルートディレクトリにコピーすることを忘れないでください。
$ sudo cp /var/www/html/index.lighttpd.html /var/www/html/mysite/index.html
サーバーの実行
うまくいけば、lighttpdは画面にエラーを印刷せずにバックグラウンドで起動します。ただし、構成内の「include_shell」コマンドの1つで問題が発生しました:
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
この問題も発生した場合、1つのオプションは、それを無効にすることです(行の先頭に「#」を付けることによって)。
#include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
必要な場合、または必要な場合は、それを修正するために、include_shellコマンドで指定されたPerlスクリプトを開き、文字列の1つを変更することもできます。
この行を見つけてください:
my $enabled = “conf-enabled/*.conf”;
問題は、これがこのスクリプトが参照するディレクトリですが、不完全であるということです。私がしたことは、ディレクトリが配置されている場所を$enabled変数に追加することでした。
my $enabled = “/etc/lighttpd/conf-enabled/*.conf”;
変更の適用
特定のサーバーの設定ファイルを変更した後、lighttpdのそのインスタンスを強制終了して再起動する必要があります。そのサーバーのPIDは、「ps」コマンドを使用して簡単に見つけることができます。
lighttpdのインスタンスが1つしかない場合は、「killall」コマンドを実行するだけです。
$ sudo killall lighttpd
ブラウザで表示
サーバーが稼働していて正しく機能していることを確認するには、Webブラウザー(サーバーが何であれ)を開き、アドレスバー「localhost:8080」または「127.0.0.1:8080」と入力します。ページに「プレースホルダーページ」というタイトルが付いている場合、サーバーは実行されており、HTMLページを正しく配信しています。
トラブルシューティング
サーバーの起動時、またはその後でも問題が発生した場合は、トラブルシューティングが必要になる場合があります。ここにいくつかの例とここで見つかった問題を克服する方法があります。
ファイルが適切に処理されるのではなくダウンロードされる
Webブラウザでindex.htmlページを開こうとしたときに、ファイルをレンダリングする代わりにダウンロードする主導権を握った場合は、MIMEタイプが正しく構成されていない可能性があります。
それらを設定するためのPerlスクリプトが実行されていることを確認してください。
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
このコマンドは、さまざまなファイルタイプを適切に処理するようにWebサーバーを構成します。
PHPスクリプトが実行されない
PHPがインストールされていること、および構成ファイルにこのチュートリアルでレイアウトされた設定が含まれていることを確認してください。
HTTP500エラー
これらのエラーについては、さらに調査する必要があります。 1つの原因は、PHPコードのエラーである可能性があります。原因が何であれ、ログファイルを読んで何が起こったのかを調べてください。
結論
適切に構成されたWebサーバーがlighttpdで正常に実行されている必要があります。複数のlighttpdが必要な場合 インスタンスを実行している場合は、各設定ファイルで指定されているポートが互いに異なることを確認してください。異なる場合、lighttpdはエラーをスローします。
生活の質に関するちょっとしたヒント
ディレクトリの完全な所有権を自分自身に与えることにより、rootとしてエディターを実行せずにファイルを管理できます。
$ sudo chown -R your_username /var/www/html/mysite $ sudo chgrp -R your_username /var/www/html/mysite