[ubuntu] ubuntuで proftpd
proftpd は apt-get の パッケージ一覧にない。/etc/apt/sources.listの更新が必要
詳しくは、ubuntu日本コミュニティーに載ってる。
ただ、インストール時にFTPDの動作について聞かれる
inetdか、Daemonで動かすかどっちが良い?
smbやWebDAVやSSHがあるので、頻繁に使いそうもない、inetdでいいだろう。けれど。ubuntuには、inetdが入ってなかった。だからインストール前にxinetdを入れる必要があった。
ぶっちゃけ、#のコメント外すだけ。
proftpd はchrootが簡単にできるので、重宝する。
sudo vi /etc/proftpd/proftpd.conf
で
DefaultRoot ~
を書けば終了
ubuntu でSWAT
SWATは意外に便利だ。しかしubuntuにはinetd や xinetd が入ってなかった。まずxinetdを入れることにする
sudo aptitude install xinetd sudo aptitude install swat
できた。でもsmbpasswdで躓いた。
ubuntu でsamba
ubuntu でSambaするには、JAコミュニティーの公式マニュアルでもいいけれど、GUIから設定した方が圧倒的に楽だ。特にSambaしたことないユーザーにはGUIが一番良い。わかりやすいし、タイプ量も少ない。
ただ、GUIではまるのが、smbpasswd。
設定後、smbpasswdを設定すると簡単にアクセスできる。
何でこんな事が必要何だろうと考えた。
パスワードは盗聴防止のために、暗号化されて送信する。Windowsが暗号化したパスワードとSambaが暗号化して保存したパスワードを比較して、パスワードチェックする。
ここが問題。Windowsが暗号化するパスワードとLinuxがユーザーのパスワードは違う暗号化方式で保存されいる。
そのため整合性がとれない。暗号化された文字列を比較するので、暗号化方式が違うと認証できない。
そこで、Windows暗号化して記憶しなくちゃいけない。それをやってくれるのがsmbpasswd
実際には、認証無しで使う方法もあるのですが。それは、、、意外に簡単
Sambaをして嬉しいこと。
DNSもHOSTS使わずにマシン名からIPが取れる。
Windows同士なら、
ping DELL-fs
とすれば、名前解決してくれる。
だから
http://DELL-fs/
とか無茶なURLを打てる。
これをLinuxだけでやろうとすると無理だ。Sambaを入れてると
http://ubuntu-WWW/
と簡単アクセスが出来る。意外に便利。IP直打ちは面倒だし、DNSのBIND作成しなくて良い。これがSambaを導入する気づかないメリットだった。
ちなみに、認証無しでフォルダを共有する例
[www]? comment = htdocs path = /var/www public = yes writable = yes create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup
うちはこれを /etc/samba/smb.confに書けばいけた。
PHPでPeclをインストールするメモ。
PythonだPythonだってブログに書きますた。でも本業はJSPプログラマーだし、PHPスクリプターです。ですからPHPのテストサーバーが必要。Tomcatが必要。
ubuntu の場合、apache2が簡単にインストールできる。これを使うことにする。PHP5とPHP4は棲み分けがややこしいので、PHP5と明示的にバージョンを指定する必要がある。
ubuntu は Debianなので他のDebianディストリビューションでも使えるかも。ただ、コマンドは書き殴りなので、正確ではないし、パッケージはどんどん更新されるので適宜パッケージを読み替える。
本題 PECL pdo_pgsql pdo_mysql をインストールする(ビルドするには)
作業のサマリ。使用したubuntu は 6.10-ja
Apache2のインストール PHP5のインストール PHP5-devのインストール PHP5-cliのインストール PHP5-cgiのインストール PHP-pearのインストール mysqlのインストール mysql-dev pgsqlのインストール pgsql-devのインストール /etc/apache2/apxs で /etc/apache2/apxs2 にリンク作成
これらの順に作業工程すすめた。
このインストールの目標はPECL でパッケージをインストールすること
user $ sudo pecl install pdo_mysql user $ sudo pecl install pdo_pgsql user $ sudo pecl install pdo_sqlite user $ sudo pecl install apc
を実行してPHPに組み込みたい。
sudo aptitude php5-dev
sudoo aptitude install php-pear
PHPはもちろん入れましょう。
sudo aptitude install php5
これらをまとめてインストールするコマンドはこうやって書く
sudo aptitude install apache2 apache-dev php5 php5-dev php-pear
これでPECLが実行できるようになります。
試しにPDOをビルド
sudo pecl install pdo sudo pecl install pdo_sqlite
でも、それだと、pdo_mysqlはインストールできなかった。
原因はこれだと思う
だから
/etc/php5/cli/php.ini
にextenstion=pdo.soを組み込んだ。
mysql-devみたいなパッケージが必要っぽい
そこで、パッケージを調べた、
apt-cache search mysql | more
libmysqlclientdev15とかいうのがそうらしい。
postgresql-server-8.1-dev というのがそうらしい。
これらをインストールする
sudo aptitude install postgres-8.1-dev libmysqlclientdev15
これで、PECLのビルドが通るようになった。
sudo pecl install pdo_mysql sudo pecl install pdo_pgsql
しかし、まだ、APCがビルドできない。
http://baheyeldin.com/technology/linux/installing-php-apc-on-ubuntu-dapper-and-debian.html
を参考にすると
せっかくapt-get があるのにソースからビルドなんてマンドクセ。時間無駄だ、そのままつかおうぜ
みたいなことが書いてある。
ln -s /usr/bin/apxs2 /usr/bin/apxs
apxsx と apxs が apache2は名前が違うのでそこをリンクすればいいんじゃね?
ってこと。
実際これで、
sudo pecl install apc
が出来ます。
あとは、apache2でPHPを動かすときの設定が/etc/php5/apache2/php.iniにあるので、
sudo vim /etc/php5/apache2/php.ini sudo /etc/init.d/apache2 restart
これで終了。
書き殴りのエントリなので、正確ではないけれど、イメージはつかんでると思う。あとでみるときに流れだけわかればいいや。
ubuntu は良くできたOSだと思う。
このOSならパソコン素人に使わせても、十分使えるし、ちょっと詳しいGeekなら簡単に使いこなせる。UnixやLinuxディストリビューション知識が不要。ちょっとしたGeekならUbuntuをつかことでLinuxがどういうOSがイメージがわき、理解しやすい。
KDEのGUIは初心者には取っつきにくい。大学でKDEのデスクトップとKDE上のVMWareで動作するWin2000が標準環境だった。しかし面倒だった。KDEはMozillaだったし。Firefoxがリリースされてもベータ版だったのでサポートされなかった。
そこで、ubuntuです。うぶなOSってのはパソコンにウブなひとをパソコンをラブにする魔法だと思った。
私は、この簡単さを軸にサーバーに使ってるんですけどね。。。
postgres
Posrgresqlの管理のために、su postgresが通らない。
sudo su postgress
とsudo すればいけた。
apt-get で postgresがどこにインストールされたのかよくわからない。ちゃんと設定見ておけば良かった。
createdbなどのコマンドは/usr/binにみつけた
clusterdb -> ../share/postgresql-common/pg_wrapper createdb -> ../share/postgresql-common/pg_wrapper createlang -> ../share/postgresql-common/pg_wrapper createuser -> ../share/postgresql-common/pg_wrapper dropdb -> ../share/postgresql-common/pg_wrapper droplang -> ../share/postgresql-common/pg_wrapper dropuser -> ../share/postgresql-common/pg_wrapper pg_dump -> ../share/postgresql-common/pg_wrapper pg_dumpall -> ../share/postgresql-common/pg_wrapper pg_restore -> ../share/postgresql-common/pg_wrapper psql -> ../share/postgresql-common/pg_wrapper reindexdb -> ../share/postgresql-common/pg_wrapper vacuumdb -> ../share/postgresql-common/pg_wrapper vacuumlo -> ../share/postgresql-common/pg_wrappe
とすべて、pg_wrapperなるもにリンクされている。なんだこれは?気味が悪いので内容を確認。
pg_wrapperの中を見てみた
#!/usr/bin/perl -w # Call a PostgreSQL client program with the version, cluster and default # database specified in ~/.postgresqlrc or # /etc/postgresql-common/user_clusters. # # (C) 2005 Martin Pitt <mpitt@debian.org> use strict; use lib '/usr/share/postgresql-common'; use PgCommon; my ($version, $cluster, $db, $port, $host); $host = $ENV{'PGHOST'}; # Check for PGCLUSTER in %ENV if (defined $ENV{'PGCLUSTER'}) { ($version, $cluster) = split ('/', $ENV{'PGCLUSTER'}, 2); error 'Invalid version specified with $PGCLUSTER' unless version_exists $version; error 'No cluster specified with $PGCLUSTER' unless $ ....(以下略)...
ここまできて、initdbの所在が不明。
initdbはapt-get後にしてくれているのだろうか。postgresユーザーが出来ているからダイジョウブだと思うが。DBが作成されるディレクトリを変更したいねん。もう少し調べてみる