このブログについて

Posted by muchag | 未分類 | 2007-03-01 (木) 2:33:38

このブログは、爺による「備忘録」です。
言葉の使い方をはじめ、間違っていることも多々あるかもしれません。
あくまでも「備忘録」ですので、これのブログを見て「怒っちゃやーよ!」

自己責任にて閲覧してくださいね
未分類 | 2007-03-01 (木) 2:33:38 |

CentOS Index

Posted by muchag | CentOS | 2018-08-24 (金) 0:06:38

丸っきりの書きかけ項目は Not found になる。

コマンド
  1. コマンド
yum
  1. yum コマンド
php
  1. remi リポジトリ
  2. php アップデート
  3. composer
    1. VirtualBox 編
    2. さくら VPS 編
  4. CakePHP3
    1. インストール
Tips
  1. crontab
  2. crontab(古い記事。CentOSですらない)
参考

その他各参考サイトについては、各エントリーにて。

CentOS | 2018-08-24 (金) 0:06:38 |

ファイル表示

Posted by muchag | Eclipse | 2018-08-01 (水) 20:42:18

【環境】
Eclipse: Oxygen (4.7) PHP
OS:Windows10 Pro 64bit
手順
  1. プロジェクト・エクスプローラー右上の ▼ をクリック
  2. [フィルターおよびカスタマイズ]
  3. 「フィルターおよびカスタマイズ」
    1. 「フィルター」タブを選択

ここのチェックを付け外しすれば OK。
チェックが付いているものは、表示されない。

.htaccess

.htaccess や .gitignore などは
「.*リソース」のチェックを外すと表示される。

Eclipse | 2018-08-01 (水) 20:42:18 |

yum コマンド

Posted by muchag | CentOS | 2018-06-20 (水) 21:37:21

【環境】
CentOS: 7.4.1708
インストール、アップデート、削除

yum install mysql
yum update mysql
yum remove mysql

-y オプションを付けると、確認をスキップする
yum install -y mysql

スペース区切りで、一括インストール、アップデート可能
yum install mysql mysql-devel mysql-server mysql-utilities
yum update mysql mysql-devel mysql-server mysql-utilities
yum remove mysql mysql-devel mysql-server mysql-utilities

ワイルドカードも使える
yum install mysql*
yum update mysql*
yum remove mysql*

remove と erase は同機能。

確認

yum list mysql*

読み込んだプラグイン:・・・
・・・

インストール済みパッケージ
・・・

利用可能なパッケージ
・・・

フィルタリング
yum list | grep mysql*

インストール済みパッケージだけ表示
yum list installed mysql*


利用可能なパッケージだけ表示
yum list available mysql*
検索、詳細

検索
yum search mysql

詳細
yum info mysql
参考サイト

Qiita:yumコマンド一覧(2018-05-13)

CentOS | 2018-06-20 (水) 21:37:21 |

nvm

Posted by muchag | node.js | 2018-05-20 (日) 13:09:41

【環境】
nvm: 0.33.11
VirtualBox グラフィカルユーザーインターフェース: 5.1.24 r117012 (Qt5.6.2)
CentOS: 7.3.1611
インストール

GitHub:creationix/nvm:README.md Installation


curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12819  100 12819    0     0  14898      0 --:--:-- --:--:-- --:--:-- 14905
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Counting objects: 267, done.
remote: Compressing objects: 100% (242/242), done.
remote: Total 267 (delta 31), reused 86 (delta 15), pack-reused 0
Receiving objects: 100% (267/267), 119.46 KiB | 153.00 KiB/s, done.
Resolving deltas: 100% (31/31), done.
=> Compressing and cleaning up git repository

=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

バージョンアップがあるので、毎回ここを見ること。

環境変数に登録

source ~/.bash_profile
手動登録

HORNET:CentOS6にnode.jsの最新バージョン(v8.4.0)をインストール nvmでインストール(2017-08-22)

情報確認

nvm -v

Node Version Manager

Note:  refers to any version-like string nvm understands. This includes:
  - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)
  - default (built-in) aliases: node, stable, unstable, iojs, system
  - custom aliases you define with `nvm alias foo`

 Any options that produce colorized output should respect the `--no-colors` option.

