春咲さんのメモ。

自分メモ的な。主にPHPについて。github:mindlessdoll(冬眠してるけど)

phpDocumentorがComposerで入らなかった時のメモ

環境:CentOS7、Laravel5.5、php7.1

composer require --dev phpdocumentor/phpdocumentor

↑これがうまくいかない

こんなエラーが出る

    Using version ^2.9 for phpdocumentor/phpdocumentor
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for phpdocumentor/phpdocumentor ^2.9 -> satisfiable by phpdocumentor/phpdocumentor[v2.9.0].
    - Conclusion: remove nikic/php-parser v3.1.1
    - Conclusion: don't install nikic/php-parser v3.1.1
    - phpdocumentor/phpdocumentor v2.9.0 requires phpdocumentor/reflection ^3.0 -> satisfiable by phpdocumentor/reflection[3.0.0, 3.0.1].
    - phpdocumentor/reflection 3.0.0 requires nikic/php-parser ^1.0 -> satisfiable by nikic/php-parser[v1.0.0, v1.0.1, v1.0.2, v1.1.0, v1.2.0, v1.2.1, v1.2.2, v1.3.0, v1.4.0, v1.4.1].
    - phpdocumentor/reflection 3.0.1 requires nikic/php-parser ^1.0 -> satisfiable by nikic/php-parser[v1.0.0, v1.0.1, v1.0.2, v1.1.0, v1.2.0, v1.2.1, v1.2.2, v1.3.0, v1.4.0, v1.4.1].
    - Can only install one of: nikic/php-parser[v1.3.0, v3.1.1].
    - Can only install one of: nikic/php-parser[v1.4.0, v3.1.1].
    - Can only install one of: nikic/php-parser[v1.4.1, v3.1.1].
    - Can only install one of: nikic/php-parser[v1.0.0, v3.1.1].
    - Can only install one of: nikic/php-parser[v1.0.1, v3.1.1].
    - Can only install one of: nikic/php-parser[v1.0.2, v3.1.1].
    - Can only install one of: nikic/php-parser[v1.1.0, v3.1.1].
    - Can only install one of: nikic/php-parser[v1.2.0, v3.1.1].
    - Can only install one of: nikic/php-parser[v1.2.1, v3.1.1].
    - Can only install one of: nikic/php-parser[v1.2.2, v3.1.1].
    - Installation request for nikic/php-parser (locked at v3.1.1) -> satisfiable by nikic/php-parser[v3.1.1].


Installation failed, reverting ./composer.json to its original content.

参考にしたサイト(英語)ここに理由も書いてあります。

https://stackoverflow.com/questions/46339362/phpdoc-with-laravel

 

解決手順としては、

  1. http://phpdoc.org/phpDocumentor.phar ここからphpDocumentor.pharを取得
  2. 上記をvendor/binに配置する

以上です。

使い方は

php vendor/bin/phpDocumentor.phar -d 生成したいファイルがあるディレクト

↑のs例ではディレクディレクトリを指定していますが、ファイル単体でいい時いい時は、、-dオプションでなくて-fオプションにして、ファイルパスを指定します。

 使い方が普通に入れた場合と異なるので気をつけていただければなと(phpdocコマンド使えなかった。pharで入れたから当たり前なのかな? よくわからない)。

AWS:東京リージョン使うの?

先月の話なのですが、ubbへ行ってきた際のメモです。

 

AWSのリージョンのお話。

各リージョンで使えるサービスは下記リンク参照してください。

https://aws.amazon.com/jp/about-aws/global-infrastructure/regional-product-services/

 

海外リージョン使うといいこと

  • 使えるサービスが増える
  • 使う人が多いとその分リソースが潤沢
  • データセンターの値段(土地代)が安いことがある

→使用料が安くなる!

 

海外リージョンを使うときの欠点

  • 物理的な距離の分、遅くなる(光の速さは超えられない

 

逆に東京リージョンを使う理由

  • 高速な同期処理がある
  • 国内から低いレーテンシー(ここよくわからなかった)
  • 国内にデータセンターを持たないといけない(国外にデータ持ち出し禁止なやつとか)

全部同じリージョンに置くんじゃなくて、分散するってこともできるよ。

(ログだけ海外とか、こっち落ちたらあっち使うとか)

Netflixを例にしてました(他にもあったけど忘れた)。関係ないけど、NetflixはChaos kongというツールでAWSサーバをランダムに落として、一つ落ちてもちゃんと動くよね?ってことをやっているらしいです。怖いけどそのくらいテストでやってみたいなぁ……。

詳しくはこちらのリンクへ。

http://www.publickey1.jp/blog/15/chaos_kongnetflix.html

 

最近本格的にAWSを使うようになったので本当にタイムリーで興味深いお話が聞けました。まぁ、特に理由がない限り(使いたいサービスがない場合以外)は東京リージョンでもいいのかなって思いました。個人で勉強用に使う時は海外リージョンを試してみようかなぁ……。

環境:php7.1、Laravel5.5

composer update

実行したら

laravel/framework v5.5.9 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.

これな

素直に

sudo yum install --enablerepo=remi-php71 php-mbstring




次のエラー

phpunit/phpunit 6.3.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.

またかよ

sudo yum install --enablerepo=remi-php71 php-xml




OK!!!

npmでエラーが出て何もかも上手くいかない

環境

出現したエラー

npm: relocation error: npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libssl.so.10 with link time reference

解決策

yum update openssl

どうやら、openssl version is 1.0.1eにバグがある様子(英語読めないんだけど)

https://goo.gl/Tsuhm4

今日のメモ

AWSインスタンスが消えた!と思った時、リージョンを再確認するとよいらしい。たまに変わっていると。

ちなみに、4月に作ったインスタンスのリージョンがなぜかオレゴンになってました。

ssh接続でいつも忘れること。

sudoで実行してないからか、再起動すると設定が解除されてしまい毎回実行するのがこちら

 

ssh-agent
ssh-add .ssh/id_rsa

 

これやらないと踏み台経由の接続がなぜかうまくいかないよっと