ubuntu 14.04 Mysql5.5をインストール
https://askubuntu.com/questions/855615/how-to-install-mysql-server-5-5-on-ubuntu16-04/855667
を、参考にして
sudo apt-get install mysql-server-5.5
で、できた。
ubuntu 14.04 Mysql5.5をインストール
https://askubuntu.com/questions/855615/how-to-install-mysql-server-5-5-on-ubuntu16-04/855667
を、参考にして
sudo apt-get install mysql-server-5.5
で、できた。
Wineのインストール
https://symfoware.blog.fc2.com/blog-entry-1400.html
を、参考にする
sudo apt-get install wine
ttf-mscorefonts-installerの設定が表示された時には
タブキーにて「了解」を選択しエンターキーを入力。
winecfg
で、インストールされたWineのバージンを確認
Wineについてのタブを開く
1.6.2
HeidiSQL
をダウンロード
10.xx.xx
だと、起動しなかったので、
https://heidisql.jp.uptodown.com/windows/download
9.3.0.4984
https://heidisql.jp.uptodown.com/windows/download/429381
を、ダウンロード
ダウンロードしたものを、右クリックでWine Windows プログラムローダで開く
一度、インストールして、競合し、不具合になる時は
フォルダーを削除かリネーム
find ./ -name "Heidi*"
./.wine/drive_c/users/Public/Start Menu/Programs/HeidiSQL
あたり。
Conoha GUI環境を作ってみる
環境の選択
東京
1GB
Ubuntu 16.04 (64bit)
パスワード
ネームタグ変更
rootのパスワードを設定し
オプション ssh key
起動したら、IPを調べ
ssh -i /home/xxx/key-xxx-xx-xx-xx-xx.pem root@xx.xx.xx
で、端末に入る
root
XXXXパスワードでログイン
apt-get update apt-get upgrade
Could not get lock /var/lib/dpkg/lock-frontend
のエラーがでたら
sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/dpkg/lock
などで回避(一度に行わず、1行づつ確認)
たまに、問い合わせがあるが(y)で、回答
ポップアップ画面で問い合わせがでるが
そのまま「TAB」でOK
apt-get upgrade
の途中で、一度画面が切れたら
再度、ログインしなおし
Ubuntu 18.04で行ったら
Use ‘sudo apt autoremove’ to remove them.
のエラーとなったので
sudo apt-get autoremove
アカウント作成
adduser xxx Enter password Retype password
sudoを使えるようにする
usermod -G sudo xxxxxx
ユーザに切り替える
su - xxx
sudoが使えるか調べる
sudo ls /
sudo tasksel
taskselがないときは
sudo apt install tasksel
Lubuntu Desktop
をスペースで選択しTABでOKをリターン
(Ubuntu Cloud Image (instance) に入っているチェックはそのまま)
設定がはじまる
設定が完了したら
sudo aptitude -y install language-pack-ja-base language-pack-ja ibus-mozc sudo update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja" source /etc/default/locale
sudo: unable to resolve host
が、表示されるようであれば
https://qiita.com/ogomr/items/89e19829eb8cc08fcebb
を参考にして
sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'
echo $LANG
と入力し、「jpa_JP.UTF-8」を確認
sudo reboot
画面がリセットされた場合は
再度ログイン
データのやり取り
端末は
ssh -i /home/xxx/key-2015-xx-xx-xx-xx.pem root@150.xx.xx.xx sftp -i /home/xxx/key-2015-xx-xx-xx-xx.pem root@150.xx.xx.xx
cd /home/xxx
ubuntu14 python selenium
で、仮想環境を作ってみた
Python インストール
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update
エラーがでた場合、それに従い
sudo apt-get -f install #sudo rm /var/lib/dpkg/lock
python3.6をインストール
#sudo apt-get install python3.6 sudo apt-get install python3.6-venv python3.6 -m venv env source env/bin/activate
パージョンを確認
python -V
python 3.4.0
あれ、だめだ
仮想から抜ける場合は
deactivate
もう一回やってみよう
python3.6 -m venv env00 source env00/bin/activate
python -V
python 3.6.8
できちる。
不思議だ
pipを最新にしておく
pip install -U pip
Seleniumをインストール
pip install selenium
Chronumeをインストール
最新で良い場合は
sudo apt-get install chromium-browser -y
バージョン確認
chromium-browser --version
起動確認
chromium-browser
Driverは以下から
https://launchpad.net/ubuntu/trusty/amd64/chromium-chromedriver/
taisyou
対象のDirverのページに飛んで
例
https://launchpad.net/ubuntu/trusty/amd64/chromium-chromedriver/64.0.3282.119-0ubuntu0.14.04.1
wget http://security.ubuntu.com/ubuntu/pool/universe/c/chromium-browser/chromium-chromedriver_74.0.3729.169-0ubuntu0.16.04.1_amd64.deb sudo dpkg -i chromium-chromedriver_74.0.3729.169-0ubuntu0.16.04.1_amd64.deb
対象のXX.deb
のURLを調べ(アドレスをコピー)
wget でダウンロード
sudo dpkg -iでインストール
wget http://launchpadlibrarian.net/354863673/chromium-chromedriver_64.0.3282.119-0ubuntu0.14.04.1_amd64.deb sudo dpkg -i chromium-chromedriver_64.0.3282.119-0ubuntu0.14.04.1_amd64.deb
インストールされた事を確認
ls /usr/lib/chromium-browser/chromedriver
サンプル
vim sample.py
vimがインストールされていない場合は
インストール
sudo apt-get install vim
vim sample.py
iで挿入−モードで
以下をコピーし
Shift+Ctr+Vで、貼り付ける
from selenium import webdriver
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
driver.get('https://google.co.jp')
esc+:wq
で、上書き終了
実行
python sample.py
エラーになった
ModuleNotFoundError: No module named ‘requests’
pip install requests
で、解消した
pip install mysql-connector-python
指定する場合?
うまくいかない
python3.6 -3.6 -m venv env36 source env36/bin/activate
3.7なら
sudo apt-get install python3.7-venv python3.7 -3.6 -m venv env36 source env36/bin/activate
以下を参考にして、必要なバージョンのChronumeをダウンロード
https://qiita.com/maaaaaiiiisan/items/95c796f2e3dd446521b2
例
wget http://launchpadlibrarian.net/336698680/chromium-chromedriver_61.0.3163.79-0ubuntu0.14.04.1196_armhf.deb
sudo dpkg -i xxxxxxxxxxxxxxxxxxxxxxxxxx.deb
https://tech-blog.s-yoshiki.com/2018/04/71/
を、参考にして作ってみる
ヴァージョンを合わせる
http://chromedriver.chromium.org/downloads
https://google-chrome.en.uptodown.com/ubuntu/versions
https://chrome.en.uptodown.com/android/versions
以下の2つを照らし合わせる
https://google-chrome.en.uptodown.com/ubuntu/versions
https://chromedriver.storage.googleapis.com/index.html
例へば
ChromeDriver v2.11 (2014-10-07)
Supports Chrome v36-40
などで、行ってみる
走っているChrmeのバージョンを調べそれにあった、Driverを
ダウンロードすればいい
Chronumeの場合
Chromeをインストール
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg -i google-chrome-stable_current_amd64.deb
インストールされたかコマンドラインで確認
google-chrome-stable
インストールされていない場合は
sudo apt-get install libappindicator1 sudo apt-get install libpango1.0-0 sudo apt-get install libpangox-1.0-0 sudo apt-get install libindicator7 sudo apt-get update sudo apt-get -f install --fix-missing
などで、対応
インストールされたかコマンドラインで確認
google-chrome-stable
Chromeドライバのインストール
https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip #unzip chromedriver_linux64.zip -d ~/bin/ sudo unzip chromedriver_linux64.zip -d /usr/bin/
Django RestでJsonデータを取り込む
取り込んだデータをDBに書き込み、後でJsonを読み込んで
変換しようとしたらエラーになった
取り込んだ
post(self, request, format=None)
時点でJsonObjectになっているので
request.data
だと、シングルコーテーションになってしまう
JsonのStringにするには
json.dumps(request.data))
とする必要があった
class WebhookApi(APIView):
def post(self, request, format=None):
# d00=Tlog(json_string=request.data)
# ↑↑ これだとNG
d00=Tlog(json_string=json.dumps(request.data))
d00.save()
Djangoでのデータベースにかんするメモ
1,データを新規にレコード追加し、追加されたレコードのIDを取得する方法
p = Parent.objects.create(parent_name=”見出し”)
d01=Node(parent_id=p.pk,node_name=’小見出し’)
d01.save()
2,getとfilterの使い分け
絞り込んだデータが1つならget
pk指定なら確実、重複のない、フィールドに文字を指定してもいい
結果が複数あるならfilter
データがない場合もfilter
d00 = A.objects.filter(feald=’xx’)
if len(d00)==0:
データがない時の処理
3,複合しぼりこみは、カンマで区切る(and処理)
d00 = A.objects.filter(feald_a=’aaa’,feald_b=’bbb’)
AWS EC2、Amazon Linux2でDjango+Nginx+uWSGIで
開発できるような環境を作ってみました
行う事
1,EC2インスタンス作成
2,SSH接続
3,OS最新にupdate
4,Pythonインストール
5,仮想環境(venv)インストール
6,PIPアップバージン
7,Djangoインストール
8,プロジェクト作成
9,マイグレーション
10,サーバ起動
11,外部アクセス確認
12、ポート解放
13、外部アクセス確認
14.Nginxインストール
15,Nginx外部接続確認
16,ポート解放
17,uWSGIインストール
18,終わりに
1,EC2インスタンス作成
まず、EC2のインスタンスを作成します。
https://console.aws.amazon.com/console/
「コンソールへ」からログイン
AWS のサービスのサービスのEC2を選択
インスタンスの作成
1年間無料版でまずは、ためしので、Amazon Linux2を選択します。
Amazon Linux 2 AMI (HVM), SSD Volume Type 64 ビット (x86)
を選択 タイプt2.microを選択
2,SSH接続
端末からSSH接続にて作業を行います。
キーをダウンロードして、キーファイルの設定として
属性を読み込み専用にして、
chmod 0600
SSHで接続します
ssh -i "ダウンロードキー.pem" ec2-user@(パブリックDNS名)
(パブリックDNS名)は、ec2-x-x-x-x.us-east-2.compute.amazonaws.com
のようなものです。
3,OS最新にupdate
sudo yum update
4,Pythonインストール
Gitをインストール
sudo yum install git -y
Gitでpyenv読み込み、Pathを設定する
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
関連をインストール
sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel -y
pythonをインストール
pyenv install 3.6.2
3分ぐらいかかる場合もあります
pyenv global 3.6.2 pyenv rehash python -V Python 3.6.2 ←表示
仮想環境構築と有効化
python -m venv env source env/bin/activate
pyenvを入れてから、venvで仮想は、なにか変な感じもしますが
venvで、バージョン毎の環境が作りやすいので。。。
6,PIPアップバージン
pip install -U pip
7,Djangoインストール
pip install django==1.11.17
インストールされたか確認
python >>> import django >>> django.get_version() '1.11.17' ←表示 >>> exit()
一応djangoのバージョンは1.11.17にしました
8,プロジェクト作成
django-admin startproject proj cd proj ls manage.py proj ←表示 cd proj vim settings.py
i 挿入モード(iを入力)
ALLOWED_HOSTS = [] 変更(25行あたり、全てOKで。。) ALLOWED_HOSTS = ['*']
ESC :wq (書き込み終了)
cd cd proj python manage.py makemigrations python manage.py migrate python manage.py runserver (パブリックDNS名):8000 http://(パブリックDNS名):8000
で、ブラウザでアクセスしてみる
時計が周り続けて、なにも表示されない「このサイトにアクセスできません」
ポートを開けないといけない
awsダッシュボードのセキュルティ-グループから
インバウンド編集、ルール追加、
プロトコール:TCP,ポート範囲:8000、保存
http://(パブリックDNS名):8000
で、ブラウザでアクセスしてみる
It worked! Congratulations on your first Django-powered page.
無事、Djangoの画面が表示された
14.Nginxインストール
python manage.py runserverで、キー入力できない時は
CTR-Cで、終了
sudo yum install -y nginx エラー To use, run # sudo amazon-linux-extras install nginx1.12
指示に従いこちらで
sudo amazon-linux-extras install nginx1.12
nginxを起動する
sudo systemctl start nginx
http://(パブリックDNS名)
で、ブラウザでアクセスしてみる
「このサイトにアクセスできません」
ポートを開けないといけない
awsダッシュボードのセキュルティ-グループから
インバウンド編集、ルール追加、80、保存
8000はそのままにしておく
(後で閉じるように)
http://(パブリックDNS名)
で、ブラウザでアクセスしてみる
Welcome to nginx on Amazon Linux!
nginxの画面
それでは、Djangoとnginxを繋げるためにuWSGIを使ってみる
17,uWSGIインストール
pip install uwsgi
https://qiita.com/xKxAxKx/items/da9dcc8caa36e1c303c7
を参考にして、
nginx.conf
を変更
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.org バックアップしてから 編集 sudo vi /etc/nginx/nginx.conf
追加、削除を行う
http {
.
.
.
.
include /etc/nginx/conf.d/*.conf;
#以下3行追加
upstream app_server {
server 127.0.0.1:8000 fail_timeout=0;
}
server {
#以下4行はコメントアウト
#listen 80 default_server;
#listen [::]:80 default_server;
#server_name localhost;
#root /usr/share/nginx/html;
# 以下3行を追加
listen 80;
server_name (パブリックDNS名);
client_max_body_size 4G;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
# 以下4行を追加
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_server;
}
ESC+:wq
で書き込み終了
sudo nginx -t
文法チェック
sudo systemctl stop nginx sudo systemctl start nginx
設定ファイルを修正したのでnginxを起動(一度停止してから起動)
cd cd proj uwsgi --http :8000 --module proj.wsgi
http://(パブリックDNS名)
で、ブラウザでアクセスしてみる
It worked! Congratulations on your first Django-powered page.
と表示された
18,おわりに
不要なポート閉じる
awsダッシュボードのセキュルティ-グループから
インバウンド編集、8000を削除、保存
EC2でftp接続する方法
EC2でプログラムを作る時、やはり使い慣れたftpで組んでいきたい。
EC2にftpサーバを立ち上げて、クライアンと接続してみる。
1,vsftpdのインストール
sudo su
yum install vsftpd -y
2,接続IPを調べる
SSH端末に入って
curl http://169.254.169.254/latest/meta-data/public-ipv4
参考
https://qiita.com/Yuki_BB3/items/deeb84c360c6f3c37f51
3,設定ファイルの変更(/etc/vsftpd/vsftpd.conf)
一応、原本を保存
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
sudo vim /etc/vsftpd/vsftpd.conf
はじめから新規に作っていいのだが、
一度、全て消してみる
(dは行削除)
d10 ENTER
d10 ENTER
d10 ENTER
挿入モード i
以下をコピペ(端末なのでShift+Ctr+Vで貼り付ける)
(ElasticIPで登録したIPアドレス)
の部分は、3で調べたIPを設定
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
ascii_upload_enable=YES
ascii_download_enable=YES
ls_recurse_enable=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_addr_resolve=YES
pasv_address=(ElasticIPで登録したIPアドレス)
pasv_min_port=60001
pasv_max_port=60010
use_localtime=YES
force_dot_files=YES
seccomp_sandbox=NO
allow_writeable_chroot=YES
貼り付けたら
ESC :wq
で、保存してvimを終了
参考
4,ポートの設定
Amazonのダッシュ-ボードから、セキュリティーグループで追加
21,22,60000-6010
5,サービス起動
vsftを起動(一度止めてから起動)
sudo systemctl stop vsftpd
sudo systemctl start vsftpd
6,接続用アカウントにパスワード設定
sudo passwd ec2-user
パスワード設定
参考
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-password-login/
7,ftpクライアントからの接続
ftp (ElasticIPで登録したIPアドレス)または、DNS xxxx__us-east-2.compute.amazonaws.com
ec2-user
パスワード
8,接続完了
IPが変わったら、再度
/etc/vsftpd/vsftpd.conf
の変更と
サービス再起動が必要です。
IP固定でない場合は、インスタンスを停止、起動すると、新しいIPになります。