tag:crieit.net,2005:https://crieit.net/tags/%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC/feed 「サーバー」の記事 - Crieit Crieitでタグ「サーバー」に投稿された最近の記事 2021-05-17T15:08:06+09:00 https://crieit.net/tags/%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC/feed tag:crieit.net,2005:PublicArticle/17149 2021-05-17T15:08:06+09:00 2021-05-17T15:08:06+09:00 https://crieit.net/posts/8ea24ff9ebb183396a970190798b576f サーバーのパーツ <h2 id="サーバを構成するパーツについて"><a href="#%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E6%A7%8B%E6%88%90%E3%81%99%E3%82%8B%E3%83%91%E3%83%BC%E3%83%84%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6">サーバを構成するパーツについて</a></h2> <p>主に4つのパーツで構成されている。</p> <p>・CPU<br /> ・メモリ<br /> ・ディスク<br /> ・電源ユニット</p> <hr /> <h2 id="CPUについて"><a href="#CPU%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6">CPUについて</a></h2> <p>・コンピューター の頭脳と呼ばれる。</p> <p>CPUを選ぶ際に注目すべき点は主に3つある。</p> <p>1.クロック周波数と世代<br /> →クロック周波数が高いほど、処理速度は向上する。<br /> だが、現代ではマルチコアが主流なため、CPUのコア数が性能を大きく左右するため、あまり重視されない。そして、同じ周波数でも世代が新しくなるほど性能は向上する。</p> <p>2.コア数<br /> →CPUの核で処理部分。<br />  2個=デュアルコア<br /> 2個=:クアッドコア<br /> 10個=メニーコア</p> <p>3.キャッシュメモリ<br /> →CPUがプログラムを直接低速なディスクやメモリからアクセスすると本来の性能が出せない。<br /> この速度差による性能低下を抑えるため、CPUがアクセスするデータの一部を高速なキャッシュメモリに蓄える。</p> <hr /> <h2 id="メモリ"><a href="#%E3%83%A1%E3%83%A2%E3%83%AA">メモリ</a></h2> <p>・主記憶装置<br /> →キャッシュメモリに収まらないデータを格納するための装置。データの読み書き速度は補助記憶装置より早いがキャッシュメモリより遅い。</p> <p>・補助記憶装置<br /> →容量は多いが、高値。</p> <p>速度の順は、<br /> キャッシュメモリ>メモリ>ディスク<br /> となる。</p> <hr /> <h2 id="ディスク"><a href="#%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF">ディスク</a></h2> <p>・OSやアプリケーションプログラム、データを格納する装置。<br /> キャッシュメモリやメモリと違い、電源を切ってもデータは失われないが、読み書きは低速。</p> <p>ディスクの種類<br /> ■ハードディスク(磁気でデータを記録)</p> <p>・SATAハードディスク<br /> → PC用のディスク<br /> ・1日8時間程度の稼働を想定。<br /> ・安くて大容量だが低速 <br /> ・アクセス頻度の低いデータの保存ならサーバーで利用しても問題なし。 </p> <p>・SASハードディスク<br /> →サーバ用のディスク<br /> ・365日24時間の稼働を想定<br /> ・SSDより安くSATAより高速<br /> ・一般的なサーバに最適</p> <p>■SSD(半導体でデータを記録)</p> <p>・SSD(Solid state Drive)<br /> →・SATA、SAS、NVMeの<br />   接続規格に対応したものがある<br /> ・ハードディスクよりかなり高価だが<br />  圧倒的に高速<br /> ・高速なデータアクセスが要求される用途に最適</p> <hr /> <p>ただのまとめだが、追加があれば書き足していこうと思う。</p> TFI tag:crieit.net,2005:PublicArticle/14237 2017-12-19T06:24:49+09:00 2018-10-24T21:37:00+09:00 https://crieit.net/posts/Systemd-Phoenix Systemdを使ったPhoenixの本番デプロイ詳細例 <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/advent-calendar/2017/elixir">Elixir Advent Calendar 2017 - Qiita</a></p> <p>19日目。</p> <p>サーバーを準備し、コンテナを使わずに運用できるところまでの準備まで一通りまとめてみた。<br /> Systemdで動作させる。</p> <p>(以前残したログをまとめているだけなので正確でない可能性あり)</p> <h3 id="前提"><a href="#%E5%89%8D%E6%8F%90">前提</a></h3> <ul> <li>Elixir1.5</li> <li>Phoenix1.3</li> <li>Debian</li> </ul> <h3 id="初期設定"><a href="#%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A">初期設定</a></h3> <p>最初だけ本番で調整したものをコミットしたりもするのでgitもちょっと設定。</p> <pre><code class="sh">sudo apt-get update sudo apt-get install -y git dbus sudo timedatectl set-timezone Asia/Tokyo git config --global user.name "name" git config --global user.email "email" </code></pre> <h3 id="Elixir &amp; Phoneix &amp; Node.js"><a href="#Elixir+%26amp%3B+Phoneix+%26amp%3B+Node.js">Elixir & Phoneix & Node.js</a></h3> <pre><code class="sh">curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb sudo apt-get update sudo apt-get install -y nodejs inotify-tools esl-erlang elixir mix local.hex --force mix local.rebar --force mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez --force sudo apt-get install --reinstall build-essential </code></pre> <h3 id="DB"><a href="#DB">DB</a></h3> <p>MySQLとかPostgreSQLとか。<br /> 普通は別サーバーだろうし省略。</p> <h3 id="ビルド"><a href="#%E3%83%93%E3%83%AB%E3%83%89">ビルド</a></h3> <p>ssh-keygenかtokenかでcloneできるように準備。<br /> 適当なので環境変数とかユーザーは適宜いい感じにしてもらった方が良いかもしれない。</p> <pre><code class="sh">git clone ********.git cd appdir mix deps.get --only prod sudo MIX_ENV=prod mix compile cd assets npm install sudo npm install -g brunch brunch build --production cd .. sudo MIX_ENV=prod mix phx.digest sudo MIX_ENV=prod mix ecto.migrate sudo MIX_ENV=prod mix phx.server </code></pre> <p>とりあえずここまでで動くか確認する。</p> <h3 id="Let's Encrypt"><a href="#Let%27s+Encrypt">Let's Encrypt</a></h3> <p>省略。下記の記事に一応詳細は書いてある。</p> <p><a target="_blank" rel="nofollow noopener" href="http://alphabrend.hatenablog.com/entry/2017/10/10/214222">PhoenixでLet's EncryptによるSSL - アルファブレンド プログラミングチップス</a></p> <h3 id="Systemd"><a href="#Systemd">Systemd</a></h3> <pre><code class="sh">sudo vi /etc/systemd/system/myapp.service </code></pre> <pre><code class="ini">[Unit] Description=My app [Service] WorkingDirectory=/home/username/appdir Restart=always Environment=MIX_ENV=prod HOME=/root ExecStart=/usr/local/bin/mix phx.server [Install] WantedBy=multi-user.target </code></pre> <pre><code class="sh">sudo systemctl enable cybozulive sudo systemctl start cybozulive </code></pre> <h3 id="運用"><a href="#%E9%81%8B%E7%94%A8">運用</a></h3> <p>pull, compile, brunch build, digest, migrate, restart</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14291 2016-10-28T05:27:01+09:00 2018-10-25T22:16:08+09:00 https://crieit.net/posts/Linux-Mint18-apache2-4-php7 Linux Mint18でapache2.4とphp7 <p>Linux Mint18でapache2.4とphp7を使うとエラーが起きた。</p> <p>phpMyAdminを使おうと設置して閲覧すると、phpのソースがそのまま表示された。<br /> phpのモジュールがロードされてないっぽいので調べてみると、<br /> /etc/apache2のmods-availableにはphp7関連ファイルがあるのだがmods-enabledの方にはない。<br /> 有効にするにはシンボリックリンクを貼ると良いようなのでphp7.0.loadとphp7.0.confをリンクする。</p> <p>すると、apacheを再起動時にエラーが発生するようになってしまった。<br /> configtestをしてみると、下記のメッセージが表示されていた。</p> <pre><code>Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe </code></pre> <p>調べてみると、どうもapt-getでインストールしたphpは今回のapacheの設定に合っていないらしい。<br /> なのでMPMをeventからpreforkに変更するため、<br /> mods-enabledからmpm_event.conf, mpm_event.loadを削除し、<br /> 代わりにmpm_prefork.conf, mpm_prefork.loadのシンボリックリンクを貼る。</p> <p>これで再起動で動作した。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14330 2015-10-08T16:10:13+09:00 2018-10-30T16:05:15+09:00 https://crieit.net/posts/XAMPP-mailoutput XAMPPのmailoutputを閲覧するプログラム <p>XAMPPのデフォルトのメール送信はmailtodiskになっており、<br /> 実際にはメールは飛ばず隣のmailoutputというフォルダに<br /> メールが保存される仕組みになっている。<br /> ローカルで開発を行う際にはテストでメールがいっぱい飛ぶと厄介なので<br /> メールが飛ばないのは意外と便利だったりする。</p> <p>中身が一部エンコードされていたりするので、<br /> 解析して閲覧できるツールを適当に作ってみた。<br /> あくまで自分で使う用。<br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/dala00/MailoutputViewer">MailoutputViewer</a></p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14440 2010-06-05T09:00:00+09:00 2018-09-27T16:12:48+09:00 https://crieit.net/posts/swfmill-5b0d18bdbf918 さくらサーバーにswfmillをインストール <p>さくらサーバーにswfmillをインストールした備忘録。<br /> プランはビジネスの安い方。</p> <p>swfmillをダウンロードしてインストールしますが、<br /> 最新バージョンはlite用パッチが上手くきかないので0.2.12を使う。</p> <blockquote> <p>|sh|<br /> wget http://swfmill.org/releases/swfmill-0.2.12.tar.gz<br /> tar xzf swfmill-0.2.12.tar.gz<br /> cd swfmill-0.2.12<br /> wget http://lab.klab.org/files/flash/encoding.patch<br /> patch -p1 < encoding.patch<br /> ||<br /> configureは自分のディレクトリのパスを指定。<br /> |sh|<br /> ./configure –-prefix=/home/username<br /> ||<br /> エラーがでるのでソースを修正。<br /> src/gSWFParseXML.cppの31行目<br /> |cpp|<br /> size_t r = iconv(cd, (const char<strong>)&pin, &inbytesleft, &pout, &outbytesleft);<br /> ||<br /> src/gSWFWriteXML.cppの31行目<br /> |cpp|<br /> size_t r = iconv(cd, (const char</strong>)&pin, &inbytesleft, &pout, &outbytesleft);<br /> ||<br /> libpngのバージョンが合わない場合は下記も修正。<br /> pngは自分で用意するならチェックいらないだろう…という勝手な前提。<br /> src/swft/readpng.cの72行目<br /> |cpp|<br /> // if (!png_check_sig(sig, )<br /> // return 1; /* bad signature */<br /> ||<br /> これでmake & make installで、phpから起動してみたらxmlが出力されたところまでは確認。<br /> あとは未確認。</p> </blockquote> だら@Crieit開発者