Posts tagged ‘PHP’

Installation of Geeklog

教えてもらって初めて知ったのですが、GeeklogというCMSがあるそうな。
「Geek」とは
http://ja.wikipedia.org/wiki/%E3%82%AE%E3%83%BC%E3%82%AF
自分の認識では、コンピュータ技術が大好きなオタクって感じでしょうか。

現在ぱっと見だと、WordPressよりももしや親切な感じなのでは?と思っちゃいますが使ってみないとね。
日本語公式サイトは以下

http://www.geeklog.jp/

早速入れてみます。
環境。

[]# cat /etc/redhat-release
CentOS release 5.3 (Final)
[]# httpd -v
Server version: Apache/2.2.3
Server built:   Jan 21 2009 22:01:41
[]# php -v
PHP 5.2.11 (cli) (built: Sep 21 2009 14:49:09)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

ダウンロード

#wget http://www.geeklog.jp/filemgmt/visit.php?lid=443

MySQLの文字セット・参照順序確認
文字セットはutf8で、参照順序はutf8_general_ciが良いらしい。

mysql> show character set like 'utf8';
+---------+---------------+-------------------+--------+
| Charset | Description   | Default collation | Maxlen |
+---------+---------------+-------------------+--------+
| utf8    | UTF-8 Unicode | utf8_general_ci   |      3 |
+---------+---------------+-------------------+--------+
1 row in set (0.00 sec)

特に問題ないので、これでインストールします。
先ほどダウンロードしたアーカイブを解凍し、Web公開する予定のフォルダにシンボリックリンクを張ります。

#tar zxvf geeklog-1.6.1-jp-extended-1.0.tar.gz
#ln -s geeklog-1.6.1-jp-extended-1.0/public_html/ geeklog

これで、http://server/geeklog/admin/installにアクセスすると、設定画面が表示されます。
geeklog-setting

画面は言語設定を日本語に変えた後ですが、デフォルトは英語でした。
パーミッション変更設定のコマンドも表示されているので便利ですね。確かosCommerceもこんな感じで便利だったような・・・。
表示されたコマンドをコピーしてそのまま実行しておきます。

chmod -R 777 /www/labs/geeklog-1.6.1-jp-extended-1.0/db-config.php /www/labs/geeklog-1.6.1-jp-extended-1.0/backups/ /www/labs/geeklog-1.6.1-jp-extended-1.0/data/ /www/labs/geeklog-1.6.1-jp-extended-1.0/logs/error.log /www/labs/geeklog-1.6.1-jp-extended-1.0/public_html/siteconfig.php /www/labs/geeklog-1.6.1-jp-extended-1.0/public_html/backend/geeklog.rss /www/labs/geeklog-1.6.1-jp-extended-1.0/public_html/images/articles/ /www/labs/geeklog-1.6.1-jp-extended-1.0/public_html/images/topics/ /www/labs/geeklog-1.6.1-jp-extended-1.0/public_html/images/userphotos

これで再度設定画面を表示させると、警告部分が出なくなったので「新規インストール」を押下してみますが、
なぜか英語版画面に切り替わってしまうだけなので、切り替わった画面から「New Install」を押下します。

ここでまたもや気付く。
やはりデータベースやユーザーは作成が必要ですよね。(前回も同じことを言ってるが・・・)
まあそこまで自動化するには実際create databaseやgrantを実行するユーザーの設定をどこかで書かなければいけないのでそれは当り前か・・・。

ということでgeeklogで使用するデータベースとユーザーを作成します。
(パスワードは仮にgeeklogとします。)

mysql> create database geeklog;
Query OK, 1 row affected (0.00 sec)
 
mysql> grant all on geeklog.* to geeklog@localhost identified by 'geeklog';
Query OK, 0 rows affected (0.07 sec)

これで先ほどの設定画面に戻って「Install」ボタン押下で、「Installation of Geeklog 1.6.1 complete!」と出ればインストール完了です。
下の方に、

Security Warning

Don’t forget to do 3 things:

Remove or rename the install directory, /www/labs/geeklog-1.6.1-jp-extended-1.0/public_html/admin/install.
Change the Admin account password.
Set permissions on /www/labs/geeklog-1.6.1-jp-extended-1.0/db-config.php and /www/labs/geeklog-1.6.1-jp-extended-1.0/public_html/siteconfig.php back to 644.

