8月
23
2010

FreeNAS+MySQL+phpMyAdmin+CGIFreeNAS+MySQL+phpMyAdmin+CGI

FreeNAS+MySQL+phpMyAdmin+CGIFreeNASの基本設定なら、難しくはないが、しかし、FreeNASについてないpkgを入れて設定するのはほんまにものすごく難しくて大変だった。

下記の中国サイトを見ると、FreeNASはMySQL5の対応できないのため、MySQL4の導入だと薦められてるけど。

[原创]FreeNas+php+MySql+phpMyAdmin 整合安装 – FreeNAS安装配置 – FreeNAS中文论坛 freenasfreebsdopenbsd – Powered by Discuz!

自分の使ってるFreeNASは0.7.1だし、Googleで海外の説明サイトを見たら、ちゃんとMySQL5でも動けそうに見えてるから、ネットでほかの説明の書いてるサイトを探ってみたら、このサイトの発見した。

Installing MySQL And phpMyAdmin On FreeNAS  HowtoForge – Linux Howtos and Tutorials

しかし、ちゃんと上記のにしたがって再起動したら、FreeNASのシステムは暴れて、もう入られなくなり、自分は上記の説明にはなんか欠けてるかと疑い、なんども繰り返してやってみても、同じくFreeNASに入られなくなり、めちゃくちゃだった。

なんと、下記のサイトで、ようやくphpとMySQLの導入をうまくいれた。

Low Cost NetWare Backup to Disk Using FreeNAS – Part II  Novell User Communities

それから、CGIの導入なら、下記の二つサイトで参考させてもらった。

Low Cost NetWare Backup to Disk Using FreeNAS  Novell User Communities

取捨選択 壱弐 – FreeNas構築覚書その3 –webサーバ編

それでは、上記のサイトをまとめて、こういう手順を語ってみる。

FreeNAS+MySQL+phpMyAdmin+CGIFreeNAS的基本設定,其實唔難,不過,FreeNAS本身沒有跟的pkg之安裝及設定就好煩好難.

下記的大陸網站,說FreeNAS不支援MySQL5,故推薦安裝MySQL4.

[原创]FreeNas+php+MySql+phpMyAdmin 整合安装 – FreeNAS安装配置 – FreeNAS中文论坛 freenasfreebsdopenbsd – Powered by Discuz!

不過自己所用緊的係FreeNAS之0.7.1版本,係Google睇過其他海外網站,發現MySQL5都可以運行的,於是係網上搵到呢個說明網站.

Installing MySQL And phpMyAdmin On FreeNAS HowtoForge – Linux Howtos and Tutorials

但係,跟足上記的去做然後重啟後,FreeNAS的系統出現出錯,變得無法登入,我懷疑自己是否做漏,不過,試過好幾次都係同樣地無法登入FreeNAS,好愁吓啊.

總算,係下記網站,成功把php及MySQL導入了.

Low Cost NetWare Backup to Disk Using FreeNAS – Part II Novell User Communities

另外,CGI之導入,於下記兩個網站得以參考.

Low Cost NetWare Backup to Disk Using FreeNAS Novell User Communities

取捨選択 壱弐 – FreeNas構築覚書その3 –webサーバ編

綜合上記啲網站,我寫出以下方法.

FreeNASのサイトで、最新のFreeNASのISOを落とし、CDにバーンする。

FreeNASの導入選択には”install ‘full’ OS on HDD + data + swap partition”或いは”install ‘full’ OS on HDD + data partition”を選ぶ。

OSには十分足りられる空間をつける。

FreeNASにはネットワークコネクションの確認。

PuTTY Download Pageでputtyをダウンロードする。(WindowsからFreeNASのShellに入られるアプリなのだ)

WinSCP::Free SFTP and FTP client for Windowsでwinscpをダウンロードする。(WindowsからSSHでrootのログインして自由にすべてファイルをいじられるアプリなのだ)

FreeNASのWebGUIでmysqlというグループもユーザーも作る。

MySQLのDB保存するためのフォルダーを作る。「僕の場合は/mnt/motokagadisk/db/mysql/だった」