Usage:
  nvm --help                                Show this message
  nvm --version                             Print out the installed version of nvm
  nvm install [-s]                 Download and install a , [-s] from source. Uses .nvmrc if available
    --reinstall-packages-from=     When installing, reinstall packages installed in 
    --lts                                   When installing, only select from LTS (long-term support) versions
    --lts=                        When installing, only select from versions for a specific LTS line
    --skip-default-packages                 When installing, skip the default-packages file if it exists
    --latest-npm                            After installing, attempt to upgrade to the latest working npm on the given node version
  nvm uninstall                    Uninstall a version
  nvm uninstall --lts                       Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.
  nvm uninstall --lts=            Uninstall using automatic alias for provided LTS line, if available.
  nvm use [--silent]               Modify PATH to use . Uses .nvmrc if available
    --lts                                   Uses automatic LTS (long-term support) alias `lts/*`, if available.
    --lts=                        Uses automatic alias for provided LTS line, if available.
  nvm exec [--silent]  [] Run  on . Uses .nvmrc if available
    --lts                                   Uses automatic LTS (long-term support) alias `lts/*`, if available.
    --lts=                        Uses automatic alias for provided LTS line, if available.
  nvm run [--silent]  []     Run `node` on  with  as arguments. Uses .nvmrc if available
    --lts                                   Uses automatic LTS (long-term support) alias `lts/*`, if available.
    --lts=                        Uses automatic alias for provided LTS line, if available.
  nvm current                               Display currently activated version
  nvm ls                                    List installed versions
  nvm ls                           List versions matching a given 
  nvm ls-remote                             List remote versions available for install
    --lts                                   When listing, only show LTS (long-term support) versions
  nvm ls-remote                    List remote versions available for install, matching a given 
    --lts                                   When listing, only show LTS (long-term support) versions
    --lts=                        When listing, only show versions for a specific LTS line
  nvm version                      Resolve the given description to a single local version
  nvm version-remote               Resolve the given description to a single remote version
    --lts                                   When listing, only select from LTS (long-term support) versions
    --lts=                        When listing, only select from versions for a specific LTS line
  nvm deactivate                            Undo effects of `nvm` on current shell
  nvm alias []                     Show all aliases beginning with 
  nvm alias                  Set an alias named  pointing to 
  nvm unalias                         Deletes the alias named 
  nvm install-latest-npm                    Attempt to upgrade to the latest working `npm` on the current node version
  nvm reinstall-packages           Reinstall global `npm` packages contained in  to current version
  nvm unload                                Unload `nvm` from shell
  nvm which [current | ]           Display path to installed node version. Uses .nvmrc if available
  nvm cache dir                             Display path to the cache directory for nvm
  nvm cache clear                           Empty cache directory for nvm

Example:
  nvm install 8.0.0                     Install a specific version number
  nvm use 8.0                           Use the latest available 8.0.x release
  nvm run 6.10.3 app.js                 Run app.js using node 6.10.3
  nvm exec 4.8.3 node app.js            Run `node app.js` with the PATH pointing to node 4.8.3
  nvm alias default 8.1.0               Set default node version on a shell
  nvm alias default node                Always default to the latest available node version on a shell

Note:
  to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)
利用
バージョン確認

nvm --version
インストール可能な node.js のバージョン取得

nvm ls-remote
node.js インストール

// 安定版
nvm install stable
Downloading and installing node v10.1.0...
Downloading https://nodejs.org/dist/v10.1.0/node-v10.1.0-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v10.1.0 (npm v5.6.0)
Creating default alias: default -> stable (-> v10.1.0)

// バージョン指定
nvm install 8.0.0
npm
アップデート

npm update -g
/root/.nvm/versions/node/v10.1.0/bin/npm -> /root/.nvm/versions/node/v10.1.0/lib/node_modules/npm/bin/npm-cli.js
/root/.nvm/versions/node/v10.1.0/bin/npx -> /root/.nvm/versions/node/v10.1.0/lib/node_modules/npm/bin/npx-cli.js
+ npm@5.10.0
added 129 packages, removed 42 packages and updated 112 packages in 6.968s
[root@localhost hoge]# npm -v
5.10.0
参考サイト

Qiita:【俺用メモ】 CentOS6にNode.jsをインストールする nvmでインストールする場合(2018-02-10)
→インストール以外の使い方も載っている

ProgramMemo:CentOSにNode.jsをインストールする(2017-10-12)
→環境変数に登録する方法を参考にさせていただいた

node.js | 2018-05-20 (日) 13:09:41 |

インストール

Posted by muchag | VirtualBox | 2018-05-20 (日) 10:51:05


公式:nodejs.org

【環境】
node.js: 10.1.0
VirtualBox グラフィカルユーザーインターフェース: 5.1.24 r117012 (Qt5.6.2)
CentOS: 7.3.1611
インストール

方法は色々あるみたい。

標準コマンド

公式:Installing Node.js via package manager Enterprise Linux and Fedora


curl -sL https://rpm.nodesource.com/setup_8.x | bash -

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

yum -y install nodejs

