2014/05/19

ec2でredmine-bitnamiを使用する

仕事のプロジェクトと個人のプロジェクトを管理するためEC2上でredmineを構築しようと思いました。

お金を掛けたくないのでmicroインスタンスでやろうと思い。スワップ設定したりもろもろやってみたり、
alminiumのインストールを試みたりしたがどうにもうまく行きませんでした。

ググってるとbitnamiのredmineをインストール済みのAMIがあるそうでそれを利用することにしました。

EC2のLaunch InstanceからAWS Marketplaceをクリックして
検索ボックスに「redmine」と入力すると
「Redmine powered by Bitnami」
というAMIが見つかります。そちらをselectして進めていくとインスタンスが作成されます。

そこから、またハマったのですが

まずec2へのsshログイン
ユーザー名がec2-userではなくbitnamiです。
そのユーザー名とインスタンス作成時に設定した公開鍵でログイン出来ました。

次にmysqlのrootパスワード設定
デフォルトのパスワードはbitnamiになっているはずなのですが
それではログイン出来ませんでした。
こちらの手順を行いrootパスワードを再設定しました。

phpmyadminがlocalhostもしくは127.0.0.1からしかアクセス出来なかったので他からでもアクセスできるように

/opt/bitnami/apps/phpmyadmin/conf/httpd-app.conf
の以下の箇所を修正

Allow from 127.0.0.1 → Allow from All
Require local → Require all granted

あと念のためDirectoryディレクティブの中にAllow from Allを書いときました。
apacheの再起動は専用のスクリプトから行うようで
sudo /opt/bitnami/ctlscript.sh restart apache

次にredmine本体でも管理ユーザーでのログインが出来なかったので
mysqlから無理やり追加しました。

redmine自体ユーザーとしてしか使ったことがないので勉強しようと思います。


2013/10/24

solr4対応のpeclを使用する

1.githubからsolr4対応済みのソースを取ってくる
git clone https://github.com/kuma-giyomu/pecl-solr
solr4-compatibleのブランチに切り替える

2.phpizeを使用してコンパイルする
cd pecl-solr/
phpize
./configure
make
make install

3. php.iniの設定
pecl-solr/modules/にsolr.soが作成されているので任意のディレクトリへコピーし
php.iniに以下の記述を追加

extension=/Path/to/solr.so

つーかsolrクソ早いよ!

2013/02/06

Yiiですべてのリクエストを同じコントローラで処理する

protected/config/main.php
のurlManagerの設定を変更

'rules'=>array(
''=>'site/',
'/'=>'site/',
),

↑の設定は全てをSiteController.phpで処理する。
僕は小さいサイトでコントローラが一つで済むような場合この設定にします。

2013/02/05

Yiiでテーブルをtruncateする

$command = new CDbCommand(Yii::app()->db);
$command->truncateTable("table_name");

これで各DBに対応したtruncate文を作成しexecuteしてくれます。

2011/09/01

Yiiで作成したアプリをさくらのレンタルサーバーに移した

Yiiを使って作成したアプリをさくらのサーバーに乗せた。
開発環境はScientificc Linux 6.0だったので色々問題が出るかと思ったけど
案外あっさりいった。

唯一ハマったところはcronのところで
CreateConsoleApplication()が正しく動かなかった。

原因はphpのバージョンがデフォルトで5.1系か5.2系なので
__DIR__が使用出来なかったため。

コントロールパネルからphpのバージョンを5.3.6にして完了。
あと目立った変更箇所は.htaccessにRewriteBase / を追加したくらい。

2011/08/31

Content-Disposition

ブラウザ内での表示
Content-Disposition: inline;

ダウンロードさせる
Content-Disposition: attachment;

filename=hoge
を追加でダウンロードの際のファイル名を指定出来る

2011/08/17

jQueryの$.postでphpに配列を渡す方法

var id = [1,2,3,4];
$.post(
'url' ,
{id : id} ,
function(){
~~~~中略~~~~
);
で裏側のphpにて$_POSTを見ると
$_POST["id"]に4が入っていて配列として扱えていませんでした。
$.postによるquery_stringは
id=1&id=2&id=3&id=4
となっており、後ろのものが優先されてそれしか取れていないようです。
下記のようにすれば配列を送ることが出来ました。

×{id : id}
○{"id[]" : id}
これでquery_stringが
id[]=1&id[]=2&id[]=3&id[]=4
となりphpでも配列として扱えます。