投稿

AWSのUbuntu18.04LTSにmauticをインストール

最近 マーケティングオートメーション なる考え方を勉強していて、 マルケト SATORI HUBSPOT Salesforce Pardot なんか色々とあるということは理解できたけど、ほとんどが有償でハードルが高いです。 調べていた中でOSS版 mautic だとお手軽に勉強できそうだったのでインストールしてみました。ひさびさにPHPのサーバ構築で、 FastCGI のところでやや嵌りましたが無事にインストールできました。なのでひとまず備忘録として置いておきます。 この通りの手順でやって損害出るかもなのでコピペして本番運用はしない方がいいかと思います。それなりにセキュリティ対策はしておいてください。環境はAWSのUbuntu18.04+PHP7.2+MariaDBです。PHP7.3でやりたかったんですが、対応してないってことなので泣く泣くPHP7.2です。 あとはゆくゆくのバージョンアップを考えて git clone でインストールしてみました。 バージョンアップ 、これは今後の課題、それでは以下手順です。 ◆作業手順 ## ホスト名設定 $ sudo hostnamectl set-hostname mautic_srv ## アップデート $ sudo apt-get -y update $ sudo apt-get -y upgrade ## sshセキュア強化 $ sudo vi /etc/ssh/sshd_config PermitRootLogin no ←追記 $ sudo service ssh restart ## 日本語化 $ sudo apt-get -y install language-pack-ja $ sudo update-locale LANG=ja_JP.UTF-8 $ sudo apt-get -y install binutils $ strings /etc/default/locale $ sudo apt-get -y install manpages-ja manpages-ja-dev ## timeZone設定 $ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime $ sudo dpkg-r...

python2.7のLambdaEC2自動起動スクリプトをpython3.7化してみた

https://dev.classmethod.jp/cloud/aws/simple-auto-start-stop-for-ec2/ 上記のサイトを丸写ししてEC2の自動起動をしていたんだけれども、 python2.7のサポート終了 が近付いてきているので、Lambda関数をpython3.7化してみた。 最初にLambdaをそのまま3.7に切替えてみたんですが動作しない。 CloudWatchのログ を見てみるとエラー出てるじゃないですか。 ※先にログ見ろよな [ERROR] Runtime.UserCodeSyntaxError: Syntax error in module 'lambda_function': invalid syntax (lambda_function.py, line 10) Traceback (most recent call last): File "/var/task/lambda_function.py" Line 10 print 'started your instances: ' + ", ".join(instances) そりゃそうですよねぇ。そのままで動くと思ったらprint文で引っかかるんですね。 ひとまずエラーの内容を元に以下の通り書き替えました。 import boto3 def lambda_handler(event, context): region = event['Region'] operate = event['Action'] instances = event['Instances'] ec2 = boto3.client('ec2', region_name=region) if operate == 'start': ec2.start_instances(InstanceIds=instances) msg = 'started your instances: ' + ", ...

ClamAVインストール時にエラーが出て困った話

Linuxだと、よく ClamAV をウィルス対策に入れたりするわけですがたまに以下の様なメッセージが出ることがあります。通常はアップデートを待つしかないので仕方なく待つわけなんですが、 Your ClamAV installation is OUTDATED! Local version: 0.100.3 Recommended version: 0.101.2 Ubuntu18.04LTSだとStapleがversion0.100.3で こんな感じでトラブって いるようです。 そして用事があるのでHyper-VにUbuntu18.0.4LTSを入れました。普段はこういうケースの時はClamAV入れないんですけど、とある事情でどうしても入れなきゃいけなくなりました。ところがどっこい、今日はうまくいかない、、、。なぜだ? 以下の様なメッセージがmain.cvdとdaily.cvdとbytecode.cvdの3つで発生してしまって途方に暮れておりました。どうすりゃいいんすか? -> !Can't download bytecode.cvd from db.us.clamav.net -> Giving up on db.us.clamav.net... -> Update failed. Your network may be down or none of the mirrors listed in /etc/clamav/freshclam.conf is working. Check https://www.clamav.net/documents/official-mirror-faq for possible reasons. さらにスキャンしようとすると当然ながらエラーです。 LibClamAV Error: cli_loaddbdir(): No supported database files found in /var/lib/clamav ERROR: Can't open file or directory 色々と調べていて途方に暮れていたところQNAPなんですが何となく これ が参考になるのではないかと思い強引に試してみました。 $ wget http://databas...

wikipediaデータを綺麗にしてからWord2vecやってみた

今更な感じですが色々とあって Word2Vec で類義語分析とか表記ゆれとかできないかと思ってお勉強兼実験しました。 もう一人のボク のためにその時のメモを置いておきます。データ加工してからword2vec使って関連する語出すとこまでです。相変わらずほぼコピペだけどね。そして corpusのつづりを間違えているのはお約束です。へぼすぎだな(笑) ■手順概要 1.ディスク容量拡張 2.関連ライブラリインストール 3. コーパス 準備  ・ Wikipediaの日本語ダンプ をダウンロード(約2時間)  ・ダウンロードしたデータから記事本文抽出(約2時間10分)  ・抽出した記事本文のクリーニング(約15分)  ・記事データを1ファイルにマージ(約5分)  ・ 形態素解析 して 分かち書き に変換(約30分)  ・ モデル学習 (約2時間) 4.サンプルで遊ぶ ■実際のコマンドやプログラムなど 1.ディスク容量拡張 Hyper-Vのディスク容量が20GB程度しかなくwikipediaのデータが 2GBほどあるとのことなのでディスク容量に余裕を持たせるために ディスクを拡張した。仮想マシンが上がっていない状態で容量拡張 ・Hyper-Vマネージャからディスクの編集で容量を拡張 ・Hype-Vマシンを起動後に以下のコマンドでUbuntu上で拡張 $ sudo fdisk -l $ sudo parted GNU Parted 3.2 /dev/sda を使用 GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。 (parted)print ~中略~ 修正/Fix/無視(I)/Ignore? Fix 番号 開始 終了 サイズ ファイルシステム 名前 フラグ 1 1049kB 538MB 537MB fat32 EFI System Partition boot, esp 2 538MB 21.5GB 20.9GB ext4 ~中略~ (parted) resizepart 2 警告: パーティション /dev/sda2 は使用中です...

