序章

OpenEMR は、オープンソースの電子健康記録および医療行為管理ツールです。 これは、電子医療記録、処方箋、患者の人口統計追跡、スケジューリング、レポート、および電子請求を管理するために、医師および医療施設によって使用されます。 この発行時点で、OpenEMRは30を超える言語をサポートしています。

このチュートリアルでは、LAMP環境( L inux、 A pache、 M ySQL、 P[ X151X] HP)。

前提条件

  • ルート以外のsudo対応のユーザーアカウントと基本的なファイアウォールを備えたUbuntu20.04サーバー。 これは、Ubuntu20.04初期サーバーセットアップガイドを使用して構成できます。
  • Apache、MySQL、PHPを含む完全にインストールされたLAMPスタックで、HTTPトラフィックを許可するようにファイアウォール設定が調整されています。 LAMPスタックをインストールする手順は、ガイド Ubuntu 20.04 にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法のステップ1から3にあります。 LAMPガイドのステップ4から6は、テスト目的であり、このチュートリアルでは不要であるため、オプションであることに注意してください。

ステップ1—追加のPHP拡張機能をインストールする

LAMPスタックを設定する場合、PHPがMySQLと通信するために必要な拡張機能のセットは最小限でした。 OpenEMRを正しく機能させるには、2つの追加のPHP拡張機能をインストールする必要があります。 aptを使用してサーバーのパッケージリストを更新し、php-xmlおよびphp-mbstring拡張機能をインストールします。

  1. sudo apt update
  2. sudo apt install php-xml php-mbstring

両方の拡張機能をインストールした後、変更を有効にするには、ApacheWebサーバーをリロードする必要があります。

  1. sudo systemctl reload apache2

Webサーバーがリロードされると、次のステップに進む準備ができているはずです。

ステップ2—OpenEMR用のMySQLデータベースを作成する

次に、MySQLforOpenEMRでデータベースを作成します。 まず、データベースルートユーザーとしてMySQLにログインします。

  1. sudo mysql

データベースルートユーザーとしてMySQLにログインしたら、次のコマンドを使用してopenemrという名前のデータベースを作成します。

  1. CREATE DATABASE openemr;

次に、新しいユーザーを作成し、以下のPASSWORDを選択した強力なパスワードに置き換えて、パスワードを割り当てます。

  1. CREATE USER 'openemr_user'@'localhost' IDENTIFIED BY 'PASSWORD';

次に、openemrデータベースへの新しいユーザー権限を付与します。

  1. GRANT ALL PRIVILEGES ON openemr.* TO 'openemr_user'@'localhost';

これらの変更を有効にするには、次のコマンドを入力します。

  1. FLUSH PRIVILEGES;

特権をフラッシュしたら、MySQLを終了できます。

  1. exit

これで、次のステップに進む準備ができました。

ステップ3—OpenEMR用のPHPの構成

このステップでは、OpenEMRのドキュメントで推奨されているように、php.iniファイルにいくつかの変更を加えます。 新しいUbuntu20.04サーバー内のすべての前提条件に従った場合、ApacheWebサーバーに適用されるphp.ini/etc/php/7.4/apache2/php.iniに配置されている必要があります。 PHPのバージョンが異なる場合、このパスは少し異なる場合があります。 必要に応じて調整し、選択したテキストエディタでファイルを開きます。 ここでは、nanoを使用します。

  1. sudo nano /etc/php/7.4/apache2/php.ini

php.iniファイルに移動したら、OpenEMRで推奨されているようにいくつかのオプションの値を変更します。 nanoを使用している場合は、CTRL +Wを使用してこれらのオプションを検索できます。 調整するオプションの前にセミコロン;がある場合は、オプションをコメントアウトするためにセミコロンが使用されているため、必ず削除してください。

次のオプションの値を変更する必要があります。

max_ input_vars

このオプションは、サーバーが1つの関数で使用できる変数の数を制限します。 OpenEMRでは、このオプションの値が3000である必要があります。

/etc/php/7.4/apache2/php.ini
max_input_vars = 3000

max_execution_time

このオプションは、スクリプトが終了するまでに実行できる時間(秒単位)を制限します。 OpenEMRでは、このオプションの値が60である必要があります。

/etc/php/7.4/apache2/php.ini
max_execution_time = 60

max_input_time

このオプションは、スクリプトが入力データを解析できる時間を秒単位で制限します。 OpenEMRでは、このオプションに値-1が必要です。これは、代わりにmax_execution_timeが使用されることを意味します。

