MacPortsがインストールできたのでためしにgftpをインストールしてみた
portsの検索は、
ports search name gftp
インストールは、
sudo port install gftp
2012年9月24日月曜日
2012年9月23日日曜日
[Mac] コマンドラインからGUIテキストエディタ
Ubuntuでは、コマンドラインで
$ gedit hoge.txt
とかするとgeditがhoge.txtを開いてくれるのだがMacでのこのやり方が分からなかったのでメモ。
結論から言うとMacのテキストエディタは、「textedit」でこれをopenコマンドから起動するという構図
open -a textedit
でおk
$ gedit hoge.txt
とかするとgeditがhoge.txtを開いてくれるのだがMacでのこのやり方が分からなかったのでメモ。
結論から言うとMacのテキストエディタは、「textedit」でこれをopenコマンドから起動するという構図
open -a textedit
でおk
[Mac] MacPortsのインストール
開発環境を整えるべくMacPortsをインストールしたのでメモ
まず、MacPortsには、Xcodeが必要ということで「App Store」からDL&インストール。(1.6Gbyte 程ある
Apple IDが必要になるのでまだ作っていない場合は、作成する。
Xcodeのインストールが済んだらMacPortsをサイトからDLしてくる。ダウンロードしたpkgファイルを開くとインストーラーが起動するので指示に従ってインストールを遂行する。
すると、インストーラがPATHを通してくれる。俺の場合は、tcshをログインシェルにしているので「${HOME}/.tcshrc」に設定を追記してくれていた。
そして、さらに「Launchpad」からXcodeを起動してインストールする。
# MacPorts Installer addition on 2012-09-23_at_18:18:55: adding an appropriate PATH variable for use with MacPorts.
setenv PATH /opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
確認のためにMacPortsのバージョンを表示してみた。
$port version
Version: 2.1.2
そして、Apple Developperに行って自分の環境にあった「Command Line Tools for Xcode」をDL&INSTALLする。
以上で完了。
まず、MacPortsには、Xcodeが必要ということで「App Store」からDL&インストール。(1.6Gbyte 程ある
Apple IDが必要になるのでまだ作っていない場合は、作成する。
Xcodeのインストールが済んだらMacPortsをサイトからDLしてくる。ダウンロードしたpkgファイルを開くとインストーラーが起動するので指示に従ってインストールを遂行する。
すると、インストーラがPATHを通してくれる。俺の場合は、tcshをログインシェルにしているので「${HOME}/.tcshrc」に設定を追記してくれていた。
そして、さらに「Launchpad」からXcodeを起動してインストールする。
# MacPorts Installer addition on 2012-09-23_at_18:18:55: adding an appropriate PATH variable for use with MacPorts.
setenv PATH /opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
確認のためにMacPortsのバージョンを表示してみた。
$port version
Version: 2.1.2
そして、Apple Developperに行って自分の環境にあった「Command Line Tools for Xcode」をDL&INSTALLする。
以上で完了。
[phpMyAdmin] http error 324が帰ってくる
phpMyAdmin(Ver.3.5.2.2)を使っていると
HTTP の324エラーステータスが帰ってくる
httpのログを見てみると、
php Fatal error: Call to undefined function PMA_sanitize()とある。
調べると phpMyAdmin/libraries/Message.class.phpを修正する必要があるとのこと。
まず、バックアップを取る。
cp Message.class.php Message.class.php.org
そして、以下が既存のファイルとの差分。
*** Message.class.php.org Sat Sep 22 23:42:45 2012
--- Message.class.php Sat Sep 22 23:44:19 2012
***************
*** 537,543 ****
*/
static public function decodeBB($message)
{
! return PMA_sanitize($message, false, true);
}
/**
--- 537,543 ----
*/
static public function decodeBB($message)
{
! return PMA_sanitize($message);
}
/**
HTTP の324エラーステータスが帰ってくる
httpのログを見てみると、
php Fatal error: Call to undefined function PMA_sanitize()とある。
調べると phpMyAdmin/libraries/Message.class.phpを修正する必要があるとのこと。
まず、バックアップを取る。
cp Message.class.php Message.class.php.org
そして、以下が既存のファイルとの差分。
*** Message.class.php.org Sat Sep 22 23:42:45 2012
--- Message.class.php Sat Sep 22 23:44:19 2012
***************
*** 537,543 ****
*/
static public function decodeBB($message)
{
! return PMA_sanitize($message, false, true);
}
/**
--- 537,543 ----
*/
static public function decodeBB($message)
{
! return PMA_sanitize($message);
}
/**
2012年9月22日土曜日
[php+MySQL] DBへの接続
phpにてMySQLのDBに接続しようとしたら
Undefined function mysql_connect();
と言われた。調べてみると
php5-myqlが入ってないことが分かった。
インストールして無事解決。
cd /usr/ports/databases/php5-mysql/
make config-recursive
make install
Undefined function mysql_connect();
と言われた。調べてみると
php5-myqlが入ってないことが分かった。
インストールして無事解決。
cd /usr/ports/databases/php5-mysql/
make config-recursive
make install
2012年9月20日木曜日
[php] APC関連のエラー
Warning: Unknown: Unable to allocate memory for pool. in Unknown on line 0
というエラーが表示され何なのか全くわからなかった。
追記:結局APCを使いこなせなかったためやむを得ず
apc.cache_by_default=0として無効化した。
Google先生に聞いてみると。PHPの中間コードのキャッシュをとるAPCというモジュールの中間ファイルのキャッシュファイルを指定していないためであった。
cd /usr/local/etc/php
touch apc.ini
でapcの設定ファイルを作成して下記を追加することでエラーはでなくなった。
apc.mmap.file_mask=/dev/zero
さらにapc.ttlの値を小さくする。これは、この値秒アクセスが無い場合、キャッシュから削除するというもの。つまりこれを現在のものより小さくする。
apc.ttl=60
これは、キャッシュサイズ。適度に大きくする。
apc.shm_size=125M
というエラーが表示され何なのか全くわからなかった。
追記:結局APCを使いこなせなかったためやむを得ず
apc.cache_by_default=0として無効化した。
Google先生に聞いてみると。PHPの中間コードのキャッシュをとるAPCというモジュールの中間ファイルのキャッシュファイルを指定していないためであった。
cd /usr/local/etc/php
touch apc.ini
でapcの設定ファイルを作成して下記を追加することでエラーはでなくなった。
apc.mmap.file_mask=/dev/zero
さらにapc.ttlの値を小さくする。これは、この値秒アクセスが無い場合、キャッシュから削除するというもの。つまりこれを現在のものより小さくする。
apc.ttl=60
これは、キャッシュサイズ。適度に大きくする。
apc.shm_size=125M
[phpMyAdmin] サンプルDBの用意
phpMyAdminにログインすると下記のようなエラーメッセージが出ている。
phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。
1.必要なデーターベースおよびテーブルの作成
これは、サンプルのsqlファイルを読み込むことで作成できる。DBServerにログインして
SOURCE /usr/local/www/phpMyAdmin/examples/create_tables.sql
2.専用ユーザー(pma)を作成
データーベースにアクセスする専用ユーザー(pma)を作成する。
GRANT ALL ON pma phpmyadmin.* TO pma@localhost IDENTIFIED BY "pma_password";
パスワード(pma_password)は、適宜変更する。
3.無効になっている機能を有効にする
サンプル設定ファイルをコピーして適宜変更する。
cp /usr/local/www/phpMyAdmin/config.sample.inc.php /usr/local/www/phpMyAdmin/config.inc.php
そして、下記のように変更する。なお、pmaのパスワードは、pma追加時に指定したパスワードに読み替える。
参考Blog: http://www.kakashi.biz/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0/phpmyadmin-%E7%92%B0%E5%A2%83%E4%BF%9D%E7%AE%A1%E9%A0%98%E5%9F%9F%E3%81%8C%E5%AE%8C%E5%85%A8%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81/
phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。
1.必要なデーターベースおよびテーブルの作成
これは、サンプルのsqlファイルを読み込むことで作成できる。DBServerにログインして
SOURCE /usr/local/www/phpMyAdmin/examples/create_tables.sql
2.専用ユーザー(pma)を作成
データーベースにアクセスする専用ユーザー(pma)を作成する。
GRANT ALL ON pma phpmyadmin.* TO pma@localhost IDENTIFIED BY "pma_password";
パスワード(pma_password)は、適宜変更する。
3.無効になっている機能を有効にする
サンプル設定ファイルをコピーして適宜変更する。
cp /usr/local/www/phpMyAdmin/config.sample.inc.php /usr/local/www/phpMyAdmin/config.inc.php
そして、下記のように変更する。なお、pmaのパスワードは、pma追加時に指定したパスワードに読み替える。
$cfg['Servers'][$i]['controlhost'] = ”;
$cfg['Servers'][$i]['controluser'] = ‘pma’;
$cfg['Servers'][$i]['controlpass'] = ‘pmapass’;
$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]['table_uiprefs'] = ‘pma_table_uiprefs’;
$cfg['Servers'][$i]['tracking'] = ‘pma_tracking’;
$cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’;
$cfg['Servers'][$i]['userconfig'] = ‘pma_userconfig’;
$cfg['Servers'][$i]['recent'] = ‘pma_recent’;
$cfg['Servers'][$i]['table_uiprefs'] = ‘pma_table_uiprefs’;
$cfg['Servers'][$i]['auth_swekey_config'] = ‘/etc/swekey-pma.conf’;
以上が終わったらphpMyAdminに再ログインする。
参考Blog: http://www.kakashi.biz/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0/phpmyadmin-%E7%92%B0%E5%A2%83%E4%BF%9D%E7%AE%A1%E9%A0%98%E5%9F%9F%E3%81%8C%E5%AE%8C%E5%85%A8%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81/
[php] php.iniの用意
On FreeBSD
サンプルファイルとして下記2種類がある。
利用目的にあわせてファイルをphp.iniとして/usr/local/etc/にphp.iniとしてコピーして中身を適宜編集。
/usr/local/etc/php.ini-development
/usr/local/etc/php.ini-production
サンプルファイルとして下記2種類がある。
利用目的にあわせてファイルをphp.iniとして/usr/local/etc/にphp.iniとしてコピーして中身を適宜編集。
/usr/local/etc/php.ini-development
/usr/local/etc/php.ini-production
2012年9月19日水曜日
termcapについて
terminatorを使ってFreeBSDに初めてログインしてviをおもむろに使うと
「No terminal database found」
と言われた。viは、どの環境でも始めから問題なく使えると信じ込んでいたので、びっくりした。といっても悪いのは、viではないのだが。。。
UNIXおよびLinuxも含めUNIX Likeな環境は、そもそもネットワークからログインされつことを前提に今日まで発展してきており、様々な端末から接続される可能性がある。
端末によってサーバーと実際にやり取りされるエスケープシーケンスとカーソル等の挙動の対応が異なっているらしく、それぞれの端末のエスケープシーケンスと実際の挙動を定義したものがTermcapらしい。
冒頭のエラーは、terminatorのエントリが/etc/termcapの中になかったためである。
termcapにterminatorにエントリを追加するには、FreeBSDにterminatorをインストールするのが手っ取り早い。
まあ、道具は、一般的かつ普遍的なものを使うべきだということでしょうね。。。
「No terminal database found」
と言われた。viは、どの環境でも始めから問題なく使えると信じ込んでいたので、びっくりした。といっても悪いのは、viではないのだが。。。
UNIXおよびLinuxも含めUNIX Likeな環境は、そもそもネットワークからログインされつことを前提に今日まで発展してきており、様々な端末から接続される可能性がある。
端末によってサーバーと実際にやり取りされるエスケープシーケンスとカーソル等の挙動の対応が異なっているらしく、それぞれの端末のエスケープシーケンスと実際の挙動を定義したものがTermcapらしい。
冒頭のエラーは、terminatorのエントリが/etc/termcapの中になかったためである。
termcapにterminatorにエントリを追加するには、FreeBSDにterminatorをインストールするのが手っ取り早い。
まあ、道具は、一般的かつ普遍的なものを使うべきだということでしょうね。。。
2012年9月17日月曜日
[Mac] IMEのOn/OFFショートカットキー割当て変更
UbuntuでもWindowsでもIMEのOn/OFF切り替えは、[Shift-Space]と決めているので
Macでもそのように変更する。
今回、参考にさせて頂いたブログは、下記
http://kaworu.jpn.org/kaworu/2010-09-25-1.php
そして、ショートカットキー割当ての設定を行うツールが「KeyRemap4MacBook」
http://pqrs.org/macosx/keyremap4macbook/index.html.ja
上記URLからzipファイルをDLして適当にunzipして、dmgファイルからツールを
インストール
するとシステム環境設定に「KeyRemap4MacBook」のアイコンができるのでそこから起動してFor Japanese->Change Space Key->Shift+Space to KANA/EISU (toggle)にチェックを入れて閉じると設定が反映されている。
設定終了後に設定反映のおまじないがいらない当たりが便利だけどなんだが不安になる。
また、このツールでコピペのショートカットキーの設定変更も完了させた
Macでもそのように変更する。
今回、参考にさせて頂いたブログは、下記
http://kaworu.jpn.org/kaworu/2010-09-25-1.php
そして、ショートカットキー割当ての設定を行うツールが「KeyRemap4MacBook」
http://pqrs.org/macosx/keyremap4macbook/index.html.ja
上記URLからzipファイルをDLして適当にunzipして、dmgファイルからツールを
インストール
するとシステム環境設定に「KeyRemap4MacBook」のアイコンができるのでそこから起動してFor Japanese->Change Space Key->Shift+Space to KANA/EISU (toggle)にチェックを入れて閉じると設定が反映されている。
設定終了後に設定反映のおまじないがいらない当たりが便利だけどなんだが不安になる。
また、このツールでコピペのショートカットキーの設定変更も完了させた
2012年9月16日日曜日
vsftp from xinetd
stand-aloneではなく、xinetdからFTPサーバ(vsftp)を構築する。
今回も On FreeBSD (Ver. 9.0)
まず、xinetdをコンパイル&インストール
cd /usr/ports/security/xinetd
make config-recursive
make install
マニュアル、「man vsftpd.conf」や
http://www.express.nec.co.jp/linux/distributions/knowledge/network/xinetd.html
参考にさせてもらいながら設定をする。
デフォルト設定ファイルを/usr/local/etc/xinetd.confを作成して、以下を記述。
#default configuration
defaults{
instances = 60
log_type = FILE /var/log/servicelog # syslog も指定できるみたい
log_on_success = PID
log_on_failure = HOST
disabled = restatd
cps = 35 30
}
includedir /usr/local/etc/xinetd.d
起動時にサービス起動できるように./etc/rc.confに以下を追加
xinetd_enable="YES"
つぎにvsftpのコンパイル&インストール
cd /usr/ports/ftp/vsftp
make config-recursive
make install
設定に関するドキュメントは、/usr/local/share/doc/vsftpd/EXAMPLE/INTERNET_SITE/
以下にある。
まず、xinetdの各サービスの設定ファイルを格納するディレクトリを作成する
mkdir -p /usr/local/etc/xinetd.d
そして、xinetdのvsftpd用の設定ファイルのサンプルファイルをコピーする
cd /usr/local/share/doc/vsftpd/EXAMPLE/INTERNET_SITE/
cp vsftpd.xinetd /usr/local/etc/xinetd.d/vsftpd
そして、コピーしたファイルに少し手を加える以下は、サンプルと手を加えた後のファイルの差分。
*** vsftpd.org Sun Sep 16 01:18:59 2012
--- vsftpd Sun Sep 16 01:03:52 2012
***************
*** 5,15 ****
socket_type = stream
wait = no
user = root
! server = /usr/local/sbin/vsftpd
per_source = 5
instances = 200
! no_access = 192.168.1.3
! banner_fail = /etc/vsftpd.busy_banner
log_on_success += PID HOST DURATION
log_on_failure += HOST
}
--- 5,15 ----
socket_type = stream
wait = no
user = root
! server = /usr/local/libexec/vsftpd
! #server_args = start
per_source = 5
instances = 200
! banner_fail = /usr/local/etc/vsftpd.busy_banner
log_on_success += PID HOST DURATION
log_on_failure += HOST
}
今回も On FreeBSD (Ver. 9.0)
まず、xinetdをコンパイル&インストール
cd /usr/ports/security/xinetd
make config-recursive
make install
マニュアル、「man vsftpd.conf」や
http://www.express.nec.co.jp/linux/distributions/knowledge/network/xinetd.html
参考にさせてもらいながら設定をする。
デフォルト設定ファイルを/usr/local/etc/xinetd.confを作成して、以下を記述。
#default configuration
defaults{
instances = 60
log_type = FILE /var/log/servicelog # syslog も指定できるみたい
log_on_success = PID
log_on_failure = HOST
disabled = restatd
cps = 35 30
}
includedir /usr/local/etc/xinetd.d
起動時にサービス起動できるように./etc/rc.confに以下を追加
xinetd_enable="YES"
つぎにvsftpのコンパイル&インストール
cd /usr/ports/ftp/vsftp
make config-recursive
make install
設定に関するドキュメントは、/usr/local/share/doc/vsftpd/EXAMPLE/INTERNET_SITE/
以下にある。
まず、xinetdの各サービスの設定ファイルを格納するディレクトリを作成する
mkdir -p /usr/local/etc/xinetd.d
そして、xinetdのvsftpd用の設定ファイルのサンプルファイルをコピーする
cd /usr/local/share/doc/vsftpd/EXAMPLE/INTERNET_SITE/
cp vsftpd.xinetd /usr/local/etc/xinetd.d/vsftpd
そして、コピーしたファイルに少し手を加える以下は、サンプルと手を加えた後のファイルの差分。
*** vsftpd.org Sun Sep 16 01:18:59 2012
--- vsftpd Sun Sep 16 01:03:52 2012
***************
*** 5,15 ****
socket_type = stream
wait = no
user = root
! server = /usr/local/sbin/vsftpd
per_source = 5
instances = 200
! no_access = 192.168.1.3
! banner_fail = /etc/vsftpd.busy_banner
log_on_success += PID HOST DURATION
log_on_failure += HOST
}
--- 5,15 ----
socket_type = stream
wait = no
user = root
! server = /usr/local/libexec/vsftpd
! #server_args = start
per_source = 5
instances = 200
! banner_fail = /usr/local/etc/vsftpd.busy_banner
log_on_success += PID HOST DURATION
log_on_failure += HOST
}
banner_fail は、instancesで指定した上の接続要求が来た場合のメッセージを格納したファイルをしていしており。中身は、下記のようにした。
421 Server busy , please try again later.
さらに、vsftpd本体の設定ファルサンプルをコピーする。
cp /usr/loca/share/doc/vsftpd/EXAMPLE/INTERNET_SITE/vsftpd.conf /usr/local/etc/
そして、自分の環境に合わせてコピーした設定ファイルを変更する。下記は、サンプルファイルと変更後ファイルの差分である。
*** /usr/local/share/doc/vsftpd/EXAMPLE/INTERNET_SITE/vsftpd.conf Sat Feb 2 10:30:40 2008
--- /usr/local/etc/vsftpd.conf Sun Sep 16 00:39:40 2012
***************
*** 1,6 ****
# Access rights
! anonymous_enable=YES
! local_enable=NO
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
--- 1,7 ----
# Access rights
! listen=NO # default では、YESらしくこれは、スタンドアロンを意味するのでNOを指定
! anonymous_enable=NO
! local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
***************
*** 17,23 ****
ascii_download_enable=NO
async_abor_enable=YES
# Performance
- one_process_model=YES # linux 用の設定なので削除
idle_session_timeout=120
data_connection_timeout=300
accept_timeout=60
--- 18,23 ----
そして、下記ディレクトリ作成
mkdir /usr/share/empty
ここまでで一応設定は完了
xinetdを起動する
/usr/local/etc/rc.d/xinetd start
そして、ftpログインしてみる
ftp 127.0.0.1
無事ログイン出来ればOK
しかし、この設定では、ログイン後にホームディレクトリ以上に移動できてしまうのでそれを禁止したい。
chrootの設定をする必要がある。今回は、外部公開は、していないのでとりあえず次回。
2012年9月13日木曜日
2012年9月12日水曜日
2012年9月10日月曜日
[MySQL+PHP] 文字化け(クエッションマーク)
以前にもMySQL+PHPを扱った時には、文字化けに悩まされたが今回も悩んだ
MySQLの日本語を含むレコードがあるテーブルをダンプすると日本語部分が「?」と表示される。
DBの照合順序は、「utf-8」になっているので、mb_convert_encodingを使ったがだめだった。
my.cnfの[mysqld]節に「skip-character-set-client-handshake」を挿入してもだめだった。
結論は、「mysql_select_db」の後に「mysql_set_charset("utf8")」を挿入するだった。
MySQLの日本語を含むレコードがあるテーブルをダンプすると日本語部分が「?」と表示される。
DBの照合順序は、「utf-8」になっているので、mb_convert_encodingを使ったがだめだった。
my.cnfの[mysqld]節に「skip-character-set-client-handshake」を挿入してもだめだった。
結論は、「mysql_select_db」の後に「mysql_set_charset("utf8")」を挿入するだった。
2012年9月9日日曜日
[phpmyadmin] 導入
FreeBSDで導入してみた
xampp on Ubuntu しか使えない弱情な自分ですがなんとかログインまではできました
まず、コンパイル
cd /usr/port/databases/phpmyadmin/
make config-recursive
make install
すると、/usr/local/www/phpMyAdmin に配置されます。
当然普通の環境では、ここは、ドキュメントルート外なのでapacheのAliasを設定します。
httpd.confで
etc/apache22/Includes/*.conf
となっているので、etc/apache22/Includes/phpmyadmin.confを作成して以下を記入。
Alias /phpmyadmin "/usr/local/www/phpMyAdmin"
<Directory "/usr/local/www/phpMyAdmin">
Options none
Order Allow,Deny
Allow from all
</Directory>
さらに、phpMyAdminのディレクトリ以下をapacheのプロセスがアクセス可能にパーミションを適宜設定しておく。
そして、ディレクトリへアクセスした場合にindex.phpを処理するように httpd.confにindex.phpを追加
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
このindex.phpの追加に気づくまで、半日、http://localhost/phpmyadmin/にアクセスして403ステータスが帰って来るを繰り返してた。。。。(汗
あとは、設定を反映させるためにサーバーのプロセスを再実行
/usr/local/etc/rc.d/apache22 restart
そして、自分がエイリアスを設定したURLにアクセスしてログイン画面が表示されればOK!
しかし、ログインしてみると下記のようにあるのでまだ設定が足りない感じ
phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。
xampp on Ubuntu しか使えない弱情な自分ですがなんとかログインまではできました
まず、コンパイル
cd /usr/port/databases/phpmyadmin/
make config-recursive
make install
すると、/usr/local/www/phpMyAdmin に配置されます。
当然普通の環境では、ここは、ドキュメントルート外なのでapacheのAliasを設定します。
httpd.confで
etc/apache22/Includes/*.conf
となっているので、etc/apache22/Includes/phpmyadmin.confを作成して以下を記入。
Alias /phpmyadmin "/usr/local/www/phpMyAdmin"
<Directory "/usr/local/www/phpMyAdmin">
Options none
Order Allow,Deny
Allow from all
</Directory>
さらに、phpMyAdminのディレクトリ以下をapacheのプロセスがアクセス可能にパーミションを適宜設定しておく。
そして、ディレクトリへアクセスした場合にindex.phpを処理するように httpd.confにindex.phpを追加
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
このindex.phpの追加に気づくまで、半日、http://localhost/phpmyadmin/にアクセスして403ステータスが帰って来るを繰り返してた。。。。(汗
あとは、設定を反映させるためにサーバーのプロセスを再実行
/usr/local/etc/rc.d/apache22 restart
そして、自分がエイリアスを設定したURLにアクセスしてログイン画面が表示されればOK!
しかし、ログインしてみると下記のようにあるのでまだ設定が足りない感じ
phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。
[FreeBSD] CDのマウント
/etc/fstabにCDに関する記述がある場合は、こんなことしなくてもいいらしいけどマニュアリーにやってみます。
まず、マウントポイントの作成
mkdir /media/cdrom0
そして、マウント
mount -t cd9660 /dev/cd0 /media/cdrom0
まず、マウントポイントの作成
mkdir /media/cdrom0
そして、マウント
mount -t cd9660 /dev/cd0 /media/cdrom0
2012年9月8日土曜日
[FreeBSD] 依存するportsも考慮したライブラリのUpdate
php5をコンパイルしていたら「libpcre」が古ぃよごらぁと叱られた
libpcreは、複数のアプリが使用しており途方に暮れた
google先生に聞いてみたところgihyo.jpのページにもろな記事があった
portmaster の場合は下記で依存ソフトウェアも含めてコンパイルできる。
env LOCALBASE=/usr/local portmaster -w -D -G --no-confirm -r pcre
-w ) ビルト後に古いライブラリを/usr/local/lib/compt/pkgに移動する
-D ) Distfileを削除しない?
-G ) make config を抑止する
--no-confirm ) update時にユーザーに問わない
-r ) 指定されたport を依存するものも含めて再コンパイル
libpcreは、複数のアプリが使用しており途方に暮れた
google先生に聞いてみたところgihyo.jpのページにもろな記事があった
portmaster の場合は下記で依存ソフトウェアも含めてコンパイルできる。
env LOCALBASE=/usr/local portmaster -w -D -G --no-confirm -r pcre
-w ) ビルト後に古いライブラリを/usr/local/lib/compt/pkgに移動する
-D ) Distfileを削除しない?
-G ) make config を抑止する
--no-confirm ) update時にユーザーに問わない
-r ) 指定されたport を依存するものも含めて再コンパイル
2012年9月7日金曜日
[FreeBSD] パッケージの衝突
php5インストール時にpkgconfigがインストールされているものより新しいバージョンが必要であった。
pkg-delete -f pkg-config-version
pkg-delete -f pkg-config-version
[apache] 起動時のFQDNがしていされてないというメッセージ
apache起動時に
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
とFQDNが指定されていないと言われる場合
httpd.confに
ServerName host-name:80
を追加
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
とFQDNが指定されていないと言われる場合
httpd.confに
ServerName host-name:80
を追加
[ports] 習うより慣れろ
ということで apacheのインストールをしてみた。いくつか壁にぶつかったが本質的な問題は以下
追記: config-recusiveしたのを削除したいときは、
cd /var/db/ports
rm -rf *
- ライブラリがインストールされない
- ライブラリがインストールされているが古い
- ライブラリがインストールされているがサーチパスに入っていない
まず一つ目 portsによるインストール方法
make config # コンパイルオプションの指定
make install clean # コンパイルしてコンパイル後に作業ファイルを削除
なお、依存関係のあるportsを再帰的にconfigしてくれる「make config-recursive」というおまじないも
追記: config-recusiveしたのを削除したいときは、
cd /var/db/ports
rm -rf *
次に2つ目
まず、古いバイナリを削除
make deinstall
そして、最新のソースを取得して、コンパイル
port fetch update
make install clean
Hint ) どこにどんなportsがあるかわからないときは、
本家サイトに行って検索
最後に3つめ
/etc/ld.so.conf
に望みのPathを追加後更新を反映するために下記を実施
ldconfig
また、portmasterというportsを管理するためのツールもあるらしい
まだまだ勉強が必要
2012年9月3日月曜日
Arduino始めました
今更感が果てしないですがArduino始めました
雑誌等で名前は聞いたことがあってこの度
あることをやりたくなってそれがArduinoでやるのが早そうなんで初めて見ました
そのあることは、だいぶ勉強が必要そうなので成功した折には、投稿するということで
秋葉原の千石電商に買いに行って来ました
事始めの課題としては、温度センサの値を「簡易Webサーバーから見れるようにする」です。
まず、買ってきたEthernetシールドのMACアドレスをメモします。
Arduino Uno上に実装してしまうと見えづらくなってしまうので注意が必要です。
こちらが、接続状況外観。Arduino Uno上にEthernetシールドを実装しております。温度センサには、「LM35DZ」(こちらは、秋月電子で購入)を使用。
こちらは、ブレッドボード側。
そして、こちらがArduino側。
きちんとLM35DZのデータシートを見て接続します。
次にArdunioのIDEのインストール。Arduinoのサイトより自分のプラットフォームの物をDLし、解凍。
なお、今回の開発は、Windowsで行なっています。次にArduinoとPCをUSBケーブルで接続します。ディバイスマニジャーを開き「不明なディバイス」と表示されているArduinoの項目を探して、プロパティより、「ドライバの更新」を選択。IDEのインストールディレクトリ内のdrivers\FTDI USB Drivers\を指定する。これでドライバのインストールは完了。ここで、セットされたCOMポートを確認しておく。
そして、\libraries\Ethernet\examples\WebServerディレクトリを自分の好きな開発用のディレクトリにコピーしてくる。これは、アナログポートの値を表示する簡易Webサーバーのサンプルである。
ここいらの情報は、適宜ググっていただきたい。
サンプルの変更ができたらいよいよ、プログラムをROMに書き込む。ここでIDEの「ツール-シリアルポート」ドライバインストール時に指定したCOMポートが選択されていることを確認する。
そして、ROMにプログラムを書き込み、Ethernetシールドに割り当てたIPアドレスにアクセスした結果が以下である。
analog input0が温度センサの出力である。Arduino のADコンバータは、量子化ビットが10bitである。そして、LM35DZは、今回の回路の場合0℃で0mV且つ10mV/℃で出力する。さらに入力電圧は、5Vである。
ゆえに温度は、
59/1024 x 5 x 1000 / 10 = 28.8 (℃)
となる。
雑誌等で名前は聞いたことがあってこの度
あることをやりたくなってそれがArduinoでやるのが早そうなんで初めて見ました
そのあることは、だいぶ勉強が必要そうなので成功した折には、投稿するということで
秋葉原の千石電商に買いに行って来ました
事始めの課題としては、温度センサの値を「簡易Webサーバーから見れるようにする」です。
まず、買ってきたEthernetシールドのMACアドレスをメモします。
Arduino Uno上に実装してしまうと見えづらくなってしまうので注意が必要です。
こちらが、接続状況外観。Arduino Uno上にEthernetシールドを実装しております。温度センサには、「LM35DZ」(こちらは、秋月電子で購入)を使用。
こちらは、ブレッドボード側。
そして、こちらがArduino側。
きちんとLM35DZのデータシートを見て接続します。
次にArdunioのIDEのインストール。Arduinoのサイトより自分のプラットフォームの物をDLし、解凍。
なお、今回の開発は、Windowsで行なっています。次にArduinoとPCをUSBケーブルで接続します。ディバイスマニジャーを開き「不明なディバイス」と表示されているArduinoの項目を探して、プロパティより、「ドライバの更新」を選択。IDEのインストールディレクトリ内のdrivers\FTDI USB Drivers\を指定する。これでドライバのインストールは完了。ここで、セットされたCOMポートを確認しておく。
そして、\libraries\Ethernet\examples\WebServerディレクトリを自分の好きな開発用のディレクトリにコピーしてくる。これは、アナログポートの値を表示する簡易Webサーバーのサンプルである。
ここいらの情報は、適宜ググっていただきたい。
サンプルの変更ができたらいよいよ、プログラムをROMに書き込む。ここでIDEの「ツール-シリアルポート」ドライバインストール時に指定したCOMポートが選択されていることを確認する。
そして、ROMにプログラムを書き込み、Ethernetシールドに割り当てたIPアドレスにアクセスした結果が以下である。
analog input0が温度センサの出力である。Arduino のADコンバータは、量子化ビットが10bitである。そして、LM35DZは、今回の回路の場合0℃で0mV且つ10mV/℃で出力する。さらに入力電圧は、5Vである。
ゆえに温度は、
59/1024 x 5 x 1000 / 10 = 28.8 (℃)
となる。
登録:
投稿 (Atom)