PHPのメモリ上限をアップする方法

エラーメッセージ

Fatal error: Allowed memory size of xxxxxx bytes exhausted

が発生することがある場合の対象方法を説明いたします

初期ではPHPのメモリ上限が少なく設定されています。その際に上記メッセージに遭遇することがあります。
 この場合はPHPのメモリ使用量の上限を変更するのですが、そのときに設定するパラメータがmemory_limitです。

現在使用可能なメモリ使用量の確認

現在PHPに割り当てられているメモリ使用量を確認します。

$ php -i | grep memory_limit

memory_limit => 128M => 128M

memory_limitはphp.iniに設定されています。そのため、読み込まれているphp.iniがどこにあるかパスを確認しましょう。

$ php -i | grep php.ini

Configuration File (php.ini) Path => /path/to/php/etc
Loaded Configuration File => /path/to/php/etc/php.ini

メモリ使用量を任意の値に変更

php.iniのmemory_limitを編集して、割り当てたいメモリ量を設定します。
512MBのメモリを割り当てた場合の設定を次に示します。

memory_limit = 512M

メモリ使用量を無制限に変更する

メモリの使用量を無制限にしたい場合は、memory_limitに”-1″を設定します。。

memory_limit = -1

Dockerで不要なコンテナ・イメージの見つけ方

イメージ

$ docker images --filter "dangling=true"

不要なイメージを削除

$ docker image prune

ちなみに、v1.2.5 以前では以下のコマンドで削除していました。

$ docker rmi $(docker images -f "dangling=true" -q)

コンテナ

不要なコンテナ一覧

$ docker ps -f "status=exited"

停止コンテナ一括削除

$ docker container prune

docker 削除(docker-compose.ymlのvolumesセクションに書かれた名前付きボリュームとコンテナにアタッチされたanonymous volumeが削除)

docker-compose down --rmi all --volumes --remove-orphans

downコマンドの特性としては、upコマンドと真逆のことをするコマンドということになる。つまり、upコマンドで作られうるもの(イメージ、コンテナ、ボリューム、ネットワーク)をすべて削除する。やり直しに有効なコマンドなのです

--rmiオプションは、削除するイメージの種類を指定する。allはすべてのイメージ。localはフィールドにカスタムタグのないイメージのみを削除する。--rmiオプションを省略すると、イメージは消されない。

--volumesオプションは、docker-compose.ymlvolumesセクションに書かれた名前付きボリュームとコンテナにアタッチされたanonymous volumeが削除される。

--remove-orphansオプションは、docker-compose.ymlで定義から削除されたサービス用の未定義コンテナも削除される。

転職、副業 絶対必要な自己PRサイト[WordPress+レンタルサーバ]

転職や副業での自己PRサイトどうされてますか

職務経歴を送ったりと大変ですね。紙ですと修飾できないですので自分が伝わらないですよね。インターネット情報発信の時代なので自由にアップグレートできるホームページで公開できれば、プログラミング力、情報発信力もあると認められるのではないでしょうか。

私は自分のスキルや業務経歴を自己PRのためにインターネットで公開するべきだと考えてます

紙で慌てて作成するよりよっぽどアピール力が高いですよ。

インターネット発信ならば

いつでも改版できますので、年数をかけてパンチあるホームページに変貌できます

転職時にもフリーランスへのジョブチェンジされた際にもユーザへのPRサイトにもなります。「まずは自分のブログをご覧ください」もうデジタル名刺ですよね。またレンタルサーバもconoHaでは680円/月というやすさなのです。アフィリエイトを行うとこの費用はペイできますよ。

 そもそも自分の情報が発信でき、発信を受けた方が役になったといわれると自己満足に繋がりますよね。

まず行動しましょう

しかし、今話題のネットワーク教育サイトは80万や90万という金額が話題になって怖いですよね。IT自己学習偏差値が高ければ、ネット検索や市販版やUdemyなどで十分です。プログラマーの第一歩としてかんたんなアフィリエイトも可能なWordpressで情報発信してみませんか。

ではWordpress使い方わからない。本は難しい。教育サイトは高すぎるという方は

はっきりいいます。通信教材販売です。嫌な方はこれ以上は読まないでください。

しかし教材なので一生読むこと聞くこと学習聞くことができます。しかし安いです。

29,800 円 追加料金なし!買い切り価格!を見つけました。。。。怪しい通信販売みたいで嫌だなー。けど本と教育サイトの中間です。知らない方が多いので気になった方は7日間無料なので、入ってみて判断しましょう。かんたんなHTML教育込みです。

WPHack(ダブリューピーハックまたはワープレハック)講座です。
・HTML、
・CSS、
・Bootstrap、
・ローカルサーバー作成
・ワードプレスの基礎
・WordPressのオリジナルサイトを作成
・WEBサーバーにアップロード

するまでを自宅で学習できる完全オンライン講座教材です。

■サービス/商品の強み。Wordpress以外も同金額です


・80レクチャー以上の講義
・8時間以上の動画講義
・15年以上の現役ITエンジニアが講師
・動画でプログラミングを教えている為、繰り返し学習出来て挫折する心配がありません。
・完全オンライン講座ですので、場所や時間にとらわれず学習することが出来ます。
・受講期間に制限はなく、一度受講すれば、ずっとカリキュラムを閲覧することが可能です。
・質問に対しても専門のITエンジニアが回答するので、学習の心強い味方になります。
・実践形式が多いので、カリキュラムを進めることで自分のポートフォリオも充実できます。
・学習内容をパッケージ化しているため、他社よりも圧倒的に低コストで受講することが出来ます。

副業の第一歩にどうですか

選択肢としてどうですか?