/etc/php/7.4/apache2/php.ini
max_input_time = -1

post_max_size

このオプションは、アップロードされたファイルを含む投稿のサイズを制限します。 OpenEMRでは、このオプションの値が30Mである必要があります。

/etc/php/7.4/apache2/php.ini
post_max_size = 30M

memory_limit

このオプションは、スクリプトが割り当てることができるメモリの量を制限します。 OpenEMRでは、このオプションの値が256Mである必要があります。

/etc/php/7.4/apache2/php.ini
memory_limit = 256M

mysqli.allow_local infile

このオプションを使用すると、LOADDATAステートメントを使用してローカルファイルにアクセスできます。 OpenEMRでは、次のオプションをオンにする必要があります。

/etc/php/7.4/apache2/php.ini
mysqli.allow_local_infile = On

オプションの調整が完了したら、ファイルを保存して終了します。 nanoを使用している場合は、CTRL + Xを押してから、YENTERを押して確認します。

次に、変更を有効にするためにApacheWebサーバーをリロードする必要があります。

  1. sudo systemctl reload apache2

Webサーバーがリロードされると、次のステップに進む準備ができているはずです。

ステップ4—OpenEMRをダウンロードする

このステップでは、OpenEMRをダウンロードし、インストール用にファイルを準備します。 開始するには、コマンドwgetを使用してOpenEMRをダウンロードします。このコマンドは、インターネットからファイルを取得します。

  1. wget https://downloads.sourceforge.net/project/openemr/OpenEMR%20Current/5.0.2.1/openemr-5.0.2.tar.gz

次に、tarコマンドを使用してファイルを抽出します。 xvzf引数は、ファイルを抽出するようにシェルに指示し(x)、抽出したファイルに名前を付け(v)、gzipでファイルを解凍するために使用されます。 (z)、コマンド(f)で指定されたファイルを使用します。

  1. tar xvzf openemr*.tar.gz

ファイルの抽出が完了すると、openemr-5.0.2.という名前のディレクトリが作成されます。mvコマンドを使用して、ディレクトリ名をopenemrに変更します。

  1. mv openemr-5.0.2 openemr

次に、ディレクトリをHTMLディレクトリに移動します。

  1. sudo mv openemr /var/www/html/

ここで、ディレクトリの所有権を変更する必要があります。 chownコマンドとRフラグを使用して、すべてのファイルの所有者とopenemrに関連付けられたグループをwww-dataに設定します。

  1. sudo chown -R www-data:www-data /var/www/html/openemr

インストールプロセスでは、OpenEMRでは、sqlconf.phpファイルのアクセス許可を変更して、すべてのユーザーがファイルの読み取りと書き込みを実行できるようにする必要があります。 インストールが完了したら、セットアップを保護するためにこれらの権限をもう一度変更します。 これらの権限は、666を引数として使用するchmodコマンドで付与できます。

  1. sudo chmod 666 /var/www/html/openemr/sites/default/sqlconf.php

sqlconf.phpファイルのアクセス許可を変更すると、次の手順に進むことができます。

ステップ4—OpenEMRをインストールする

このステップでは、Webブラウザーを介してOpenEMRをインストールし、ApacheWebサーバーを構成します。 Webブラウザーを開き、http://server_ip/openemrに移動して、server_ipをサーバーのIPアドレスに置き換えます。

すべてが正常に機能している場合、ブラウザはOpenEMRセットアップページを表示する必要があります。

OpenEMR setup page

Proceed to Step 1をクリックします。 これで、インストールプロセスのステップ1の新しいOpenEMRセットアップページに移動するはずです。

OpenEMR setup page — Step 1

このチュートリアルのステップ3でOpenEMRデータベースを作成したので、新しいページでデータベースを作成しましたを選択します。 次に、をクリックします。ステップ2に進みます。

これで、ブラウザにOpenEMRセットアップのステップ2が表示されます。

OpenEMR setup page — Step 2 MySQLサーバーの詳細セクションのログインおよびパスワードフィールドに、手順3で選択したユーザー名とパスワードを入力します。

OpenEMRの初期ユーザーの詳細セクションで、初期ユーザーのログイン名とパスワードを作成します。

最初のユーザーに対して2要素認証を有効にする場合は、2FAを有効にするオプションをクリックします。

次に、DBとユーザーの作成をクリックします。次のページが読み込まれるまでに数分かかる場合があります。 このページでは、ユーザーとデータベースが正常に作成されたことを確認します。

OpenEMR setup page — Step 3

