2020年6月19日金曜日

OS(Unix) 第7回 viエディタ

目的:Linuxでファイルを編集するときに利用するviコマンドは、Linuxを扱う上で欠かせないものです。
今回は、viコマンドの基本を理解するとともに、便利なコマンドも身に付け、自由にviを使いこなせるようにしてください。

[前回の復習]

[今回の内容]


[課題]
授業の中で指定された課題を、下記のリンクから提出しなさい。
締め切りは次回授業開始まで。

OS(Unix) 第6回 5章よく使うコマンド2

目的:今回はLInuxを利用する上でよく使うコマンドを学んでいきます。特にtail -fやdiffは使いこなせると色々な場面で活用できますので、身につけて下さい。
今回は、僕自身がLinuxと出会った体験談を話しているので、Linuxと自身との今後の関わりについて考えるきっかけとなって欲しいです。

[前回の復習]

[今回の内容]

僕とLinuxとの出会い

[課題]
授業の中で指定された課題を、下記のリンクから提出しなさい。
締め切りは次回授業開始まで。

情報数学2 第7回 回帰分析1:最小二乗法

目的:今回から回帰分析について、何回かに分けて勉強をしていきます。その中でもよく使われる最小二乗法について勉強します。
最小二乗法は、計算するためのツールが豊富にありますが、まず数学的な基礎を理解して、どのような計算方法で回帰問題を解いているかを理解してください。

[前回の復習]

[今回の内容]

[課題]
授業の中で指定された課題を、下記のリンクから提出しなさい。
締め切りは次回授業開始まで。

情報数学2 第6回 Pythonで線形計画法

目的:以前の授業で、線形計画法をエクセルのソルバーを使って学習しました。今回は、Microsoft Azure NotebooksでPythonを使いながら、線形計画法を解いていきます。
線形計画法の内容を再確認して、Pythonを使った手法を身につけましょう。
今回は、「僕の数学の分野」ということで、僕自身がやっている数学の分野を簡単に説明しています。数学を何故勉強するのか一度考える機会として下さい。

[前回の復習]

[今回の内容]

僕の数学の分野

[課題]
授業の中で指定された課題を、下記のリンクから提出しなさい。
締め切りは次回授業開始まで。

2020年6月11日木曜日

水野研究室(データイノベーション研究室)について

水野研究室(データイノベーション研究室)について(研究室配属のための資料)

[目的]
データサイエンスを利用して、社会の課題解決を目的に研究をしています。社会課題は様々なものがあり、従って医療、福祉、航空、教育などデータの種類も様々です。このようにデータサイエンスによって、社会貢献を試みています。

[研究室に適した人材]
自分の身につけた知識や技術を活用して、社会の課題を解決したいと考える学生
現時点では、データサイエンスに関する知識がなくても、身につけたいと考えている学生

[身につけたい知識・技術]
データサイエンスには「サーバ・ネットワーク(クラウド)」「データ(データベース・API)」、「分析知識・技術(数学的要素)」が必要です。
3年次後期は、サーバ環境を構築でき、基本的なデータベースを構築することを学びます。この基本的な知識をもって、4年時の卒業研究、及び大学院の修士研究に望みます。

[研究例]
・航空機運航の最適化
・特定健康診断データを用いた地域医療分析(糖尿病、フィットネスバンドの利用)
・夕焼け予報の開発、観光資源の発掘(ドライブレコーダからの分析)
・太陽光パネルにおける鉄原子の拡散
・伊豆半島の観光活性化 (フリーWiFiデータから分析)
・ネットワークログの分析(ビッグデータ解析)
・スマートスピーカーを使った高齢者支援の効果(健康リコメンド)
など、詳しくは問い合わせてください。

[連絡先]
水野信也 mizuno.shinya(アットマーク)sist.ac.jp
研究室説明会を随時開きますので、気軽に問い合わせてください。
外部の方、社会人の方、研究生、大学院修士課程希望の方も歓迎します。
外部向けのゼミも定期的に開催していますので、興味がありましたらご連絡ください。

2020年6月1日月曜日

OS(Unix) 5回目:第4章「正規表現とパイプ」

目的:Linuxで処理を行う時に、リダイレクト、パイプ、正規表現は大きな効果を発揮します。これらのコマンドや書式を理解して使いこなせることが重要です。
実際にコマンドを打ち込みながら動作を確認して、内容を理解して下さい。

