Pdflibのログ出力
ログを出力する場合
set_parameterの第二引数にfilename=パスからのファイル名
を指定する。ログ・ファイルには書き込み権限が必要
例:$pdflib->set_parameter(“logging”, “filename=/var/log/pdflib.log”);
ログを出力する場合
set_parameterの第二引数にfilename=パスからのファイル名
を指定する。ログ・ファイルには書き込み権限が必要
例:$pdflib->set_parameter(“logging”, “filename=/var/log/pdflib.log”);
http://book.cakephp.org/2.0/ja/installation/advanced-installation.html composer.jsonに { "name": "example-app", "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org" } ], "require": { "cakephp/cakephp": ">=2.4.9" }, "config": { "vendor-dir": "Vendor/" } } あとは
$php composer.phar install とするだけ requireの書き方を以前 "pear-cakephp/cakephp": "2.*" このような形でかいていたんだけど vagrantでprovisionしたときに Your requirements could not be resolved to an installable set of packages. Problem 1 - The requested package pear-cakephp/cakephp could not be found in any version, there may be a typo in the package name. とのエラーが出たため requreを
"cakephp/cakephp": ">=2.4.9" とすることで実行可能だった
vagrantで設定しているphpのバージョンを上げたかったので
execute “apt-get update” do
command “apt-get update”
end
package “python-software-properties” do
action [:install, :upgrade]
end
execute “add repository ppa:ondrej” do
command “add-apt-repository ppa:ondrej/php5-oldstable”
#command “add-apt-repository ppa:ondrej/php5”
end
上記をシェフスクリプトの頭に追加
php-oldstableでPHP5.4(2014/6/12現在)
php5を指定すると最新でphp5.5
参考:
PHP5.4+nginxで502 Bad Gatewayが発生した場合
nginxの設定
例:/etc/nginx/conf.d/php-fpm.conf
fastcgi_pass 127.0.0.1:9000;
↓
fastcgi_pass unix:/var/run/php5-fpm.sock;
このように変更
まだ発生する場合は
/etc/php5/fpm/pool.d/www.conf
の下記行のコメントを外す
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
engine yardにdeployを行った時、Chat Workへ自動で通知を行うための設定です。
Chat WorkのAPIはAPIトークンをhttpヘッダーに追加する必要があるのでdeploy hookでcurlを使って行ってみました。
1.API申請
現在プレビュー版なのでチャットワークにAPIの使用申請を行います。
http://developer.chatwork.com/ja/
2.APIトークンの発行
確認のメールが届いたら
http://developer.chatwork.com/ja/authenticate.html
こちらを参考にAPIトークンの発行を行います。
3.engine yardのdeploy hookに追加
githubに登録しているリポジトリのデプロイフックにChat WorkのAPIを叩く処理を追加します。
階層は
/リポジトリのルート/deploy
ここではデプロイ後に通知しようと思うのでafter_bundle.rbに追記します。
[rb]
notify_deploy_environments = %w(staging production development)
notify_deploy_roles = %w(solo app_master)
if notify_deploy_environments.include?(environment) && notify_deploy_roles.include?(current_role)
run "curl -X POST -H ‘X-ChatWorkToken: チャットワークのAPIトークン’ -d ‘body=Deploy+#{config.environment_name}+Done%21nDeploy+by:#{config.deployed_by}nrepo:#{config.repo}nrevision:#{config.revision}%21’ ‘https://api.chatwork.com/v1/rooms/書き込みたいチャットルームID/messages’"
end
[/rb]
※一行が長いのでスクロールしてみるかctl+aしてください。
環境がstaging,production,developmentのときでapp_masterかsoloの場合のみに通知します。(複数台構成で全て通知される必要は無いため)
runでコマンドを叩きます。コマンドの内容は基本Char Workのマニュアルのままです。
http://developer.chatwork.com/ja/endpoint_rooms.html#POST-rooms-room_id-messages
もう少し見やすく整形出来るかもしれません。見やすい方法を作ったら教えて下さい。
deploy_hookを作成したら
gitのリポジトリに最新版としてアップしてください。
deploy時では今上げたリポジトリを指して、engine yardのダッシュボードからdeployを行ってください。
成功すれば上記のようにdeployの情報が自動的にChat Workに流れるます。
コールバックは、PHP 5.4 以降では callable タイプヒントで表されます。 このページでは、callback 型情報を同じ目的で使っています。
array_walkやusort等コールバック関数の場合最初の2番目の引数に関数名を渡すしますが
クラスにあるメソッド等を呼ぶ場合
http://jp.php.net/manual/ja/language.types.callable.php
$this->some_method();
とかであれば
array_walk($answer, array($this,’some_method’);
環境作るの面倒ですね
最近はvagrantで環境持ってくるので楽してたんですが
第三者に見せる場合等、サーバ上にインストールする必要があるので
サーバでcomposer使ってインストールしてみました。
composerはパッケージ等でインストールしておきます。
手順はほぼcakeのドキュメントそのままです
http://book.cakephp.org/2.0/ja/installation/advanced-installation.html
プロジェクトのホームディレクトリにcomposer.jsonを作成
$cd /home/project
$vi composer.json
<pre>{ "name": "example-app", "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org" } ], "require": { "pear-cakephp/cakephp": ">=2.3.4" }, "config": { "vendor-dir": "Vendor/" } }</pre>
php composer.phar install
これでVendor/配下にインストールされます。
この後projectを作成します。
$ Vendor/bin/cake bake project
Welcome to CakePHP v2.4.0 Console
—————————————————————
App : project
Path: /home/project/
—————————————————————
What is the path to the
project you want to bake?
[/home/project/myapp] >
変更の必要がなければこれで完了です。
ブラウザからアクセスして
いつもの画面が表示されれば設定完了です。
#色々バージョンが古いとcomposerが動かないかもしれません。(一気にyum updateとかしたら凄く時間かかりましたw)
Drupalでファイルブラウザーを使って
ファイルアップロードすると2MBを超えています。等のエラーに鳴る場合がある
この場合php.iniの制限にかかっている場合があるので
php.iniを直接編集するか
upload_max_filesize = 50M
post_max_size = 50M
.htaccessにて
php_value upload_max_filesize 50M
php_value post_max_size 50M
を追加する必要がある。
VagrantにインストールしたMysqlに接続するためには
connection Method:Standard TCP/IP over SSH
SSH Username: vagrant
SSH Keyは/Users/ユーザ名/.vagrant.d/insecure_private_key
を設定することにより接続可能となる。
google apps 上部のメニューからグループを選択
赤いグループを作成を選択
必要事項を記入し
グループの種類ではメーリングリストを選択
入力が終わったら上部の作成ボタン押下でMLが作成出来ます。
公開範囲や投稿を適時設定してから問題のユーザ追加ですが
直接追加を行なっても、招待のメールが飛んでしまいます。
これを回避するためにはGoogle Apps側の管理画面に入り
グループの編集でユーザの追加を行なって下さい。
ドメインの内部外部どちらでも、管理画面からの追加であればユーザに確認メールは飛びません