FreeNASなかのShellでまたはputtyでFreeNASのShellに入って下記のコマンドを入力する。「puttyの場合なら、FreeNASのサービスにはSSHの有効して、ルーターの設定には必ず22ポートの開放して忘れず」

kaganas:/# mkdir /mnt/motokagadisk/db
kaganas:/# mkdir /mnt/motokagadisk/db/mysql
(mysql データベースためのフォルダを作る)

kaganas:~# ln -s /mnt/motokagadisk/db/mysql /var/db/mysql
(デフォルトのパスを新しいパスのに指定する)

kaganas:~# chown -R mysql:mysql /mnt/motokagadisk/db/mysql
(オーナーシップの設定する)

kaganas:~# chmod 777 /tmp
kaganas:~# chmod 777 /var/tmp
(/tmpのファイルシステムモードのチェンジ)

kaganas:~# setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.2-release/Latest/
(パッケージサイトの環境の確認する)

kaganas:~# pkg_add -r mysql50-server
(MySQL 50 サーバーとその必要ものの導入)

kaganas:~# /usr/local/bin/mysql_install_db
(testデータベースの導入)

kaganas:~# chown -R mysql /mnt/motokagadisk/db/mysql
kaganas:~# chgrp -R mysql /mnt/motokagadisk/db/mysql
(オーナーシップとグループのファイルパーミッションのチェンジ)

kaganas:~# /usr/local/bin/mysqld_safe -user=mysql &
(loads mysql, mysql should now be running…..you may have to hit <return> after this command completes to get back to a prompt)

kaganas:~# ps ax
(プロセスの表示)

プロセスの表示のにはこういう似たような情報が見つかるはずだ。

/bin/sh /usr/local/bin/mysqld_safe -user=mysql
 /usr/local/libexec/mysqld --basedir=/usr/local --data
 ps ax

上記のをみれたら、MySQLはうまく動いていて、次に行く。

MySQLの"root"ユーザーのパスワードの設定する:
kaganas:~# /usr/local/bin/mysqladmin -u root password root
kaganas:~# /usr/local/bin/mysqladmin -u root -h freenas.local password root

(mysqlユーザー"root"のパスワードを"root"にするとよくないから。
絶対それを使わずに、本当の長くパスワードをいれてください。上記のは単なるサンプルだから。)

mysqlにマシンの再起動でも自動起動したもらうため、rc.confにmysql_enable=”YES”の追加登録する。FreeNASのWebGUIにシステム>アドバンス>rc.conf:には追加ボタンを押し、上記のコマンドの入力する。

上記の済ませたら、再起動して、MySQLのちゃんと起動してるのかを確かめる。

再起動になったら、またputtyでログインして、下記のコマンドの入力する:

kaganas:~# ps ax
(プロセス中のリスト表示)

表示中のにはこういう似たような情報を確認する:

/bin/sh /usr/local/bin/mysqld_safe --defaults-extra-f
/usr/local/libexec/mysqld --defaults-extra-file=/var/

もしも、上記のを見れたら、MySQLはもう自動的にスタートアップから起動できてるなのだ。

MySQLにログインし、ちゃんと動いてるのかを確認する:

kaganas:~# /usr/local/bin//mysql -u root -p
(my sqlに”root”としてログインする)

mysql>use mysql;
(mysqlデータベースのにチェンジする)

mysql>show tables;
(テーブルリストのを見れるはずで、
もしも、見れたら、mysqlの設定用意で稼働中で、それからtestデータベースも読み込み済みだ。)
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
mysql>exit

これでMySQLの導入済みだ。

次はPHPの設定する。FreeNASデフォルトのPHPはあんまりにもシンプルすぎて、いろいろ制限がある。.

下記の手順を続ける前にちゃんとこの注意を読もう。PHPの導入はFreeNASのWebGUIを破ってしまうから、それを修正するのをちゃんとわからないと。

*****重要なステップ******
下記の手順に進む前に、”/usr/local/lib/libxml2.so.5″をwinscpでパソコンのにコピーする。