[前回の復習]

[今回の内容]

[課題]
動画または資料の最後にある課題を解いて、下記のURLから提出しなさい。
締め切りは次回授業開始まで。

情報数学2 5回目:数学基礎(よく使う関数など)

目的:Jupyter-Notebookを利用して、微分やグラフなど基礎的な数学をプログラミングしてみます。
今回利用する関数は、機械学習で利用する代表的な関数ですので、今後利用する関数です。
またPythonのsympyライブラリを使うことで、数学のプログラミング化が楽になります。

[前回の復習]

注意:動画はMicrosoft Azure NotebooksではないJupyter-Notebookの環境で実施していますが、内容は変わりません。
実習のためのファイルは適宜作成して下さい。

[課題]
動画またはドキュメントの最後の課題を実施して、Jupyter-NotebookのファイルをPDFに変換して提出しなさい。
Markdownで自分の学籍番号と名前をファイルに入れて下さい。
https://forms.office.com/Pages/ResponsePage.aspx?id=Bb0r1yPrmEGObOE4I--qiMAR4zes1HJClm9qevKs6vZUQlMxSk1BQkZJTk45NDdYMVozWUs5RjhaQi4u

情報数学2 4回目:数学基礎(ベクトル、行列、連立方程式など)

目的:作成したJupyter-Notebookの環境を利用して、実際にプログラムを動かしながら、数学の基礎を確認していきます。
今まで学習した数学の知識をプログラムを通して利用することで、数学の活かし方を学びます。
解析環境を必要に応じて構築ができ、プログラムを介して解析ができるまでの流れを身につけてもらいたいです。
今回の数学知識は基本的なものですが、機械学習を実施する時には欠かせない知識ですので覚えておいて下さい。

[前回の復習]
前回は環境準備でしたので、復習はありません

[今回の内容]

[課題]
動画またはドキュメントの最後の課題を実施して、Jupyter-NotebookのファイルをPDFに変換して提出しなさい。
Markdownで自分の学籍番号と名前をファイルに入れて下さい。
PDFの変換は前回の資料を参考にして下さい。

情報数学2 3回目:Microsoft Azure Notebooks環境準備

目的:情報数学は数学知識とコンピュータでの活用が求められます。今回は機械学習で良く用いられるJupyter-Notebookという環境があります。主にプログラム言語のPythonで動く環境です。その中で、Microsoft Azure Notebooksで実習を進めていきます。Microsoft Azure Notebooksは大学で配布しているOffice365アカウントで始めることができるので、スムーズに開始することが出来ます。今回はそのための準備をしていきます。

(1) 前回の復習

(2) Microsoft Azure Notebooksのアカウント作成と簡単な実行
ここでは、アカウントを作成し簡単なコードを実行することで、環境の確認をします。
次のページの下の方にJupyter-Notebookでのコード実行が書いてあるので参考にして下さい。

(3) Microsoft Azure NotebooksでのMarkdownの利用
コードを実行するだけでなく、説明文を入れることも大事になります。この時、Markdownを利用すると便利ですので、実行できるようにして下さい。

(4) Microsoft Azure Notebooksから資料の提出(PDF)
Microsoft Azure NotebooksはメニューからPDFを作成しようとすると日本語が文字化けする現象があります。
いくつかの方法がありますが、今回はHTMLを作成後、PDFを作成して提出する方法を紹介します。
作成したNotebookからPDFを作成して下さい。

[レポート問題]
上記で作成したNotebookに自分の学籍番号と名前をMarkdownで書いたものを、PDF化して下記のリンクから提出しなさい。
締め切りは次回授業開始まで。

情報数学2 2回目:最適化の基礎

目的:
今回は高校数学でも勉強した「線形計画法」を題材にして、最適化の基礎を学んでいきます。
高校数学のように、「手」で解くことで解法を理解した後、エクセルのソルバー 機能を用いて線形計画問題を解いていきます。
Microsoftエクセルがインストールされている必要があります。また追加でソルバーをインストールする必要があるので、「Excel ソルバー・分析ツールの追加方法」を参照してください。

[資料]
・Excel ソルバー・分析ツールの追加方法 

レポート提出:レポート提出は下記から行ってください。レポートの内容は動画または参考資料に記載してあります。

