日: 2011年5月4日

休憩がてら、再びボヤいておこうと思う。

気軽に、「エエモンみっけた♪」みたいなつもりで始めた、LIVE COMMERCE試用への道のり。
めっさ、長い・・・

とにかく、この環境はダメ、ここはダメとVPSやらXAMPPの仮想サーバやら、正味4つ5つのサーバをフルで立ち上げた位のことをしている・・・
連休、、、全部つぶしてもぉた。

VPSを2つ借りたのも、少ないお小遣いで連休ずっと遊べるゲームを買った、と言うつもりで。
てか、そう思わないと、本当にやってられない・・・

おかげで、やっぱりVPSは安いからと飛びついたら、ネットワークアクセス異様に遅い時があったり、いきなりメモリ不足でサービスが立ち上がらなかったり、というような悲惨なことに合う場合もあるなぁ(ウワサではなく実際に!)ということもわかったし、いつも使っている複数のドメインレジストラそれぞれのDNSの引き込み方とか、苦労しただけの収穫は有った。(でも、またすぐ忘れちゃうんだけどね;)

それにVPS2つ同じcentOSで借りたおかげで、うまくいかないときに、互いの中身を見比べて原因分けできたり(プリインストールのパッケージがすこしずつ違ったりするから。)、ケガの功名的なアレもあったわけです。

それに、しばらくあんまり更新とかしてなかったブログの備忘録にも、ガッツリ&ミッチリ&シツコク書くネタもできたしね。

いきなり振り返り、みたいなことを書いてますが、、、
あっはっは。
肝心のLIVE COMMERCEのインストールとか試用とか色々は、やっとベースのサーバができた今から、なんですワ。
あ~。また、インストールできなかったり、起動できんかったらどうしよ。。。
もう、お手上げですわ。

これで出来んかったら、さすがのしつこいワタクシめも、もう自分の力の無さを嘆きつつ、諦めて、ペッパーボーイ一派に入会しますワイ。

では、本当の休憩に行ってきます。。。乙。

→サーバの設定も終わったので、インストールしてみました。

結果ですが、どのサーバに入れても、VPSに入れても、同じエラーで表示できません。

はっきり言って実用を無視したカスです。エラーコードを追っていこうかとも思ったのですが、エラーの箇所も状況も正しく出力されないようなので、これを追っていったら、、きっと、いや絶対、ドツボにハマる、と確信しました。。。

貴重な時間を無駄にした・・・(泣)と心の底から後悔しています。

てことで、LIVE COMMERCEの件は、もっとまともなものができたら、またTRYするかもしれませんが、人生大事にするために(大げさ?)次に行きます。

つっても、ここで消費した時間と心のリソースが大きすぎて、、、乙乙乙~~~!!!

疲れました・・・

centOSのVPSサーバでPHP5.2.16とMYSQLでLAMP環境を作る-その2-

MYSQLをそのままコマンドラインから編集するのは、ちょっとアレなんで、ブラウザから編集できるように、「phpMyAdmin」とかいれちゃう。(これも結構面倒だけどね。まあ、最初だけなんで。)

下記は、最新版をインストールする手順です。古いものには、ややこしい設定が入らなかったと思うので、どっかでググッてみてください。

1)まずは、phpMyAdminのWEBサイトからパッケージをダウンロードする。

Linuxで、日本語で使うので、「phpMyAdmin-3.3.10-all-languages.tar.gz」が最新のパッケージですね。

ダウンロードしたら、FTPで、/var/www/html/へ、アップロード。
※ローカルで解凍して、解凍したフォルダをアップロードしてもいい。その場合は、この後の、サーバ上での解凍コマンドは要らない。

SSHのコマンドラインから、WEBサイトからのパッケージダウンロードを行うこともできる。

[root@server]# cd /var/www/html/ →HTML公開ディレクトリへ移動する。
[root@server]# wget http://sourceforge.net/projects/phpmyadmin/files%2FphpMyAdmin%2F3.3.10%2FphpMyAdmin-3.3.10-all-languages.tar.gz/download#!md5!2e93375a92a86ef36e561b0087f6b8e3 →パッケージをダウンロードする。
[root@server]# tar xvzf phpMyAdmin-3.3.10-all-languages.tar.gz →パッケージの解凍

FTPクライアントからかSSHで、解凍された「phpMyAdmin-3.3.10-all-languages」フォルダの名前を適当なものに変更する。(そのままでもいいけど、長いから・・・)「phpMyAdmin」にしとく。

