Tag backendを表示しています。
2019.10.2 水
CentOS7にAnsibleをインストールする例です。 # yum install epel-release # cd ~ # yum -y install ansible バージョン確認。ansible 2.8.5が入りました。 # ansible --version ansible 2.8.5 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/s...
2019.9.21 土
source .bash_profileの実行し忘れというのではなく、起動するたびに設定が反映されていないときがありました。なんで? そもそもパスが通っていないのかもしれない。echo $HOMEとかで確認。 そもそもログインシェルが違うのかもしれない。 一度ログアウトしてからログインするとまた元に戻っていて設定が反映されていないという始末。再起動時も同じ。毎回source .bash_profileやsource .bashrcを実行するのは何か変。そもそもデーモン化したアプリとかはどうすんのよ。 ってのは、.bash_profileや.bashrcはログインシェルがbashのときに起動するということなので、ログインシェルとしてbashが起動していないという可能性が大きい。ログインシェルの...
2019.9.16 月
php artisan tinkerを実行すると以下のようなエラーで実行できないことがあります。 In Configuration.php line 363: [ErrorException] mkdir(): Permission denied -vvvvをつけて、デバックモードでコマンドを実行してみます。 $ php artisan tinker -vvvv In Configuration.php line 363: [ErrorException] mkdir(): Permission denied Exception trace: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n...
2019.9.16 月
CentOS7でapacheを動かしている環境です。PHPは7.2.17で動いています。 laravel5でtinkerを実行すると以下のようなエラー(Warning) $ php artisan tinker PHP Warning: Module 'ssh2' already loaded in Unknown on line 0 ssh2が二重に読み込まれているっぽいので、エクステンションの部分を検索してみる。/etcあたりを検索。 $ find ./etc -type f | xargs grep "ssh2.so" ./php.d/ssh2.ini:extension=ssh2.so ./php.d/20-ssh2.ini:extension=ssh2.so どっちかが無駄っぽい気...
2019.5.23 木
実行環境の確認 python2で動くAnsibleですが、python3でもサポートしているようです。何かとアップデートが早い時代なので、新しいものにしておいた方がよいかもしれません。 Python 3 Support Ansibleの基本概念 インベントリ(inventory) インベントリは構成管理をする対象ノードへの接続情報を記載したもの。 デフォルトでは /etc/ansible/hosts だが、環境変数 ANSIBLE_HOSTS を設定したり、-i オプションでhostsファイルへのパスを指定可能です。 モジュール(module) モジュールはユーザーを作成したり、ファイルをコピーしたりするもので、多くは冪等性が保たれたものとなります。基本モジュールをそのまま利用するだけで大抵...
2019.5.7 火
バージョン確認 select * from v$version Oracle Database 11g Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production テーブル一覧 select table_name from user_tables;
2019.4.19 金
ここではお名前.comで取得したexample.comというドメインであると仮定して説明しています。 まずは以下のドキュメントを読んでおきましょう。 Cloude DNS クイックスタート Cloude DNS 概要 Cloude DNSの構築手順 GCPにログインしてから、「ネットワークサービス -> CloudDNS」を開きます。以下のような初期画面が出てきます。
2019.3.30 土
Dockerはすごい速いですね。かなりはやい。なので全然プロダクト環境でも使えるんじゃないかと思うのですが、私の周りはみんなテストするつもりがまるでないです。 構築した環境はGCPのCentOS Linux release 7.6.1810 (Core) です。yum info dockerで確認すると比較的古いものをインストールしようとしてくるので、ここではできるだけ新しいものをインストールするようにします。 Dockerのインストール Docker-composeのインストール niginx php myssqlの設定 Dockerのインストール 設定で面倒臭そうなものを止めておく systemctl stop firewalld systemctl disable firewalld ...
2019.3.28 木
maatwebsite/excelっていうパッケージがあってLaravelで開発するぶんには何もしなくてよいです。 https://github.com/Maatwebsite/Laravel-Excel https://packagist.org/packages/maatwebsite/excel インストール インストールします。(2019-03-28現在の最新版は3.1.10でした) php composer.phar require "maatwebsite/excel:~3.1.10" 後述しますが、3系のパッケージは読み込みの機能がなくなったようです。(前回の方々がなんで?って言ってます) ですので、エクセルの読み込み機能が必要なときは2系のパッケージをインストールしないと駄目...
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...
2019.3.23 土
WordPressの環境はもう年間何回作ってるんだといった感じで、WEBのサービスとしてはかなりメジャーになってしまいました。 $ docker pull wordpress $ docker pull mariadb docker-compose.ymlを作成してプロジェクトディレクトリ直下においておく。 記述は以下のようにします。ちょっと解説すると、mysqlのデータベースとWordpressrをつなぐので、DB名とユーザー名とパスワードは同じものを設定します。同じものであれば任意の設定で構いません。 docker-compose.yml version: '2' services: wordpress: image: wordpress:latest ports: - "3001:80...
2019.3.23 土
GCPは永遠に無料で使える完全な無料枠があります。サンドボックス、勉強にはとてもよいです。 https://cloud.google.com/free/docs/always-free-usage-limits GCEで新しいVMインスタンスを作成する 設定は例として以下のようにします。留意点は、 リージョンの選択は北米のリージョン us central1(アイオワ)にすること。ゾーンはどこでもよいです。 マシンタイプはmicro(共有vCPU x1)と0.6GBを選択します。(つまり最低)$4.28 の月間予測と出ますがリージョンの選択時点で無料になるので気にしない。 HDDは標準タイプで30GBまで無料枠で利用できるので10から30に変更しておくとよい。 IPアドレスを固定IPにする 実...
2018.12.10 月
コマンドクラスの作成 コマンドのクラスを作成します。 php artisan make:command monitorAppStatus app/Console/Commands/monitorAppStatus.phpが作成されます。 このクラスをartisanで実行するためにはこのクラスファイルの$signatureを書き換えます。 protected $signature = 'command:name'; ↓ protected $signature = 'monitor:app'; これでphp artisan monitor:appで実行できるようになります。 コマンドの中身を作成 コマンドの実際の中身の作成は、このクラスファイルのhandle()部分に書きます。 public ...
2018.11.14 水
Python3.6.5をインストールします。現時点の最新は3.7ぐらいになっているはずなんですが、3.6はまあまあ安定版だと思うのでよいでしょう。 ここではPython3.6をpythonコマンドで使えるようにしてデフォルトで入っているPython2.7.5を(一応とっておいて)python2で叩けるようにしておきます。 Python 3.6.5インストール まずはリポジトリをインストールします。 # yum install -y https://centos7.iuscommunity.org/ius-release.rpm Pythonをインストール # yum install -y python36u python36u-devel python36u-libs これで終わりなので、バ...
2018.11.8 木
Reverse Proxyがかんでいるwebサーバーでは以下のようなエラーになって正しいログイン情報を入れてもログインできません。 There is mismatch between HTTPS indicated on the server and client. This can lead to non working phpMyAdmin or a security risk. Please fix your server configuration to indicate HTTPS properly. mysqli_real_connect(): (HY000/1045): Access denied for user 'xxxxx'@'localhost' (using pass...
2018.11.6 火
リバースプロキシとかLBとかを挟むと当然アクセスIPアドレスがlocalhostになってしまうので、正しいアクセス元のグローバルIPアドレスを設定する必要があります。普通はX-Forwarded-ForというhttpヘッダにグローバルIPを渡して後方のwebサーバーでそれを拾うという段取りになります。 nginxの設定 nginxの方の設定ではserverのプロキシのヘッダに設定してあげます。$proxy_add_x_forwarded_forでグルーバルIPが拾えるのでそれをそのままX-Forwarded-Forにセットします。 server{ server_name example.com; return 301 https://$host$request_uri; proxy_set_...
2018.11.5 月
# Linux CentOS7 .bash_history .bash_logout .bash_profile .bashrc .cache .config .ssh .viminfo # my backup batch logs #public tmp
2018.10.24 水
PHP7でOracleに接続するでPHP7からの接続はできるようになりました。 LaravelでOracleを使うときの具体的な手順を解説します。 パッケージのインストール 必要なパッケージはこれ。 – Packagist: yajra/laravel-oci8 – Github: yajra/laravel-oci8 $ php composer.phar require yajra/laravel-oci8:v5.7.2 どうやらこれだけで動くっぽいです。 Databese接続パラメータの設定 例によってconfig/database.phpに設定します。Oracleはデフォルトで設定項目がない(配列に入っていない)ので自分で追加してあげる必要があります。 'co...
2018.10.19 金
デバック方法は数ある中でも最終的に頼りになるデバック方法を備忘録として書いておこうと思いました。いろいろな武器はかなりの性能を発揮するのですが、それがいつでもどこでもどの環境でも使えるわけではないというわけで、とりわけサバイバルナイフ一本でどこまでできるかというような趣旨になります。 そして「プログラムは嘘をつかない、いつかは必ずみつかるバグ」をモットーにがんばりましょう! Grep いわずと知れたgrepコマンドですが、grepはシステムを制すなのです。 ほとんどの場合、他のコマンドをパイプでつないで使います。出力した内容をそのままパイプで渡して文字列検索をします。 パイプを使う $ cat index.php | grep -n "include" -nオプションを入れておくと行数が出て...
2018.10.6 土
リポジトリの作成 yumのリポジトリにデフォルトで入っていないのでリポジトリを作成 # touch /etc/yum.repos.d/nginx.repo 以下記述 [nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=0 enabled=1 これでリポジトリの設定完了。 インストール # yum -y install nginx バージョン確認 # nginx -v nginx version: nginx/1.15.5 これでインストール完了。 自動起動の設定をしておきます。 # systemctl enable nginx nginxを起動します。 ...
2018.9.5 水
ちょっと数年前はものすごく使いづらいところあったAWSですが最近はドチャクソ使いやすい。 Amazon Linux 2 AMIはとてもCentOSっぽいというだけで特に選択した理由はないです。 EC2インスタンスの作成 Elastic IPの設定 EC2インスタンスにログイン rootになる 基本設定 Tools類(絶対使うやつ) EC2インスタンスの作成 AWSのコンソールにログインしてEC2に移動。左メニューのインスタンスを選択すると次のページの上部に青いボタンで「インスタンスの作成」というボタンがあるので、そこから新しいインスタンスを作成します。 AMIの選択で「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択。 無料枠のt2.microを(と...
2018.8.29 水
サーバーが死にそうになっているときのマニュアルです。 サーバークラスタリングとかスケールアウトとかスケールアップとか考えた方がいい。クラウドフロント辺りのキャッシュサーバでもいいかも。 原因は?と聞かれますがたいていは「サーバースペックがショボいから」というのが大半。 急いでやるやつ rootでログイン 簡易的に状態をみる load average 目でだいたいの状態を把握する top HDDの容量 df ブラウザーアクセスやSSHでログインして明らかに操作が遅延したり見た目で動きがもっさりしていたりする、あるいは監視のアラートメールが来たりしているピーク時に目視するのが目的のコマンドになります。 落ち着いてやるやつ procs memory swap io system cpu プロセスを...
2018.8.24 金
“rails s”が動かないときがあって、そのときやってみることリストの覚書です。 Railsのアプリを作成してローカルサーバーを立ち上げるときに、 rails s -p 3000 とか rails server -d などで起動させるんですが、 Usage: rails new APP_PATH [options] .... Example: rails new ~/Code/Ruby/weblog This generates a skeletal Rails installation in ~/Code/Ruby/weblog. という具合にオプションの一覧なんかが出てきてしまってサーバーが立ち上がっていないということがあります。 アップデートしてみる rake...
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.20 月
すごい若い女の子にもらったレシピだけど、見てたら読みたkなってきたぞ。 Unix はじめてUNIXで仕事をする人が読む本 Linuxシステム[実践]入門 Web 「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか Webを支える技術 -HTTP、URI、HTML、そしてREST マスタリングTCP/IP 入門編 第5版 Datastore 達人に学ぶ DB設計 達人に学ぶ SQL徹底指南書 Datastore (advanced) SQL実践入門 高速でわかりやすいクエリの書き方 SQLアンチパターン プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに Cording ails tutorial ブジェクト指向設計実践ガイド オブジェクト指向...
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> DocumentRoot "/home/user/www" ServerName example.com:443 <Directory "/home/user/www"> AllowOverride All </Directory> RewriteEngine On RewriteOptions inherit Err...
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.6.13 水
複数のor検索 OR検索+あいまい検索で検索ワードが定まっていないときなんかはクロジャーを使ういいっぽい。 use Illuminate\Support\Facades\DB; ... $words = array("ライオン","ゲノム"); $records = DB::table('sometable')->orWhere(function($query) use($words){ foreach ($words as $k=>$word) { $query->orWhere('text', 'like', '%'.$word.'%'); } }) ->orderBy('id','desc') ->get();
2018.6.4 月
今回はさくらのクラウドIaasサービスのCPU2、メモリ1GBでインスタンスに接続しているストレージSSDプラン20GBを40GBに拡張したいと思います。 さくらのクラウド さくらのクラウド ログイン さくらのクラウド ドキュメント ストレージの拡張手順 手順は、 サーバーインスタンスを停止する 利用中のストレージ(20GB)のアーカイブ(コピー)を作成する 新規でストレージを作成する(40GB) 作成したアーカイブを新規作成したストレージ(40GB)に流し込む 利用中のストレージ(20GB)の切り離し 新規ストレージ(40GB)をインスタンスに接続(アッタチメント) という流れになります。AWSみたいに無停止でできないっぽいです。 https://knowledge.sakura.ad.j...