// ビルドツールのインストール(オプション)
yum install gcc-c++ make

CentOS は、こちらのタイプになるみたい。
Supported CentOS versions:

  • CentOS 5 (32-bit and 64-bit)
  • CentOS 6 (32-bit and 64-bit)
  • CentOS 7 (64-bit)
失敗する?

Qiita:CentOS 7.3でyum install nodejsが失敗するので回避する(2017-08-29)
こんな記事も見かけた。

バージョン管理ツール
nvm

Node Version Manager。
ということで、こちらにしてみる。
nvm

nodebrew

Qiita:node.jsのインストール方法(2017-09-25)

その他

nodeenv, nodist というのもあるらしい。
みかづきブログ その3:フロントエンドエンジニアがさくらVPS で Ubuntu + Nginx + Node.jsの環境を整えるまでの道のり – その2 – nodebrew、Node.js、npmの導入 😎(2017-04-12)

VirtualBox | 2018-05-20 (日) 10:51:05 |

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column …

Posted by muchag | MySQL | 2018-05-19 (土) 19:09:04

【環境】
MySQL: 5.7.18
経緯

GROUP BY を用いたら、下記エラーが出た。

Error: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘dbnam.tablename.columnname’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
原因

Google 先生に質問すると、一杯出てきた。。。
MySQL 5.7 から仕様変更になったのが原因だそうな。

sql_mode=only_full_group_by
この部分。

my.cnf のデフォルトで sql_mode に only_full_group_by が追加されたため
GROUP BY を用いたときは、一意である値しか SELECT できなくなったとのこと。

解決策1

my.cnf の sql_mode から only_full_group_by を外してしまえば、5.6 までと同じように動作するとのこと。

解決策2
  • GROUP BY で指定したカラム
  • 集約関数を利用しているカラム
  • 全て同値であるカラム(?)

これらについては、SELECT できるので
それだけを指定する。

参考サイト

Qiita:脱!ゆるふわMySQL(2015-12-16)

MySQL | 2018-05-19 (土) 19:09:04 |

コマンド実行

Posted by muchag | PHP | 2018-05-18 (金) 23:53:31

php からサーバコマンドを実行する方法。

公式:execsystem

概要

php からサーバコマンドを実行するには
exec と system の2つの関数が用意されている。

二者の違いは、出力を返すか返さないかみたいだけど
引数指定次第でどちらも出力を返すみたいなので
結果的には、同じ働きなのかしらね~。

書式
exec

string exec ( string $command [, array &$output [, int &$return_var ]] )

第1引数:コマンド文字列
第2引数:出力格納用変数。省略可。省略すると出力を受け取れない
第3引数:コマンド実行結果ステータス格納用変数。省略可。省略するとステータスを受け取れない

system

string system ( string $command [, int &$return_var ] )

第1引数:コマンド文字列
第2引数:コマンド実行結果ステータス格納用変数。省略可。省略するとステータスを受け取れない

非同期処理

どちらもコマンド文字列に「 > /dev/null &」と付記してやることで、非同期に処理を実行できる。

注意:

プログラムがこの関数で始まる場合、 バックグラウンドで処理を続けさせるには、
プログラムの出力をファイルや別の出力ストリームにリダイレクトする必要があります。
そうしないと、プログラムが実行を終えるまで PHP はハングしてしまいます。

どうやら、上記付記内容は、出力をリダイレクトさせるものらしい。

参考サイト

SAMURAI:【PHP入門】外部コマンドの実行(exec)とコマンドライン実行の方法(2017-10-16)

PHP | 2018-05-18 (金) 23:53:31 |

CSV から null をロード

Posted by muchag | MySQL,phpMyAdmin | 2018-04-28 (土) 10:01:31

【環境】
MySQL: 5.7.18
phpMyAdmin: 4.7.6
経緯
phpMyAdmin

CSV からデータをロードしようとしたら

エラー
#1292 – Incorrect datetime value: ‘null’ for column ‘hoge’ at row 1

というエラーが出た。

CSV の中身を見ると、当該カラムの値は “null” となっている。

CLI

MySQL の CLI から入れようとしたら Warning が出た。

気持ち悪いので、なんとかしてみようと思った。

データ型

ちなみに対象カラムのデータ型は DATETIME。

手法1

LOAD DATA LOCAL INFILE '/path/to/csv_file.csv' INTO TABLE hoge FIELDS TERMINATED BY ',' ENCLOSED BY '"' SET deleted = nullif(deleted, '0000-00-00 00:00:00');

どこで見たか忘れてしまったけど
こういうやり方があるらしい。

以前試したときは上手くいった。

複数カラム対象