提出期限は次回授業開始時までです。 

OS(Unix) 4回目:第3章「基本的なコマンド」

目的:Linuxはコマンドで操作をしていくCLI(Command Line Interface)のため、基本的なコマンドを覚え、Linuxを操作する必要があります。
今回はLinuxの最も基本的なコマンドをいくつか実習をしながら思えていきます。
特に、パスという概念に注意して、現在ファイルディレクトリのどこで操作をしているかを考えましょう。

[前回の復習]

[今回の内容:基本的なコマンド]

[課題]
動画または資料の課題を実施して、下記のURLから提出しなさい。締め切りは次回授業開始までとする。

OS(Unix) 3回目:第1章「Linuxとは」

目的:Linuxの基本をLinux標準教科書(Ver.3.0.2, LPI-Japan)を利用して学んでいきます。最初に利用するテキストを入手をして下さい。授業の中で使っている番号はテキストの中のものを利用していますので、テキストで参照して下さい。今回はその第1章「Linuxとは」を見ていきます。Linuxがどのような経緯で誕生したのか、Linuxの特徴、Linuxのディストリビューションなどを理解していきましょう。Linuxの誕生の歴史は現在の技術者の心構えとして大事な部分も多いです。Linuxの誕生と発展の経緯を理解して、今後技術者になるための大事な部分を身に付けて下さい。
授業では触れられない部分は、自分でテキストを読み、理解を深めて下さい。

[テキストの入手方法]
自分でLPI-Japanからダウンロードする場合は、次の動画を参照して下さい。


[課題]
次のリンクから、課題を実施しなさい。締め切りは次回授業開始時まで。

OS(Unix) 2回目 : CentOS7のインストール(Virtualbox利用)

目的:
OS特にUnixの授業では実習を交えながら授業を進めていきます。今回は授業を進める時の環境を整えていきます。環境は、自身のPC上にVirtualbox6.1をインストールして、そこにCentOS7.7を設定して起動できるようにしていきます。

資料:VirtualboxのインストールとCentOS7のインストール

注意
VirtualboxとCentOS7のダウンロード量は大きくなります。制限の無いインターネット環境下で行って下さい。

レポート提出:
teratermでsshでログインした時のスクリーンショットを下記のリンクに画像(png, jpegなど)で提出してください。
接続できない場合は、IPアドレスを確認する、Virtualboxでブリッジ接続ではなく、NAT接続のままになっているなど問題点を探して、解決できるようにしてください。

添付ファイルはありません。 

2020年5月20日水曜日

2020コンピュータシステム実践演習1

2020コンピュータシステム実践演習1の内容をここに書いておきます。
リンクは学内者でないと見れないサイトも含まれています。

実習内容「Webシステムと機械学習実行環境の構築実習」
この実験では、Linux(CentOS7)上にWebシステム環境と機械学習実行環境を構築していきます。
WebシステムではLAMPと言われる環境が広く利用されています。LAMP環境を構築して、データの流れをコントロールすることは、データ可視化につながります。
また機械学習実行環境の一つであるJupyter-Notebookを構築して、pythonやRのプログラミングを利用できることで、分析の範囲が広がります。
本実験では、このようなスキルを身に付けて、システム構築やデータ分析の基本を学びましょう。

[1回目の内容]
1-1 AWS Educateの登録
次のAWS登録資料をみて、AWS Educateのアカウントを作成し、ログインできるようにしてください。次回以降、このアカウントを利用してAWSでの実習を行います。またAWSからの返信には数日かかる可能性があります。
[PDFファイル]
https://sistkanri-my.sharepoint.com/:b:/g/personal/mizuno_shinya_sist_ac_jp/EfuJQhQdrjtKreU-evMWMZwBUU8-QoW2XYXTvGNHKosvKQ?e=J8tjJv
[動画]
https://web.microsoftstream.com/video/4780160d-3d6e-48f5-aa57-69d2ef3c89f6