2)phpMyAdminのCONFIGファイルを編集する。

これも、FTPでファイルをダウンロードして、テキストエディタで編集後アップロードしても構わない。

[root@server]# cp /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php →CONNFIGファイルのサンプルをコピーしてリネーム。
[root@server]# nano /var/www/html/phpMyAdmin/config.inc.php

$cfg[‘Servers’][$i]~などの設定値で、コメントアウトしている部分のコメントを取って、有効にしていく。(下記、見本。)
・「blowfish_secret」の中に、シークレットコードを決めて入力する。数字4桁とかabcとかでOK。
・MYSQLユーザの名前とパスワードを入れる。

.
*
* @version $Id$
* @package phpMyAdmin
*/

/*
* This is needed for cookie based authentication to encrypt password in
* cookie
*/
$cfg['blowfish_secret'] = '1234'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

/*
* Servers configuration
*/
$i = 0;

/*
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

/* rajk - for blobstreaming */
$cfg['Servers'][$i]['bs_garbage_threshold'] = 50;
$cfg['Servers'][$i]['bs_repository_threshold'] = '32M';
$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600;
$cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';

/* User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = '※rootのパスワード';
/* Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
/* Contrib / Swekey authentication */
$cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';

/*
* End of servers configuration
*/

/*
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

?>

3)上記のconfig.inc.phpで設定した項目に対するphpMyAdmin用のデータベースとテーブルを作成する。

phpMyAdminには、データベースもテーブルも、必要なものを一式作成してくれるSQL文が用意されている。

[root@server]# cd /var/www/html/phpMyAdmin/scripts/ →SQL文の保存されている/phpMyAdmin/内の「/scripts/」ディレクトリへ移動。

[root@server]# mysql -u root -p →パスワードを使ってMYSQLへログイン。
(パスワード入力)
mysql>source create_tables.sql; →「create_tables.sql」でデータベースとテーブルを自動作成する。

mysql>SHOW DATEBASES; →データベースが正しく作成されているか確認。

+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| phpmyadmin |
| test |
+--------------------+
4 rows in set (0.00 sec)

「phpMyAdmin」データベースが作成されてます。
中のテーブルの数までここで確認するのは面倒なので、一旦ここは終わって、確認も兼ねて、ブラウザから、phpMyAdminの管理画面にアクセスしてみることにする。

mysql>\q →MYSQLへのアクセスを一旦終わる。

ブラウザで、
「http://○○○.com/phpMyAdmin/」へアクセスしてみる。(保存した時に別の名前だったなら、その名前でお願いします。)

IDとパスワードを入力して、ログイン。

「phpMyAdmin」データベースが表示され、その中に9つのテーブルが保存されていればOK。

一応、作成されるテーブルを一覧にしとく。CONFIGファイルでコメントを解除した(=有効にした)下記のコードに対応するテーブルです。

  • $cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin‘; →これがデータベース名ね。以下はテーブル。
  • $cfg[‘Servers’][$i][‘bookmarktable’] = ‘pma_bookmark‘;
  • $cfg[‘Servers’][$i][‘relation’] = ‘pma_relation‘;
  • $cfg[‘Servers’][$i][‘table_info’] = ‘pma_table_info‘;
  • $cfg[‘Servers’][$i][‘table_coords’] = ‘pma_table_coords’;
  • $cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma_pdf_pages‘;
  • $cfg[‘Servers’][$i][‘column_info’] = ‘pma_column_info‘;
  • $cfg[‘Servers’][$i][‘history’] = ‘pma_history‘;
  • $cfg[‘Servers’][$i][‘tracking’] = ‘pma_tracking‘;
  • $cfg[‘Servers’][$i][‘designer_coords’] = ‘pma_designer_coords‘;

最後に、SSH画面から、一応、MYSQLとHTTPDを再起動しておく。

[root@server]# service mysqld restart
[root@server]# service httpd restart

取り敢えず、これで、MYSQLは使えるようになった!
後は、PHP.INIの設定して、いよいよソフトのパッケージとかに向かいます。
PHP.INIの設定とZEND OPTIMISERとかのインストールがちょっと面倒ですが、峠は越えた!あと少し。
頑張りましょう!(と自分を励ましてみる・・・)

参考にさせていただきました。
http://andante0727.blog81.fc2.com/blog-entry-104.html
http://blogs.yahoo.co.jp/gun534/51235807.html

*********************************

centOSのVPSサーバでPHP5.2.16とMYSQLでLAMP環境を作る-その1-

centOS5は、最新バージョンのVER.5.6でもPHPは5.1系がパッケージングされていて、これだと、ちょっと古い;
今回は、LIVE COMMERCEを試用するために、VPSでのサーバ構築という偉業に乗り出したわけなので、それに合わせてLAMP環境を調整していくことにする。(ちなみにPHPの現時点での最新は、5.3.3なんだけどね;中途半端だわさ。)

とりあえず、centOS5のレポジトリからyumインストールすると、PHPのバージョンが、5.1.6(だっけ?)になってしまう。
だけど、PHPの最新は、5.3.3という中途半端な感じなので、5.2.16が入ってるレポジトリからyumでインストールできるように、準備します。

[root@server]# rpm –import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
→別にメッセージもなく、終わる。
[root@server]# nano /etc/yum.repos.d/utterramblings.repo
→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

————————

[root@server]# yum –enablerepo=utterramblings update php
(※先に旧バージョンのphpがインストールされてない場合は、updateをinstallにする)
MYSQLも同じく。

enabled=1にすると、新しいアップデートが出たときに、yumのアップデートで更新されるので、再度utterramblings.repoを開いて、enabled=0に変更しておく。
※インストールするパッケージなどを、yumインストールの際に確認しながら入れるのであれば、そのママにしても、yumからパッケージがあるかどうかを聞きに行くだけなので実害はない。
※サーバにapacheが予め入っていなかったときは、このレポジトリで、一緒にインストールすると、互換性とかイロイロ面倒がなくていいかも。

***************************************
↑↑↑ここまでが、先のエントリーでやりかけた範囲。

1)必要なPHP関係のモジュールを追加でインストールする

取り敢えず、こんだけ入れます。(さらに足りないものは適宜追加で。)

  • php-xml
  • php-mcrypt
  • php-gd
  • php-mbstring
  • php-mysql
  • php-pdo
  • php-common※これは自動で入ってるかも。入れた記憶ない;

先に、上記のレポジトリのファイル(utterramblings.repo)を編集して、一旦「enabled=0」にしておきます。

[root@server]# yum install php-xml php-mcrypt php-gd php-mbstring php-pdo php-common
インストールされる依存関係などを確認して、「y」入力+エンターでインストールを実行。一旦キャンセルして確認しながら1つづつ入れてもOK。

ここまで、一旦、APACHEの再起動して、確認しとく。(まとまったものを入れては、再起動確認、という手順で、どこかでおかしくなったときに、原因のモジュールなどがわかるように。)

[root@server]# service httpd restart

2)PHPINFOでPHP設定値の確認

phpinfo.phpというPHP.INIの設定内容を書き出してくれるファイルを作成してFTPで、サーバの公開ディレクトリにアップロードする。(=ローカルマシンでの作業)

  1. テキストエディタ(秀丸など)で、テキストファイルを作成し、中に下記内容1行を打ち込んで、
    ————————————————–

    ————————————————–
    phpinfo.phpという名前で、UTF-8 エンコードで保存。
  2. FTPクライアントソフト(FILEZILLAなど)でWEB公開領域にアップロードする。
    ※今回の場合は、/VAR/WWW/HTML/の中に保存です。
  3. ブラウザで、「http://www.○○○.com/phpinfo.php」にアクセス。PHPがちゃんとインストールされていて、APACHEが起動していれば、PHPの設定一覧が表示される。GDやMBSTRINGなど、先にインストールしたモジュールがちゃんと一覧に表示されているか確認しておく。

3)php.iniの初期設定

先に用意していたphpinfo.ihiをブラウザから見ながら、必要な設定、追加設定を行っていく。
http://www.○○○.com/phpinfo.php →php.iniの設定値を確認。

SSHで作業。↓

[root@server]# cp /etc/php.ini /etc/php.ini.org →オリジナルをコピー保存。

[root@server]# nano /etc/php.ini

  1. max_execution_time = 30 →300位に増やす。使用するCMSやブログの規模によって処理が遅くなるとこのままではタイムアウトしてしまう。
  2. max_input_time = 60 →300位に増やす。使用するCMSやブログの規模によって処理が遅くなるとこのままではタイムアウトしてしまう。
  3. memory_limit = 32M →64M位にしたい。でも全体メモリが少ない契約プランでたくさん割り当てすぎると他のサービスが動作できないことも。設定後の動作状況と見合わせて。
  4. default_charset = “utf-8“ →コメントを取って、utf-8に変更。
  5. error_reporting = E_ALL & ~E_NOTICE →コメントを取る。(=有効)エラーレポートをメールで受け取る。
    ;error_reporting = E_ALL →コメントアウト。お知らせはいらない。
  6. display_errors = On →エラー内容を表示する
  7. mbstring.language = Japanese →コメントを取る。(=有効)

PHPの使用メモリ量 ≧ POSTで扱うデータ量 ≧ アップロードファイル容量 なので、それに合わせて、「memory_limit」「post_max_size」「upload_max_filesize」を調整する。
例えば、ファイルのアップロードをさせるようなCMSを利用するなら、「post_max_size」「upload_max_filesize」もそれぞれある程度大きめの数字が必要だが、テキストとJPGの軽量画像の投稿のみのブログなら、「post_max_size」「upload_max_filesize」の2MBもあれば十分。(デフォルトはそれぞれ、8M、2M)
※設定値のバリエーションは色々あるので、迷ったら、自分が使っている他のレンタルサーバサービスなどの、php.iniを参照すると良いです。

どれも特に初期設定はMUSTではないです。
というのも、php.iniは、利用するソフトやCMS、ブログソフトなドに合わせて、それらのインストール時に、その利用環境に合わせて変更するからです。
また、公開ディレクトリ内に、カスタムのphp.iniを設置して、デフォルトの設定を上書きすることもできます。

4)MYSQLの必要なものをインストールしていく

  1. mysql-server
  2. mysql-devel
  3. mysqlclient
  4. mysql-bench

※上の3つは必要かな。下1つはどうかな。ベンチマークを取るようなことはないかもしれないけど、、、取り敢えず入れてもいいし、必要だったと思ったときに後でいれてもいいかも。

[root@server]# yum install mysql-server mysql-devel
※多分、mysqlclientは依存関係で自動的にインストールされると思う。

5)MYSQLの初期設定

[root@server]# cp /etc/my.cnf /etc/my.cnf.org →バックアップファイル作成。
[root@server]# nano /etc/my.cnf →設定ファイル編集。

短いので、全体書きます。太字のところを追記します。

[mysql]
default-character-set=utf8

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
skip-character-set-client-handshake

# To enable the InnoDB Plugin, uncomment the 2 next lines
#ignore-builtin-innodb
#plugin-load=innodb=ha_innodb_plugin.so

# To enable InnoDB-related INFORMATION_SCHEMA tables
# Join the following options to above directive
;innodb_trx=ha_innodb_plugin.so
;innodb_locks=ha_innodb_plugin.so
;innodb_cmp=ha_innodb_plugin.so
;innodb_cmp_reset=ha_innodb_plugin.so
;innodb_cmpmem=ha_innodb_plugin.so
;innodb_cmpmem_reset=ha_innodb_plugin.so

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[root@server]# service mysqld start

起動時のおまじないも忘れない。(しつこいって。)
[root@server]# chkconfig mysqld on
[root@server]# chkconfig –list mysqld

APACHEも再起動します。
[root@server]# service httpd restart


※起動時に、設定した後とかMYSQLが立ち上げられない時がある。そういう時は、初期化に失敗して、MYSQLのバイナリファイルが壊れてる可能性が。

まず、ログを見る。
[root@server]# nano /var/log/mysqld.log
バイナリファイル一式を消してみる。(再起動できたらまた生成される)
[root@server]# rm -rf /var/lib/mysql
この辺試してみる。

6)MYSQLのユーザ設定をする

MYSQLは、初期のアクセスユーザがROOTになっているけど、PWの設定などがありません。MYSQLが起動したら、最初にユーザ設定を行い、初期データベースの整理をしてしまいます。※これ大事!

a)mysqlにログイン。
[root@server]# mysql -u root
mysql> select host,user,password from mysql.user; →初期登録済みユーザとテーブルの確認

+---------------------------+------+----------+
| host | user | password |
+---------------------------+------+----------+
| localhost | root | |
| www.○○○.com | root | |
| 127.0.0.1 | root | |
| localhost | | |
| www.○○○.com | | |
+---------------------------+------+----------+
5 rows in set (0.00 sec)

とDBテーブルが表示されます。

ROOTが所有しているDBテーブルのパスワードを全て設定します。

mysql>set password for root@localhost=password(‘rootユーザのパスワード’);
mysql>set password for root@’www.○○○.com’=password(‘rootユーザのパスワード’);
mysql>set password for root@’127.0.0.1’=password(‘rootユーザのパスワード’);

不要な匿名ユーザ(rootの下の名称の入っていない2つについて)のテーブルは、削除します。

mysql> delete from mysql.user where user=””;

再度確認。ROOTの名前の後ろに暗号化されたパスワードが埋まっていて、匿名だったテーブルが削除されていればOK。

mysql> select host,user,password from mysql.user;

+---------------------------+------+------------------+
| host | user | password |
+---------------------------+------+------------------+
| localhost | root | 2bfg6335678325567gg |
| www.○○○.com | root | 2bfg6335678325567gg |
| 127.0.0.1 | root | |
+---------------------------+------+------------------+
3 rows in set (0.00 sec)

一旦ログアウトして、パスワードなしのログインでエラーが出れば、OK。パスワードを入れてログインしなおす。

mysql> \q
[root@server]# mysql -u root
→ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
[root@server]#mysql -u root -p
Enter password:

ログインできたら、テストテーブルを作って、日本語入れてみて、削除する、までやっとく。でも今回は、面倒なので、phpMyAdminをインストールして、ブラウザのインターフェイスから試すことにする。

続きは次で。

参考にさせていただきました。

http://www.miloweb.net/mysql.html
http://pentan.info/server/linux/mysql.html
http://www.obenri.com/_lamp/mysql_setting.html
http://fedorasrv.com/mysql.shtml

*********************************

centOSのVPSサーバでWEBサーバ(APACHE2)設定した

WEBサーバをインストールしたら、まず、WEBの公開ディレクトリの所有者:グループが、FTPでアクセス可能な一般ユーザに変更してあるか確認。
HTTPDのインストール後は、rootが/var/www/html/ディレクトリ以下の所有者になっており、このままでは、FTP経由でのアクセスやファイルの編集ができない。
「cgi-bin」ディレクトリなども、CGIを使うのであれば、全てオーナーチェンジする。

だんだん面倒になってきたので、変更点だけ。

  1. Timeout 120 →300 ※そのままでもいいけど、安めのVPSとかで、LIVE COMMERCEとかEC-CUBEなどを使うのであれば長めにしとく。
  2. KeepAlive Off →On ※どっちでもいい。処理の効率を考えてonにしとく。
  3. MaxKeepAliveRequests 100 →500 ※これもそのままでも構わない。アクセスやリクエストが多い処理のためには500くらいが効率がいい。(らしい)
  4. #ServerName www.example.com:80 →ServerName www.○○○.com:80 ※コメントを取って自分のホスト名に変更する。
  5. UseCanonicalName Off →UseCanonicalName On
  6. この辺の設定は、使うブログソフトやCMSなどに合わせてあとで変更してOK。また、「AllowOverride」を有効にしておくことで、HTACCESSファイルでの設定の上書きができる様になる。

    Options Indexes FollowSymLinks →Options Indexes FollowSymLinks ExecCGI
    AllowOverride None → AllowOverride All
    Order allow,deny
    Allow from all
  7. # →複数ユーザでWEBサイトを公開して(http://www.○○○.com/~namae/という感じ)ユーザごとの公開ディレクトリを持つ場合は、この中身は全部コメントを取って有効にする。その上で、設定値を必要な範囲で編集。今回はなし。
  8. DirectoryIndex index.html index.html.var →DirectoryIndex index.html index.htm index.php index.cgi index.pl ※PHPなども使用するので、index.phpファイルをインデックスファイルとして認識出来るようにする。
  9. AddDefaultCharset UTF-8 →#AddDefaultCharset UTF-8 ※コメントアウト。有効にしてると、HTMLファイルなどで他のエンコードを指定していても、UTF-8と認識されてしまい、文字化けするから。
  10. #AddHandler cgi-script .cgi →AddHandler cgi-script .cgi .pl ※CGIスクリプトを実行するために、コメントを取って、「.pl」を追加する。

設定できたら、保存して閉じる。

設定チェックとHTTPD再起動して、起動のおまじない。

[root@server]# httpd -t →設定が有効に動作出来るか確認。Syntax OKと出てきたらOK。
[root@server]# /etc/init.d/httpd restart
[root@server]# chkconfig httpd on
[root@server]# chkconfig –list httpd

参考にさせていただきました。
http://www.obenri.com/_webserver/global_env.html
http://mizushima.ne.jp/Linux/httpd/Apache.php

(httpd.confファイルのコンテナ<>内の設定項目の説明)
http://www.obenri.com/_webserver/container_dir.html

*********************************