【追記あり】PHP5.3.8 をCentOS5系にソースからインストールする

いまさらながらPHPのインストールでしくじることがあったのでメモ。

まずPHPをインストールする。

# wget http://jp.php.net/get/php-5.3.8.tar.gz/from/us.php.net/mirror
# tar xvfz php-5.3.8.tar.gz
# ./configure --enable-mbstring --with-apxs2 --with-mysql --with-gd --with-zlib --with-jpeg-dir --with-tsm-pthreads --enable-maintainer-zts --cache-file=../config.cache
# make
# make install
# which php
/usr/local/bin/php

# php -v
PHP 5.3.8 (cli) (built: Oct 27 2011 11:47:09)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

apacheとの連携

# vi /etc/httpd/conf/httpd.conf
LoadModule php5_module        /usr/lib/httpd/modules/libphp5.so
DirectoryIndex index.html index.html.var index.php
AddType application/x-httpd-php .php

# /etc/rc.d/init.d/httpd configtest
# /etc/rc.d/init.d/httpd restart

正常にphpinfo()できればおk。

【追記】

64bit版の場合、./configureのオプションがちょっと変わります。
さくらVPSが64bit版だったっぽくちょっと悩みました。

オプションに “–with-libdir=lib64″ を追加してください。

./configure --enable-mbstring --with-apxs2 --with-mysql --with-gd --with-zlib --with-libdir=lib64 --with-pear --with-gd --enable-maintainer-zts --cache-file=../config.cache

【追記2】

Curlを使う場合。

./configure --enable-mbstring --with-apxs2 --with-mysql --with-gd --with-zlib --with-libdir=lib64 --with-pear --with-gd --with-curl --enable-sockets --enable-maintainer-zts --cache-file=../config.cache
カテゴリー: PHP | コメントをどうぞ

【PaaS】fluxflexにRedmine(ベーシック認証付き)を構築してみた

今話題のPaaSを片っ端からアカウントつくりまくって試しまくってたりするhirohiです。
学生の頃は自宅サーバのがカッコイイだろ!とか思い、自宅にしょぼいサーバたてて色々やっていましたが、メンテがもろもろだるいし、ドキュメント残さないから何をどう設定したかすぐわかんなくなるし(ドキュメントは残すべき。)ということで、VPSをレンタルしてそこでサーバを運用している今日この頃です。

…が、最近はすっかりPaaSで良いんじゃないかと思い色々試してみています。
だって無料だよ!個人レベルだったら十分な容量だよ!

さて、WkipediaによるとPaaSとは、

PaaS(Platform as a Serviceの略、パースまたはパーズ)とは、インターネットを利用したコンピュータの新しい利用形態の1つである。PaaSでは、ソフトウェアを構築および稼動させるための土台となるプラットフォームを、インターネット経由のサービスとして提供する。開発者は、プラットフォーム上で構築したサービスを自分の顧客に提供することができる。 具体的には、インフラ、DBMS、ユーザーインターフェースなどのシステム開発手段となるツールや、開発したシステムを運用するための環境をインターネットを通じて「サービス」として提供し、月額使用料などの形で収入を得る事業モデルである。

とのこと。最近ではクラウド開発なんて言われてたり言われてなかったり。

とにかく、自分で開発サーバを構築する必要がなく、ある程度開発環境そろってるので、いきなりソースコードを書いて動かすことができる環境のことだと思っています。(あってる?)
有名どころでいくと、AWS Elastic Beanstalkや、Google App Engine、Herokuなど。

Rubyが好きなので自分もHerokuでRailsやらRedmineやらやってみよーと思いちょろちょろ触ってみたのですが、よくわからない部分が多かったので、Redmineをポチっとインストールできるfluxflexを使ってみることにします。

fluxflex
http://www.fluxflex.com/

アカウントを取得したらログインして、新規プロジェクトをつくります。

プロジェクトを作ったら以下の手順でRedmineをポチッとインストールします。

インストール完了のダイアログが出たら、ブラウザでプロジェクトのURLにアクセスして確認します。Redmineが正常にインストールされていたら、とりあえずRedmineのパスワードだけは変更しちゃいましょう。

※デフォルトのID/PASSは、admin/adminになります。

Redmineのパスワードの変更が終わったら、ベーシック認証をかける準備をします。LinuxかMacOSXでターミナルを起動してください。
fluxflexはgitで更新やデプロイができるので、ターミナルからもろもろ操作します。

プロジェクトのリポジトリからgit cloneしてください。

$ git clone ssh://git@git.fluxflex.com:443/PROJETCT_NAME

