Archive "2017年5月"を表示しています。
2017.5.30 火
SSHの設定はポリシー的なところ大きいので設定の仕方というご案内はできないんですが、だいたいこんなルールでやってます。 Rootのログインは基本禁止。*但し鍵認証+IP制限が可能であればOK。問題は鍵の管理になります。 パスワード認証は基本禁止。鍵認証推奨。*とはいえ「なんでパスワードでログインできないの?」って言われます。 ポートは22じゃない方がいい。4桁ぐらいの使っていないポート。 SSH1とかは使わない。 あとはデフォルトのままでいいと思う。 インストールと設定 CentOS7のデフォルトかどうかわからないけど、クラウドサーバとかVPNとかだと、OpenSSH_6.6.1p1がインストールされているっぽい。これちょっと古いです。 最新にしたい方はOpenSSHを最新にバージョンアップ...
2017.5.30 火
centos7.example.com = 123.456.789.xxxとして設定してゆきます。 アップデート インストール完了したら、とりあえずやっておく。 yum -y update 長い。 私的に必ず使うツール系をインストールしておく。 yum -y groupinstall "Base" yum -y groupinstall "Development tools" yum -y groupinstall "Japanese Support" yum -y install nkf yum -y install nmap yum -y install tree コンパル関連とかで使う。 yum -y install gcc libgcc yum -y install zlib-dev...
2017.5.30 火
最新はあまり気にしなくてもよくなってきましたがそれでもまだあるSHIFT_JIS ―ソЫⅨ噂浬欺圭構蚕申曾箪貼能表暴予禄喀媾彌拿杤歃濬畚秉臀藹觸軆鐔饅鷭偆砡 -ポл榎掛弓芸鋼旨楯酢掃竹倒培怖翻慾處嘶斈忿掟桍毫烟痞窩縹艚蛞諫轎閖驂黥僴礰埈蒴 ァА①院魁機掘后察宗拭繊叩邸如鼻法諭蓮僉咫奸廖戞曄檗漾瓠磧紂隋蕁襦蹇錙顱鵝ⅰ涖髜纊犾 ーゼЪⅧ閏骸擬啓梗纂充深措端甜納票房夕麓兌喙媼彈拏杣歇濕畆禺綣膽藜觴躰鐚饉鷦℡犱倞劯 ―ソЫⅨ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭纊犾偆砡 ‐ゾЬⅩ云馨犠珪江讃従疹曽綻転脳評望余肋兢咯嫋彎拆枉歉濔畩秕緇臂蘊訃躱鐓饐鷯褜猤偰硎 /タЭ運蛙疑型洪賛戎真楚耽顛膿豹某与録竸喊嫂弯擔杰歐濘畤秧綽膺蘓訖躾鐃饋鷽鍈猪偂硤_ \ダЮ㍉雲垣祇契浩酸柔神狙胆点...
2017.5.30 火
PCの全文検索はいろいろ変なUIがあってよくわからないので、わかりやすい検索方法。 更新日を指定して検索 2017/03/17に更新したファイルを検索するには、検索ボックスに、 更新日時:2017/03/17 この日に更新したファイルとディレクトリが出ます。「更新日時:YYYY/MM/DD」というフォーマットになりますがコロンが全角でも半角でもいいという気持ち悪い感じになってます。 同様に以前・以後で検索するときは、 更新日時:<=2017/03/17 (更新日時:<2017/03/17) で以前(より前) 更新日時:>=2017/03/17 (更新日時:>2017/03/17) で以後(より後)を検索できます。 この不等式の記号も全角でも半角でもいいという気持ちの悪...
2017.5.29 月
CentOS6のOpenSSHが古い問題でいろいろ大変です。 CentOSのデフォOpenSSH(5.3p1)はちょっとアレなんで最新版(7.1p1)をコンパイルしてみたでかなり詳しく正確に書いてくれているのでなになんですが、ちょっとリマインドで書いておきます。 今回既存のSSHが5.3で7.5にバージョンアップしたという感じです。CentOS6やRedhad系だったらそこそここのやり方でOKな筈。 OpenSSH_5.3p1 ↓ OpenSSH_7.5p1 しかし結果からいうとtelnetや最近のクラウドサービスのコンソール的なものでSSH以外で接続しておかないとちょっと怖い感じがあります。 とはいえきちんと設定しればSSHの再起動で接続は切断されますが、すぐにSSHログインができるように...
2017.5.29 月
まずはリポジトリ関連 yum -y install epel-release rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm PHPをインストール yum -y install --enablerepo=remi-php72 php php-cli php-common php-devel php-fpm php-gd php-mbstring php-mysqlnd php-pdo php-pear php-pecl-apcu php-soap php-xml php-xmlrpc php-bcmath php-mcrypt php-imap php-intl php-pgsql これでいつも使うやつ...
2017.5.29 月
Firewallというのが追加されました。 CentOS6まではLinuxサーバ上でファイアウォールを稼働さす場合、iptablesを使ったフィルタを実装するのが一般的でした。これをこのままCentOS7で利用することも可能なのですが、新たなファイアウォールとしてfirewalldというのが実装されました。 CentOS7からFirewallとiptablesがどっちでも使えるようになっているという謎。正直Firewall要らないです。どちらも内部的には同じようなものらしいですが、設定方法が少々異なるので面倒くさいです。 Firewallはゾーンという概念で設定するようです。(これはまた今度) iptablesを使う方の設定 systemctl status firewalld デフォルトで...
2017.5.28 日
プログラマが最も面倒臭がるところです。実際実装していてあまりおもしろいところじゃない。 いちばんわかりやすいやり方は、入力されたPOST値のバリデーションはPOST値をうけるコントローラで行います。 バリデーションの実装 POST値をうけるコントローラの最初あたりでやるのがよいかと思います。save()とかする手前とか。 public function complete(Request $request) { // do to validate $this->validate($request, [ 'Email' => 'required|email', 'Password' => 'required|min:4', ]); .... } $request->input(...
2017.5.27 土
保守もしてない中に入ったこともないサーバーの作業って嫌です。正直こういう仕事しちゃいけないと思いますよ。ほんと。これどういうことかというと地図なしで戦地に赴くようなものです。 謎のプロセスで5672ポートを使っているので閉じてくれというだけの話なんですが、気味悪いですね。 lsofのインストール 便利なツールが何もないな。 yum -y install lsof ポート確認 # lsof -i:5672 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME qpidd 1259 qpidd 10u IPv4 8816 0t0 TCP *:amqp (LISTEN) 正直仕事であんま使わないです。 qpidd: 異なるプラットフォーム間、異なるア...
2017.5.25 木
Laravel5 モデルとマイグレーションで基本的な設定はできると仮定して今度はSQLでいろいろやります。厳密にいうとSQLじゃなくてEloquentというORMを使います。Doctorinと比べると使いやすいかもです。 コントローラでモデルを使う 復習になりますがコントローラでモデルを使うには、まずはモデルをuseしないといけません。 use App\[MODEL_NAME]; ファイル自体は、app/[MODEL_NAME].phpにあります。 これをやっておくと、 $obj = new [MODEL_NAME]; でもって簡単にnewできます。useしない場合は直接newしても大丈夫みたいです。 $obj = new App\[MODEL_NAME]; Insert insertはin...
2017.5.16 火
Worpressのテーマファイルは必ずしも使いやすいものではないんですが、この機能も必要なんだか不要なんだかよくわからないといった感じですが、「WordpressのためじゃないWordpress的でもない人々のための適当な設計の強引なWordpress」では重宝することになります。 固定ページのテンプレート page.php 普通の固定ページの記事を表示 page-SLUG.php 任意のページの指定スラッグをもつ固定ページを表示(ただし親記事のみ) とかいろいろできるわけですが、このページの記事をこのテーマファイルで表示するということが自由にできないと思ったら、結構できるんですね。アノテーションを使います。(PHPの/**/こっちのコメントアウトはもはや言語の一部になってますね。) pag...
2017.5.14 日
というとflexboxになるのかという話ですが、Github時代にこんな面倒くさいプロパティ使いたくない方にはこれ。 https://github.com/jh3y/driveway ZIPでダウンロードするかクローンしてくる。 ブロックをタイル状に並べてくれるやつです。 driveway demo ZIPを解凍したら問題がなければdist/driveway.min.cssを使えばOKかと思います。もしミニマライズされていないものを使いたいときは、driveway.cssを使います。 コンテナ 全体はこれで囲ってやる。dwクラス自体は幅100%です。 <div class="dw"></div> パネル パネルでいっぱい並べる。 <div class="dw"&...
2017.5.12 金
全般 PHP Parse error: syntax error, unexpected ‘.’, expecting ‘&’ or variable (T_VARIABLE) in インストールしたてのときとか、Git cloneしたてのときによく出てくるんですが、面倒なので再インストールすると直ったりします。 同じような現象で、 Parse error: syntax error, unexpected '?' in ... というのもPHPが古かったりするのが原因かもです。 .envを読み込まない なかなか根幹なところでびっくりしますが、キャッシュ消すと大抵治るっぽいです。 rm -f bootstrap/cache/config...
2017.5.10 水
SSLを使っても結局はVirtualhostであることは変わりがないので、以下のように設定します。 ちなみにApache2.2の設定です。 ホストは80のホストを同じようにどんどん追加してゆきます。NameVirtualhost *:443これを忘れがち。 #/etc/httpd/conf.d/ssl.conf Listen 443 NameVirtualhost *:443 <VirtualHost _default_:443> DocumentRoot "/home/foo/www" ServerName foo.com:443 SSLEngine on SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertif...
2017.5.10 水
ちょっと古い記事ですが、Laravelでマイグレーション後にモデル作成してもデータが登録ができないというのがあって私のハマりどころとかなり似ているなという感じだったのですが、私の場合エラーも出なかったので、かなり苦戦しました。 初期化してみる 値をDBに登録する際に、取得したオブジェクトに値を入れて$xxx->save();で保存するだけですが全然インサートされず、おまけにエラーにすらならないということなので、とりあえずすべて初期化してみました。 マイグレーションで作成したテーブルをDBから削除。 まずはmigrationsテーブルの内容を削除(すでに運用中だったらこれはなかなか出来ないかもですが。。)それから、migrationsファイルをデフォルトのものだけ残して削除。(以下だけ残す) ...
2017.5.7 日
Formから何らかの情報を取り入れてDBに格納、メール送信といったところが基本的な機能になるかと思います。Frontから攻める方法とDBから攻める方法が(私個人としては)あるのですが、コントローラーから攻める方法は他の機能とのからみができてからと思うので、ここではDBまわりから順番に作成してゆきます。 設計 マイグレーションとモデル コントローラとビュー Formの設計 入力項目に加えて、データを保存する形式を踏まえて設計します。とはいえLaravelではartisanコマンドである程度必要なものを揃えてくれます。 テーブル名は無難に「ContactUser」にしておきましょう。データの保存項目は以下のようにします。 カラム名 データ型 内容 id increments ID last_na...
2017.5.3 水
WEBサーバーの冗長化にともなってMemcachedやRedisでセッション管理が人気ですが、ここではDBでセッション管理をする方法です。Laravelはとても簡単に設定できました。(少なくともCakePHP3よりかなり簡単に設定できます。) もともとartisanにDBのセッション管理のマイグレーションが設定されているので、.envのパラメータを1つ変更してマイグレーションを行うだけです。 Laravelはデフォルトではセッションドライバーはfileでセットされています。セッションを活性化させるとstrage/framework/session/*に各セッションファイルが生成されます。これをDBにインサートして管理します。 .envの設定 セッションドライバーをdatabaseに設定します...
2017.5.1 月
共通クラスの作成 なんかむかしincludeしてた時代ありましたね。今もしてますが。Laravel5ではLaravel4とちょっとやり方違うみたいです。手順としては、 共通関数をつくる。 Composer.jsonに登録する。 コマンドでオートローダーに反映。 config/app.phpにエイリアスとして追加。 クラス名::メソッド名()で呼び出す。 結構めんどうくさい感じがしたけど、筋が通っていてつかいやすいです。 共通関数をつくる 共通関数はどこにつくっても大丈夫です。過去の例にならいつつapp/Library/BaseClass.phpとして作成したいと思います。ディレクトリとファイルを手で作成します。artisanでなんかできるかなと思ったけど、なんかコマンドはないっぽい。 こんな...