1-2 サーバ構築環境の実習
機械学習を行う場合、サーバを立てる必要があります。
今回はVirtualboxを利用して自分のPCの中にサーバを構築していきます。
サーバを自由に構築できるスキルを身に付け、研究等の環境を自分で構築できるようにします。
今回はCentOS7を設定して、SSHでの接続を行うところまで実施します。
[資料]
https://mizunolab.sist.ac.jp/2020/04/1-virtualboxcentos7.html
[環境]
仮想化ソフトウェア:Virtualbox6.1 https://www.virtualbox.org/
OS : CentOS-7-x86_64-Minimal-1908.iso 
isoファイルは上記資料のURLを参照して下さい。
サーバ機能:LAMP環境の実装
[レポート提出]
下記のリンクから、課題を行いなさい。
https://forms.office.com/Pages/ResponsePage.aspx?id=Bb0r1yPrmEGObOE4I--qiMAR4zes1HJClm9qevKs6vZURVI3WjZRUU5RUUFDS04zTkFETVBYWDBVTC4u
締め切り期限:次回授業開始時まで


[2回目の内容]
今回の実習では、前回構築したCentOS7のサーバにLAMP環境やJupyter-Notebookの環境を設定していきます。
今後、研究や仕事をする上でWebシステムの基本形であるLAMP環境は技術者として欠かせません。
また、データ解析する環境の一つである、Jupyter-Notebookを自分で構築できることで、データ解析の幅が広がります。
両方ともとても重要な技術ですので、しっかりできるようにしてください。
また、前回作成したAWSアカウントは既に、僕の作成したクラス「MizunoClass2020」に登録をしてあります(課題提出者)
今までVirtualboxの環境でやっていたことを、AWSの環境でもできるようにしましょう。
[2-1]
目的:CentOS7でのLAMP環境の構築とwordpressの構築 (実習時間60分)
説明:最初に資料の最初のリンクを参考にして、CentOS7を利用してのLAMP環境の構築を実施してください。PHP、MySQL、phpMyAdminをインストールして、ユーザなど設定後、次のリンクでwordpressの構築をやってください。
[資料]
https://mizunolab.sist.ac.jp/2020/04/centos7lamp.html
https://mizunolab.sist.ac.jp/2020/05/wordpress.html
[課題2-1]
wordpressにテキスト(学籍番号を必ず入れる)と画像を投稿したサイトのスクリーンショットを提出してください。

[2-2]
目的:Jupyter-Notebookの環境の構築 (実習時間40分)
説明:CentOS7にAnacondaというpython系環境構築ソフトウェアを入れて、anacondaを介してJupyter-Notebookの環境を構築します。Pythonの実行環境だけでなく、Rの実行環境も整えます
[資料]
https://mizunolab.sist.ac.jp/2020/05/jupyter-notebookcentos7.html
[課題2-2]
構築したJupyter-Notebookの環境で、Python環境にて、print('自分の学籍番号')を入れたコードを実行した画面のスクリーンショットを提出しなさい。

[2-3]
目的:Amazon Web Service(AWS) Educateでのサーバ構築 (実習時間40分)
説明:前回申請したAWS Educateのアカウントを利用して、CentOS7上にWebサーバを構築します。実際のクラウド環境でサーバを立ててみます。
[資料]
https://mizunolab.sist.ac.jp/2019/11/aws-educate-2.html
[課題2-3]
実際にAWS上で構築したサーバの「パブリックIP」または「パブリックDNS」を投稿してください。
このサーバは、こちらでの確認があるため、次の授業終了時まで、起動しておいてください。次の授業終了時刻後、各自必ずサーバをTerminateしてください。Terminateしないと料金が発生する可能性があります。

[レポート提出]
下記のリンクから、課題を行いなさい。
https://forms.office.com/Pages/ResponsePage.aspx?id=Bb0r1yPrmEGObOE4I--qiMAR4zes1HJClm9qevKs6vZUOUpJWEUwTVdEMlBCN0YwOEFDOTk1MTJTSS4u
締め切り期限:次回授業開始時まで


[3回目の内容]
目的:作成したJupyter-Notebookの環境を利用して、実際にプログラムを動かしながら、数学の基礎を確認していきます。
今まで学習した数学の知識をプログラムを通して利用することで、数学の活かし方を学びます。
解析環境を必要に応じて構築ができ、プログラムを介して解析ができるまでの流れを身につけてもらいたいです。
今回の数学知識は基本的なものですが、機械学習を実施する時には欠かせない知識ですので覚えておいて下さい。

