• ベストアンサー

cgi(perl使用)でファイルを作る方法を教えてください

こんにちは、 perlをやっています。 プロバイダ上にperlスクリプトを拡張子cgiでUPしています。 いまやりたいことがあるんです、それは ファイルをサーバ上の領域に作るというものです (ちなみにサーバの種類はUNIX系です) ファイルはゼロバイトの何も無いテキストファイルを作りたいんですが どのような関数を使えばファイルができるのでしょうか。 また、ファイルを作った後パーミッションの変更(chmodコマンドのような 動き)をする関数等があれば教えてください。

noname#32059
noname#32059
  • Perl
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • shunet
  • ベストアンサー率28% (15/52)
回答No.2

open(FILE,">data.txt") or die; close(FILE); パーミッションの変更は chmod 0666; これでどうでしょうか

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

open()とclose()、chmod()と言う関数が用意されてます。 詳しい事は、perlのドキュメントperlfuncをどうぞ。 UNIX系なら、ディレクトリに書込権限がないと、ファイルを作れないので、要確認ですね。蛇足ですが。

参考URL:
http://www.att.or.jp/perl/man/perlfunc.1.html

関連するQ&A

  • perlを使用したcgiでの画像アップロードについて

    いつもお世話になっております。 私自身のHPで画像のアップロードが出来る様になればいいなと思い、 cgiの勉強がてら調べていた所、下記HPがヒットしたのでサンプルスクリプトを使用し、アップロードをしたのですが正常にアップできませんでした。 http://www.aimix.jp/cgi/acccgilibupfile.html テストとして、【36,864 バイト】とのjpgファイルをアップしたのですが、 サーバには、【622 バイト】のjpgファイルが作成され、もちろん正常に表示されませんでした。 ※サーバはLinuxの自宅サーバを使用しております。 ※cgi-lib.plは導入済みです。 ※スクリプトの内容を一行だけ下記の様に変更しております。 【open OUT,">./img/$fnme";】にして、配下ディレクトリの【img】に保存するように設定。ディレクトリパーミッション777 その他はデフォルトの内容です。 ※cgiパーミッション755。 ※wrapper.cgiにてcgiのエラーはなし。 ※perlは、【which perl】コマンドにて/usr/local/bin/perlであることを確認済みです。 以上が確認したことなのですが、原因がわかる方、ご教授お願いします。

    • ベストアンサー
    • CGI
  • cgiの500エラー

    OSXを使っている者です miで文字コードEUC 改行コードLFです #!/usr/bin/perl print "hello"; と書いてtest.plで保存して パーミッションをchmodのコマンドで755 にして共有を可能にしてローカルで試したんですが ソースが表示されて全然有効になってないみたいです PHPもそうでした .phpで書いてhtmlの中に埋め込んで パーミッションも755にしてもソースが全部表示されて動かなかったです 拡張子は.plではなくてcgiなのか気になります ソースも違ってたら教えて下さい ちなみにwebサーバーで試したら Internal Server Error 500でしたftpでchmodで755にしたんですが もしかしてソースミスでしょうか? CGIのソースなどやり方の一覧を詳しく簡潔に教えて下さい御願いします

    • ベストアンサー
    • Perl
  • 携帯電話でCGIのファイルを読むと文字が・・・

    携帯電話で読めるようなホームページを作っています。 ところが、FORMでCGIファイルを見に行くと、日本語が文字が化けます。 CGIファイルはPERLですが、UNIXサーバでPERLスクリプトをSHIFT JISで書くとうまく動作しないことがある、と、手持の本には書いてありました。 みなさんは、どの様にされておられるのでしょうか? あるいは先の本に書かれていることは昔の話しで、今はUNIXのPERLでもSHIFT JISとCR+LFでスクリプトを書いても問題ないのでしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • perl使用のCGIでのデータファイルの取り扱いについて

    こんにちは、 perlでCGIを動かしているんですが 掲示板やアクセスログなどのデータファイルの置き場所についてこまっています perlのopen関数などでファイルを開くことはできても、直接URLを指定すれば 見ることができてしまいまます。 内部の実行からは読み書きできて、直接URLを指定したら、アクセス拒否にする というパーミッションの設定or.htaccessなどの設定方法があれば教えてください。

    • ベストアンサー
    • CGI
  • 自宅サーバでCGIが機能しないのです

    素人の質問で恐縮です。自宅サーバを構築中ですが、アパッチをインストールし、DDNSによるドメインを取得し、HPを公開できました。FTP環境もできました。ただ、ActivePerlの最新版ををインストールし、コマンドプロンプトで起動確認もできたのですが、CGIファイルをcgi-binフォルダに入れても機能しません。一行目を#!c:/perl/bin/perlか、#!c:/perl/bin/perl.exeにしたのですが、パールをつかみにいかないのです。サーバはWindowsXPのホームエディションSP2ですが、WindowsはUNIXみたいにパーミッションの概念がないので設定は不要だと、あるサイトに書いてましたが不要ですか?確かに以前、プロバイダのWEBスペースでCGIの掲示板を使っていた時は、FTP上でパーミッションを設定していましたが、自宅サーバ(windows)ではFTP上で設定しようとしてもはねつけられてしまいました。どなたかアドバイスいただけましたら幸いです。

    • ベストアンサー
    • CGI
  • NET::SFTP::FOREIGN

    perlモジュールのnet::sftp::foreignについてですが、$sftp->chmodと打っても、サーバ上のファイルのパーミッションを変えることができません。 $sftp->にchmodのコマンドは使えないのですか? また、パーミッションを変えるコマンドが他にある場合、それも教えて下さい。

  • ApacheがPerlを作動してくれないのです。。。

    CGIテストのためにローカルにサーバーマシンを立てました。サーバーはApacheを使用しPHPとPerlをそれぞれインストールしました。 PHPは正常に動いてくれますがPerlだけが何回やってもyou dont have a permission ~~~と表示されます。 ためしにコマンドでperl -v と打ったら正常にPerlは作動していました。ちなみにPerlは C:Perl\bin\perlになっておりCGIスクリプトにも #!C:Perl\bin\perlと表示しています。又、confも各サイトを見てCGIが動くようにしっかり編集しました。 どうすれば動くようになるのでしょうか?

  • plalaのcgiサーバへのPerlプログラムのUPについて

    windows上のローカルサーバで、自作のperlプログラムを動かし、きちんと動作したのでplalaのcgiアカウントをとり、UPした後、パーミッションもplalaの注意書きに書かれていたとおり、ディレクトリ以外のバイナリや、テキストを「704」に変更しました。 Perlへのパスも間違っておらず、プログラムミスということもないと思っています。 しかし、UPしたcgiファイルにアクセスしようとすると、「Internal Server Error」と表示され、パーミッションを「755」などにかえても、パーミッションがおかしいとでます。 いったいパーミッションを何にすればよいのでしょうか?

  • Windows2000でperlのcgiを動かすために

    職場でファイルサーバー的に使うためにサーバー機が1台入り、その中で社員のコミュニケーション用に掲示板を設置してはどうか?という話しになりました。 そこでWindowsサーバーでPerlが動くように設定する方法を教えていただきたく思います。 OSはWindows2000Serverですので、IIS5.0は入っていると思います。(まだ初期設定した程度でよく見ていません ^_^;;) 色々なサイトでよく「AN HTTPD」なんかが紹介されていますが、IISが入っていればHTTPソフトはいらないんですよね? あと、他サイトを参考に「ActivePerl」は念のためDLしました。 以後の設定手順・注意点等、ご存じの方がいらっしゃいましたら、ご教示願います。 当方Perlの記述に関する知識は少々あり、Unix系サーバーでのcgi設置経験は多数ありますが、Windowsサーバーでしかも自分でサーバー設定した経験はありません。サーバーの設定方法に関して、かなり検索してみたのですが、Linuxが中心でWindowsに関してはオマケ程度の記述しか見つけられませんでした。 また他サイトによると、cgiスクリプトは「scriptフォルダに"置けば"良い」というような記述が見られましたが、"置く"ということはイントラネット内からのftpは必要ないのでしょうか?単純にコピーor保存すればO.K.? いつもやっている、プロバイダのサーバーへftpクライアントで転送・・・というイメージが強いので、イマイチこのあたりのイメージが掴めません。 以上、よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CGI実験環境についてその2

    CGI実験環境についてその1で回答いただいた皆様ありがとうございました。 無事、WEB上で表示させる事ができました。しかし・・・・ さて今度は自作のtest.cgiを動かそうとしたら、パーミッションのアクセスが出来ないというエラーがでました。 ローカルファイルにある、test.cgiファイル属性の変更のやりかたを教えてください。 UNIXでないのでchmod 数値 ファイル名では、属性変更はされませんでした。 WINDOWS上でのファイルのパーミッション変更はどうやるのでしょうか? cgiの場所はc:\apache\test\public_htmlです。

    • ベストアンサー
    • CGI