PHPのメモ

FPMパラメーター

PHP: FPM の情報ページ - Manual

composer

https://kohkimakimoto.github.io/getcomposer.org_doc_jp/doc/01-basic-usage.html

[PHP]Composer が導入済みの環境で、最初に実行すべき 10 のコマンド - akamist blog

composer install と composer update の違い - Qiita

下記の 3 パターン、運用の場合、 [ 3 ] だと思われる

  1. 新しい環境ではじめにインストールするとき:composer install

  2. 何か新しいバンドルを追加したい:composer.json にかいて composer update

  3. 本番のライブラリを最新版にしたい:開発環境で composer update して問題なければ composer.lock ファイルを本番にコピーして composer intall する

Xdebug PHP7の時

PHPのデバッグ用拡張モジュール「Xdebug」の導入方法と使い方 | 株式会社LIG

オフィシャル、ここを参考にソースからインストールした。またGithubからcloneすると「php7のみ対応です」というエラーが出るので、 ここのリンクから行けるtarアーカイブからインストールした Xdebug: Documentation

この説明はシンプル、「いいね」も沢山ついてる。が、動くんだろうか Check! Visual Studio Code で PHP をデバッグ実行 (Xdebug) - Qiita この説明もシンプルだが… 私は動かない Slim 3 Framework まだやってます xdebugでデバッグとかリモートデバッグとVisual Studio Code で楽々デバッグ。その4 - Qiita どちらもこのプラグインを入れてるような PHP Debug - Visual Studio Marketplace

docker側にバインドするIPアドレス 127.0.0.1を設定する必要があるのだろうか? Visual Studio Code で快適な PHP コーディングを行う – エレパ スタッフブログ

簡単なテスト用のファイルの例示もある。ここから始めるのが良さそう? だ。 PHP開発者がいまさら聞けない、Xdebugの基礎の基礎 - WPJ

アップロードファイルサイズの上限を変更する

post_max_size と upload_max_filesize の両方を上げる必要がある。

値は下記のあたりから探す

  • /etc/php.ini
  • /etc/php-fpm.d

あとnginx側の下記の設定も重要 /etc/nginx/nginx.conf の

    client_max_body_size  16M;

両方上げないとダメ

テストを実行

テストするディレクトリに移動して実行

cd /var/www/api/tests && ../vendor/phpunit/phpunit/phpunit –group model

そもそもユニットテストのツールがインストールされてなかった場合

../vendor/phpunit/phpunit/phpunit が無かった場合 ( vendorは .gitignoreで無視されている。例えばレポジトリをダウンロードしなおしたりとかの場合、そうなる )

cd /var/www/api
php composer.phar install

MockeryというPHPのテストを書くうえで役に立つライブラリ

「Mockery」を使ってサクッとPHPのテストを書いてみる | アライドアーキテクツ エンジニアブログ

パラメーターを取得する

phpをファイルを置けるディレクトリに移動して vi info.php で下記を書き込んで

<?php
phpinfo();
?>
curl http://test.com/info.php

xhguiについて(PHP7移行時作業)

  • PHP7では XHProf が使えなくなった。このためxhguiのオフィシャルページ( https://github.com/perftools/xhgui )の[ Using Tideways Extension ]の項目にあるように[ tideways ]というモジュールを用いる。

tideways は Amazon Elastic Beanstalkでのセットアップ例でもrpmレポジトリを追加しているので、パッケージの依存関係などは動作するものとして認識し、この手順でやる。

https://tideways.io/profiler/docs/setup/installation#aws-elastic-beanstalk

vi /etc/yum.repos.d/tideways.repo

[tideways]
name = Tideways
baseurl = https://s3-eu-west-1.amazonaws.com/qafoo-profiler/rpm

chmod 644 /etc/yum.repos.d/tideways.repo

rpm –import https://s3-eu-west-1.amazonaws.com/qafoo-profiler/packages/EEB5E8F4.gpg

yum makecache –disablerepo=* –enablerepo=tideways # makecacheでパッケージ情報の更新をしている

yum install tideways-php tideways-daemon

vi /etc/php-7.1.d/tideways.ini

[tideways]
extension="/usr/lib/tideways/tideways-php-7.1.so"
tideways.connection=unix:///usr/local/var/run/tidewaysd.sock
tideways.load_library=0
tideways.auto_prepend_library=0
tideways.auto_start=0
tideways.sample_rate=100

mongodbのセットアップ

echo “[MongoDB] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 gpgcheck=0 enabled=1” | sudo tee -a /etc/yum.repos.d/mongodb.repo

yum install mongodb-org

/etc/init.d/mongod start

$ mongo
> use xhprof
> db.results.ensureIndex( { 'meta.SERVER.REQUEST_TIME' : -1 } )
> db.results.ensureIndex( { 'profile.main().wt' : -1 } )
> db.results.ensureIndex( { 'profile.main().mu' : -1 } )
> db.results.ensureIndex( { 'profile.main().cpu' : -1 } )
> db.results.ensureIndex( { 'meta.url' : 1 } )
> db.results.ensureIndex( { 'meta.simple_url' : 1 } )

yum install php71-php-pecl-mongodb

vi /etc/php-7.1.d/50-mongodb.ini

extension=/opt/remi/php71/root/usr/lib64/php/modules/mongodb.so

vi /etc/php.ini

auto_prepend_file = /var/www/xhgui/external/header.php