サーバを立ち上げてからの手順②追加:ユーザディレクトリアクセス方法変更

ユーザディレクトリアクセスは、現在、http://IPアドレス/~ユーザ名/ になっていますが、~いやですよね
その時は、

# vi /etc/httpd/conf/httpd.conf 

に以下を追加すればOKです。

<VirtualHost *:80>
    ServerAdmin メールアドレス
    DocumentRoot /home/ユーザ名/www/
    ServerName サーバ名
    ErrorLog logs/******-error_log
    CustomLog logs/******-access_log common
</VirtualHost>

すると、ServerNameに書いたものでアクセスできます。

サーバを立ち上げてからの手順②ユーザ発行編

今回はユーザ発行編です。

ユーザ発行

ユーザ発行

# useradd ユーザ名

ユーザパスワード設定

# passwd ユーザ名

ののち、2回パスワードを入力すればOKです。
f:id:harucharuru:20200226150250p:plain

ユーザ確認

ユーザが発行できているかは

# cat /etc/passwd

で確認できます。一番下に、ユーザ名が書かれていればOK
f:id:harucharuru:20200226150530p:plain

ユーザディレクトリの解放

Apacheの設定ファイルを変更

Apacheの設定ファイルを変更していきます。

# vi /etc/httpd/conf.d/userdir.conf

17行目をコメントアウト(#つける)
f:id:harucharuru:20200226150723p:plain

24行目のコメントアウトを取り、public_wwwをwwwに変更する(公開ディレクトリ名を決める)
f:id:harucharuru:20200226150820p:plain

31行目のpublic_wwwをwwwに変更。また、Index表示をなくす場合は、Indexを削除(下の写真は削除しています)
f:id:harucharuru:20200226150920p:plain

webサーバ再起動

# systemctl restart httpd.service

ユーザディレクトリのパーミッション変更

ユーザに切り替えてパーミッションを変更するには以下のコマンド

# su - ユーザ名
$ cd ..
$ chmod 755 ユーザ名/
$ cd

f:id:harucharuru:20200226151307p:plain

ユーザディレクトリへのアクセス

公開フォルダ(www)を作成

$ mkdir www
$ cd www/
$ vi index.php

index.phpには以下の内容を書き込む

<?php phpinfo();?>

http://IPアドレス/~ユーザ名/にアクセスして、以下が表示されればOK!
f:id:harucharuru:20200226151902p:plain

サーバを立ち上げてからの手順①webサーバ、PHP編

サーバ(CentOS 7)を立ち上げてからの手順を書いていきます。今回はwebサーバ、PHP

サーバ概要

サーバ概要を確認するには、以下のコマンドで確認可能です

# cat /etc/*release
CentOS Linux release 7.3.1611 (Core) 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

CentOS Linux release 7.3.1611 (Core) 
CentOS Linux release 7.3.1611 (Core) 

[参考]
Linux OSの種類とバージョンの調べ方 - Qiita
CentOS、UbuntuなどLinux OSのバージョン確認をするコマンド | UX MILK

Webサーバ(Apache)のインストール

インストール

# yum install httpd

f:id:harucharuru:20200226142657p:plain
Complete!が最後に表示されればOK!

起動

# systemctl start httpd.service

f:id:harucharuru:20200226142833p:plain

再起動の場合は、

# systemctl restart httpd.service

自動起動

再起動しても自動的に起動するように設定します。

# systemctl enable httpd.service

firewallのストップとiptableのストップ

アクセスしてみる。
f:id:harucharuru:20200226143614p:plain
表示されないので、firewallのストップとiptableのストップを行う
firewallのストップ

# systemctl stop firewalld

iptableのストップ

# systemctl stop iptables

f:id:harucharuru:20200226143316p:plain
すると、表示される
f:id:harucharuru:20200226143817p:plain

PHPインストール

インストール

# yum install php php-mbstring php-mysql

f:id:harucharuru:20200226144016p:plain
Complete!で完了

その後、webサーバを再起動

# systemctl restart httpd.service

PHP動作確認

ドキュメントルート(/var/www/html/)でPHPプログラムを作成

# cd /var/www/html/
# vi test.php

f:id:harucharuru:20200226144411p:plain

プログラムには以下の内容を書き込む

<?php phpinfo();?>

f:id:harucharuru:20200226144556p:plain


http://IPアドレス/test.phpにアクセスするとphp情報が表示される。
f:id:harucharuru:20200226151902p:plain

以上!

cronでプログラムを自動的に定期的に動かす

cronでプログラム(今回はpython)を自動的に動かす方法を書いておきます。

cronとは?

cron とは、ジョブ(スクリプト)を自動実行するためのデーモンプロセスです。
cron の設定ガイド

ということで、自動的にそして定期的にジョブ(プログラム)を実行するときに便利なものです。

cronの登録

プログラムの場所確認

まず、動かしていきたいプログラムの場所(フルパス)を確認します。
今回私は、"/home/ユーザ名/FLG/FDB.py" を動かしていきます。
このとき、コマンドで叩いて実行できるか試してみましょう。今回私は、anacondaで作成したpythonプログラムを実行したいので、以下のコマンドで実行できるか試してみました。

/home/ユーザ名/anaconda3/bin/python3 /home/ユーザ名/FLG/FDB.py 

cronの登録

cronの登録には以下のコマンドを実行します。
f:id:harucharuru:20200226121414p:plain

crontab -u ユーザ名 -e

今回、1日に1回(00:00:30に)実行したいので以下のように書き込みます。
f:id:harucharuru:20200226122331p:plain

30 0 * * * /home/ユーザ名/anaconda3/bin/python3 /home/ユーザ名/FLG/FDB.py 

時間登録の部分については、以下のサイトがとてもわかりやすいので参考にしてください。
cronの日時指定を、基礎から学ぶ(分,時,日,月,曜日の指定、◯分ごと、月末起動、など) - YoheiM .NET

FitbitのAPIを使う(2)APIをpythonで叩く準備

crulで叩いて情報を取得してもいいのですが、今回結果をDBに保存したいということもあり、pythonを使うことにしました。
今回はPythonで情報を取得するための準備です。

python-fitbitの準備

git clone https://github.com/orcasgit/python-fitbit

f:id:harucharuru:20200115171814p:plain

cd python-fitbit
sudo  pip3 install -r requirements/dev.txt

cherrypyを入れる

pip install cherrypy

f:id:harucharuru:20200115171951p:plain

requests requests-oauthlibを入れる

pip install requests requests-oauthlib

f:id:harucharuru:20200115172102p:plain


終わり!
Jupiterで行ったので、一応gistに載せて共有します。

FitbitのAPIを使う(1)API登録

FitbitのデータをDBに保存する方法について書いておきます。今回はAPI登録について

Fitbit の APIを管理するサイトにアクセス(必要に応じてログイン)
www.fitbit.com
f:id:harucharuru:20200115162851p:plain

右上のアプリを登録より、以下のように入力して登録
Application Name *:好きなアプリケーション名
Description *:アプリケーションについて
Application Website *:自分のサイト?
Organization *:personalとか?
Organization Website *:自分のサイト
Terms Of Service Url *:自分のサイト
Privacy Policy Url *:自分のサイト
OAuth 2.0 Application Type *:Personal
Callback URL *:http://127.0.0.1:8080/
Default Access Type *: Read & Write

登録するとclientIDなどが出てくる。ここにある情報は必要になるので、覚えておく。
f:id:harucharuru:20200115161706p:plain

OAuth 2.0 tutorial pageをクリックする

  • We've generated the authorization URL for you, all you need to do is just click on link below:

の下のリンクをクリックする
f:id:harucharuru:20200115161855p:plain

取得許可するデータを選択
f:id:harucharuru:20200115162027p:plain

次のようになればOK。このとき、出てきたurlをコピーしておく。
f:id:harucharuru:20200115162206p:plain

ひとつ前のサイトにコピーした張り付ける
f:id:harucharuru:20200115162446p:plain

この時表示されたtokenをコピーしておく(これがないとデータ取れない)

自作のマークシートを読み取りたいときに使うソフトウエアFormScanner

自作のマークシートを読み取り、csv化したいときに使うFormScannerについて書いておきます。
自作のマークシートを使いたいひと、無料のソフトウエアが良い人向けです。

FormScannerについて

私がこのソフトウエアを使うときに参考にさせてもらったサイト「FormScanner」の使い方に書いてありますように、

FormScanner概要
FormScannerはフリーのOMR(光学式マーク読取)ソフトウェアです。
オリジナルのマークシートによって、アンケートの集計やマークシートを用いた試験の採点ができます。
フリーソフトですので、もちろん無料で利用可能です。
また、ソフトウェアが現在進行形で開発され続けている点も強みであります。
ただし、日本語版は無く、また公式サイトのマニュアルも非常にざっくりしているため、本サイトを通じて日本に向けてFormScannerを紹介したいと思います。

本当に日本語版がなく、使いこなせるようになるまで時間がかかりました。以下、簡単な使い方を記しておきます。

FormScannerのダウンロード

FormScannerは、以下のリンクよりダウンロードしてexeファイルを実行すればOKです。
この時、javaがパソコンに入っている必要がありますので注意してください
FormScanner - Browse /1.1.3 at SourceForge.net

実行すると言語を聞かれます。Englishにしましょう
f:id:harucharuru:20200114172840p:plain

Next
f:id:harucharuru:20200114172903p:plain

同意してNext
f:id:harucharuru:20200114172925p:plain

アイコンをデスクトップに置くかどうか、は好きにしてください
f:id:harucharuru:20200114172959p:plain

これで完了です。Finishを押すと再起動がかかります。
f:id:harucharuru:20200114173027p:plain


もしも、アプリケーションを実行したときにJavaがないというエラーが出てきたら、
手順に従って無料JavaソフトウェアをダウンロードからJavaをダウンロードして、Pathを通してください。

FormScannerの使い方

FormScannerでは大きく分けて2つの作業があります
①読み取りテンプレートを作成する
②読み取りを行いcsv化する
でもその前に、
マークシートを作成する、スキャンする
が必要です。1つ1つ手順を追って説明します。

マークシートを作成する、スキャンする

読み取るためのマークシートを作成します。サンプルとして、下記のリンクにあるものを編集して使いました。
Forms - FormScanner
基本的には四隅に大きなマーク(サンプルだと円)が必要になります。
これがないと、読み取る際の目標点が見つからずマークシートを読み取ることができません。
私の場合は、以下のようなマークシートを作成しました。
f:id:harucharuru:20200114174150p:plain

そしてスキャンを行います。この時注意が必要なのですが、、、
必ず白黒スキャンしてください!グレースケール・カラースキャンをするときちんと読み取れないことがあります。
また、必ず画像ファイルにしてください(PDFなどの場合は、変換するなどの対応をしてください)

①読み取りテンプレートを作成する

読み取り用のテンプレートを作成していきます。
テンプレートを作成するときは、templateー>create…を選択します
f:id:harucharuru:20200114174630p:plain

読み取りを行う画像を選択します。
f:id:harucharuru:20200114174828p:plain

読み取るフィールド要素を聞いてきます。+で追加します。
f:id:harucharuru:20200114174948p:plain

今回は横方向に要素が並んでいるので~columnを選択します。
(縦方向の場合は~row)
f:id:harucharuru:20200114175014p:plain

要素名は何でもいいです。今回は何となくnumber。
マークシートの数は7つ、選択肢は10個あるので数を入力しておきます。
また複数選択を許容しないので、Igonre multiple choiceにチェックを付けます
(バグなのか、↑を一番最後に押さないと、confirmが押せません)
f:id:harucharuru:20200114175137p:plain

すると、マーカーに合わせて緑色の枠が出ていると思います。
きちんと自分のマーカーにあって出ていればOKです
f:id:harucharuru:20200114175456p:plain

そしてはじめと最後の要素をクリックします。今回でいうと、左上のマーク位置と、右下のマーク位置です。
左上のマーク位置↓
f:id:harucharuru:20200114175626p:plain

もしも、赤いマーカーが大きすぎるor小さすぎる場合にはoptionのマーカーサイズより変更できます。
f:id:harucharuru:20200114180308p:plain
f:id:harucharuru:20200114180327p:plain

両方クリックすると、座標が表示されます。問題なければ続けます。
そうでなければキャンセルすればもう一度クリックしなおすことができます。
今回、それぞれのマークは0~9の数字なので現在A,B,C…となっている部分を変更していきます。
f:id:harucharuru:20200114180005p:plain
f:id:harucharuru:20200114180128p:plain

これで問題なければテンプレートを保存します
f:id:harucharuru:20200114180228p:plain

②読み取りを行いcsv化する

まず、作成したテンプレートを読み込みます。
f:id:harucharuru:20200114181539p:plain

次のように出ていればOKです
f:id:harucharuru:20200114181617p:plain

読み込むマークシートを選択します
f:id:harucharuru:20200114181646p:plain
f:id:harucharuru:20200114181727p:plain

上にある再生ボタンを押せばcsvができます。あとは名前を付けて保存すればOKです。