ただ今回は、複数カラムが対象で


LOAD DATA LOCAL INFILE '/path/to/csv_file.csv' INTO TABLE hoge FIELDS TERMINATED BY ',' ENCLOSED BY '"' SET registered = nullif(deleted, '0000-00-00 00:00:00'), deleted = nullif(deleted, '0000-00-00 00:00:00');

このように書いてみたけど、上手く行かなかった。

その後

すぐ諦めたので、何が悪いのか、そもそもこの書き方が正しいのかすら不明。

手法2

null のカラムの CSV 値を “\N” とする手法。

これもどこかに書いてあったのを見かけた記憶があったので試してみたところ、
なんと、上手くいった♪

Excel のセルに \N とそのまま記述して
CSV では、”\N” となるように吐き出したところ
OK だった。

MySQL,phpMyAdmin | 2018-04-28 (土) 10:01:31 |

phpDocumentor

Posted by muchag | PHP | 2018-04-11 (水) 15:52:58

個人で開発をしていると、こういうチームワーク的な手法に手が回らない。
実感が湧かないからね。。。

公式?:phpDocumentor

アノテーション
@property

公式?:@property
メンバ変数の型宣言をできる。

php では、メンバ変数を宣言する際に、型宣言を伴わない。
そのせいで phpStrom では、警告が出るらしい。

User.php

class User
{
    private $name;

    public function getName()
    {
        return $this->name;
    }

    public function setName($name)
    {
        $this->name = $name;
    }
}

この User クラスをメンバ変数 $leader へ代入すると
$leader が何者か不明なために、User クラス内メソッドを利用する際に警告となるらしい。

そこで、下記のように @property アノテーションで定義してやることで
理解してもらえるそうな。

ちなみに、複数管理するメンバ変数には、User[] という他言語タイプで伝えるとよいらしい。


/**
 * Class Group
 *
 * @property User $leader
 * @property User[] $leaders <- array ではなく User[]
 */
class Group
{
    private $leader;
    private $leaders = [];
}
@method

公式?:@method
findX のようなマジックメソッド利用時に用いる。
※マジックメソッドは、そんなメソッドは存在しないんだけど
メソッド名からフレームワーク側が解析して、処理してくれるメソッド?


/**
 * Class SampleModel
 *
 * @method array findById($id, $fields = null)
 */
class SampleModel extends AppModel
{

このように明記してやることができる。

@uses, @used-by

メソッド名を動的に生成する場合に用いる。
要は、当該メソッドがどこからも呼ばれていないと思われるのを避ける。

公式?:@uses & @used-by


class Hoge
{
    /**
     * @uses addUser(), addAdmin()
     */
    public function addMember($user, $user_type)
    {
        $method = sprintf('add%s', $user_type);
        $this->{$method}($user); // $user_type に合ったメソッドを呼ぶ
    }

    /**
     * @used-by addMember
     */
    private function addUser($user)
    {
    }

    /**
     * @used-by addMember
     */
    private function addAdmin($user)
    {
    }
}
@uses

@uses の呼び出し元に設定する。

@used-by

@uses の呼び出し先に設定する。

参考サイト

バシャログ。:PhpStorm の静的解析機能をさらに活用するための3つのアノテーション(2015-12-07)
→@property, @method, @uses について非常にわかりやすかった

PHP | 2018-04-11 (水) 15:52:58 |

NullReferenceException

Posted by muchag | C#,Library & PlugIn & AddIn | 2018-03-22 (木) 21:29:17

【環境】
NPOI: 2.3.0
Visual C#: 15.5.4(2017)
.NETFramework,Version: v4.6.1
経緯

ある日突然例外がスローされた。

System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。

見てみると、どうやら GetRow で失敗しているんだけど
何故か、22行目で突然失敗。

原因

CreateRow や CreateCell をしておらず
その行やセルが見つからない、ってことだったみたい。
stack overflow:NullReferenceException accessing Workbook Cells with NPOI(2016-10-23)

これが、一から作成してる Excel ファイルではなく
テンプレートファイルを用意していたので
ちょっと混乱した。

7行目から先は全て空白行なので
21行目も22行目もどちらも空白行なのに
22行目で突然エラー。

解決(邪道)

どうやら、21行目までは見た目空白行であっても
書式設定か何かがされていて、NPOI 側で既存と認識できていたみたい。

なので、100行目までフォント色を「自動」にしたら
例外にならなくなった。

本当は CreateRow や CreateCell をするのが正しい解決方法だと思うけど
今晩は時間がないので暫定で対応。

C#,Library & PlugIn & AddIn | 2018-03-22 (木) 21:29:17 |
次ページへ »