PHPのメモ
Posted:
FPMパラメーター
- 【保存版】PHP-FPMの完全ガイド – 設定から最適化まで7つの実践テクニック | Dexall公式テックブログ
- チューニング箇所が網羅されている
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 ] だと思われる
新しい環境ではじめにインストールするとき:composer install
何か新しいバンドルを追加したい:composer.json にかいて composer update
本番のライブラリを最新版にしたい:開発環境で 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