ラベル Apache の投稿を表示しています。 すべての投稿を表示
ラベル Apache の投稿を表示しています。 すべての投稿を表示

2012年3月7日水曜日

PHP4環境構築とPEAR強制アップグレードメモ

PHP4…CakePHPがバージョン2になってついにサポート対象から外れたこんな時代に需要なんて殆ど無いだろうけど、まあ仮想マシンなら物理的な場所とらないってことで一応環境作って残しときましょう…ってことで実際需要が発生したので、まあブログなら物理的な場(以下同文)

願わくば、我のみならず俗世においても当エントリを必要とする状況があまり発生せんことを。停滞は後退だ。2010年にもなって新規案件でVBScriptてIE6てJava1.4て…(はいわざわざ過去をほじくり返してイラついている大馬鹿者です)

試した環境

  • CentOS 5.6(64bit)
  • Apache 2.2
  • PHP 4.3.11
ちなみに、PHP4.2以前はApache2系と相性悪いらしく、実際僕もインストールできませんでした。

事前準備

Apacheインストール
apxsってのも必要なのでhttpd-develも一緒に。
# yum -y install httpd httpd-devel
Flexとlibxml2インストール
# yum -y install flex libxml2-devel

PHPインストール

yumでのインストールはできないので、ソースからインストールせざるをえない。
ダウンロード、コンパイル、インストール
旧バージョンも含めたPHPのソース置き場は以下。
configureオプションはとりあえず必要最低限の設定。
$ wget http://museum.php.net/php4/php-4.3.11.tar.gz
$ tar zxvf php-4.3.11.tar.gz
$ cd php-4.3.11
$ ./configure --enable-mbstring --with-apxs2=/usr/sbin/apxs
$ make
# make install
php.ini作成
解凍したソース一式の中にある「php.ini-dist」という雛形があるので、それをコピー。
# cp php.ini-dist /etc/php.ini
Apache設定
httpd.confに以下の設定を追加。その後再起動。
AddType application/x-httpd-php .php
最低限の設定は完了。あとはおなじみのphpinfo()で動作確認。
動かなかったら、ファイアウォールやSELinuxの設定を確認してみろ、と自分に向けて書いておく。

HTTP_Requestインストールから学ぶ、PEARパッケージ強制アップグレード

作成したPHP4環境では、HTTP_Requestも必要だったのだけど、これも一筋縄ではいかなかったのでメモする次第。
普通にインストールできるかと思いきや…
# pear install HTTP_Request -a
HTTP error, got response: HTTP/1.1 410 Gone
Didn't receive 200 OK from remote server. (HTTP/1.1 410 Gone)
何か「そんな古いパッケージはもう置いてねえよ」とでも言ってるようなエラーメッセージだ。
以下によると、PEARのバージョンが古いからだろうとのこと。
確かにパッケージのドキュメントに「PEAR Installer 1.4.3」って書いてあるわ。PHP 4.3.11を当エントリの手順でインストールした場合、PEARのバージョンは1.3.5だった。

ということで、上記記事を参考に、PEARを強制アップグレード…の前にまず「Archive_Tar」を強制アップグレード。これやっとかないと、PEAR強制アップグレード自体で同様の「410 Gone」エラーが発生する。
# pear upgrade --force http://pear.php.net/get/Archive_Tar-1.3.1.tar
# pear upgrade --force http://pear.php.net/get/PEAR-1.4.3.tar
# pear install HTTP_Request -a

終わり。自分で書いときながらだけど、このエントリ読み返したくねぇ(読み返すような状況に遭遇したくねぇってことです)。

2011年12月24日土曜日

Subversion導入メモ

クリスマスだ。ということで、Subversionの導入メモだ。
これからはGitだぜ的な世の中だけど、大抵の現場ではまだ根強く使われているであろうSubversion…
何だこの始まり方は。

試した環境

CentOS 6.0

インストール

Subversion本体
# yum install subversion
mod_dav_svn
Apache経由で(HTTPで)リポジトリにアクセスするために「mod_dav_svn」モジュールをインストール。
# yum install mod_dav_svn

リポジトリ作成