[3-1]
Jupyter-Notebook上での情報数学入門(ベクトル、行列、連立方程式)(60分)
目的:Jupyter-Notebookを利用して、ベクトル、行列、連立方程式など基礎的な数学をプログラミングしてみます。
[資料]
動画:https://web.microsoftstream.com/video/febe616f-2956-4dd6-a325-a0cd72e2ed01
資料:https://sistkanri-my.sharepoint.com/:b:/g/personal/mizuno_shinya_sist_ac_jp/EatUE-X4a2xPt3T97UPCgesBaB9_7sycfKg1eUBAGZrTLA?e=EB00PD

[3-2]
Jupyter-Notebook上での情報数学入門(代表的な関数、微分、逆関数)(60分)
目的:Jupyter-Notebookを利用して、微分やグラフなど基礎的な数学をプログラミングしてみます。
動画:https://web.microsoftstream.com/video/ef9516ac-5bb4-455a-86d9-f0396b0a7105
資料:https://sistkanri-my.sharepoint.com/:b:/g/personal/mizuno_shinya_sist_ac_jp/EbaJk42FDeJLprH2GwV2Q04B2MmbGaPMRM1D7cu0QV-CNg?e=3jjY4s

[課題3-1]
動画またはドキュメントの最後の課題を実施して、Jupyter-NotebookのファイルをPDFに変換して提出しなさい。
Markdownで自分の学籍番号と名前をファイルに入れて下さい。
[課題3-2]
動画またはドキュメントの最後の課題を実施して、Jupyter-NotebookのファイルをPDFに変換して提出しなさい。
Markdownで自分の学籍番号と名前をファイルに入れて下さい。
(提出の時の注意)
今までの設定では、Jupyter-NotebookのFile->Download as->PDF でPDFファイルを作ることができません。
今回はHTMLファイルからPDFを作成する方法を紹介します。
https://web.microsoftstream.com/video/fb023f80-0169-4a12-a5a3-6c62c60654f3
今回は実施しなかったですが、Tex環境を構築して、Jupyter-Notebookから直接PDFファイルを生成することができます。
チャレンジできる人はやってみて下さい。
https://mizunolab.sist.ac.jp/2020/05/latex.html

課題の中でmarkdownを用いる場合があります。Markdownは下記をみて下さい。
https://web.microsoftstream.com/video/5149675c-a6f4-4537-8595-19122427c928

(課題提出リンク) 締め切り:次回授業開始時まで
https://forms.office.com/Pages/ResponsePage.aspx?id=Bb0r1yPrmEGObOE4I--qiMAR4zes1HJClm9qevKs6vZURE9MRFdCNEtKUU9OS0RCRUJJUUYzMVI1Ti4u

 以上です。

2020年5月9日土曜日

ラボ – CyberOps Workstation 仮想マシンのインストール

ラボ – CyberOps Workstation 仮想マシンのインストールの補足をします。
基本的に資料通りですが、インストールの時にうまくいかないことがあるので、補足していきます。

(1) Virtualboxのインストール
https://www.virtualbox.org/
からダウンロードして、インストールしてもらえれば大丈夫です。
僕は、version6.1をインストールしています。
必要ならば、https://mizunolab.sist.ac.jp/2020/04/1-virtualboxcentos7.html  を参考にして下さい。

(2) 仮想OSイメージのダウンロードとインポート
資料の「ステップ 2: 仮想マシンのイメージ ファイルのダウンロード.」のリンクから、cyberops_workstation.ova をダウンロードして下さい。3GBほど、結構時間がかかります。
virtualboxに設定していきます。
資料の流れで確認していきます。斜線部分がマニュアル部分です。

a. [VirtualBox] を開きます。[ファイル(File)] > [仮想アプライアンスのインポート...(Import Appliance...)] をクリックして、仮想マシンのイメージをインポートします。
b. 新しいウィンドウが表示されます。.OVA ファイルの場所を指定し、[OK] をクリックします。
continueをクリックします。

c. 新しいウィンドウに、OVA アーカイブの推奨設定が表示されます。ウィンドウの下部にある [すべてのネットワークカードの MAC アドレスを再初期化(Reinitialize the MAC address of all network cards)] ボックスをオンにします。その他の設定はすべてデフォルトのままにしておきます。[インポート(Import)] をクリックします。
今回は図のように「include all network adapter MAC addresses」を指定しました。importをクリックします。
仮想OSが作成されました。

