ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由: Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このガイドはもう維持されていません。

代わりに参照してください:このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

序章


Wikiスタイルのドキュメントは、過去10年間で人気が高まっています。 コミュニティで編集可能なドキュメントプロジェクトは、寄稿者間でワークロードを分散し、公的または私的にアクセス可能にし、簡単に拡張できるシステムを提供します。

さまざまなウィキアプリケーションがあり、それぞれがニーズに応じて長所を持っています。 1つの選択肢はDokuWikiです。これは、簡単にセットアップできる非常に軽量なWikiです。 DokuWikiはデータを保存するために単純なファイル形式を使用するため、データベースを維持する必要はありません。 これにより、移行とスケーリングが簡単になります。

このガイドでは、Ubuntu12.04VPSにNginxサーバーを使用してDokuWikiをインストールする方法について説明します。

NginxとPHPをインストールする


上で述べたように、DokuWikiは多くのウィキのようにデータベースに依存していません。 そのため、MySQL、MariaDB、PostgreSQL、またはその他のリレーショナルデータベース管理システムのインストールを省略し、Webサーバーと処理言語をインストールして構成するだけで済みます。

Webサーバーをインストールします


Webサーバーには、Nginxを選択しています。 Nginxの構文に慣れれば、Nginxのインストールと構成は簡単です。 また、非常に軽量で、DokuWikiソフトウェアとよく一致します。

NginxはUbuntuのデフォルトリポジトリにあります。 aptを使用して今すぐインストールします。

sudo apt-get update
sudo apt-get install nginx

次に、次のコマンドを発行してサーバーを起動できます。

sudo service nginx start

ブラウザでドロップレットのIPアドレスまたはドメイン名にアクセスして、デフォルトのNginxページを表示します。

server_ip_or_domain

これにより、Webサーバーがインストールされ、正しく機能していることが確認されます。

PHPのインストールと構成


DokuWikiはPHPで記述されているため、これを正常に機能させるには、いくつかのコンポーネントをインストールする必要があります。 Apacheとは異なり、NginxにはPHP処理を処理できるモジュールが含まれていないため、代わりに、別の専用コンポーネントに動作するモジュールをオフロードします。

これはaptからもインストールできます。 また、PHPファイルが画像を直接処理できるようにするライブラリをインストールします。

sudo apt-get install php5-fpm php5-gd

存在しないPHPファイルが要求されたときに、プロセッサが類似している可能性のある他のファイルを単純に実行しないように、サービスのセキュリティを強化する必要があります。

ルート権限で構成ファイルを開きます。

sudo nano /etc/php5/fpm/php.ini

検索して調整します cgi.fix_pathinfo 次のようになるようにパラメータを設定します。

cgi.fix_pathinfo=0

完了したら、ファイルを保存して閉じます。

次に、PHPプロセッサを変更して、ローカルインターフェイスのポートではなくソケットを使用して接続を検索します。 ルート権限でこのファイルを開きます。

sudo nano /etc/php5/fpm/pool.d/www.conf

探してください listen ディレクティブを変更し、ソケットファイルを使用するように変更します。

listen = /var/run/php5-fpm.sock

ファイルを保存して閉じます。

これで、PHP側の構成が完了しました。 サービスを再起動して、行った変更を実装します。

sudo service php5-fpm restart

Nginxを構成する


PHPプロセッサをセットアップしましたが、PHPリクエストをそのプロセッサに渡すようにNginxにまだ指示していません。 これと、DokuWikiのインストールに固有の詳細を構成する必要があります。

ルート権限でNginxデフォルトサーバーブロックファイルを開くことから始めます。

sudo nano /etc/nginx/sites-available/default

コメントを削除すると、このファイルは次のようになります。

server {
    root /usr/share/nginx/www;
    index index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        deny all;
    }
}

これを大幅に変更します。 まず、上部のポート80をリッスンするように指示します。 ファイルからその行のコメントを解除するだけです。

