カテゴリー別アーカイブ: Linux

【Mastodon】AWS、CentOS7、Apache2.4 でマストドン!

今流行りのMastodonを立ち上げて見ました -> https://humou.jp
(コスト高で停止しました。)

Mastodonって?->Wikipedia

公式のGitHubでサーバの構築ドキュメントがきちんとありましたが・・・

あえて、
・dockerを使わず
・nginxを使わず
・Ubuntuを使わず
構築してみようかと思いました。

以下、今回の環境設定

実はAmazonLinuxでも試しました。
ベースがレッドハット6系でいろいろと作業が止まったので断念しましたorz

1. 基本的な環境構築

EC2でCentOS7のインスタンスを作成します。
タイプはt2.microで大丈夫でした。

作成してインスタンスにログインできたら、基本的なリポジトリをインストール
(面倒くさがりな私は最初にsudo suをしてたりします)

2. rbenvとrbenv-buildとRuby

Ruby使ったことなかったんで、これが本当に良くわかんなくて詰まった。
公式的にはここを見ればできる書いてるけど・・・

ここからはmastodonユーザに切り替えておく

パス通しと初期化がなんか上手くいかない。
とりあえずパス通ってればいいんだろ?的なノリで上のように変数やら面倒なことしないで”絶対パス”で通してやった。

3. DBとRedis

Rubyインストールが長いんで、その間にDBを・・・
公式のドキュメントではRedisとDBの構築についても書かれていましたが、
AWSで楽したいので、RDSとElastiCacheを使います。

めっさ楽。

4. Apache2.4インストール

更に、以下を参考にMastodon用のバーチャルホストを追加
Apache設定

5. Mastodonインストール

ぶっちゃけRubyの構築が一番面倒だったのでここまでくればあとは楽・・・ではないな。

XXXXXのところはコマンド「rake secret」で作った文字列を張り付ければよろしいかと。(多分)

6. Mastodonをシステムに登録

SystemDに登録してスタートとかリスタートとか使えるようにする。

上記を行うと、以下のコマンドが有効になる

構築終わり。

7. 終わりに

・SSLとかの設定はLetsEncryptとかを見れば簡単にできると思うので割愛
・Rubyが全然わからん、どうしよう
・Haml?もまだ理解していない、どうしよう
・誰もいないのに1か月の維持費3600円くらい、どうしよう
・連盟?の組み方わからない、どうしよう

参考にさせて頂いたサイト一覧

https://github.com/tootsuite/mastodon
https://www.yournearestbar.com/
http://qiita.com/motiakoron/items/1e5b0679f7283bfee70b
http://qiita.com/genya0407/items/afb9c3f075225de856ed
http://dev.classmethod.jp/cloud/aws/amazon-linux-centos-rhel-difference/

PHPのループで [毎回if文判定 VS 毎回%(剰余)計算]

とある場面で、以下のような状況になりました。

先頭に戻る処理を「if文」or「剰余」で配列の参照ポインタを計算することになりましたと。

ここで、どっちが処理速い?
と思ったので試してみました。

初めに1つ: 1億個ほどのデータ量じゃないと速度を実感できなかったりします。

上記をtimeコマンドで実行
>time php test.php

何回か試しましたが、1億回の繰り返しでは約1.5秒の差がありました。
比較のが軽いということですかね。

ただ、ぶっちゃけそんなに大きな差がないので気にせず可読性を重視しよう。
これに尽きると思います。

ぱっと思いつきませんでしたが、なんか他にもいろいろ方法はありそうですね。

 

——————-
PHP 5.6
CentOS 6.8
——————-

【ネット回線】経路調査のpingとtraceroute

勤務先のオフィスのネット回線が高頻度で死んでしまうので、軽い原因調査を行いました。
(まぁその調査結果は今回あまり関係ないので省略します)

pingやらtracerouteやら使った時のメモ。

Windows -> tracert

今回は、[オフィス→自宅サーバ] and [自宅サーバ→オフィス]の経路を調査しました。
ですので、手持ちのWindowsPCと自宅サーバのLinuxそれぞれでコマンドを実行。
Windowsでは以下を実行

Windows側は基本このままで大丈夫でした。
いろいろオプションはありますが、デフォルトで事足りるかと。

 

Linux -> traceroute

Linux(CentOS6.7)では以下のコマンドを実行

Linuxのpingコマンドはオプション指定しないと永遠に繰り返しパケットを送ります。
Linuxの経路調査は「traceroute」コマンドです。
さらに、オプション[-I]を付けないとICMPではなくUDPで動作するので失敗する事が多いようです。
[-I]オプションを付ければpingと同じICMPで動作するので、大体成功します。

 

【自宅サーバ】HDDが勝手に復活

部屋の掃除がありまして、休止モードにしようとコマンドを試したところ壊れていたHDDが復活いたしました。

見事にRAID1が復旧中でございます。

なぜ復活したのか・・・

マジ、コンピュータって生き物だわぁ

root宛のメールを転送

当自宅サーバでは1分に1回crontabによりHDD温度の記録処理が走ります。

MySQLを再起動とかすると、1分以内に復帰できない場合エラーとなり、
root宛に「cron実行できなかった」的なメールが届きます。

このroot宛のメールを読むのはサーバにログインしないといけなかったりけっこう面倒です。

面倒なので、普段使ってるメールアドレスに転送しようというのが今回の流れです。

以下、Postfixはインストールしてる前提。 続きを読む

【apache】魔法少女アパッチ☆マギカ【php】

今日、apacheのアクセスログを見たらこんなんがあった

(IPとか”*”で伏せてる。めっちゃ長いの適当に改行を入れた)

巷で話題の「魔法少女アパッチ☆マギカ」なるものらしい(とあるブログで見たまんま)
続きを読む

【Linuxコマンド】moreコマンドの中で文字列検索

$more test.txt

とか、moreコマンドでファイルを表示することが可能ですが。
moreコマンド実行中に[/]スラッシュを入力することで文字列検索が可能です。
[/hogehoge]
とすると”hogehoge”にマッチした行まで移動してくれます。