(3) 仮想OSの調整
setting->networkからネットワークの確認をします。bridge接続になっていることを確認します。ブリッジ接続になっていれば大丈夫です。
Displayをクリックして、Scale Factorで画面サイズを調整します。僕は250%程度がちょうどよかったです。
OKを押します。
startで起動します。
ログインして画面サイズを確認します。調整が必要ならば、再度画面サイズを調整して下さい。
IPアドレスの確認をします。ターミナルを開いて「ifconfig」を実行します。
IPアドレスを確認したら、sshで接続をしてみます。macの場合はterminalから、Windowsの場合はteratermなどを使います。
ssh接続は必要に応じて使っていきます。ここではvirtualboxのGUI画面の大きさを調整して、virtualbox上で実習ができる環境を整えておいて下さい。

2020年5月4日月曜日

Latexの環境を導入

今回は数学系論文でよく使われるLatexの設定をします。
この実習は
https://mizunolab.sist.ac.jp/2020/04/1-virtualboxcentos7.html
ができている前提で実施します。
この実習を行うことでJupyter-NotebookでのPDF出力も可能になります。
TexLiveのisoファイルが3.7GB程ありますので、ゲストOSの容量に注意してください。
ただし、Tex環境の確認でhttpdを利用したいので、httpdのインストールは
https://mizunolab.sist.ac.jp/2020/04/centos7lamp.html
をみてください。

(1) TEX環境の導入
TEXLive2020のダウンロード
ネットワークインストールも可能ですが、エラーも多いので、ISOファイルをダウンロードします。3.7GBあるので容量に注意
(base) [root@localhost ~]# wget http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/Images/texlive2020.iso

wgetコマンドがない場合は、下記でインストール
# yum install wget

マウントする
(base) [root@localhost ~]# mkdir /media/software
(base) [root@localhost ~]# mount -o loop texlive2020.iso /media/software/
(base) [root@localhost ~]# cd /media/software/
[root@localhost software]# ./install-tl

/usr/bin/env: perl: そのようなファイルやディレクトリはありません
と出た場合は、下記でインストール
# yum install perl

実行
(base) [root@localhost software]# ./install-tl
下記のようなエラーが出た場合



(base) [root@localhost software]# yum install perl-Digest-MD5
を実行する


再度インストールをします。
(base) [root@localhost software]# ./install-tl
デフォルトの設定で「i」を入力してインストール
インストール終了後
環境変数の追加
[root@localhost ~]# vi /etc/profile
export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:$INFOPATH
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:$PATH

今回は全ユーザで使えるように/etc/profileに設定します。
[root@localhost ~]# source /etc/profile

日本語フォントのダウンロード
[root@localhost ~]# mkdir /usr/share/fonts/japanese
[root@localhost ~]# mkdir /usr/share/fonts/japanese/TrueType