「svnadmin create」コマンドを使用。
下の例では、まずSVNのホームディレクトリを作成し、それからrepo1リポジトリを作成。
最後にディレクトリの所有者をapacheに変更。
# mkdir /var/www/svn
# svnadmin create /var/www/svn/repo1
# chown -R apache:apache /var/www/svn

リポジトリのアクセスアカウント作成

htpasswdコマンドを使用。
下の例では、アカウントuser1とuser2を追加しています。
# htpasswd -cm /etc/httpd/.svnpasswd user1
New password:
Re-type new password:
Adding password for user user1
# htpasswd -m /etc/httpd/.svnpasswd user2
New password:
Re-type new password:
Adding password for user user2

設定ファイル編集

/etc/httpd/conf.d/subversion.confを開き、URLとSVNホームを紐づける設定を定義。
下記の例では、「http://{ホスト}/svn」というURLと「/var/www/svn」を対応付け、さらに先程作成したパスワードファイルを使用して基本認証を行う設定をしています。

編集完了したら、念のため設定ファイルにエラーが無いか確認。
# service httpd configtest

「Syntax OK」を表示されればOKなので、Apache再起動。
僕ずっと「/etc/init.d/httpd」使ってたけど、serviceコマンドなんてのがあったのね。
# service httpd restart

Subersionにアクセスしてみる

チェックアウト
「svn co」コマンドを使用。
下記の例ではrepo1リポジトリにuser1でアクセスしています。
$ svn co http://{ホスト or IPアドレス}/svn/repo1 --username user1
認証領域: Authorization Realm
'user1' のパスワード:
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:

<http://192.168.xx.xx:xx> Authorization Realm

can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/home/omokuso/.subversion/servers'.
-----------------------------------------------------------------------
暗号化されていないパスワードを保存しますか (yes/no)? no
リビジョン 0 をチェックアウトしました。

最後の「暗号化されていないパスワードを保存しますか?」ですが、保存しておくともちろんそれ以降のアクセスの際に一々パスワード入力せずに済みます。が、それは当然セキュリティ的にはあまりよろしくありません。この辺はお好みで選択してください。

ところで、保存を拒否した場合、何と毎回「暗号化されていないパスワードを保存しますか?」と聞いてきやがります。このお節介を止めさせるのは以下の設定。
$ ~/.subversion/config
store-passwords = no
リソースを追加してみる
流れは
  1. チェックアウトしたディレクトリ配下にリソース新規作成
  2. リソースをバージョン管理に追加
  3. コミット
$ cd repo1
$ mkdir trunk branches tags
$ svn add trunk branches tags
$ svn ci -m "お馴染みのディレクトリ新規追加"

参考

2011年8月14日日曜日

LAMP of CakePHP on VMware:構築後のデザート~Apache, MySQL自動起動設定

さて、ここまでVMware Player上のCentOS 5.5・6.0でCakePHPを最低限動作させる環境構築手順を説明してきました。

上記手順の中で何度かOSを再起動する機会があったと思いますが、その度に一々ApacheやMySQLを起動し直さなくてはならない事にイラついた方もいると思います。
ここではそれらがOS起動時に自動起動するための設定手順を説明します。

その前にまず、起動しているかどうかの確認方法

以下の「プロセス名」を置き換えてください。
Apacheは「httpd」、MySQLなら「mysqld」です。
$ ps aux | grep プロセス名

chkconfigコマンド

Red Hat系Linuxの場合、chkconfigという便利なコマンドがありますので、それを利用します。
※よってUbuntuなどDebian系の場合は他をあたってください。
ちなみにrootユーザーで実行します。
起動スクリプトが登録済みかどうかの確認
下記のように「on」「off」と表示されれば既に登録済みです。
# chkconfig --list httpd
httpd           0:off 1:off 2:off 3:off 4:off 5:off 6:off

# chkconfig --list mysqld
mysqld          0:off 1:off 2:off 3:off 4:off 5:off 6:off
未登録だった場合
下記のように「--add」オプションを指定して追加してください。
# chkconfig --add httpd
# chkconfig --add mysqld
自動起動設定ON
以下コマンドを実行するだけです。
# chkconfig httpd on
# chkconfig mysqld on
「chkconfig --list …」で再度確認してみてください。2~5の値が「on」に変更されていればOKです。