GCPローカルサーバレス開発環境準備(gcloudインストール)

今のところAWSでAPIGateway+Lambda+DynamoDBでサーバレス開発というパターンが多いけど、DynamoDBだとキーをたくさん持てないという制約があってどうしてもフラグをたくさん持たせてあいまいに検索させたいという要件に弱かったりする。一応、 こういうのも AWSにあるんだけど 料金 が24時間連続イメージで一番小さな規模でも最低25,000円超えてしまいそうなので他に何かないか探していたら、GCPの方で DATASTORE とかいうのがあるらしいと知った。けれど Firestore に切り替わっているじゃないですか。やれることは同等でかつ、 料金面 でも DynamoDBの料金体系 に近いのでアクセス数とか少ないWebサイトのバックエンドにちょうどいい感じだったりする。組み合わせとしては APPEngine と CloudFunctions の2つで使えるみたい。少し勉強してみようといろいろ調べがてらローカル開発環境はどうやって作るんだと思い、まずはgcloudコマンド入れてみることにした。 AWSのSAM-CLIを入れるときに作ったHyper-Vのイメージ が残ってるのでそいつを使いまわして環境構築です。 ■参考サイト 情報が少なかったです。ただ単に自分の探し方が悪いだけかも https://cloud.google.com/sdk/downloads?hl=JA#linux https://qiita.com/kentarosasaki/items/2232113b44b016a56adc https://cloud.google.com/sdk/docs/quickstart-linux?hl=ja https://cloud.google.com/sdk/docs/managing-components?hl=ja ■手順(あらかじめ3までは既存イメージで作ってある状態) #1.初期設定 #日本語化 $ sudo sed -i.bak -e "s%http://us.archive.ubuntu.com/ubuntu/%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list $ sudo apt-get -y inst...

AWS-SAM-CLIとDynamoDBLocalインストール

前回書いたSAM-CLIの件からだいぶ間が空いてしまいました。 参考: 前回分 Lambdaも実はSAM-CLI使わずに開発できるレベルのコードしか書かないのでコンソールの方のエディタで開発していましたが、 ここにきて会社の方から課金云々とかいう細かい話をされだしたので、ならローカルに 環境作らないとなぁとサーバレスの代表的構成例である API-Gateway + Lambda + DynamoDB という お約束なやつをローカルの環境に構築しました。 ※EC2の上に立てるとお金がかかるとか言われてうるさいので、Windows10Proの  Hyper-V上にUbuntu18.04LTS入れてそこに環境構築しましたよ。 WSL 使ったほうが  いいんだろうけど不安な面もあるので安定のUbuntuでやります。会社のしょぼいPC  では挙動が怪しいですがまぁ16GBメモリあれば動くんじゃなかろうかと思います。  ちなみに会社PCはcore-i3にメモリ8GBと糞of糞なスペックです。 とりあえず、手順をサラッと書いていきます。というより docker-compose.yml にまとめとけよとかいう突っ込みはなしで(いつかはやりたいなぁ、、、) #1.日本語化 $ sudo sed -i.bak -e "s%http://us.archive.ubuntu.com/ubuntu/%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list $ sudo apt-get -y install language-pack-ja-base language-pack-ja ibus-mozc $ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja" $ source /etc/default/locale $ echo $LANG ja_JP.UTF-8 #タイムロケール変更 $ sudo timedatectl set-timezone Asia/Tokyo $ timedatectl #ソフトウェアアップデート $ sudo apt-get -y upda...

pythonでRSSを取得してみる

前回 はWordCloud作ってみましたが、そんだけだとテキストファイルをいちいち整形しないといけないので、なんか自動で情報取得できないかなぁと思ってRSSフィードの内容を取得するプログラムなんかあればWordCloudに食わせるファイル作るの楽になるんじゃないかなぁと思って RSSフィード 取得ツールを作ってみました。 んーエラー制御がザルですのでダメダメですけど、、、 ◆参照サイト 1.CSV取扱い関連 https://note.nkmk.me/python-csv-reader-writer/ http://esu-ko.hatenablog.com/entry/2016/02/16/Python%E3%81%A7CSV%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%89%B1%E3%81%86%28%E3%83%AA%E3%82%B9%E3%83%88%E3%82%84%E8%BE%9E%E6%9B%B8%E3%81%A8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95 https://qiita.com/nabenabe0928/items/fcdf2c81e5fff3364c6f http://kaworu.jpn.org/python/Python%E3%81%A7CSV%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%AA%AD%E3%81%BF%E6%9B%B8%E3%81%8D%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95 http://y0m0r.hateblo.jp/entry/20120712/1342100284 https://www.craneto.co.jp/archives/1309/ http://pynote.hatenablog.com/entry/python-csv-io-recipe https://www.sejuku.net/blog/68322 https://qiita.com/shinsaka/items/299159968d7226c9bdb9 https://qiita.com/hkambe/it...