をクリックしてステップ4に進み、続行します。 次のページでは、アクセス制御リストの作成と構成を確認します。

OpenEMR setup page — Step 4

をクリックしてステップ5に進み、続行します。 次のページでは、OpenEMRに必要なPHP構成を示します。 ステップ4ですでに調整したので、現在の構成は要件と一致している必要があります。

OpenEMR setup page — Step 5

をクリックしてステップ6に進み、続行します。 次のページでは、OpenEMR用にApacheWebサーバーを構成する方法を示します。

OpenEMR setup page — Step 6

OpenEMR用にApacheWebサーバーを構成するには、openemr.confという名前の新しい構成ファイルを作成します。 nanoエディターを使用して、端末からこれを行うことができます。

  1. sudo nano /etc/apache2/sites-available/openemr.conf

ファイル内に、次のディレクティブを貼り付けます。

/etc/apache2/sites-available/openemr.conf
 <Directory "/var/www/html/openemr">
      AllowOverride FileInfo
      Require all granted
  </Directory>
  <Directory "/var/www/html/openemr/sites">
      AllowOverride None
  </Directory>
  <Directory "/var/www/html/openemr/sites/*/documents">
      Require all denied
  </Directory>

ファイルを保存して閉じます。 次に、Apacheを再起動して、変更が読み込まれるようにします。

  1. sudo systemctl restart apache2

次に、ブラウザに戻り、テーマの選択をクリックします。 次のページで、テーマを選択してProceed to Final Stepをクリックします。

OpenEMR setup page — Step 7

これで、インストールに関する確認の詳細が記載された最終セットアップページに移動するはずです。

OpenEMR setup page — Final Step

このページには、最初のユーザーのユーザー名とパスワードの詳細も表示されます。 ページを離れる前に、これらの詳細を利用できるようにしてください。 準備ができたら、下部にあるリンクをクリックしてOpenEMRの使用を開始します。

インストールを登録するかどうかを尋ねるウィンドウがポップアップ表示されます。 選択したら、最初のユーザー資格情報を使用してOpenEMRにログインします。 ログインすると、ブラウザにOpenEMRダッシュボードが表示されます。

OpenEMR dashboard

先に進む前に、次の手順に示すように、ファイルのアクセス許可を変更してください。

手順5—ファイルシステムのアクセス許可を変更する

システムのセキュリティを向上させるために、OpenEMRは、インストール後にいくつかのファイルの権限を変更するようにユーザーにアドバイスします。 この手順では、これらのファイルのアクセス許可を変更して、読み取りおよび書き込みアクセスをさらに制限します。

まず、手順3でアクセス許可を変更したsqlconf.phpファイルのアクセス許可を変更して、所有者に読み取りおよび書き込みアクセス権を付与し、グループメンバーに読み取りアクセス権のみを付与します。

これらの権限は、644を引数として使用するchmodコマンドで付与できます。

  1. sudo chmod 644 openemr/library/sqlconf.php

次に、他のいくつかのファイルのアクセス許可を変更して、ファイルの所有者だけがファイルの読み取りと書き込みを行えるようにします。

次のファイルで600引数を指定してchmodコマンドを使用して、これらのアクセス許可を付与します。

  1. sudo chmod 600 openemr/acl_setup.php
  2. sudo chmod 600 openemr/acl_upgrade.php
  3. sudo chmod 600 openemr/setup.php
  4. sudo chmod 600 openemr/sql_upgrade.php
  5. sudo chmod 600 openemr/gacl/setup.php
  6. sudo chmod 600 openemr/ippf_upgrade.php

これで、ファイルの権限設定がより安全になります。

ファイルのアクセス許可を変更することに加えて、OpenEMRのドキュメントは、OpenEMRの各コンポーネントを保護するための追加の手順を強く推奨しています。 これらの手順には、インストール後のOpenEMRでのスクリプトの削除、強力なパスワードの適用、HTTPSのみのトラフィックの有効化、ファイアウォールの調整、およびApacheの強化が含まれます。 OpenEMRのインストールを最適に保護する方法の詳細については、OpenEMRの[セキュリティドキュメント]( https://www.open-emr.org/wiki/index.php/Securing_OpenEMR )にアクセスしてください。

結論

これで、Apache、MySQL、およびPHPを使用してUbuntu20.04サーバーにOpenEMRがインストールされました。 ドメイン名をサーバーにポイントする手順については、ガイド共通ドメインレジストラからDigitalOceanネームサーバーをポイントする方法に従ってください。 OpenEMRのドキュメントについては、OpenEMRWikiページにアクセスしてください。