ローカルリポジトリができたら、.htaccessを編集して、ベーシック認証が使えるようにします。

$ cd PROJECT_NAME
$ vi public/.htaccess
AuthType Basic
AuthName "Are you ready?"
AuthUserFile /home/PROJECT_NAME/.htpasswd
AuthGroupFile /dev/null
require valid-user

次に.htpasswdを生成します。

$ htpasswd -mc .htpasswd userName

.htpasswd を生成したら、コミットして、デプロイします。

$ git add .htpasswd
$ git commit -a -m "basic auth"
$ git push

git push が成功したら、そのままデプロイされるので、しばらくしたらプロジェクトのURLにアクセスしてください。
ベーシック認証のログイン画面が出てきてログインできれば成功です。

SaaSのRedmineサービスとかもありますが、PaaSでここまで設定できればむしろこっちの方が安あがりかも!メンテはある程度必要ですけど。

カテゴリー: PaaS, Redmine, Ruby, Ruby on Rails | コメントをどうぞ

ブックマークレットでjQueryを使う方法

こにちは。今さらながらブックマークレットにちょろっとはまってます。

普段はjQuery使いなので、HTMLのパースがネイティブだともの凄い骨が折れます。
なので、ブックマークレットでjQueryを読み込ませてみました。

こちらを参考にしました。
http://h2ham.seesaa.net/article/115498697.html

javascript: (function(){
	var d = document;
	var s = d.createElement('script');
	s.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js';
	d.body.appendChild(s);
	setTimeout(function(){
	//ここに記述
	}, 1000);
})();

jQueryをgoogleAPIから読み込んで、bodyにappendしています。
読み込んだ後に実行させるため、1秒間ウェイトをおいています。
これでブックマークレットでjQueryが使えるようになります。

超便利!

カテゴリー: JavaScript, jQuery | 1件のコメント

Rails3 jquery-railsをインストールする

ようやくちゃんと(?)Railsを勉強し始めました。

Railsはprototype.jsベースになってたりするのですが、最近はもっぱら世の中jQueryなので、Rails3でjQueryを使えるようにします。

gemsでjquery-railsをインストールする。

% sudo gem install jquery-rails --no-RDoc --no-ri
% gem list
jquery-rails (1.0.14)

これでインストール完了。
次に、Rails3アプリに組み込む。
${RAILS_APP_PATH} は、railsアプリのパス。

% cd ${RAILS_APP_PATH}/
% vi Gemfile
#最後尾に下記を追加する。
gem 'jquery-rails'

追記したらbundleして、railsサーバー起動。

% bundle
% rails generate jquery:install
     remove  public/javascripts/prototype.js
     remove  public/javascripts/effects.js
     remove  public/javascripts/dragdrop.js
     remove  public/javascripts/controls.js
     copying  jQuery (1.6.2)
     create  public/javascripts/jquery.js
     create  public/javascripts/jquery.min.js
     copying  jQuery UJS adapter (c00a97)
     remove  public/javascripts/rails.js
     create  public/javascripts/jquery_ujs.js
% rails s

ブラウザからソースを表示して、jQueryとjQueryUIが読み込まれてたら成功。
これでjQueryが使えるようになった。

カテゴリー: jQuery, Ruby, Ruby on Rails | 2件のコメント

MacOSX Lion にImageMagickをインストールする

Hello ImageMagick !!

画像解析や画像加工をCUIでゴリっとやってみたかったので、ImageMagickをMacOSX Lion にインストールしてみました。

MacPortsで楽々インストールしてみました。
結構時間かかりました。

% sudo port install ImageMagick
% which convert
/opt/local/bin/convert

インストールが終わったらHello World的にImageMagickのロゴを生成してみましょう。

% convert logo: logo.png
% ls
logo.png

これでロゴが生成されました。
displayコマンドでXwindowを立ち上げて、ロゴを確認できます。

display logo.png

これでインストール完了。
画像解析、加工、スタートです!

カテゴリー: ImageMagick, MacOSX | コメントをどうぞ

メディアクエリ ワンソース・マルチデバイステンプレートをリリースしました

CSS3のメディアクエリを使ったワンソース・マルチデバイステンプレートをリリースしました。

MediaQueries Multi-Device Template.

PC, iPhone, iPad, Android, 各種タブレットに最適化された形でコンテンツが提供できるように開発しました。多分まだ検証不十分でバグがあるかもですが、ベータ版をリリースします。

ワンソース・マルチデバイスとは?

