LAMPスタック(Apache、MySQL、PHP)を使用してUbuntu20.04にOpenEMRをインストールする方法
序章
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
拡張機能をインストールします。
sudo apt update sudo apt install php-xml php-mbstring
両方の拡張機能をインストールした後、変更を有効にするには、ApacheWebサーバーをリロードする必要があります。
sudo systemctl reload apache2
Webサーバーがリロードされると、次のステップに進む準備ができているはずです。
ステップ2—OpenEMR用のMySQLデータベースを作成する
次に、MySQLforOpenEMRでデータベースを作成します。 まず、データベースルートユーザーとしてMySQLにログインします。
sudo mysql
データベースルートユーザーとしてMySQLにログインしたら、次のコマンドを使用してopenemr
という名前のデータベースを作成します。
CREATE DATABASE openemr;
次に、新しいユーザーを作成し、以下のPASSWORD
を選択した強力なパスワードに置き換えて、パスワードを割り当てます。
CREATE USER 'openemr_user'@'localhost' IDENTIFIED BY 'PASSWORD';
次に、openemr
データベースへの新しいユーザー権限を付与します。
GRANT ALL PRIVILEGES ON openemr.* TO 'openemr_user'@'localhost';
これらの変更を有効にするには、次のコマンドを入力します。
FLUSH PRIVILEGES;
特権をフラッシュしたら、MySQLを終了できます。
exit
これで、次のステップに進む準備ができました。
ステップ3—OpenEMR用のPHPの構成
このステップでは、OpenEMRのドキュメントで推奨されているように、php.ini
ファイルにいくつかの変更を加えます。 新しいUbuntu20.04サーバー内のすべての前提条件に従った場合、ApacheWebサーバーに適用されるphp.ini
は/etc/php/7.4/apache2/php.ini
に配置されている必要があります。 PHPのバージョンが異なる場合、このパスは少し異なる場合があります。 必要に応じて調整し、選択したテキストエディタでファイルを開きます。 ここでは、nano
を使用します。
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
を押してから、Y
とENTER
を押して確認します。
次に、変更を有効にするためにApacheWebサーバーをリロードする必要があります。
sudo systemctl reload apache2
Webサーバーがリロードされると、次のステップに進む準備ができているはずです。
ステップ4—OpenEMRをダウンロードする
このステップでは、OpenEMRをダウンロードし、インストール用にファイルを準備します。 開始するには、コマンドwget
を使用してOpenEMRをダウンロードします。このコマンドは、インターネットからファイルを取得します。
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
)で指定されたファイルを使用します。
tar xvzf openemr*.tar.gz
ファイルの抽出が完了すると、openemr-5.0.2.
という名前のディレクトリが作成されます。mv
コマンドを使用して、ディレクトリ名をopenemr
に変更します。
mv openemr-5.0.2 openemr
次に、ディレクトリをHTMLディレクトリに移動します。
sudo mv openemr /var/www/html/
ここで、ディレクトリの所有権を変更する必要があります。 chown
コマンドとR
フラグを使用して、すべてのファイルの所有者とopenemr
に関連付けられたグループをwww-data
に設定します。
sudo chown -R www-data:www-data /var/www/html/openemr
インストールプロセスでは、OpenEMRでは、sqlconf.php
ファイルのアクセス許可を変更して、すべてのユーザーがファイルの読み取りと書き込みを実行できるようにする必要があります。 インストールが完了したら、セットアップを保護するためにこれらの権限をもう一度変更します。 これらの権限は、666
を引数として使用するchmod
コマンドで付与できます。
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セットアップページを表示する必要があります。
Proceed to Step 1
をクリックします。 これで、インストールプロセスのステップ1の新しいOpenEMRセットアップページに移動するはずです。
このチュートリアルのステップ3でOpenEMRデータベースを作成したので、新しいページでデータベースを作成しましたを選択します。 次に、をクリックします。ステップ2に進みます。
これで、ブラウザにOpenEMRセットアップのステップ2が表示されます。
[MySQLサーバーの詳細]セクションのログインフィールドとパスワードフィールドに、手順3で選択したユーザー名とパスワードを入力します。
OpenEMRの初期ユーザーの詳細セクションで、初期ユーザーのログイン名とパスワードを作成します。
最初のユーザーに対して2要素認証を有効にする場合は、2FAを有効にするオプションをクリックします。
次に、DBとユーザーの作成をクリックします。次のページが読み込まれるまでに数分かかる場合があります。 このページでは、ユーザーとデータベースが正常に作成されたことを確認します。
をクリックしてステップ4に進み、続行します。 次のページでは、アクセス制御リストの作成と構成を確認します。
をクリックしてステップ5に進み、続行します。 次のページでは、OpenEMRに必要なPHP構成を示します。 ステップ4ですでに調整したので、現在の構成は要件と一致している必要があります。
をクリックしてステップ6に進み、続行します。 次のページでは、OpenEMR用にApacheWebサーバーを構成する方法を示します。
OpenEMR用にApacheWebサーバーを構成するには、openemr.conf
という名前の新しい構成ファイルを作成します。 nano
エディターを使用して、端末からこれを行うことができます。
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を再起動して、変更が読み込まれるようにします。
sudo systemctl restart apache2
次に、ブラウザに戻り、テーマの選択をクリックします。 次のページで、テーマを選択してProceed to Final Step
をクリックします。
これで、インストールに関する確認の詳細が記載された最終セットアップページに移動するはずです。
このページには、最初のユーザーのユーザー名とパスワードの詳細も表示されます。 ページを離れる前に、これらの詳細を利用できるようにしてください。 準備ができたら、下部にあるリンクをクリックしてOpenEMRの使用を開始します。
インストールを登録するかどうかを尋ねるウィンドウがポップアップ表示されます。 選択したら、最初のユーザー資格情報を使用してOpenEMRにログインします。 ログインすると、ブラウザにOpenEMRダッシュボードが表示されます。
先に進む前に、次の手順に示すように、ファイルのアクセス許可を変更してください。
手順5—ファイルシステムのアクセス許可を変更する
システムのセキュリティを向上させるために、OpenEMRは、インストール後にいくつかのファイルの権限を変更するようにユーザーにアドバイスします。 このステップでは、これらのファイルのアクセス許可を変更して、読み取りおよび書き込みアクセスをさらに制限します。
まず、手順3でアクセス許可を変更したsqlconf.php
ファイルのアクセス許可を変更して、所有者に読み取りおよび書き込みアクセス権を付与し、グループメンバーに読み取りアクセス権のみを付与します。
これらの権限は、644
を引数として使用するchmod
コマンドで付与できます。
sudo chmod 644 openemr/library/sqlconf.php
次に、他のいくつかのファイルのアクセス許可を変更して、ファイルの所有者のみがファイルの読み取りと書き込みを行えるようにします。
次のファイルで600
引数を指定してchmod
コマンドを使用して、これらのアクセス許可を付与します。
sudo chmod 600 openemr/acl_setup.php sudo chmod 600 openemr/acl_upgrade.php sudo chmod 600 openemr/setup.php sudo chmod 600 openemr/sql_upgrade.php sudo chmod 600 openemr/gacl/setup.php 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ページにアクセスしてください。