kaganas:~# setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.2-release/Latest/
(FreeNASに探せるパッケージのパスの設定する)
kaganas:~# pkg_add -r php5
kaganas:~# pkg_add -r php5-extensions
kaganas:~# pkg_add -r php5-xmlrpc
kaganas:~# pkg_add -r php5-gettext
kaganas:~# pkg_add -r php5-mcrypt
kaganas:~# pkg_add -r php5-mysql
kaganas:~# pkg_add -r php5-mbstring
kaganas:~# pkg_add -r xmlstarlet(このパッケージも入れたら、上記の言っていたlibxml2.so.5バックアップしなくても問題なさそう)

上記のコマンドでphp5導入はFreeNAS基本システムのいくつパッケージに置き換えてしまうから、導入のあとFreeNASのWebGUIに入られなくなる、しかし、 焦らずにそれを下記のコマンドで修正しましょう:

*****重要なステップ******
kaganas:~# mv /usr/local/bin/php /usr/local/bin/php-cli
kaganas:~# cp /usr/local/bin/php-cgi /usr/local/bin/php
(phpをphp-cliに移動し、php-cgiのコンテンツをphpにコピーする。)

*****重要なステップ******
winscpで”libxml2.so.5″をパソコンから”/usr/local/lib/”にコピーする。
(すべてファイルを置き換えし、それから、ちゃんとWebGUIに入られるかを確かめる。)「もしも、上記のxmlstarletのパッケージでも導入したら、この手間はしなくても問題なさそうだった」

これでWebGUIはまた動けるようになる。MySQLサーバーとPHPの導入済み。
(念のため、すべても順調なのか、一度再起動して確認してほうがいい。)

この時点は、MySQLとPHPもFreeNASのに導入し、それらを管理するため、phpMyAdminを導入する必要があるだろうね。

phpMyAdminの導入:
アプリケーションの保存するためのディレクトリを作り、ディスクのにいればいいでしょうね。

kaganas:~# mkdir /mnt/motokagadisk/apps

http://sourceforge.net/projects/phpmyadmin/files/からphpMyAdminをダウンロードし、僕の場合は”phpMyAdmin-3.3.5.1-all-languages.gz”だった。

その圧縮ファイルをパソコンに解凍してから、”phpMyAdmin”のに改名し、winscpで/mnt/motokagadisk/appsのにアップロードする。

それから、phpMyAdminのデフォルトパスから新しいリンクを作る:
kaganas:~# ln -s /mnt/motokagadisk/apps/phpMyAdmin/ /mnt/motokagadiskl/web/phpMyAdmin

もしも、winscpで/mnt/motokagadisk/web/に入ったら、/mnt/motokagadisk/apps/phpMyAdminにしてるリンクを見れるはずだ。

ウェブブラウザでhttp://<freenasIP>/phpMyAdmin/index.phpにアクセスし
Login as username : root
password: root

上記の写真のようにphpMyAdminに入られ、これでphpMyAdminの導入も終わり。

その次にはCGIモジュールのも導入して設定する。

kaganas:~# pkg_add -r perl
(Perlのパッケージの導入する)

winscpで下記のパスのにアクセスし、いくつのところの編集する:

/etc/rc.d/websrv

最終行にある

cgi.assign = (".php" => "/usr/local/bin/php", )

に追記して

cgi.assign = (".php" => "/usr/local/bin/php", ".cgi" => "/usr/local/bin/perl" )

として、perlを動くように設定。

同ファイル上にある

index-file.names = ( "index.php", "index.html", "index.htm", "index.shtml", "default.htm" )

と書いてある行を

index-file.names = ( "index.php", "index.cgi", "index.html", "index.htm", "index.shtml", "default.htm" )

に書き換える。

後これはいらないかもしれないけれど、

static-file.exclude-extensions = ( ".pl", ".fcgi", ".php" )

の行を

static-file.exclude-extensions = ( ".cgi", ".pl", ".fcgi", ".php" )

に変更。

これで、FreeNAS+MySQL+phpMyAdmin+CGIとなりました。WordPressとかMovable Typeとかも自宅鯖このFreeNASで動かせるぞぉ。

FreeNAS網站下載FreeNAs最新的ISO檔,然後,燒成CD.

於FreeNAS安裝選項內選”install ‘full’ OS on HDD + data + swap partition”或”install ‘full’ OS on HDD + data partition”.

給予OS有充足的空間.

確認FreeNAS網絡是否已連線.