「ワンソース・マルチデバイス」とは、1つのドキュメント(HTML)を、文書構造・内容に手を加えずに、仕様や画面サイズの異なる複数の端末毎に最適化して表示させる技術です。
CSS3のMediaQueryを使って横幅の変化によってCSSの読み込みを変えることで、さまざまな画面サイズのデバイスに対応することができます。

動作検証端末

Windows Mac
Internet Explorer 7 以上
Firefox3.6 以上
Safari5 以上
Opera11 以上
Google Chrome
iOS4.3 以上
iPhone3GS
iPhone4
iPad
iPad2
Android2.1 以上
Xperia (Android2.1)
GalaxyS (Android2.2)
NexusS (Android2.3)

とりあえず目標として、スマートフォン、PC、タブレットなど、Web標準ブラウザを搭載するデバイスに最適な形でコンテンツを提供することを目指しました。

マルチデバイス対応案件における、開発、運用のハードルや負荷を下げつつ、運用もラクにできればなと。

極力、ユーザーエージェント判別による振り分けはしません。全部CSS!
JSギミックなければ全然いけるよ、うんきっと。

メリット

CSSのみで対応できちゃう。
JavaScriptができなくても、マークアップのみで対応できちゃう。
MediaQueryはウィンドウの横幅でCSSを切り替えるため、未知のデバイスも考慮できる(はず。)

デメリット

複雑なレイアウト、コンテンツの出し分けは難しい。
MediaQueryでのCSS切り替えによるコーディングの取得が必要。

最後に・・・

このブログはマルチデバイス対応まだです!これからこのテンプレートを使ってみようと思います。

カテゴリー: Android, HTML5, iPad, iPhone, JavaScript, jQuery, マルチデバイス | コメントをどうぞ

MacにGoogle App Engine開発環境を構築してHello worldする。

職場でGAE(Google App Engine) が流行ってきているようなので流行りにのってHello Worldしてみることにした。

まずは先日アンインストールしたMacPortsをインストールする。
ソースファイルからインストールすると面倒なので、バイナリからインストールする。

MacPortsの最新版はここでチェック

SnowLoepardなので、MacPorts-2.0.3-10.6-SnowLeopard.dmgをダウンロードしてインストーラを起動してインストールする。

MacPortsは、MacPorts自身を含めたファイルをすべて/opt/local以下にインストールする。なので、各種パスを/opt/localに通しておく必要がある。そこで、自分のシェルの環境変数を以下のように設定しておく。

zshは.zsh_profile、bashは.bash_profile に下記を追記する。
環境によっては.zshrc、.bashrcだったりする。

% vi .zsh_profile
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH

% source .zsh_profile

MacPortsをアップデートする。

基本的にMacPortsは /opt/local 以下にインストールされるので、sudoを使って実行する。

% sudo port -d selfupdate
% sudo port -d sync

Pythonをインストールする。

GAEはPython2.5を使用するため、2.5をまるっとMacPortsでインストールする。

% sudo port install python25
% sudo port install py25-hashlib
% sudo port install py25-socket-ssl
% sudo port install py25-pil

pythonのパスを確認する。

% which python
/usr/bin/python

% python
Python 2.6

Python2.6やPython2.7ではGAEは動かないので、MacPortsでインストールしたPython2.5にシンボリックリンクを張る。

% sudo mv /usr/bin/python /usr/bin/python_bk
% sudo ln -s /opt/local/bin/python2.5 /usr/bin/python

再度Pythonのパスを確認する。

% ls -l /usr/bin/python
lrwxr-xr-x  1 root  wheel  24  9 16 10:44 /usr/bin/python -> /opt/local/bin/python2.5

% python
Python 2.5.6

Google App Engine をインストールする。
GAEのアカウント登録をすませてから下記からMac用のSDKをダウンロードする。
GoogleAppEngineLauncher-1.5.4.dmg

インストーラを起動しインストールを実行。
インストールが完了したらGoogle App Engine Launcherを起動して新規アプリケーションを作成。

Runして無事に動けばOK!あとは開発するのみ!

カテゴリー: Google App Engine, Python | コメントをどうぞ

MacPortsをアンインストールし、Homebrewをインストールする

MacPortsよりHomebrewの方がおすすめということで、MacPortsをアンインストールし、Homebrewをインストールする。

下記サイトを参考にします。
http://tukaikta.blog135.fc2.com/blog-entry-183.html

MacPortsのアンインストール

MacPortsと不要なアカウントを削除する。

% sudo port -f uninstall installed
% sudo dscl . -delete /Users/macports
% sudo dscl . -delete /Groups/macports