関連エントリ



2011年8月7日日曜日

LAMP of CakePHP on VMware:構築手順メモ外伝 ~CentOS 6.0環境構築

ごぶサタデー…のつもりだったが、後述のインストール作業の見通しが甘くて日付を跨いでしまった。
ところで更新が滞ると記事コメント頂けるという法則がこの宇宙には存在しているようです。

技術メモ・ネタが結構溜まってきているので(えと、レベルは高くないです)、いい加減そろそろ消化していかないとなと思って臨んだサタデー、CentOS 6.0が先月リリースされていた事を知りました。
うーん、情報収集は怠っていなかったつもりだけどな…このニュース、認知度ありました?

まあ何はともあれ、せっかくなんでVMware Player上に仮想環境構築です。
まずは以前に自分で書いた構築手順(簡易インストール)を踏んでみました。若干の手順の差異はあれど、OSの日本語化設定まではすんなり済みましたが、日本語入力メソッド(前述の記事における『SCIM+Anthy』)のインストールで躓いてしまい、日本語の入力ができない状態で通行止めに…

なので今回は簡易インストールではなく、ISOイメージファイルからブートすることでインストールしました。その手順をここに記します。
ちなみに2011年8月7日時点で、当記事の手順でインストールされるAMPのバージョンは以下の通り。PHP、5.3だー!
  • A:2.2.15
  • M:5.1.52
  • P:5.3.2

ISOイメージのダウンロード

わざわざ書くことでもないですが。
以下ページに日本のミラーサイトへのリンクが記載されているので、お好みのサイトからダウンロードしてください。ちなみにISOイメージは「6.0/isos」ディレクトリにあります。

VMware Player : 空の仮想マシンを作成

VMware Playerを起動し、ホーム画面の「新規仮想マシンの作成」を選択。
「後でOSをインストール」を選択し、次画面で「Linux」「CentOS」を選択し、後は簡易インストールと同じ流れ。
よく分からなければ、例によって画像付きで解説してくださっている以下ブログを参照してください。
尚、今回は空仮想マシン作成なので、この時点でのCentOSインストールは当然開始されません。

VMware Player : CentOSインストール

作成した空仮想マシンを選択して
「仮想マシン設定の編集」→「ハードウェア」→「CD/DVD(IDE)」と選択していき、
「接続」ペインの「ISOイメージファイルを使用する」欄に、ダウンロードしたISOイメージのパスを入力。
この状態で「仮想マシンの再生」を行います。

後は、画像付きで解説してくださっている以下ブログを参照してください。
僕はネットワーク設定まで全く同じ手順を踏ませていただきました。
ちなみに上記記事の(1)と(2)の間に、もしかしたらディスクチェックを行うかどうかの画面が表示されるかもしれません。手っ取り早く進めたければスキップしちゃってください。

VMware Toolsを自分でインストール

今回は簡易インストールではない手順をとったので、VMware Tools(※1)は自分でインストールする必要があります。

まずは仮想OSにログインした状態で、VMwareウィンドウ下部の「ツールのインストール」を押下。

インストーラのアーカイブが保存された仮想CDドライブがマウントされます。

次にターミナルを起動し、mountコマンドでアーカイブのパスを確認。
$ mount
…
/dev/sr0 on /media/VMWare Tools …

僕の場合は上記のパスでした。
続いてアーカイブを展開し、rootユーザーになってからインストールスクリプトを実行します。
$ tar xvzf /media/VMware\ Tools/VMwareTools-8.4.6-385535.tar.gz
$ cd vmware-tools-distrib
$ su
# ./vmware-install.pl

インストールスクリプトでは、ディレクトリなどいくつか設定を問われますが、全て何も入力せずEnter(その場合[]内の値が使用される)。

完了したら一旦シャットダウンし、仮想マシン設定の「CD/DVD(IDE)」の設定を元に(「物理ドライブを使用する(自動検出)」)戻し、再度起動してみます。
ゲスト・ホストOS間でクリップボードの共有、マウスカーソルのシームレスな行き来、VMware Playerのウィンドウ最大化した際にゲストOSの描画エリアも最大化…などが実現できていればOKです。

