python と javascriptの通信方法に関しまして【現状まだ編集中】

pythonjavascriptの通信方法
※参考
 
 
 
==================================================================
  本記事は開発環境破壊をしてしまった結果、現在も作成中です
    (-->ご了承願います)
==================================================================
 
 
★nodeJs用のejsファイルをインストール
 
 
 
[vagrant@localhost nodejsTebanasu]$ npm install ejs
 
> ejs@3.0.1 postinstall /home/vagrant/nodejsTebanasu/node_modules/ejs
> node ./postinstall.js
 
/home/vagrant/nodejsTebanasu
└── ejs@3.0.1
 
npm WARN enoent ENOENT: no such file or directory, open '/home/vagrant/nodejsTebanasu/package.json'
npm WARN nodejsTebanasu No description
npm WARN nodejsTebanasu No repository field.
npm WARN nodejsTebanasu No README data
npm WARN nodejsTebanasu No license field.
 
 
参考
 
 
 
 
 
 
python-shellをインストール
 
 
[vagrant@localhost nodejsTebanasu]$ npm install python-shell
 
> ejs@3.0.1 postinstall /home/vagrant/nodejsTebanasu/node_modules/ejs
> node ./postinstall.js
 
/home/vagrant/nodejsTebanasu
├── ejs@3.0.1
└── python-shell@1.0.8
 
npm WARN enoent ENOENT: no such file or directory, open '/home/vagrant/nodejsTebanasu/package.json'
npm WARN nodejsTebanasu No description
npm WARN nodejsTebanasu No repository field.
npm WARN nodejsTebanasu No README data
npm WARN nodejsTebanasu No license field.
 
 
 
 
httpdのインストール
 
 
[vagrant@localhost nodejsTebanasu]$ sudo yum -y install httpd
読み込んだプラグイン:fastestmirror
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
epel/metalink                                            | 9.0 kB     00:00
* base: ftp.yz.yamagata-u.ac.jp
* epel: ftp.yz.yamagata-u.ac.jp
* extras: ftp.yz.yamagata-u.ac.jp
* remi-safe: ftp.riken.jp
* updates: ftp.yz.yamagata-u.ac.jp
base                                                     | 3.7 kB     00:00
epel                                                     | 5.3 kB     00:00
epel/primary_db                                          | 6.1 MB     00:01
extras                                                   | 3.4 kB     00:00
jenkins                                                  | 2.9 kB     00:00
jenkins/primary_db                                       | 142 kB     00:01
mongodb-org-4.0                                          | 2.5 kB     00:00
mysql-connectors-community                               | 2.5 kB     00:00
mysql-tools-community                                    | 2.5 kB     00:00
mysql56-community                                        | 2.5 kB     00:00
nodesource                                               | 2.5 kB     00:00
remi-safe                                                | 3.0 kB     00:00
remi-safe/primary_db                                     | 1.2 MB     00:00
updates                                                  | 3.4 kB     00:00
パッケージ httpd-2.2.15-69.el6.centos.x86_64 はインストール済みか最新バージョンです
何もしません
 
                                                           [失敗]
 
 
 
 
httpdの起動と終了。
 
[vagrant@localhost nodejsTebanasu]$ sudo service httpd stop
httpd を停止中:                                            [  OK  ]
[vagrant@localhost nodejsTebanasu]$ sudo service httpd start
httpd を起動中: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                           [  OK  ]
 
 
httpd.confのpathは以下。
 
[vagrant@localhost nodejsTebanasu]$ vi /etc/httpd/conf/httpd.conf
 
 
 
 
★navigator.mediaDevicesによるWebCameraの制御に関して。
 
 
下記エラーが消えない。
結論としては、navigator.mediaDevicesは、SSLなどセキュアな接続でない場合は
無効となることがわかった。
 
※エラー箇所.
 navigator.mediaDevices.getUserMedia(constraints)
 
※エラー内容.
 Uncaught TypeError: Cannot read property 'getUserMedia' of undefined
 
※調査結果.
 
 
The Feature Policy security management feature of HTTP is in the process of being introduced into browsers,
with support available to some extent in many browsers (though not always enabled by default, as in Firefox).
getUserMedia() is one method which will require the use of Feature Policy,
and your code needs to be prepared to deal with this. For example,
you may need to use the allow attribute on any <iframe> that uses getUserMedia(),
and pages that use getUserMedia() will eventually need to supply the Feature-Policy header.
 
 
 
 
sslモジュールのインストール。
 
 
[vagrant@localhost nodejsTebanasu]$ sudo yum -y install mod_ssl
読み込んだプラグイン:fastestmirror
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
epel/metalink                                            | 8.8 kB     00:00
* base: ftp.yz.yamagata-u.ac.jp
* extras: ftp.yz.yamagata-u.ac.jp
* remi-safe: ftp.riken.jp
* updates: ftp.yz.yamagata-u.ac.jp
base                                                     | 3.7 kB     00:00
extras                                                   | 3.4 kB     00:00
jenkins                                                  | 2.9 kB     00:00
mysql-connectors-community                               | 2.5 kB     00:00
mysql-tools-community                                    | 2.5 kB     00:00
mysql56-community                                        | 2.5 kB     00:00
remi-safe                                                | 3.0 kB     00:00
remi-safe/primary_db                                     | 1.2 MB     00:00
updates                                                  | 3.4 kB     00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package mod_ssl.x86_64 1:2.2.15-69.el6.centos will be インストール
--> 依存性解決を終了しました。
 