と出ています。親切だ!
ということで、/admin/installは権限なしに、geeklog-1.6.1-jp-extended-1.0/db-config.phpとsiteconfig.phpは権限644に変更しておきます。

# chmod 000 geeklog/admin/install
# chmod 644 geeklog-1.6.1-jp-extended-1.0/db-config.php
# chmod 644 geeklog-1.6.1-jp-extended-1.0/public_html/siteconfig.php

これで無事稼働させることが出来ましたが、新しくユーザーを登録する部分でうまく追加されない現象。
原因までは調査出来てはないけど、.htaccessを置いて以下記載をすることで動きました。

php_value mbstring.http_output "pass"
php_flag mbstring.encoding_translation Off

Xserverでのインストールについて
http://www.geeklog.jp/article.php/20060603071712656

XServerじゃないんだけど、確かにmbstringの設定が一部違っていました。
これでサンプル用ユーザーを作ったので以下で触ってみてください。

http://labs.4sure.jp/geeklog/

ID:sampleadmin
pass:sampleadmin

これも収拾付かない事態になりそうならば一旦制限を掛けますのでよろしくお願いいたします。


Installation of OpenPNE

Open PNEとは、自前でソーシャルネットワーキングシステムを作れるシステムです。
mixiほどデカくはなくとも、例えば近所のフットサルコミュニティとか、幼稚園ママ仲間用のや、社内グループ用などなど・・・。
そんな仲間同士のコミュニティをネット上でに作成出来るツールです。

今回は、OpenPNEという特に日本ではメジャーどころのツールを使います。

環境は

# cat /etc/redhat-release
CentOS release 5.3 (Final)
 
#httpd -v
Server version: Apache/2.2.3
Server built:   Jan 21 2009 22:01:41
 
#php -v
PHP 5.2.12 (cli) (built: Feb 16 2010 17:42:46)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
 
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 724
Server version: 5.0.45 Source distribution

で、Open PNE 3.4を入れます。
セットアップ手順は
OpenPNE 3.4 セットアップ手順
http://github.com/openpne/OpenPNE3/raw/OpenPNE-3.4.1/doc/ja/OpenPNE3_Setup_Guide.txt

を参考にしました。

現在の最新安定版は、OpenPNE 3.4.1だそうですのでそれを取得。

#wget http://github.com/openpne/OpenPNE3/zipball/OpenPNE-3.4.1