あと、せっかくなんでこのタイミングでパッケージを更新しておくといいかもしれません。
「システム」→「管理」→「ソフトウェア更新」で更新できます。ちなみに僕の場合、見つかった更新の数は約170個で、更新完了するまで結構時間かかりました。

Apache インストール

恐らく既にインストールされていると思います。
もしインストールされていなければ、以下コマンドでインストール。
# yum install httpd

そして起動。
# /etc/init.d/httpd start
ファイアウォール設定
「システム」→「管理」→「ファイアーウォール」
「信頼したサービス」で表示されるリスト内の「WWW(HTTP)」にチェックを入れ、ツールバーの「適用」押下。
※恐らく「SSH」はデフォルトでチェックが入っていると思いますが、チェックされてなければ入れといてください。

MySQL インストール

# yum install mysql-server

そして起動。
# /etc/init.d/mysqld start

DBやユーザーの作成に関しては、今回も割愛。

PHP インストール

MySQL接続用のパッケージも一緒にインストール。
# yum install php php-mysql

インストール済んだらApache再起動。
# /etc/init.d/httpd restart

ApacheやPHPとかの動作確認やらCakePHPの導入やら

以前に僕が書いた以下記事を参照してください。
記事の環境はバージョン5.5ですが、やることは変わりません。

その他の関連エントリ


※1
ゲスト・ホストOS間でクリップボードの共有やマウスカーソルのシームレスな行き来を実現したり、VMware Playerのウィンドウ最大化した際にゲストOSの描画エリアも最大化したりetcetcと、痒いところに手を届かせてくれるツール。


2011年4月4日月曜日

LAMP of CakePHP on VMware:構築手順メモ2~CakePHPデコレーション

はじめに ※2011年8月追記

当記事は、CentOS 5.5環境の構築手順です。
CentOSと言えば、4月に5.6、7月にようやく6.0がリリースされました。
5.6環境のインストールは、この記事で解説している5.5と全く同じ流れでいけます。ちなみに、5.6だとPHP5.3のパッケージが提供されています。
6.0の場合、微妙に違いますが殆ど変わらないので、何となく分かるかとは思いますが、確実を期したければこちらを参照してください。ただしApacheとPHPの動作確認、CakePHPインストールは当記事の通りです。

では本題

LAMPほぼ童貞の男がお送りする、VMware Player上のCakePHP自習環境構築第2弾。
今回はCentOS上にLAMPの『AMP』及びCakePHPをインストールする手順をお届け。
※VMware PlayerとCentOS仮想マシンの構築手順はこちらを参照

Apache インストール

※プロンプトが『$』の場合は一般ユーザー、『#』の場合はrootユーザーで実行(或いは頭に「sudo」をつける)してください。
# yum install httpd

インストール済んだら起動。
# /etc/init.d/httpd start
ファイアウォール設定
「システム」→「管理」→「セキュリティレベルとファイヤーウォールの設定」を選択。
「ファイアウォールのオプション」タブを選択して
  • ファイアウォール:有効
  • 信頼できるサービス:「WWW(HTTP)」にチェック
※「信頼できるサービス」はついでに「SSH」もチェックしておきましょう。
ここいらで接続確認
まずIPアドレスを確認。
# ifconfig
※パス通ってない場合は「/sbin/ifconfig」とフルパス指定してください。

ブラウザで「http://{IPアドレス}」にアクセスし、Apacheのテストページが表示されたらOK。

MySQL インストール

# yum install mysql-server

インストール済んだら起動。
# /etc/init.d/mysqld start

DBやユーザーの作成に関しては、今回は割愛。

PHP インストール

MySQL接続用のパッケージも一緒にインストールします。
バージョン 5.1
# yum install php php-mysql
バージョン 5.3 ※CentOS 5.6のみ
# yum install php53 php53-mysql

インストール済んだらApache再起動。
# /etc/init.d/httpd restart
ここいらでPHP動作確認
Apache公開ディレクトリ(デフォルトでは/var/www/html)直下に以下ソースを適当なファイル名で保存(拡張子は「.php」)。