PuTTY Download Page下載putty(可從Windows登入FreeNAS的Shell內的軟件.)

WinSCP::Free SFTP and FTP client for Windows下載winscp.(可從Windows用SSH以root登入並自由地弄所有檔案的軟件.)

FreeNAS的WebGUI內新增mysql的組群及人戶.

弄一個為MySQL的DB而設的資料夾「我的情況係選用咗/mnt/motokagadisk/db/mysql/」

於FreeNAS的Shell內或者以putty登入FreeNAS的Shell作以下的指令.「putty的情況的話,記得把FreeNAS的服務內把SSH生效,並於router設定把22端口開放」

kaganas:/# mkdir /mnt/motokagadisk/db
kaganas:/# mkdir /mnt/motokagadisk/db/mysql
(為mysql的數據儲存而作的資料夾)

kaganas:~# ln -s /mnt/motokagadisk/db/mysql /var/db/mysql
(把預設的路徑指向新增的路徑)

kaganas:~# chown -R mysql:mysql /mnt/motokagadisk/db/mysql
(ownership的設定)

kaganas:~# chmod 777 /tmp
kaganas:~# chmod 777 /var/tmp
(更改/tmp的檔案屬性)

kaganas:~# setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.2-release/Latest/
(pkg的環境確認)

kaganas:~# pkg_add -r mysql50-server
(安裝MySQL 50及其需要的要件)

kaganas:~# /usr/local/bin/mysql_install_db
(安裝test的資料數據)

kaganas:~# chown -R mysql /mnt/motokagadisk/db/mysql
kaganas:~# chgrp -R mysql /mnt/motokagadisk/db/mysql
(更改ownership及group的檔案屬性)

kaganas:~# /usr/local/bin/mysqld_safe -user=mysql &
(loads mysql, mysql should now be running…..you may have to hit <return> after this command completes to get back to a prompt)

kaganas:~# ps ax
(顯示運行中的表)

運行中的列表中應發現類似以下的資料.

/bin/sh /usr/local/bin/mysqld_safe -user=mysql
 /usr/local/libexec/mysqld --basedir=/usr/local --data
 ps ax

睇得倒上記的話,MySQL已經運行緊了,可到下一步.

把MySQL的"root"用戶密碼作設定:
kaganas:~# /usr/local/bin/mysqladmin -u root password root
kaganas:~# /usr/local/bin/mysqladmin -u root -h freenas.local password root

(mysql的用戶"root"的密碼唔應該設為"root"的.千基唔係唔樣做,應該設真實而又長的密碼.上記的純為例子而已.)

為了部機重啟都可另mysql自動啟動而於rc.conf把mysql_enable=”YES”的設定登錄.FreeNAS的WebGUI於system>advance>rc.conf:內安追加按鈕,作上記的指令新增.

搞掂咗上面所說明的話,試作重啟部機試試MySQL是否可自動啟動.

重啟後,再用putty登入,作下記的指令:

kaganas:~# ps ax
(運行中的列表顯示)

列表中確認是否搵到類似的資料:

/bin/sh /usr/local/bin/mysqld_safe --defaults-extra-f
/usr/local/libexec/mysqld --defaults-extra-file=/var/

若果,睇得倒上記啲資料的話,咁MySQL即係可以自動StartUp啟動了.

於MySQL登入,確認其是否運作正常:

kaganas:~# /usr/local/bin//mysql -u root -p
(於my sql以”root”作登入)

mysql>use mysql;
(轉到mysql的數據資料)

mysql>show tables;
(應可看到table list的,若睇得見的話,mysql的設定準備及以運行正常,另外,test的資料數據都已讀出得倒了.)
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
mysql>exit

咁樣就安裝好了個MySQL架啦.

之後就係PHP的設定啦.FreeNAS預設的PHP太簡單,所以有好多限制的.

繼續下面的設定前,請先細讀以下注意事項.PHP之導入係會弄毀FreeNAS的WebGUI系統的,所以一定要把其作修正的.

*****注意事項******
繼續進行下記的設定前,把”/usr/local/lib/libxml2.so.5″以winscp存到電腦內.

