Apache で SSL のテストをする際に certificate を作成する方法をいつも探しているのでメモ。
とりあえず openssl だけ yum とか apt-get でインストールしておく。
Slicehost で VPS を借りて ubuntu を使い始めました。とりあえず色々と設定中で、 ssh で protocol 1 を有効にしたら
Disabling protocol version 1. Could not load host key
と言われたので、
# ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key
とホストキーを作成し、
# vi /etc/ssh/sshd_config
# HostKeys for protocol version 1 HostKey /etc/ssh/ssh_host_key
を追加。
Linux コマンドに chattr コマンドという chmod とかよりちょっと細かめにファイルのパーミッションを設定できるコマンドが存在知ることを今日知ったのでメモ。
きっかけは以下のコマンド結果。
[root@latte ~]# id uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) [root@latte ~]# chmod 755 /usr/bin/wget chmod: changing permissions of `/usr/bin/wget': Operation not permitted
root が削除できない??
これは chattr +i で root すら削除できないように設定されていたためらしい。 cpanel のセットアップスクリプトにこの手のものが含まれてる事があるっぽい。
解決するには +i したものを -i する。
# chattr -i /usr/bin/wget
先のポストに引き続き、 IIS x PHP 絡みで、 Zend Framwork を IIS 上の PHP で動かす時のメモ。特に rewrite モジュールが apache のようにはいかないので、それについて。
とりあえず今回の環境は以下の通り
IIS6 上で php が動作してる場合に、 php.ini の変更を IIS の再起動無しで反映させるには、アプリケーションプールをリサイクルすればいいらしい。
IIS Manager を開き、ツリービューのホスト配下の [Application Pools](アプリケーションプール?) を開き、 DefaultAppPool (デフォルトアプリケーションプール?)を右クリックして Recycle (リサイクル?)を実行する。
PHP の is_null() だとなんだのやったついでに SQL の NULL 比較についても書いておく。
よく論理削除を制御するためのカラムを作って、 0 か 1 で削除されてるかの判断したりするけど、初期値で NULL がセットされちゃったりして deleted = 0 も deleted = 1 とかやっても条件がマッチしなかったりする。
これは NULL を判別するには deleted IS NULL か deleted IS NOT NULL にしないと駄目だから。
でもじゃあ
deleted = 0 OR deleted IS NULL
とかはちょっとかっこ悪いので、 IFNULL() 関数なんかを使って
IFNULL(deleted,0) = 0
とやると、中々見た目がいい。
今回は PHP を理解する中でもっとも難しいとされている isset() 関数や is_null() 関数や、false や NULL に対する == や === 演算子の結果についてまとめてみた。
何が難しいかって別に分かれば難しくないんだけど、はっきり言ってややこしすぎる。
俺はこの PHP の実装があまり好きじゃない。
でもとにかくこれは理解しておかないと、後々よく分からないバグではまったりするので一応まとめてみた。
Zend Framework には Zend_Controller_Router_Route っていうのがあり、これで URL のパスの制御ができる。
例えば、 enjoitech.jp/help っていう URL を実装したい時に、 Zend の標準の設定では /help は helpController の indexAction に通じるわけだけど、これを Router でうまい事変更してやれる。
ここの例では staticController っていう static なコンテンツを全部管理するコントローラーを作っておいて、そこに helpAction っていうアクションをつくり、/help をそこに通じるようルーティングする方法を説明する。
MySQL は CSV をインポートしたりエクスポートしたりできる。またバージョン 5.0 からはそのままデータテーブルとして扱ったりすることができるらしいんだけど、 CentOS-4.4 の MySQL5 では configured されてないっぽい。その内されたら試す。
SELECT * FROM table_name INTO OUTFILE 'data.txt' FIELDS TERMINATED BY ',';
LOAD DATA INFILE 'data.txt' INTO TABLE table_name FIELDS TERMINATED BY ',';
INTO の前に REPLACE とか IGNORE とかをつけると、重複キーが見つかった場合のアクションを指定できる。
ゼブラ柄、ストライプ柄のテーブルを描写します。cycle 関数を使うと便利。
<table>
{foreach from=$hoges name=hoge item=h}
<tr style="background-color: {cycle values="#ccc, #fff"};">
<td>{$h.name}</td>
<td>{$h.value}</td>
</tr>
{/foreach}
</table> mod_rewrite を使って特定の IP のみアクセスさせる、もしくはアクセスさせないようにするには以下のようにする。
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.1$ [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.2$
RewriteCond %{REQUEST_URI} !^error\.html
RewriteRule .* error.html
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.2$
RewriteCond %{REQUEST_URI} !^error\.html
RewriteRule .* error.html
久しぶりに最近ネットセキュリティについて触れることが多くなり、 iptables だの chkrootkit だの snort だの tripwire だの nessus だのと色々いじってる。しかも結構楽しい。
今後のブログネタはしばらくこの線で行こうかな。
その第一弾ってことで mod_security のインストールから設定までのメモ。
modsecurity はフリーの Web アプリケーションファイアーウォールで、 Apache のモジュールとしてインストールする。
Apache のリバースプロクシにインストールしてもいいし、 Web サーバと共存させて動作させてもいいっぽい。
とりあえず今回は Web サーバと共存の形で CentOS 4 にパッケージでインストールした。あとで CentOS 5 にもソースからインストールする予定。
環境
毎回調べてる気がしたので、メモ。
Proftpd の認証に時間がかかる場合、以下の二行を proftpd.conf に追加。
UseReverseDNS off IdentLookups off
最近 Safari の Windows バージョンが出て、ものすごくいかすんだけど、なんか知らないけど、言語が強制的に日本語にされてしまい、それを変える方法がメニューには見当たらない。
ネットを探したらやり方がのっていたのでメモ。
Safari のバージョンは 3.1 です。
Salesfoce のオブジェクト View ページは、デフォルトでアイテムを選択するチェックボックスは付いているものの、それに対するアクションが全くない。選択したアイテムを全削除したかったのにそれすらできない。
これを実現するには Custom button を作成して、 JavaScript で処理しないと駄目らしい。
とりあえず、初めの一歩という事でメモ。
環境は以下の通り。
Salsforce 8 Enterprise
ajax toolkit 11.1
vsftpd でドットファイルを表示させるには、 /etc/vsftpd/vsftpd.conf で force_dot_file を有効にすればいい。
例は CentOS-5.1 。
# vi /etc/vsftpd/vsftpd.conf
force_dot_file=YES
PHPでアップローダーを作るときに、プログレスバーをどうにか実装できるか調べたら、どうやらできるっぽかったので試してみた。
ちなみにできると言っても制約がいくつかあるみたい。まず第一に、 PHP 単体ではファイルのアップロード状況を把握したりすることはできない。そのため PECL APC エクステンションをインストールする必要がある。
また PHP のバージョンは 5.2 以上。 PECL APC エクステンションのバージョンは 3.0.13 以上。
そのため、うちの CentOS5 も FC6 もパッケージでは対応できなかった。
環境は以下の通り。
php-5.2.5
PECL APC-3.0.16
※追記
実はこの APC はスレッドセーフじゃないらしく、一つのアップロードが完了する前に次のアップロードが開始されると、現在進行中のキャッシュがクリアされるらしいので注意。
<asp:TextBox> コントロールは動的に <input> と id 属性を生成してしまうため、 <label> の for 属性には静的な値は指定できない。
これに対応するにはやり方は二つ。
<asp:Label ID="lblName" AssociatedControlID="tbName">Label name</asp:Label> <asp:TextBox ID="tbName" runat="server"></asp:TextBox>
<label for="<%=tbName.ClientID %>">Label name</label> <asp:TextBox ID="tbName" runat="server"></asp:TextBox>
PHPでファイルアップロードのプログレスバーを実装するにはに関連して、 Ajax を使ってファイルアップロードを実装してみた。
今までは Ajax 関連は prototype.js を使っていたんだけど、 multipart なデータの post に対応していないので、パッチを当てたりしないと実装できないらしい。
そんな面倒くさいことはしたくないので、ちょっと探していたら YUI(The Yahoo! User Interface Library) は対応しているっぽいのでそれを使ってみた時のメモ。
YUI は何気に cool だ。
php の foreach は基本値渡しで、受け取った値を変更しても当然元の配列データは変更されない。
でも実際は参照渡しもできることを知ったので一応メモ。
以下は普通の値渡しの例。
$enjoi = array("normal", "crazy");
foreach( $enjoi as $e )
{
if( $e == "crazy" )
{
$e = "normal";
}
}
var_dump($enjoi);
array(2) { [0]=> string(6) "normal" [1]=> string(6) "crazy" }
でも関数の参照渡しみたいに & をつけてやると、参照渡しを使って foreach で配列を処理できる。
$enjoi = array("normal", "crazy");
foreach( $enjoi as &$e )
{
if( $e == "crazy" )
{
$e = "normal";
}
}
var_dump($enjoi);
array(2) { [0]=> string(6) "normal" [1]=> &string(6) "normal" }
Visual Studio 2005 では Setup プロジェクトっていうのがあるんだけど、これは標準のプロパティではアップデート可能はインストーラにならない。
でも Setup プロジェクトのプロパティを変えるだけで簡単に変えられる。
セットアッププロジェクトのプロパティを選んで以下の作業を行う。
CSS を使って a タグに背景を指定して、 hover で画像を切り替えるような事をよくするんだけど、 IE6 上だと何かチカチカしてスムーズに切り替えを行ってくれない。
これをどうしたらうまい事切り替えてくれるのかを調べたときのメモ。
解決策は驚くほど簡単なんだけどね。
最近知ったんだけど、 PNG 画像の Transparent 部分って IE6 ではきちんと透明に表示されないらしい。
これをどうにか FF とか他のブラウザでも表示されるようにしながら対応する方法。
基本的なやり方は CSS で background と filter を使って、以下のようにすれば表示はされるようだ。
background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/hello.png',sizingMethod=scale); width: 160px; height: 120px;
でもこれだけじゃ当然 FireFox では表示されない。じゃーどうするか。
Proftpd はいくらクライアント側で List オプションに -a をつけてもドットファイルなどの隠しファイルを表示してくれない。
これを表示するようにするには、サーバ側の ListOptions を変更する必要がある。
# vi /etc/proftpd.conf
ListOptions -a
.NET でカスタムイベントを UserControl に追加する方法を何度か調べている気がしたので、まとめておく。
たしか .NET 2003 のときは結構面倒くさかった気がしたけど、今はクラスに event handler 定義するだけでプロパティパネルにも簡単に表示させることができるんだね。
とりあえず環境
VisualStudio 2005 C# .NET
Plesk で php 関連の作業していると、必ずといっていいほど毎回 open_basedir とか safe_mode のエラーではまり、その度に解決策を探しているので、とりあえずメモっておく。
今回の Plesk 環境は以下の通り。
Fedora Core 6
PSA-3.2.0
任意のテキストを、指定した幅に改行無しで一行に表示させたい時に、 JavaScript でフォントのサイズを変化させて実現する例。
<span id="scaled" style = "white-space: pre;">ここに動的に変化するテキスト</span>
Prototype.js 使ってます。
function fitFont()
{
var fs = 40; // 標準フォント
var fw = 300; // max width
Element.setStyle($("scaled"), {"font-size": fs + "px"});
while( true )
{
if( Element.getWidth($("scaled")) > fw && fs > 1)
{
fs -= 1;
Element.setStyle($("scaled"), {"font-size": fs + "px"});
}
else
{
return;
}
}
}
GridView を使用してやる方法です。
GridView を使って Excel にエクスポートすると、どんな形式のクエリでも書式でもうまいことできるのでとても便利。
とりあえず環境
VisualStudio 2005
ASP .NET C#
簡単な手順
1) GridView と SqlDataSource を追加する
2) Select したいクエリを SqlDataSource に指定する
3) GridView の Columns を適切に追加したり書式とか整理したりする
4) GridView の RenderControl で出力してやる
これ見ても分からんのでコードを見るのがいいと思う。
Flash から JavaScript の関数を呼んだり、 JavaScript から Flash の関数を呼んだりしたいことがかなりあって、どんな方法があるのか調べたときのメモ。
ただ単に呼び出す方法が分かっても、JavaScript と Flash のロードし終わるタイミングなんかもあって色々と厄介だったのでその辺の回避方法もついでに書いておく。
Flex で何かと使える TitleWindow をマウスで普通のウインドウみたいにリサイズを可能にしてみた。
そもそもなぜこのコントロールはこんなに中途半端なんだろう。クローズボタンはあるのに。
基本 MouseEvent を拾ってるだけ。
その時のソース。
単純に Web 上にある XML データをロードしたい場合は、 mx:HTTPService と mx:DeataGrid の dataProvider 属性を使って以下のように簡単にできる。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="xmldata.send()" layout="absolute">
<mx:HTTPService
id="xmldata"
url="http://blog.enjoitech.jp/upload/33_datagrid.xml"
useProxy="false"/>
<mx:Panel title="xml data">
<mx:DataGrid id="dgUser" dataProvider="{xmldata.lastResult.users.user}">
<mx:columns>
<mx:DataGridColumn headerText="Name" dataField="name" />
<mx:DataGridColumn headerText="Gender" dataField="gender" />
</mx:columns>
</mx:DataGrid>
</mx:Panel>
</mx:Application>
もし POST データを渡して動的に変化する値を取得するには。
動的な HTML で様々なイメージサイズが想定されるイメージの width と height の比率は固定したまま、一定の高さと幅のスペースに収めたいときがある。
例えば AxB サイズの画像の幅と高さを固定したまま、 300x200 のスペースに収めたいという感じ。
高さが幅より高いときもあれば幅が高さより広い場合もある。
そんな時は css の max-width と max-height を使うと便利。
ただこれは IE6 では対応していないので、じゃーどうしようか。
Actionscript から Application.application.parameters クラスが使える。
まず HTML
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="myflash" width="100%" height="100%" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"> <param name="movie" value="myflash.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#869ca7" /> <param name="allowScriptAccess" value="sameDomain" /> <param name="flashvars" value='my_param=hello'> <embed src="myflash.swf?my_param=hello" quality="high" bgcolor="#869ca7" flashvars='my_param=hello' width="100%" height="100%" name="myflash" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"> </embed> </object>
このコードからパラメータ my_param を取得するスクリプトが以下
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initVars()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
[Bindable]
private var param:String;
private function initVars():void
{
Alert.show(Application.application.parameters.my_param);
}
]]>
</mx:Script>
Alert.show(mx.core.Application.application.url);ドメイン名だけを取得したければ、
Alert.show(URLUtil.getServerName(mx.core.Application.application.url));
最近個人的にはまってる Facebook アプリケーションを開発したときのメモ。
まだそんなに日本では有名じゃないけど、こういう形の Web アプリは個人的に好きだし、こういうアイデアを知っておくととても面白いと思う。
しかも Facebook アプリの作成は比較的簡単にできる。
とりあえず今回の環境は以下の通り。
CentOS-4.4
PHP-5
App URL: http://www.enjoitech.jp/facebook_dev/
実際は php 以外の言語でも非公式ながらそこそこライブラリがそろってる。
Flash Player の上に css の z-index で何かをかぶせたいときは、 Flash Player に param タグで wmode っていうパラメータを指定してやらないと駄目らしい。
<object type="application/x-shockwave-flash" data="hoge.swf"> <param name="movie" value="hoge.swf" /> <param name="wmode" value="transparent"> </object>
あとは z-index で調整する。
SQLServer のフリー版が MSDE だった頃に色々と osql コマンドを使ったので、それのメモ。今は Express とか GUI 付きでフリーなのでいいね。
でもいざって時に役立つと思います。というか知っておいても損は無い。
古いバージョンの php から新しいバージョンの mysql にアクセスした際に、こんなエラーをくらうことがある。
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in *.php on line * couldn't connect: Client does not support authentication protocol requested by server; consider upgrading MySQL client
MySQL のパスワード認証方法が 4.0 から 4.1 でちょっと変わった事が原因。
サーバ側で php が新しくなるまで old password を使うように設定してやればいい。
# vi /etc/my.cnf
... [mysqld] old_passwords=1 ...
もしくは、 mysql のユーザのパスワードを古い形式に変更してやる。
$ mysql
mysql> SET PASSWORD FOR user_name = OLD_PASSWORD('user_password'); 今まで mojavi 、 symfony と php のフレームワークを使ってきたわけだけど、今回 Zend Frameworkを使ってみて明らかに一番使い易かった(入りやすかった)ので、ちょっとそれについてまとめておこうかなと。
# Cake はソースコードを見た時点で使う気うせた。。
まあ zend がやってるってことで、少くてもやっておいて損は無いかと。とりあえず QuickForm と Smarty は手放せないので、その当たりを交えてうまいこと C-MVC を構築する方法のメモ。
環境
CentOS-5
php-5.1.6
Zend Framework-1.0.1
QuickForm2-1.4
Smarty-2.6.18
$myarr = array(1, 2, 3);
$smarty->assign("myarr", $myarr);
と php 側でやった場合、
{$myarr|@count}
で取得できる。 FireFox で Gmail のメール本文を等角フォントの Monospace にしました。
FireFox の profile にある userContent.css をいじるだけみたいです。
$ vi ~/.mozilla/firefox/u1iexrmm.default/chrome/userContent.css
div.msg div.mb {
font-family: monospace !important;
font-size: 12px !important;
}
textarea.tb {
font-family: monospace !important;
font-size: 12px !important;
}
td.ct {
font-family: monospace !important;
font-size: 12px !important;
}
新しくアプリケーションのネタが浮かんだので、せっかくだから ruby on Rails でやってみようと思いとりあえずセットアップまでしてみた。
今回は CentOS 5 だけど、サーバは 4 なので、そちらもセットアップしたら違いを追記する予定。
とりあえず、 RPM パッケージでセットアップできるものは以下のとおり。
ruby ruby-devel rdoc mysql mysql-server mysql-develand dependencies.
HTML_QuickForm_Rule クラスを継承したクラスを定義し、その validate 関数を加工してやればできます。
よく使う年月日を別々のテキストボックスで入力させてチェックさせたい場合などを例にします。
class IsDateExist extends HTML_QuickForm_Rule {
function validate($value) {
for ($i = 0; $i <= 2; $i++) {
if (! ereg ("^[0-9]+$", $value[$i])) {
return false;
}
}
return ( checkdate($value[1], $value[2], $value[0]) );
}
} |cat: を使ってやります。
例えば $str1 と $str2 をくっつけて間に "_" をいれて $str3 を連結したい場合を例にすると。
value = {$str1|cat:$str2|cat:"_"|cat:$str3} Linux でファイルの同期を取りたい場合があります。
例えば /home/user/dev/websrc/* と /var/www/html/* を同じ状態に保ちたい場合です。
シンボリックリンクを張るのも一つの方法ですが、同期にはなってません。
ここでは rsnyc を使います。
$ rsnyc -avzr /home/user/dev/websrc/* /var/www/html/
zip ファイルなどを圧縮した際に、自己解凍形式のファイルを出力するソフトとかあるじゃないですか。
あんな感じで exe ファイルを生成するソフトの .NET 版を作ってみたいなと思い、色々リサーチしてみたので、その時のメモ。
実は .NET には CSharpCodeProvider というとんでもないクラスが存在しているので、これを使ってみました。
今回開発した EnjoiCrypto にもこのテクは使っています。
一応環境。
.NET Framework 1.1/Mono 1.2
SVN から mono を取り出して Linux-Windows Cross-platform アプリを作ってるんだけど、ソースコードのコンパイルではまったので、むかつきがてらメモ。
mono の C# のコンパイルは mcs だっていうのは知ってたんだけど、どうやっても 2.0 対象のクラスとかもろもろがうまくいかない。
で、小一時間悩んだ挙句、 2.0 向けのコンパイラはそもそも gmcs だということが判明。
$ gmcs EnjoiXXXX.cs Compilation succeeded - 0 warning(s)できた。。
Linux で svn コマンドをいちいち打つのが段々めんどくさくなってきたので、 Eclipse をいれて Subversion plugin の Subclipse をインストールしてみた。
subclipse.tigris.org
その時のメモ。
このブログを作成している際に、特定の記事だけ簡単な認証を行いたかったので、 PHP で BASIC 認証 っぽいことをやってみた。
実装は簡単で、ユーザが BASIC 認証を行った場合 PHP_AUTH_USER と PHP_AUTH_PW 環境変数にその際のユーザ名とパスワードが復号化されて格納される。
これを PHP で認証して、違ったら 401 エラーを返せばいいだけ。
$signin = false;
if (isset ($_SERVER['PHP_AUTH_USER']) &&
isset ($_SERVER['PHP_AUTH_PW']))
{
if ($_SERVER['PHP_AUTH_USER'] == 'masaki' &&
$_SERVER['PHP_AUTH_PW'] == 'password')
{
$signin = true;
}
}
if (! $signin)
{
header('WWW-Authenticate: Basic realm="Enjoi Blog"');
header('HTTP/1.0 401 Unauthorized');
print "Error 401";
exit;
}
Visual Studio + PuTTY + TortoiseSVN + AnkhSVN でフリーな GUI svn+ssh 環境を構築してみた。
前回で svn+ssh 環境を構築して Linux からは svn コマンドで簡単にアクセスできるようになったんだけど、
肝心の Windows からのアクセスがまだできてなかったのです。
Subversion の構築メモはCentOS に Subversion を導入するを、 svn+ssh 環境の構築メモはCentOS で svn+ssh 環境の構築を参考。
次回の CentOS に Subversion を導入する では単純に over http の SVN 環境を導入したけど、
実際にソースを公開して、一方でソースを更新するにはアクセス制限をしとく必要がある。
今回は svn+ssh を構築して、 ssh アクセスでの更新のみを許可する環境を作ってみた。
最近 Linux と Windows を交互に切り替えて使ってるので、共有レポジトリでバージョン管理したいなと思い、
SVN をセットアップしてみた。そのときのメモ。
ただなんか色々調べてると Mercurial というのが結構あついみたいだね。
Mercurial - Mercurial
Windows から使いづらそうだったのでパスしたけど。
DAG(rpmforge) は redhat 及び fedora 向けの追加パッケージ群です。
DAG
これのレポジトリを CentOS 5 の yum に追加しておけば、 CentOS でもほぼ完全に使用できます。
レポジトリに追加するには以下の URL から追加用の rpm を取得してインストールするだけです。
rpmforge
RPM は Redhat 5 用のやつなので、
rpmforge-release-x.x.x-x.el5.rf.yyy.rpm
になります。
もちろん CentOS 4 とかなら Redhat 4 用のやつになるので、 el4 というやつを使ってください。
これをインストールすると /etc/yum.repos.d/ 配下に rpmforge.repo が追加されて、 yum を実行した際の検索対象になります。
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm追加パッケージはかなり豊富。ちなみに livna との関連は知りません。
telnet コマンドは基本的に平文の通信しかサポートしてなくて、 HTTPS プロトコルに HTTP コマンドを手動でちょっと発行したいときなどに対応できない。
debian には telnet-ssl っていうパッケージがあるみたい何だけど、 CentOS 5 上でコンパイルしようとしたらどうにもエラーで進まないので、ちょっと perl で作ってみた。
その時のメモ。というかソース。
特に細かい説明無し。気が向いたら。
例えば www.enjoitech.jp と blog.enjoitech.jp でセッションを共有したい場合は、 php のコードの session_start () 関数の前に、 session_set_cookie_params() でクッキーの影響範囲を enjoitech.jp にしてやることができる。
session_set_cookie_params (0 , '/', 'enjoitech.jp');もしくは php.ini で
session.cookie_domain "enjoitech.jp"でも可能。
Windows の共有フォルダをマウントするには、
smbfs を OS がサポートしているなら、 mount コマンドで windows の共有フォルダをマウントできる。
$ mount -t smbfs -o username=hoge,password=hoge01 //192.168.0.100/pub /mnt/smbfstab に書く場合は以下のようにする。
//192.168.0.100/pub /mnt/smb smbfs noauto,username=hoge 0 0
ただ GUI から参照するなら最近の Linux は Network Servers メニューから Windows Network がのぞけるので、ほとんど Windows と同じ感覚で使えますね。
どうしようもない不要メールがキューに溜まってしまうことがあります。
この場合は postsuper コマンドを使用して削除できます。
postfix のメールキューは /var/spool/postfix/ 配下のディレクトリにそれぞれの意味合いごとに溜まります。
例えば deferred のメールを全部削除したい場合は以下のコマンドを実行します。
# postsuper -d ALL deferred