ブラウザで「http://{IPアドレス}//{ファイル名}」にアクセスし、「PHP Version…」から始まるページが表示されればOK。

CakePHP インストール

以下ページよりアーカイブをダウンロード。3月下旬時点での最新安定バージョンは「1.3.8」。
アーカイブを解凍し(tar zxvf {ファイル名})、Apache公開ディレクトリ(デフォルトでは/var/www/html)内に展開。
CakePHPディレクトリ内の.htaccess有効化
「/etc/httpd/conf/httpd.conf」を開き、以下設定を追加。

ここいらでCakePHP試食
ブラウザで「http://{IPアドレス}/{CakePHPのパス}」にアクセス。
403エラーが発生した場合、SELinux設定を確認し、有効になっていたら無効に設定。
# getenforce
Enforcing ←disabled以外の場合は有効
# setenforce 0 ←無効化コマンド
さらに再起動時にも無効になるよう、設定ファイル編集。
# vim /etc/sysconfig/selinux
SELINUX=disabled
ここでOS再起動。これで恐らくOKな筈。
警告メッセージがいくつか表示されているはずなので、一つずつ潰していく。
apacheユーザーにapp/tmpディレクトリの書込権限追加
以下は一例。「chmod -R 757」とかでもOK。
chmod -R o+w {CakePHPのパス}app/tmp/
「strtotime()」の警告が発生したら
PHPが5.3でタイムゾーン設定を行っていない場合に発生する。
/etc/php.iniを開き、「date.timezone」の値に「Asia/Tokyo」を設定。
;date.timezone = 
↓ 修正
date.timezone = "Asia/Tokyo"
設定済んだらApache再起動。

app/config/core.phpのセキュリティ関連パラメータ変更
以下項目の値をデフォルト値から適当に変更。
  • 'Security.salt'
  • 'Security.cipherSeed'
app/config/database.php作成
既存のdatabase.php.defaultを元に作成。
ここまでの手順でMySQLをインストールした場合、パスワード無しの「root」ユーザーと「test」DBが作成されている筈なので、とりあえず接続情報を以下のように設定する。

PCREだか何かのエラーが発生してたら
「cake/libs/validation.php」のalphaNumeric関数内にある正規表現を修正する。

※ここの部分は以下のブログを参考にさせていただきました。
以上でとりあえず完成(の筈)。OS起動時にApacheやMySQLを自動起動させる設定やらMySQLのDB・ユーザー作成やらは、後述の関連エントリを参照してください。
それではCakePHPを召し上がってください。

関連エントリ



2011年4月3日日曜日

LAMP of CakePHP on VMware:構築手順メモ1~CentOSインストールまで

はじめに ※2011年8月追記

当記事は、CentOS 5.5環境の構築手順です。
CentOSと言えば、4月に5.6、7月にようやく6.0がリリースされました。
5.6環境のインストールは、この記事で解説している5.5と全く同じ流れでいけます。ちなみに、5.6だとPHP5.3のパッケージが提供されています。
6.0環境の構築手順はこちらを参照してください。

では本題

職務経歴の大半がWindows Server+商用クソJavaフレームワークで占められており、LAMPのどれ一つ未経験の男がお届けする、VMware Player上のCakePHP自習環境構築手順です。よろしければご覧あれ。
尚、タイトルの通り当記事で言及しているのはCentOSインストールまでです。AMPのインストール手順に関してはこちらを参照

ちなみに当記事におけるLAMPのバージョンは以下の通り。
3月下旬にバージョン指定しないでyumインストールした結果であります。
  • L:CentOS 5.5
    ※5.6環境の構築手順も同じ流れです
  • A:2.2.3
  • M:5.0.77
  • P:5.1.6
    ※CentOS 5.6の場合、PHP5.3のパッケージが提供されています
ところでCentOSと言えばRed Hat互換ということで人気な訳ですが、開発コミュニティが分裂しかかっていて次期バージョンリリースの目処が立たず、待ちきれないならScientific Linux使ってねなんて状況なんだそうな。

VMware Player インストール