kaganas:~# setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.2-release/Latest/
(令FreeNAS能搵到pkg的路徑設定)
kaganas:~# pkg_add -r php5
kaganas:~# pkg_add -r php5-extensions
kaganas:~# pkg_add -r php5-xmlrpc
kaganas:~# pkg_add -r php5-gettext
kaganas:~# pkg_add -r php5-mcrypt
kaganas:~# pkg_add -r php5-mysql
kaganas:~# pkg_add -r php5-mbstring
kaganas:~# pkg_add -r xmlstarlet(安埋呢個pkg的話,好似不作上記的libxml2.so.5都冇問題)

上記的指令把php5安裝之後會蓋上FreeNAS基本系統的部份pkg,所以安裝後會無法登入FreeNAS的WebGUI介面不過,不用急於下記作修正吧:

*****注意事項******
kaganas:~# mv /usr/local/bin/php /usr/local/bin/php-cli
kaganas:~# cp /usr/local/bin/php-cgi /usr/local/bin/php
(把php移到php-cli,把php-cgi內容複製到php內.)

*****注意事項******
用winscp把”libxml2.so.5″從電複製到呢個路徑”/usr/local/lib/”.
(把所有檔案作複蓋後,確認是否能登入返WebGUI介面.)「若果把上記的xmlstarlet的pkg都安裝埋的話,呢個複製可以跳過都好似冇問題」

咁樣WebGUI就可以回復正常.而MySQL及PHP都安裝好架啦.
(穩陣起見,確認是否全部正常運作,先重啟一次會好啲.)

係呢個時候,MySQL同PHP都安了入FreeNAS,為咗可管理佢哋,有需要安裝phpMyAdmin吧.

phpMyAdmin之安裝:
作一個為app而儲存的路徑,係返個disk內建便可以吧.

kaganas:~# mkdir /mnt/motokagadisk/apps

http://sourceforge.net/projects/phpmyadmin/files/把phpMyAdmin下載,我的情況係”phpMyAdmin-3.3.5.1-all-languages.gz”的檔案.

把呢個壓縮檔解壓到電腦內,改為”phpMyAdmin”後,用winscp上載到呢個路徑/mnt/motokagadisk/apps .

然後,從phpMyAdmin預設定路徑作出一個新的路徑連結.:
kaganas:~# ln -s /mnt/motokagadisk/apps/phpMyAdmin/ /mnt/motokagadiskl/web/phpMyAdmin

若果用winscp於呢個路徑/mnt/motokagadisk/web/,應能發現得倒呢個連結/mnt/motokagadisk/apps/phpMyAdmin .

用瀏覽器登入http://<freenasIP>/phpMyAdmin/index.php
Login as username : root
password: root

就如上記的圖中所見的能登入phpMyAdmin了,就係咁樣phpMyAdmin的安裝就搞掂.

之後就係CGI模組的導入及設定.

kaganas:~# pkg_add -r perl
(安裝Perl的pkg)

用winscp於下記的路徑檔,作好幾項的編輯:

/etc/rc.d/websrv

係最尾戈行

cgi.assign = (".php" => "/usr/local/bin/php", )

加入以下的

cgi.assign = (".php" => "/usr/local/bin/php", ".cgi" => "/usr/local/bin/perl" )

讓perl運行之設定.

同一檔案內有

index-file.names = ( "index.php", "index.html", "index.htm", "index.shtml", "default.htm" )

此行內

index-file.names = ( "index.php", "index.cgi", "index.html", "index.htm", "index.shtml", "default.htm" )

以上記的作替換寫入.

之後呢項可能唔需要弄都唔定,

static-file.exclude-extensions = ( ".pl", ".fcgi", ".php" )

改為以下的

static-file.exclude-extensions = ( ".cgi", ".pl", ".fcgi", ".php" )

咁樣樣,FreeNAS+MySQL+phpMyAdmin+CGI就搞掂晒架啦.WordPress又或者係Movable Type都可以放到自設伺服器的FreeNAS內運行了.

Share and Enjoy:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • Google Buzz
  • Live
  • MSN Reporter
  • MySpace
  • RSS
  • email
Written by カガヤキ in: FreeNAS,WEB,パソコン,自宅鯖,雑記 | タグ: , , ,

コメントはまだありません »

RSS feed for comments on this post. TrackBack URL

Leave a comment

*