Category "Backend"を表示しています。
2019.4.3 水
よく使うcurlのコマンド curl -LI example.com -o /dev/null -w '%{http_code}\n' -s
2019.3.25 月
docker-compose.ymlで以下のように設定します。 .... phpmyadmin: image: phpmyadmin/phpmyadmin environment: - PMA_ARBITRARY=1 - PMA_HOST=mysql - PMA_USER=root - PMA_PASSWORD=SET_PASSWORD links: - mysql ports: - 8080:80 volumes: - /sessions 最終的にはこんなようなカタチになります。 version: '3' services: wordpress: image: wordpress:latest ports: - "3001:80" environment: WORDPRESS_DB_NAM...
2018.11.5 月
# Linux CentOS7 .bash_history .bash_logout .bash_profile .bashrc .cache .config .ssh .viminfo # my backup batch logs #public tmp
2018.10.26 金
Postgresqlの最新をインストールします。 基本はここから最新を探してくる。 PostgreSQL RPM Building Project – Repository Packages リポジトリの登録 CentOS 7 – x86_64をインストールします。 # yum -y install https://yum.postgresql.org/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm インストール # yum -y install postgresql11-server postgresql11-devel postgresql11-contrib バージョン確認 # psql --versi...
2018.10.19 金
デバック方法は数ある中でも最終的に頼りになるデバック方法を備忘録として書いておこうと思いました。いろいろな武器はかなりの性能を発揮するのですが、それがいつでもどこでもどの環境でも使えるわけではないというわけで、とりわけサバイバルナイフ一本でどこまでできるかというような趣旨になります。 そして「プログラムは嘘をつかない、いつかは必ずみつかるバグ」をモットーにがんばりましょう! Grep いわずと知れたgrepコマンドですが、grepはシステムを制すなのです。 ほとんどの場合、他のコマンドをパイプでつないで使います。出力した内容をそのままパイプで渡して文字列検索をします。 パイプを使う $ cat index.php | grep -n "include" -nオプションを入れておくと行数が出て...
2018.10.8 月
HDDがいつの間にかいっぱいになっちゃったという原意の100%はログといっても過言ではありません。 なのでlogrotateサービスを設定しておく必要ありです。 # rpm -qa | grep logrotate logrotate-3.8.6-15.el7.x86_64 ファイルは以下のようになっています。 – /etc/logrotate.conf ログローテーション全体の管理ファイル – /etc/logrotate.d/* ログファイル個々の設定ファイル – /var/lib/logrotate/logrotate.status 「最後にローテーションした日時」を管理するファイル 基本的な設定 /etc/logrotate.confのデフォルト。...
2018.9.6 木
いろいろ解説は他のサイトにもあるので、まずはDocker Hubに登録してみましょう。 https://hub.docker.com/ ここでアカウントを取得しておくと Githubみたいに自分で作ったDockerの管理ができるようになります。(自分のローカル内で管理するより数段いい。) MacにDocker環境を作成する ダウンロードとインストール Dockerをダウンロードしてきます。Stableの方でOKかと。499MBぐらいなのでそんなに重くないんですね。 https://store.docker.com/editions/community/docker-ce-desktop-mac 通常のアプリケーションと同様dmgファイルからインストールします。 上部にDockerのアイコンが...
2018.8.29 水
サーバーが死にそうになっているときのマニュアルです。 サーバークラスタリングとかスケールアウトとかスケールアップとか考えた方がいい。クラウドフロント辺りのキャッシュサーバでもいいかも。 原因は?と聞かれますがたいていは「サーバースペックがショボいから」というのが大半。 急いでやるやつ rootでログイン 簡易的に状態をみる load average 目でだいたいの状態を把握する top HDDの容量 df ブラウザーアクセスやSSHでログインして明らかに操作が遅延したり見た目で動きがもっさりしていたりする、あるいは監視のアラートメールが来たりしているピーク時に目視するのが目的のコマンドになります。 落ち着いてやるやつ procs memory swap io system cpu プロセスを...
2018.8.22 水
各ユーザーのデフォルトの挙動を追加したりするにはLinuxのprofileの仕組みを使います。この機能についてはなんか全般的に名前ってないんですかね。 各設定は継承されるようになっていて/etc/profileが最優先で読み込まれ設定されます。これは全ユーザーに反映されます。~/から各ユーザーに個別に設定することが可能になっています。 設定される優先順位 /etc/profile /etc/profile/profile.d/* ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc /etc/bashrc となっています。 設定 PATH 環境変数の設定 (例) export PATH=$PATH:/usr/local/mysql/bin PS...
2018.8.1 水
AWSのEC2でLinux2を使っている場合「amazon-linux-extras」というAWS独自のライブラリーを使うと便利です。 https://aws.amazon.com/jp/amazon-linux-2/faqs/#Amazon_Linux_Extras Amazon Linux Extras Q: Amazon Linux Extras とは何ですか? Extras は、安定したオペレーティングシステムで新しいバージョンのアプリケーションソフトウェアを利用可能にする Amazon Linux 2 のメカニズムで、2023 年 6 月 30 日までサポートされます。Extras は、OS の安定性を確保しつつ、最新のソフトウェアを利用できるようにするうえで役立ちます。例えば、5...
2018.8.1 水
時々しかやらないのでハマりました。要は普通の80のバーチャルホストとほとんど同じです。 NameVirtualHost *:443を設定するのを忘れないようにする。 Defaultはアスタリスクにする。(上記と共に) <VirtualHost *:443>...</VirtualHost>のブロックを複数作る。 これで複数設定できるようになります。 最低限必要な設定は以下のような感じになります。 <VirtualHost *:443> DocumentRoot "/home/user/www" ServerName example.com:443 <Directory "/home/user/www"> AllowOverride All &l...
2018.7.27 金
AWSとかSaas系のサービスではプロンプトがローカルIPアドレスになったりするのだけどかなり見づらいので変更します。 この方法はホスト名に影響を与えないで変更するので、各ユーザーでやらないといけない設定なので、/etc/skelに設定しておく方がいいと思います。 HOSTNAME@USERNAME 00:00: という風にします。 .bashrcを開いて以下を追加します。 # シンプルなところで。 PS1="[\u@hostname \W]#" # いろいろカスタマイズしたい人は。。 PS1='\[\e[33m\]bluma@\u \[\e[34m\]\t \[\e[37m:' 使える変数がいっぱいあるのでお好みで。 反映するときは、 $ source .bashrc これでOKです。 L...
2018.7.17 火
全然使う用途がないんですが、ときどきこういう公開鍵が送られてきます。 ---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20180101" ADDAB3NzaC1yc2EAABCDBJQAAAIBQ5cXFWwodlNv0GxavqchaBphe444q9bK2g7nl f8/Yt6p9xK5YxwwML+lJzROe3S7gL5MrOCeyBalwH9i2MiD9cp+TpDD9XjVB9lqh zKbwZdqd4RcAUhdTzzUUbjnL/O1XJuAb3+VOoookqn0UlUgy4WnCHG01WE1Q1Pum 123456== ---- END SSH2 PUBLIC KEY ---- これ、SECSH形式です。OpenSSL...
2018.7.13 金
DMMアフィリエイト API
2018.6.27 水
プロと言えどもエラーは出ます。いろんな環境で仕事するので。 $ ssh foo@example.com Permission denied (publickey). まずはsecureを見ます。 tail -f /var/log/secure Jun 27 13:44:46 hostname sshd[32175]: User repos not allowed because account is locked Jun 27 13:44:46 hostname sshd[32175]: input_userauth_request: invalid user repos [preauth] Jun 27 13:44:46 hostname sshd[32175]: Connection c...
2018.6.19 火
個人利用 その名の通り個人向け 7ドル/月 個人アカウント 無制限の公開リポジトリ 無制限のプライベートリポジトリ 無制限の共同編集者 一部学生に無料。(いわゆるアカデミーパック) チーム利用 小規模チーム向け。個人利用の延長で小さなチームで作業するときぐらいの規模。非公開でお互いにpullリクするぐらいがちょうどいいぐらいのアカウントです。 9ドル/月 組織アカウント 無制限の公開リポジトリ 無制限のプライベートリポジトリ チームとユーザーのアクセス許可 ※本人を含めて最初の5ユーザーまでは月額25ドル/月 組織利用(Business::Hosted on) 会社規模の利用。10人20人とプロジェクトがやたらと増えてくる場合はこれぐらいがいいです。中小企業の制作会社向け。 21ドル/月 組...
2018.6.4 月
今回はさくらのクラウドIaasサービスのCPU2、メモリ1GBでインスタンスに接続しているストレージSSDプラン20GBを40GBに拡張したいと思います。 さくらのクラウド さくらのクラウド ログイン さくらのクラウド ドキュメント ストレージの拡張手順 手順は、 サーバーインスタンスを停止する 利用中のストレージ(20GB)のアーカイブ(コピー)を作成する 新規でストレージを作成する(40GB) 作成したアーカイブを新規作成したストレージ(40GB)に流し込む 利用中のストレージ(20GB)の切り離し 新規ストレージ(40GB)をインスタンスに接続(アッタチメント) という流れになります。AWSみたいに無停止でできないっぽいです。 https://knowledge.sakura.ad.j...
2018.3.4 日
rsyncなどの実行をWEBページインターフェイスから実行しようと思うとそもそものユーザーではなくApacheがユーザーとして実行するので思うように実行できないことがります。更にSSHでリモート接続するときは実行ユーザーが全く違うので秘密鍵を読めないということになります。 しかし開発をしているとごく頻繁にいわゆるログインユーザーとApacheユーザーを併用したいという状況が訪れます。以下のユーザーを例にして説明します。 user: sampleuser Apache: apache PHPの実行ユーザーは以下で取得できます。 posix_getpwuid(posix_geteuid())['name'] cliでコマンドラインで実行すると想定通りのsampleuserとなりますが、webから...
2017.12.27 水
[command]+[K]が面倒くさいと思う人はマウントしておけばいいです。 mount_smbfs //admin@192.168.1.10/system /Users/hogehoge/system Password: リモートにあるホスト(192.168.1.10)のsystemディレクトリをマウントしたいときは、上記のような感じです。 adminとパスワードでログインするような感じですかね。 ※Sierra においては mount_smbfs は非推奨で、mountコマンドでいけるらしいです。 https://qiita.com/mach3/items/e7021b9e50f2b536a86b
2017.12.25 月
Gitでリモートリポジトリにプッシュしたときにリモートリポジトリの内容を開発環境に反映させるというやつを作ります。 正確にいうと開発者がpushしたタイミングで開発環境(として設定しているホスト)が自分でpullをするという仕組みです。 hook (post-receive) リモートリポジトリの中にhooksというディレクトリがあって、その中にフックのサンプルが幾つか入っています。pushしたときに発動してくれるのが REMOTE_REPOSITORY/hooks/post-receive というやつになります。post-receive.sampleとなっているので、post-receiveにリネームして使います。中身見てみるとわかるのですが、ただのbashの実行ファイルです。pushした...
2017.12.13 水
CentOs7で新しくZONEを作って恒久的に設定させます。 http、https、mysqlを使えるようにします。 さっくり版です。 firewalldの起動 systemctl start firewalld firewalldの自動起動設定 systemctl enable firewalld まずはデフォルトゾーンの確認。 firewall-cmd --get-default-zone public ZONEの作成 firewall-cmd --permanent --new-zone=newzone success 設定変更したのでリロード firewall-cmd --reload success 作成したzoneの確認 firewall-cmd --zone=newzone -...
2017.12.13 水
最近はhttpプロトコルでのアクセスが異様に多くて何でもかんでもhttp/httpsになってきているので接続の確認方法いろいろ紹介します。 やたらとプロキシ・サーバーがあったり妙なアクセス制限があったりFWの設定情報を開示してくれなかったり世の中いったいどうなってんでだというところではありますが、順を追えばわかったりしますので根気強くハックしましょう。 特定ホストに接続できない(返り値を得ることができない) 例えば以下のようなURLにアクセスできないとします。ステータスが403になってしまったなどです。 host.example.com digでIPを探す どういう理由かはわからないので、取り急ぎdigでIPアドレスを求めます。 $ dig host.example.com xxxxx.co...
2017.12.7 木
そのまま使えるRewite ホスト名を条件にするやつ ホスト名がexample.comの場合は、httpsにしてアクセスさせる RewriteEngine on RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
2017.12.6 水
LocalhostでSMTPサーバーというのはごく頻繁。今回は外から使えるSMTPサーバーの構築手順です。 例えばLaravel5だったら.envで以下のような感じで使えるようにします。開発とかでちょこちょこ使う感じの想定なので、sslとかtlsとか設定してません。通常のいわゆる本物のメールは最近うるさいので、こういう送信メールサーバー使わない方がいいです。 開発とかで簡易的に使うのでsslとかtlsとかはなし。 postfixを使う。 普通のパスワード認証 ポートは587 (25は使わない) Laravelとかの設定ではこんな感じになる。 MAIL_DRIVER=smtp MAIL_HOST=smtp.example.com MAIL_PORT=587 MAIL_USERNAME=smtp...
2017.12.5 火
インストール 改ざん検知の有名なソフトclamAVをインストールします。 yum -y install --enablerepo=epel clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd デフォルトでこのまま使えるかと思うのでまずはウィルススキャンを手動で実行してみましょう。 テスト ダミーのテスト用ウィルスファイルを準備します。Nortonとかが敏感に反応するのでPC上でやる場合はウィルス検知系のソフトをいったん切ります。 cd /root w...
2017.12.5 火
NFSサーバの設定 nfsのインストール nfs-utilsをインストールします。 # yum -y install nfs-utils サービスを起動 # systemctl start rpcbind # systemctl start nfs-server 自動起動を有効にする # systemctl enable rpcbind # systemctl enable nfs-server マウントする領域を作成 # mkdir /home/user/nfsserver テストファイル作成 # vi /var/www/nfs/test.txt 共有設定 # vi /etc/exports /home/user 192.168.2.0/24(rw) または、 /home/user 192...
2017.12.5 火
セキュリティー的にもまたはサーバー設定時にもポートスキャンは何だかんだで使うのでコマンドラインで確認しましょう! (全然他人のIPを無限にポートスキャンするとあまり気持ちよくないのでやめましょう!) nmap 普通はデフォルトでインストールされているものではないのでyumからインストール yum -y install nmap これで使えるようになります。 普通に使う nmap localhost UDPで利用しているポート nmap -sUV localhost TCPで利用しているポート確認 nmap -sTV localhost netstat nmapが使えない場合はnetstatでやるといいかも。 UDPで利用しているポート netstat -lp --udp TCPで利用している...
2017.11.22 水
特に問題なければせっかくのWEBという公開情報なので、クロールさせるが基本ですが、テストコードやそんなものがたまたまインデックスされて自分のサイト情報として上位に上がってきちゃったら格好悪いとか、あるいはそもそもクローズドなWEBサイトである場合はクロールそのものを禁止します。 とはいってもこの設定はお互いのモラルに基いてというところが基本路線なので、この設定をしたからといって公開されていないというわけではありません。 robot.txt robot.txtをドキュメントルートに作成して、 User-agent: * Disallow: / とやると、すべてのコンテンツがクロールされません。GoogleやYahooなどの大手はこれを読んで守ってくれているようです。Disallow:の後にパス...
2017.10.26 木
WEBやシステムの開発で複数のユーザーが同じコンテンツを制作する場合があります。そのような場合はユーザーにグループを紐付けて権限の調整を行います。(ってそんな必要あるんですかね。仕事ではやたらにやりますが。) user01は/home/user01/のファイルの読み書き実行のパーミッションがあります。その中の/home/user01/foo/だけuser02が読み書き実行の権限があり、その他のディレクトリは読みのみというような設定をしてみます。 user: user01 (/home/user01/*の読み書き実行権限(デフォルト)) user: user02 (/home/user01/foo/*のみ読み書き実行権限) group: group01 (共有箇所の権限を設定するグループ) ユ...
2017.9.29 金
AIDEをインストールする yum install -y aide 設定 設定ファイル確認 vi /etc/aide.conf ## 改ざん検知の対象から外すもの !/tmp !/proc aideのスキャニング自体は典型的なLinuxサーバーでは(サイズによりますが)10分から60分ぐらいはかかりました。少なくともサーバー立ち上げ時でも10分弱かかりました。なので、テスト中は殆どのディレクトリを対象外にして開発した方がよいです。 また修正した後はこの後の初期化コマンド(aide –init)でDB作成をしないとダメです。 初期化(というかDBの生成) ものすごい時間がかかるので、topコマンドで見守る。 aide --init AIDE, version 0.15.1 ### ...