依存性を解決しました
 
================================================================================
パッケージ     アーキテクチャ
                              バージョン                      リポジトリ
                                                                           容量
================================================================================
インストールしています:
mod_ssl        x86_64        1:2.2.15-69.el6.centos          base         99 k
 
================================================================================
インストール         1 パッケージ
 
総ダウンロード容量: 99 k
インストール済み容量: 187 k
パッケージをダウンロードしています:
mod_ssl-2.2.15-69.el6.centos.x86_64.rpm                  |  99 kB     00:00
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールしています  : 1:mod_ssl-2.2.15-69.el6.centos.x86_64           1/1
  Verifying               : 1:mod_ssl-2.2.15-69.el6.centos.x86_64           1/1
 
インストール:
  mod_ssl.x86_64 1:2.2.15-69.el6.centos
 
完了しました!
 
 
 
 
 
★ここまで来て、事件が発生した。...
当初SSL接続を考えていたが、
 
 
①ボタンを押すと,navigator.mediaDevicesによるWebCameraが起動し、シャッターを押す。
その後、送信ボタンを押すと、
javascript -> ajax -> python(画像のカテゴリ識別し、識別結果を返却する) -> ajax -> javascript
 
②携帯側のカメラで撮影した画像を読み出す
 
 
 
SSL接続の設定よりもjavascript -> ajax -> python -> ajax -> javascriptの経由の処理を実装したく、
①->②の策に変更することにした。
var/www/html
var/www/cgi-?/にpythonスクリプトを設置、
javascript->ajaxのURLで上記pathを指定..で簡単にいけるかと思いきやいけず、
ひとまず、逐一ファイル編集にsudoを付けるのが面倒なため、
varは以下アクセス権をchmod -R 777 .にした。
 
それが過ちだった。。。。。。
sshに接続できなくなりました。
 
 
パーミッションSSH接続に関連が本当にあるのか調べると
やはり、上記permissionの変更とSSHは関係がある模様..
やってしまいました..。。。.
 
仮想環境データを
どこかにバックアップを取っておけばよかった....
 
 
一応以下に調べた結果を張り付けます。
----------------------------------------------------------------
 
Vagrantのバージョンアップ
authorized_keysのパーミッション変更
VirtualBox Guest Additionsを入れる
でした。
 
公開鍵のパーミッションが600でないといけない話は全然知らなかったので勉強になりました。
---------------------------------------------------------------
 
  --->>>sshの場合、600にする必要がある。
 
 
 
 
 
-------------------------------------------------------------
〇ルートディレクトリ以下の全変更について
ルートディレクトリ以下にはさまざまなディレクトリがあり、
さまざまな目的のために、適宜必要なアクセス権が設定されています。
それは SSH に限らずシステムの様々な機能の動作にとって必要なものです。
ですから、chmod 777 に限らず、ルートディレクトリ以下のすべてのファイルを
無条件に変えてしまうような操作は、システムの仕組みを相当理解してからでなければ
しないほうがいいと思います。
 
今回の操作でも、ssh とそれ以外の様々な機能がうまく動作しなくなり、
最終的には CentOS を再インストールするはめになる可能性が高いです。
個人での利用ならだましだまし動かせないこともないかもしれませんが、
会社の業務で使用していたり、他の方と共用しているようなシステムの場合は、
管理を担当している方に連絡をとって事情を説明されたほうがいいと思います。
 
 
ssh が動かない理由について
どのようなエラーが出ているのか、示されていないので、
不確かな事しか言えませんが、推測できるケースを書きます。
 
ssh に関しては、ホームディレクトリ下の .ssh 以下の鍵ファイルのアクセス制限の設定が
オーナー以外アクセス不可になっていないと、エラーになるはずです。
(詳細は ssh-keygen のドキュメントなどを読んでください)
これはアクセス制限を緩くすれば動くとは限らない典型的な例です。
 
--------------------------------------------------------------
 
    ---->sshはアクセス権の設定をオーナー以外はNG.
 
 
 
 
ひとまず仮想環境を壊してしまったので、
別の環境で再スタートすることにしようかなと考え中。
シェアすることでもないかもしれませんが、
くれぐれも気安くパーミッション変更はしないと良いと思います..という
体験結果報告でした...m(_ _)m