サーバー{リッスン80;
root /usr/share/nginx/www;
index index.html index.htm;

. . 。

次に、ディレクトリが要求されたときにHTMLファイルを検索する前に、最初にPHPインデックスファイルを検索するようにインデックスを修正する必要があります。

サーバー{リッスン80;
root /usr/share/nginx/www;
index <span class="highlight">index.php</span> index.html index.htm;

. . 。

サーバーの名前をから変更する必要があります localhost サーバーに関連付けられているドメイン名またはIPアドレスに。 これにより、Webリクエストに正しく一致させることができます。

。 . . ルート/usr/ share / nginx / www;  index index.php index.html index.htm;
server_name <span class="highlight">server_domain_or_IP_address</span>;

location / {

. . 。

とにかくサーバー自体から発信されたリクエストのみを受け入れるように現時点で構成されているため、ドキュメントセクションをコメントアウトできます。

エラー処理を有効にします。 これらの行はすでにファイルに含まれているはずであり、コメントを解除するだけです。

。 . . 場所/ doc / { エイリアス/ usr / share / doc /;  自動インデックスオン;   127.0.0.1を許可します。  すべてを拒否します。   }
<span class="highlight">error_page 404 /404.html;</span>

<span class="highlight">error_page 500 502 503 504 /50x.html;</span>
<span class="highlight">location = /50x.html {</span>
    <span class="highlight">root /usr/share/nginx/www;</span>
<span class="highlight">}</span>

. . 。

エラーセクションで、PHPファイルをプロセッサに渡すロケーションブロックを設定できます。 これはコメントアウトされたセクションにすでにいくらか存在しますが、正しく構成するように注意する必要があります。

特に、 try_files 完全に一致しないPHPファイルを破棄するためのPHP構成の選択に沿ったディレクティブ。 また、 fastcgi_param 正しいスクリプト名をプロセッサに渡して実行するためのディレクティブ。

。 . . 場所〜.php $ { try_files $ uri = 404;  fastcgi_pass unix:/var/run/php5-fpm.sock;  fastcgi_index index.php;  fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;  fastcgi_paramsを含める;  } 。 . . 

この下に、コメントを外すことができる別のコメントアウトされたブロックがあります。 これは無視します .htaccess Nginxはこれらを使用しないため、Apacheがディレクトリごとの構成を実装するために使用するファイル。

さらに、この機会に、DokuWikiが内部で使用しているが、Webからはアクセスできない多くのディレクトリへのアクセスを拒否するブロックを追加します。

。 . . 場所〜/。ht{すべて拒否;  }
<span class="highlight">location ~ /(data|conf|bin|inc)/ {</span>
    <span class="highlight">deny all;</span>
<span class="highlight">}</span>

}

これで、構成ファイルの最後に移動します。 この時点で、ファイルは次のようになります。

サーバー{リッスン80;
root /usr/share/nginx/www;
index index.php index.html index.htm;

server_name <span class="highlight">server_domain_or_IP_address</span>;

location / {
	try_files $uri $uri/ /index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/www;
}

location ~ \.php$ {
	try_files $uri =404;
	fastcgi_pass unix:/var/run/php5-fpm.sock;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include fastcgi_params;
}

location ~ /\.ht {
	deny all;
}

location ~ /(data|conf|bin|inc)/ {
	deny all;
}

}

ファイルを保存して閉じます。

次に、新しい構成を実装するためにWebサーバーを再起動する必要があります。

sudo service nginx restart

サーバーでPHP処理をテストする


実際のDokuWiki構成を開始する前に、サーバーが実際にPHPファイルを処理できることを確認する必要があります。

サーバーがnotで正しく構成されている場合、PHPファイルは処理されるのではなく単にダウンロードされます。 これは確かに私たちが望んでいることではありません。

まず、サーバーのドキュメントルートにPHPテストファイルを作成しましょう(/usr/share/nginx/www). このファイルには、サーバーに関する情報を表示する単純なPHP関数が含まれています。

sudo sh -c 'echo "<?php phpinfo(); ?>" > /usr/share/nginx/www/info.php'

これで、ドメイン名またはIPアドレスに続けてパス「/info.php」を入力して、Webブラウザでこのファイルにアクセスするだけです。

server_domain_or_IP_address /info.php

すべてを正しく構成すると、PHPスクリプトが実行され、次のようなページが表示されます。

これが正しく機能する場合は、作成したファイルを削除して、実際のWikiインストールに進むことができます。

sudo rm /usr/share/nginx/www/info.php

DokuWikiをインストールして構成する


WebサーバーとPHPプロセッサーが正しくセットアップされたので、DokuWikiをダウンロードしてインストールできます。

ユーザーのホームディレクトリで、次のコマンドを入力して、DokuWikiの最新の安定バージョンをダウンロードできます。

cd ~
wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

これにより、tarballが現在のディレクトリにダウンロードされます。 次のように入力して、ディレクトリ構造を抽出します。

tar xzvf dokuwiki-stable.tgz

次のように入力して、tarballを削除できます。

rm dokuwiki-stable.tgz

ディレクトリの名前を、ウィキにアクセスしたいパスに変更しましょう。 我々は使用するだろう wiki このガイドの場合:

mv doku* wiki

ディレクトリをWebルートに移動する必要があります。 これにより、ドメインに続けて入力することでサーバーにアクセスできるようになります /wiki. 今すぐディレクトリを移動します。

sudo mv wiki /usr/share/nginx/www/

続行する前に、いくつかの追加のセキュリティ手順を実行する必要があります。そうしないと、インストーラーは特定の領域にアクセスできないと文句を言います。 移動したディレクトリに移動します。

cd /usr/share/nginx/www/wiki

Webプロセスは、Wiki構造内のいくつかのファイルとディレクトリに特定のアクセス権を持っている必要があります。

sudo chown -R www-data data
sudo chown www-data lib/plugins/
sudo chown www-data conf

これで、インストーラースクリプトを使用してWebブラウザーからDokuWikiをインストールする準備が整いました。

ブラウザで、ドメインまたはIPアドレスに移動し、続いてwikiサブディレクトリに移動して install.php:

server_domain_or_IP_address /wiki/install.php

DokuWikiのインストールページが表示されます。

これは、開始するために入力する必要がある唯一の構成ページです。 タイトルを考えて、管理者アカウントを作成します。

注意すべきことの1つは、設定したACLポリシーです。 これにより、ユーザーがWikiにアクセスする方法が決まります。

終了したら、下部にある[保存]ボタンをクリックします。

この時点で、Wikiがインストールされます。 セキュリティを強化するために、インストールスクリプトを削除する必要があります。 サーバーで、次のように入力します。

sudo rm /usr/share/nginx/www/wiki/install.php

結論


これで、システム上でWikiがセットアップされて実行されているはずです。 DokuWikiは、プラグインとテンプレートをそれぞれ使用して、簡単に拡張およびテーマ化できます。 管理者アカウントにログインし、インターフェイスを介して変更を実装することで、コンテンツの追加とサイトの構成が簡単になります。

ジャスティン・エリングウッド