以下ページの「ダウンロード」リンクから。
姓、名、メールアドレスを入力後、インストーラーのダウンロードページリンクが記載されたメールが送られてくる。

CentOS ISOイメージのダウンロード

本家サイトのダウンロードページから。
お好みのミラーサイトから『CentOS-5.5-i386-bin-DVD.iso』をダウンロードしてください。尚、ファイルサイズは3.9GBです。

※ダウンロードを速く終えたくて堪らないあなたは、『CentOS-5.5-i386-bin-DVD.torrent』でBitTorrentによるダウンロードを利用するといいよ。ちなみに僕は今回のこれでBitTorrent処女喪失しました。TorrentクライアントにはOperaを使用。
※1:BitTorrentについての補足というかメモ書き

CentOS仮想マシン作成

VMware Playerを起動し、ホーム画面の「新規仮想マシンの作成」を選択、後はウィザードに従って進める。特に躓くようなことはないだろうから詳細な解説はここでは割愛。もし躓くようであれば、画像付きで解説してくださっている以下ブログを参照してください。

日本語化設定

OSの画面を見れば一目瞭然だが、言語設定が英語の状態。どうも上記手順によるインストール(簡易インストール)だとこうなってしまうらしい(※2)。
というわけで日本語化設定を行う。
キーボード設定
今のままだとキー配列が英語でコマンドタイプがままならないので、まずはキーボード設定から。
メニューの「System」→「Preference」→「Keyboard」で表示されるダイアログの「Layouts」タブを選択し、
  • Keyboard model:Japanese 106-key
  • Selected layouts:japan ※それ以外は削除
システムの言語設定
以下コマンド実行したらダイアログ表示されるので『Japanese』を選択。
※プロンプトが『$』の場合は一般ユーザー、『#』の場合はrootユーザーで実行(或いは頭に「sudo」をつける)してください。
# system-config-language
日本語フォント インストール
# yum install fonts-japanese
日本語入力メソッド『SCIM+Anthy』のインストール(※3
# yum install scim-anthy

ここまでやったら一旦再起動。

メニューなどで文字化け発生したら

フォントキャッシュを更新して再起動したら解消。
# fc-cache -fv

※ここの部分は以下のブログを参考にさせていただきました。

LAMPの『L』のインストール・設定はとりあえずこんなもんでOK。
残りのAMPに関しては次の記事で解説してます。

関連エントリ

※1:BitTorrentメモ書き
CentOS ISOイメージのダウンロード先にデスクトップを指定し、ダウンロード開始して無事完了。なるほど、確かにHTTPやFTPに比べて速い…と感動していると、何かアップロード処理が始まっている。BitTorrentといえばWinnyとかと同種のいわゆるP2Pなもんだから、「やばい!デスクトップ上のファイルが晒される!!」と焦った焦った…。
BitTorrentの場合、ファイルをダウンロードすると、今度は自分が配布者となってダウンロードしたばかりのファイルがアップロードされるのだそうな。要するに、アップロードされるのはダウンロードしたファイルだけ。心配するな、俺。ていうか事前に学んどけよ、俺。

BitTorrent - Opera Wiki
BitTorrentにアップフォルダという概念はありません。あなたがBitTorrentを利用してダウンロードしている途中、またはダウンロード完了したものを他のひとに分けあたえるのみです。それ以外のファイルを勝手に流されることは仕組み上ありえません。

尚、ダウンロード後に接続解除するなどしてアップロードしないのはマナー違反。
Operaヘルプ:BitTorrent
BitTorrent アーカイブをダウンロードしている間、あなたは他のユーザーへの配布も助けていることにをなります。たとえ帯域制限をするなどしても、アップロードをせずダウンロードのみ行うということはできません。

※2
当記事の手順(簡易インストール)ではなく、ディスクからインストールするのと同じ手順でいきたい場合は、CentOS 6.0環境構築手順の記事を参考にしてください。その手順の場合、当記事で解説している日本語化設定は不要(OSインストールウィザードで行う)になりますが、『VMware Tools』は自分でインストールするしなければなりません。

※3
Windowsにおける『MS-IME』、Macにおける『ことえり』ね。