Homebrewをインストールする

% ruby -e "$(curl -fsSL https://gist.github.com/raw/323731/install_homebrew.rb)"

Homebrewをアンインストールする順序も書いておく

$ cd `brew --prefix`
$ rm -rf Cellar
$ brew prune
$ rm `git ls-files`
$ rmdir Library/Homebrew Library/Aliases Library/Formula Library/Contributions
$ rm -rf .git
$ rm -rf ~/Library/Caches/Homebrew

基本的なコマンドは下記の通り

コマンド 説明
$ brew update Homebrew本体をアップグレードします。
$ brew install パッケージ名 指定したパッケージが入っていなければインストールを。

最新版でないものに対してはアップグレードを実施します。
$ brew uninstall パッケージ名

$ brew remove パッケージ名

$ brew rm パッケージ名
指定したパッケージをアンインストールします。
$ brew outdated 導入済みのパッケージで、最新版ではないものを表示します。
$ brew upgrade 最新版ではないパッケージをまとめてアップグレードします。
$ brew search パッケージ名
$ brew -S パッケージ名
インストール可能なパッケージを検索します。
$ brew options パッケージ名 インストール時に指定できるオプションを表示します。
$ brew –help
$ brew -h
ヘルプを表示します。
$ brew cleanup 古いバージョンのパッケージを削除します。
$ brew cleanup パッケージ名 指定したパッケージのみ古いバージョンを削除します。
$ brew -v Homebrewのバージョンを表示します。
カテゴリー: MacOSX | コメントをどうぞ

iMac SnowLeopard にwgetをインストールする

MacOSX SnowLeopardちゃん、Curlちゃんは入ってるんだけど、wgetちゃんが入ってない事実…。

ということでwgetをインストールします。

GNUからwgetの最新版をダウンロードします。
wget最新版はこちらからチェック

$ sudo su -
# curl -O ftp://ftp.gnu.org/pub/gnu/wget/wget-1.9.1.tar.gz
# tar xvfz wget-1.9.1.tar.gz
# cd wget-1.9.1
# ./configure
# make
# make install

これでwgetちゃんが使えるようになりました!

カテゴリー: Linux | コメントをどうぞ

Titanium Studio でデスクトップアプリ開発に入門してみた

こんぬつわ。ブログを放置してから早半年弱…。完全に放置してしまいました。
技術的にはいろんなことできるようになったのですが全然メモってませんでした…。
反省してます…。

ということできちんとブログを買いていこうかなと思い、最近ちょっとやってみようと思ったのが、Titanium Studio によるデスクトップアプリケーション開発!
なんと、みんなが大好きなHTML5+CSS3+JavaScript+Ruby+Python+PHP と、最近流行のweb系言語がだいたい使えちゃいます。Adobe AIRよりもこっちの方が良いんじゃないかって思ってみたり。

Titanium Studio は、Aptanaを買収し、AptanaとTitaniumががっちゃんこしたもの(?)みたいです。
Titanium はiPhone, Android でクロスデバイス開発をするための開発ツールで、iPhoneアプリやAndroidアプリを開発したことある人は知っているであろうと思うのでここでは割愛します。

それでは早速Titanium Studio でHello Worldしてみます。

まずはTitanium Studioをユーザー登録してダウンロードします。
http://www.appcelerator.com/

Titanium Studio を起動し、プロジェクトを新規でつくる

Titanium Desctop Project をつくる

Project Name を設定し、使用言語にRuby, Python, PHP をチェック

アプリケーション情報を設定する

ソースコードを書くために /Resources/index.html を開く

ソースコードを書く

<!Doctype html>
<html lang="ja">
	<head>
		<meta charset="utf-8">
		<title>test</title>
		<style type="text/css">
			body {
				background: #fff;
			}
		</style>
	</head>
	<body>
		<h1>test</h1>
		<script type="text/python">
			def pyFunc(str):
				document.write(str)
			pyFunc("python")
		</script>
		<script type="text/ruby">
			def rbFunc(str)
				pyFunc(str)
			end
			rbFunc("ruby")
		</script>
	</body>
</html>

アプリを実行してみる

デスクトップアプリができちゃった!

Pythonの中にRubyを書いたりJS書いたり何だか何でもアリのカオス状態ですが、面白いことできそうな予感がぷんぷんします。こういうの嫌いじゃない。

カテゴリー: (X)HTML+CSS, Ajax, Aptana, JavaScript, PHP, Python, Ruby, Titanium | コメントをどうぞ
Page 2 of 1612345...Last »