質疑応答は遅いかもしれませんが、教材と質疑応答できる本やビデオ教材と比べてメリットがありますよ。

疑問はTwitter @yokoyamadesu のDMやメンションを飛ばしていただければ、返答いただけます。ご検討の際の1選択肢として考えてみてください。

macでGitコマンドでxcrun: errorが出た時の対処

生徒さんからMacでGit使おうとしたら以下のエラーで動かなかったので、対処方法をメモしておきます。

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

環境

  • macOS Catalina10.15.3
  • git version 2.21.1 (Apple Git-122.3)

対処方法

Xcodeの開発者ツールが見当たらなくなってしまっていることが原因らしいので、ターミナルで以下を実行すると直りました。

xcode-select --install
xcode-select --reset

初めての対処でした。忘れないようにです

CakePHPバージョン確認方法

CakePHP3

CakePHP3系の場合、下記のパスのファイルにバージョン情報が記載されています。

./vendor/cakephp/cakephp/VERSION.txt

CakePHP2

CakePHP2系の場合、下記のパスのファイルにバージョン情報が記載されています。

./lib/Cake/VERSION.txt

CakePHP1

CakePHP1系の場合、下記のパスのファイルにバージョン情報が記載されています。

./cake/VERSION.txt

コマンドでの調査方法(2系の場合)

cakephp\app> Console/cake
Welcome to CakePHP v2.10.13 Console
---------------------------------------------------------------
App : app
--- 省略 ---

コマンドでの調査方法(3系の場合)

/app/bin/cake

まとめ

忘れっぽいので整理してみました

git clone でタイムアウト対処方法

PS D:> git clone -b develop ssh://XXX/XXX.git
Cloning into ‘git-renewal-baystars’…
remote: Counting objects: 602770, done.
remote: Compressing objects: 100% (162237/162237), done.
client_loop: send disconnect: Connection reset by peer89 MiB/s
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

このように下記が出る場合は、タイムアウトが原因です

client_loop: send disconnect: Connection reset by peer89 MiB/s
fatal: the remote end hung up unexpectedly

ルーターの設定などで一定時間(早ければ10分程度で)その接続に通信が無いと切ってしまうからです。

この様な環境下で一定時間を過ぎても接続を維持できる様にする方法は

設定するには~/.ssh/configに以下の行を加えます。

ServerAliveInterval 60
ServerAliveCountMax 3

これでうまくいきました

PS D:> git clone -b develop ssh://XXX.net:/web_git/XXX.git
Cloning into ‘git-renewal-baystars’…
remote: Counting objects: 602770, done.
remote: Compressing objects: 100% (162237/162237), done.
remote: Total 602770 (delta 429055), reused 601417 (delta 427825)
Receiving objects: 100% (602770/602770), 5.08 GiB | 7.96 MiB/s, done.
Resolving deltas: 100% (429055/429055), done.
Updating files: 100% (81759/81759), done.
PS D:>

このプログラミングスクールどう思われますか? 

これは、2021/1/1 ネットで見つけた求人サイトです。

これって未経験でも2ケ月で生徒と同じ期間の学習でメンターへなれるってことですよね。
ここで教育受けるとそのまま、エスカレートでメンターになって転職サポート99%となってないでしょうか
————————————————————— 抜粋 ————————————–
■業務内容
・まずはゼロからプログラミングを学習いただきます(約2ヶ月)
・TECH::CAMP、TECH::EXPERTのメンターとして受講生に対してのプログラミング教育
・カリキュラムの追加および修正
・受講生の学習進捗サポートをするトレーナー業務

https://www.green-japan.com/job/92731

より抜粋。

確かに、先生としてのスキルがあると開発能力は現場の上位SEです。単価ですとフリーランスだと生産性は3500円/時間で5000Step/月の生産性は出せるはずです。できるプログラマーは10Kはできるものです。プログラミングスクールのメンターの時給は、1500円~2500円/時間なので剥離が大きいのでなり手がないという理由が裏事情であるのです。

実際にここの卒業生を使って仕事してます。話を聞いたのですが、「質問してもメンターが考え込んでしまう」や「返答が数日無い」や「教材が不十分」などびっくりした返答が来たのです。それも70万円や50万円など複数人が支払っているのです。これは1例ですので間違っている情報かもしれません。実際に体験学習で確かめてみてください。

(※企業様の話が真実かと思いますので、無料ですし是非お話してみてください)

しかし、スクールも増えてきて考えられないことが起こってることをしって愕然としました。最近はアフリエイト広告やフォロー増やして儲ける拡大宣伝のyoutuberも少なくなりましたが、公にならないサロンなどもおやしいかなと感じております。

では、どのような方がメンターへ進まれるかというと、稼ぐことの自己満足よりも日本の将来を含め優秀なプログラマー(人材)を育てるという意識が高い方が進まれる職業だと私は思うのです。私は日本だけにとどまらずアジアで活躍できるプログラマーを育てたいと思うのです。

実際の問題で高度なスキルが要求される「スクールのメンター」も「優秀なプログラマー」も不足しております。現実を考えて適切な自己学習コストのスクールないしはコミュニティをお選びください。良い人材は友を呼ぶという地道なスクールもあります。

不況だからこそ、自己投資には選ぶべきではないでしょうか。

Laravel ページネーションでも検索条件を引き継ぐコーディングポイント

ページネーションの設定は

{{$data->render()}}

しかし、ページ番号選択で条件が消えます

そこで下記へ変更です

{{$data->appends(request()->input())->render()}}

注意点は、appendsは、パラメータを配列で渡すメソッドなので、検索フォームはGETメソッドでないと上手く動作しない点ですのでお気をつけください