それを解凍して、公開フォルダ以下にシンボリックリンクを張ります。
(http://server/openpne/でweb以下をアクセスさせたいので)

#unzip openpne-OpenPNE3-48b30f0.zip
#ln -s openpne-OpenPNE3-48b30f0/web/ openpne

設定ファイルを付属サンプルを基に修正します。
とりあえずは、base_urlとmail_domainだけ。

# cp ProjectConfiguration.class.php.sample ProjectConfiguration.class.php
# cp OpenPNE.yml.sample OpenPNE.yml
# vi OpenPNE.yml
 
#とりあえず書き換えたところだけ
# SNS の URL
# URL of the SNS
base_url: "http://labs.4sure.jp/openpne/"
 
# SNS からのメール送信に使うドメイン
# Domain to use for sending e-mail from the SNS
mail_domain: "4sure.jp"

インストールコマンド実行
./symfony openpne:install
コマンドでインストールをします。
DBやユーザー等は、最初に作っておかないとダメかな?と思っていたのですが、勝手に作成してくれるようでした。

# ./symfony openpne:install
 
  Choose DBMS:
  - mysql
  - pgsql (unsupported)
  - sqlite (unsupported)
 
mysql
 
  Type database username
 
openpne
 
  Type database password (optional)
 
password
 
  Type database hostname
 
localhost
 
  Type database port number (optional)
 
 
 
  Type database name
 
openpne
 
  Type database socket path (optional)
 
 
 
  The DBMS                 : mysql
  The Database Username    : openpne
  The Database Password    : ******
  The Database Hostname    : localhost
  The Database Port Number :
  The Database Name        : openpne
  The Database Socket      :
 
  Is it OK to start this task? (Y/n)
 
Y

なんかディレクトリのchmodなどもやってくれているみたいで便利だこれは。
しかし、赤地に白文字でエラーメッセージが出た。

Couldn’t locate driver named mysql

mysqlの話なので、セットアップ手順を見返してみると、

* PHP の PDO 拡張モジュールを使用可能 (利用する DBMS のドライバも含む)

となっている。現在の環境は

#php -i
	:
PDO
 
PDO support => enabled
PDO drivers => sqlite, sqlite2
	:

あれ、mysqlが有効になっていない。
そこで調べてみると、そもそも標準で使っていたはずのphpが変な所にもう一つは言っていた。そこはphp.iniの場所が別だったらしく、全く設定が効いていなかった。

そこで色々して、標準のphp.iniを使用するようにし、php -iでPDOサポートの欄を見たら問題なさそう。

#php -i
PDO
 
PDO support => enabled
PDO drivers => mysql, sqlite
 
pdo_mysql
 
PDO Driver for MySQL, client library version => 5.0.45

そしてまたインストールコマンドを実行してみたら、今度は以下エラーが

>> plugin    installing plugin "opAuthMailAddressPlugin"
>> opPluginManager Plugin is already installed
PHP Fatal error:  Allowed memory size of 16777216 bytes exhausted (tried to allocate 16 bytes) in /openpne-OpenPNE3-48b30f0/lib/vendor/PEAR/PEAR/Registry.php on line 1061

メモリが足りないと言ってるのだな、と思い再度php.iniを確認すると、16Mしかなかった。これをとりあえず64Mに増やそう。

memory_limit = 64M      ; Maximum amount of memory a script may consume

再度また実行すると今度は・・・。

 PDO Connection Error: SQLSTATE[28000] [1045] Access denied for user 'openpne'@'localhost' (using password: YES)

あ、やっぱりユーザーは作っておかないとダメなのね。まあ当たり前か・・・。
以下設定でデータベースを作成します。

データベース名:openpne
データベースユーザー名:openpne

mysql> create database openpne;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on openpne.* to openpne@localhost identified by 'openpne';
Query OK, 0 rows affected (0.07 sec)

これで再度実行。ついに成功した。以下メッセージが出たらOK。

 
>> installer installation is completed!

これでブラウザから以下URLを表示してみる。
(あんまりアクセス多いと制限せざるをえないのでご了承ください)

http://labs.4sure.jp/openpne/

ここで以下デフォルトアカウントでログインしてみる。

sns@examble.com
password

あれ?404エラーのようだな。権限の設定か・・・。
ちょっと調べてみると、

http://redmine.openpne.jp/issues/201

を見つけた。(redmine使ってますね)
.htaccessのmod_rewriteの設定が、とありますが、今回の場合は、.htaccessを使う設定にしていないのが原因でした。
なので、httpd.confで、openPNEを配置しているディレクトリに対して以下設定にします。
もともとは、AllowOverride Noneになっていました。

<Directory /openpne>
    AllowOverride All
</Directory>

これで動くようになりました。
あんまり無茶苦茶なことになったら制限を掛けますが、以下URLで公開しているのでもし触ってみたい方は試してみてください。
http://labs.4sure.jp/openpne/
ID:sns@example.com
PASS:password

管理画面は以下です。
http://labs.4sure.jp/openpne/pc_backend.php

ID:sampleadmin
PASS:sampleadmin

しかしmixiだなこれはw


yumでPHP最新版(5.2)にアップデート

CensOS標準のyumリポジトリでは、いまだにPHP5.1.6が最新になっている。
まあ、他のソフトウェアとの整合性もあるのでしょうがないかもしれないのですが、
そろそろ・・・。

特に最近は、php5.2移行を要求するソフトウェアもどんどん出てきているので、そろそろ・・・。

ツール等のインストールはyum経由で、というのは出来れば崩したくないので、どこかのリポジトリを追加すればいいんだろうなと思っていたが、そのものズバリの事をやっておられる方が!

CentOS5.2にPHP5.2をYumでインストール

こちらの手順を参考にさせていただきました。

・リポジトリ追加

vi /etc/yum.repos.d/utterramblings.repo

・以下コピペ

[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

これでアップデートしてみると、無事に5.2.11-jason.1となっている。
(jasonというのが気になるが後で調べよう)