ここでエラーが出た場合
[root@localhost software]# mkdir /usr/share/fonts/japanese
mkdir: ディレクトリ `/usr/share/fonts/japanese' を作成できません: そのようなファイルやディレクトリはありません
[root@localhost ~]# mkdir -p /usr/share/fonts/japanese
でオプションでpを付けて実施してください。


[root@localhost ~]# yum install unzip
[root@localhost ~]# unzip IPAfont00303.zip 
[root@localhost ~]# unzip IPAexfont00201.zip 

[root@localhost ~]# mv IPAfont00303/*.ttf /usr/share/fonts/japanese/TrueType/
[root@localhost ~]# mv IPAexfont00201/*.ttf /usr/share/fonts/japanese/TrueType/
[root@localhost ~]# fc-cache -fv

ここで
[root@localhost ~]# fc-cache -fv
-bash: fc-cache: コマンドが見つかりません
と出た場合
[root@localhost ~]# yum install fontconfig
でインストールしてください。

ルートディレクトリにpdfファイルを作成して、ブラウザから確認します。
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# vi test.tex

\documentclass[a4j]{jarticle}
\begin{document}
こんにちは\LaTeX
\end{document}

[root@localhost html]# platex test
[root@localhost html]# dvipdfmx test

ブラウザでPDFファイルを確認
http://IPアドレス/test.pdf

アンマウントしておきます。
(base) [root@localhost ~]# umount /media/software/

(2) Jupyter-NotebookでのPDFファイル作成
ここまででLatex環境ができていれば、Jupyter-NotebookでPDF作成も可能です。
Jupyter-Notebookの環境設定は
https://mizunolab.sist.ac.jp/2020/05/jupyter-notebookcentos7.html
で確認してください。
以上です。

2020年5月3日日曜日

Jupyter-Notebookのインストール(CentOS7)

CentOS7にAnacondaをインストールして、Anaconda経由でpython環境をインストールしながら、Jupyter-Notebookの環境を作成してきます。
前提条件として、CentOS7がインストールされていることが必要です。
https://mizunolab.sist.ac.jp/2020/04/1-virtualboxcentos7.html
必須ではありませんが、下記を実施後の方がわかりやすいかもしれません。
https://mizunolab.sist.ac.jp/2020/04/centos7lamp.html

また以前にUbuntu16.04にインストール方法を書いていますので参考にしてください。ただし、リンクや利用するバージョンが変わっています。最後のRのインストールも変わっています。
https://mizunolab.sist.ac.jp/2019/01/pythonranacondajupyter-notebook.html

(1) Anacondaのインストール
wgetを使える環境を整えます
[root@localhost ~]# yum install wget

次にAnaconda(522MB)のダウンロードをします。
[root@localhost ~]# wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
Anacondaのインストール
[root@localhost ~]# bash Anaconda3-2020.02-Linux-x86_64.sh 
Enterを押して開始する
ライセンスに同意(yes)
インストール場所はそのまま(何も入力しない)
Anacondaのパス設定を利用する(yes)
インストールが完了
インストール後、condaコマンドが使えるか確認します。
ホームディレクトリで、「.bashrc」があるか確認します。
[root@localhost ~]# ls -la
この.bashrcを再読み込みして環境変数を反映させます。
[root@localhost ~]# source .bashrc
condaコマンドでインストールされているバージョンを表示します。
(base) [root@localhost ~]# conda -V
これでパスが反映されました。

(2) Jupyter-Notebookの設定
これは、
の「(2) jupyter-notebookの設定」 と同様の設定をしますので、このリンクをみてください。ただし、今回の実習ではアクセスするパスワードを「CentOS7」とします。
[注意]
今回は実習として「root」で行っています。この場合だけ、jupyter-notebookを起動する場合に、rootユーザでの起動を許可するオプションが必要です。
(base) [root@localhost ~]# jupyter-notebook --allow-root

(3) HelloJupyterを作成
これも
の「(3)HelloJupyterを作成」をみて実施してください

(4) Rの導入
これは前のリンクのものとは内容が変わっています。
jupyter-notebookを一旦終了して、次のコマンドでRをインストールします。
(base) [root@localhost ~]# conda install -c r r-irkernel
もう一度、jupyter-notebookを立ち上げます。
(base) [root@localhost ~]# jupyter-notebook --allow-root
サイトにアクセスして、ファイルを作る「New」をクリックすると「R」の選択肢が出てきます。Rでファイルを作成します。
ファイル名は「HelloJupyterR」とします。
Rのコードを入れて実行してみます。

ここまでできれば、Jupyter-NotebookでのPythonとRの環境設定は終了です。

2020年5月1日金曜日

Wordpressの設定

今回はWordpressの設定を行います。
前提条件として、
https://mizunolab.sist.ac.jp/2020/04/centos7lamp.html
の内容が設定済みとします。
今回はrootユーザでドキュメントルートの/var/www/htmlにwordpressのサイトを構築していきます。wordpressは最新版を利用します。

[説明動画]


(1) wordpressのダウンロードと展開
 yumでwgetのインストール
# yum install wget
ルートディレクトリに移動
# cd /var/www/html
wordpressの最新版をダウンロード
# wget https://ja.wordpress.org/latest-ja.tar.gz
tarボールの展開
# tar xzvf latest-ja.tar.gz
wordpressというフォルダが作成される
wordpressフォルダへのapacheからの書き込み権限設定
[root@localhost html]# chown -R apache:apache wordpress/

(2) wordpress用のデータベース作成
phpMyAdminにアクセスしてユーザを作成
http://IPアドレス/phpMyAdmin
下記の情報で作成(ユーザを作成するときに、同名データベースも作成して特権を与える)
ユーザ名:wordpress
パスワード:CentOS7@
データベース名:wordpress


(3) wordpressサイトにアクセスしてインストール
http://IPアドレス /wordpress/ にアクセス
ボタンを押す。データベースの情報を入力します。
データベースの情報が間違っていると、エラーがでます。
接続に成功したが、書き込み権限がないと次の画面が出る。
直接ファイルを書き込むか、上に戻り書き込み権限設定をする
問題がない場合は下記の画面になり、インストールを実行します。
情報を入力してインストール(今回は実習なので、簡易な情報でやっているので注意)
インストールが完了

(4) サイトの動作確認
ログインをします。
ログインが成功すると、ダッシュボードにいきます。
サイトを表示してみます。
デフォルトのサイトが表示されます。
投稿してみます。
公開します。
同様に画像をアップします。

これでwordpressの基本的な設定ができました。

2020年4月29日水曜日

Cakephp4の設定

以下の環境にCakephp4を設定していきます。
前提条件として、
https://mizunolab.sist.ac.jp/2020/04/centos7lamp.html
の内容が設定済みとします。

OS : CentOS7.7
PHP : PHP7.3
MySQL : 5.7
今回はrootにて、ドキュメントルート /var/www/html に設定します。
プロジェクト名は「mzn」とします。

[説明動画]


(1) composerのインストール
[root@localhost ~]# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
[root@localhost ~]# php composer-setup.php

[root@localhost ~]# php -r "unlink('composer-setup.php');"
composerをどこでも使えるようにします。
[root@localhost ~]# mv composer.phar /usr/local/bin/composer
[root@localhost ~]# composer self-update

(2) PHPモジュール「intl」のインストール
cakephpに必要なintlをインストールします。
[root@localhost ~]# yum install php73-php-intl.x86_64
intl.soの場所を確認
[root@localhost ~]# find / -name 'intl.so'
このパスを書き込みます。
[root@localhost ~]# vi /etc/php.ini
extension=/opt/remi/php73/root/usr/lib64/php/modules/intl.so

httpdを再起動して設定を反映させます。
[root@localhost ~]# systemctl restart httpd

(3) cakephpプロジェクト作成
/var/www/htmlにcakephpプロジェクト「mzn」を作成します
[root@localhost html]# composer self-update && composer create-project --prefer-dist cakephp/app:4.* mzn
プロジェクトにアクセスしてみます。
http://IPアドレス/mzn/
この表示が少しおかしくなっています。これは/var/www/html/でやっていることでAllowOverride設定をする必要があります。
[root@localhost html]# vi /etc/httpd/conf/httpd.conf
[root@localhost html]# systemctl restart httpd
もう一度、アクセスしてみると表示が修正されています。


(4)データベースとの連携
今回はMySQL(phpMyAdmin)で次のデータベースを作っておきます。
[データベース情報]
ユーザ: root
パスワード: rootのパスワード
データベース名:mzn (今回はテーブルは未作成)
# cd /var/www/html/mzn
[root@localhost mzn]# vi config/app_local.php
'username' => 'root',
'password' => 'CentOS7@',
'database' => 'mzn',
この3つを編集します。


保存して、もう一度アクセスすると、データベースが接続されています。

次に、パーミッションの設定をしておきます。
[root@localhost mzn]# chmod -R 777 tmp
(5) 簡単なサイトの作成
データベース「mzn」にテーブル「users」「classes」を作成します。
テーブル:users


CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


テーブル:cars


CREATE TABLE IF NOT EXISTS `cars` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`user_id` int(11) NOT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

次にbakeをしていきます。まずcakeコマンドに実行権限を与えます。
[root@localhost mzn]# chmod +x bin/cake
usersのモデルを作成します。
[root@localhost mzn]# bin/cake bake model users
usersのコントローラを作成
[root@localhost mzn]# bin/cake bake controller users
usersのテンプレート(ビュー)を作成
[root@localhost mzn]# bin/cake bake template users
同様にcarsも作成しますが、model, controller, templateを一度に作成することも可能です。
[root@localhost mzn]# bin/cake bake all cars
動作確認のため、サイトにアクセスします。
http://IPアドレス/mzn/users
もし、パーミッションのワーニングが出た場合には
# chmod -R 777 tmp
を実行してください。

http://IPアドレス/mzn/cars
usersテーブルに登録してから、carsテーブルに登録します。
次にcarsテーブルに登録します。
これで基本的な形ができました。以上です。