2002年10月にVine Linux 2.6がリリースされました。
Vine Linux 2.6はデスクトップOSとしても手軽に使用できますが、ここでは簡単なサーバ用途で使用する例を紹介します。
今回使用したものはVine Linux 2.6r3のFTP版です。
今回紹介している主なサーバはApache,PostgreSQLでアプリケーションの使用言語はPHP4です(バージョンは以下の通りです)。
・Apache 1.3.27
・PostgreSQL 7.2.3
・PHP 4.2.3
(1)サーバ用途のインストール
まずパーティション構成は次のようにしました。
・/dev/hda1:/boot ext3 50MB ・/dev/hda2:/ ext3 8192MB ・/dev/hda3: swap 256MBインストール時にはインストールの種類として「サーバ」を選択します。
<html> <head> <title>Vine Linux 2.6 Apache,PHP,PostgreSQL test!</title> </head> <body> <?php $mysql="select * from mytable order by code"; echo("SQL : ".$mysql."<br><br>"); $mycon=pg_connect("dbname=template1 user=guest password=guest"); $myrs=pg_query($mycon,$mysql); echo("<table border=1><tr><th>Code</th><th>Name</th><th>Comment</th></tr>"); $myrows=pg_num_rows($myrs); for ($i=0; $i<$myrows; $i++) { $mydata=pg_fetch_row($myrs,$i); echo("<tr>"); for ($j=0; $j<count($mydata); $j++) { echo("<td>".htmlspecialchars($mydata[$j])."<br></td>"); } echo("</tr>"); } echo("</table>"); pg_free_result($myrs); //free result_set memory pg_close($mycon); ?> </body> </html>
<html> <head> <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp"> <title>Vine Linux 2.6 Apache,PHP,PostgreSQL CSV file output test!</title> </head> <body> <?php // csvdata関数 // コード変換:EUC_JP ==> SJIS // a,"b ==> "a,""b" function csvdata($in) { return "\"".str_replace("\"","\"\"",mb_convert_encoding($in,"SJIS","auto"))."\""; } // table access $mysql="select * from mytable order by code"; echo("SQL : ".$mysql."<br><br>"); $mycon=pg_connect("dbname=template1 user=guest password=guest"); $myrs=pg_query($mycon,$mysql); echo("<table border=1><tr><th>Code</th><th>Name</th><th>Comment</th></tr>"); $mydir="tmp/"; $myfilename="mytable.csv"; $myfp=fopen($mydir.$myfilename,"w"); flock($myfp,2); //lock current csv file $CRLF="\r\n"; //SJIS改行データ $myrec=""; $myrec=$myrec.csvdata("コード").","; $myrec=$myrec.csvdata("名称").","; $myrec=$myrec.csvdata("コメント").$CRLF; fputs($myfp,$myrec); //タイトル行出力 $myrows=pg_num_rows($myrs); for ($i=0; $i<$myrows; $i++) { $mydata=pg_fetch_row($myrs,$i); $myrec=""; echo("<tr>"); for ($j=0; $j<count($mydata); $j++) { echo("<td>".htmlspecialchars($mydata[$j])."<br></td>"); $myrec=$myrec.csvdata($mydata[$j]); if ($j<count($mydata)-1) { $myrec=$myrec.","; } else { $myrec=$myrec.$CRLF; } } echo("</tr>"); fputs($myfp,$myrec); } echo("</table>"); pg_free_result($myrs); //free result_set memory pg_close($mycon); flock($myfp,3); //unlock current csv file fclose($myfp); // CSVファイルへのリンク定義 echo("<br><br>"); echo("<a href=\"".$mydir.$myfilename."\">download CSV file</a>(SJIS)<br>"); ?> </body> </html>