質問4.Perlスクリプトを利用したい

Linux Mintの初心者向けフォーラム

質問4.Perlスクリプトを利用したい

投稿記事by sekko » 2014年5月04日(日) 13:49

全角・半角文字も間に半角スペースをワンクリックで挿入できるPerlスクリプトがあります。
Perlスクリプトは、Mint 16 Petraでも実行できるのでしょうか?
Ubuntu 14.04と同じ手順・操作を行ってもスクリプトの実行ができません。

このスクリプトは、spacer.pl の名前で /home/bin に保存されており、gedit の外部ツールには適切な #!/usr//bin/perl が登録されています。Ubuntu 14.04 で機能したのと同じ、という意味です。
sekko
幕下
 
記事: 65
登録日時: 2014年5月04日(日) 10:08

Re: 質問4.Perlスクリプトを利用したい

投稿記事by Kouji » 2014年5月28日(水) 16:13

初めまして。sekkoさん、こんにちは!
私にも少しだけ解答が出来そうなので、出来る範囲でお答えいたしますね!
今回は、CGI(Perl)のスクリプトは、sekkoさんの場合、"/home/bin"にPerlスクリプトが入っているとのことですが、
私が説明する方法は、"/home/USERNAME/public_html/html"にPerlスクリプトが入っていると仮定しまして、ご説明いたします。
上記USERNAMEの部分は各々のユーザー名です。
"ls"などを利用して、ご自分の"/home"配下のユーザー名をご確認下さい。
そして、このご説明は、Linux Mint 13 Maya Mate,Cinnamonの方法です。
Linux Mint 16 Petraの場合の方法は、少し違うかも知れません。私もこのバージョンでは、動作確認はしてませんが、
少しでも、お悩みの解決に繋がればと思って、ご説明いたします。

Linux Mintの場合、最初から、"/usr/bin/perl"にPerlがインストールされています。
Perlはプログラムの参照元が、"/usr/bin/perl"の場合と、"/usr/local/bin/perl"の場合があります。
だから、次のようにリンクを貼ります。最初に下記のようにしましょう。これは、お約束のような物ですよ。

コード: 全て選択
# which perl
/usr/bin/perl

# ln -s /usr/bin/perl /usr/local/bin/perl

リンクを貼ったら、次の例のように、インストール、設定をしていきます。
コード: 全て選択
# apt-get install apache2

# a2enmod userdir

# vi /etc/apache2/mods-enabled/userdir.conf

  <IfModule mod_userdir.c>
       UserDir public_html
       UserDir disabled root

       <Directory /home/*/public_html>
               AllowOverride All (変更する。)
               Options ExecCGI FollowSymLinks (変更する。)
               <Limit GET POST OPTIONS>
                       Order allow,deny
                       Allow from all
               </Limit>
               <LimitExcept GET POST OPTIONS>
                       Order deny,allow
                       Deny from all
               </LimitExcept>
       </Directory>
  </IfModule>

# vi /etc/apache2/httpd.conf

  AddHandler cgi-script .cgi .pl
  ServerName localhost
  DirectoryIndex index.html index.htm index.cgi
  <VirtualHost *:80>
       DocumentRoot /home/USERNAME/public_html/html/
       ServerName hogehoge.dip.jp
  </VirtualHost>

# /etc/init.d/apache2 restart
# chown USERNAME:USERNAME /home/USERNAME/public_html/html/spacer.pl
# chmod 755 /home/USERNAME/public_html/html/spacer.pl

以上を行なってみて、そして、ブラウザのアドレス入力部分に次のように打ってご確認下さい。

http://hogehoge.dip.jp/spacer.pl

私の場合のやり方なので、少し遠回りなご説明になってしまったかも知れませんが、お許し下さい。
詳しくは、下記URLをご覧下さい。
http://thanks.hopto.org/modules/xpwiki/
それでは、ご機嫌よう! :)
【Linux Paradise】https://linuxparadise.net/画像
アバター
Kouji
幕下
 
記事: 69
登録日時: 2013年9月09日(月) 17:32
お住まい: 東京都

Re: 質問4.Perlスクリプトを利用したい

投稿記事by sekko » 2014年6月07日(土) 13:39

Kouji さんが書きました:初めまして。sekkoさん、こんにちは!
私にも少しだけ解答が出来そうなので、出来る範囲でお答えいたしますね!
今回は、CGI(Perl)のスクリプトは、sekkoさんの場合、"/home/bin"にPerlスクリプトが入っているとのことですが、
私が説明する方法は、"/home/USERNAME/public_html/html"にPerlスクリプトが入っていると仮定しまして、ご説明いたします。
上記USERNAMEの部分は各々のユーザー名です。
"ls"などを利用して、ご自分の"/home"配下のユーザー名をご確認下さい。
そして、このご説明は、Linux Mint 13 Maya Mate,Cinnamonの方法です。
Linux Mint 16 Petraの場合の方法は、少し違うかも知れません。私もこのバージョンでは、動作確認はしてませんが、
少しでも、お悩みの解決に繋がればと思って、ご説明いたします。

Linux Mintの場合、最初から、"/usr/bin/perl"にPerlがインストールされています。
Perlはプログラムの参照元が、"/usr/bin/perl"の場合と、"/usr/local/bin/perl"の場合があります。
だから、次のようにリンクを貼ります。最初に下記のようにしましょう。これは、お約束のような物ですよ。

コード: 全て選択
# which perl
/usr/bin/perl

# ln -s /usr/bin/perl /usr/local/bin/perl

リンクを貼ったら、次の例のように、インストール、設定をしていきます。
コード: 全て選択
# apt-get install apache2

# a2enmod userdir

# vi /etc/apache2/mods-enabled/userdir.conf

  <IfModule mod_userdir.c>
       UserDir public_html
       UserDir disabled root

       <Directory /home/*/public_html>
               AllowOverride All (変更する。)
               Options ExecCGI FollowSymLinks (変更する。)
               <Limit GET POST OPTIONS>
                       Order allow,deny
                       Allow from all
               </Limit>
               <LimitExcept GET POST OPTIONS>
                       Order deny,allow
                       Deny from all
               </LimitExcept>
       </Directory>
  </IfModule>

# vi /etc/apache2/httpd.conf

  AddHandler cgi-script .cgi .pl
  ServerName localhost
  DirectoryIndex index.html index.htm index.cgi
  <VirtualHost *:80>
       DocumentRoot /home/USERNAME/public_html/html/
       ServerName hogehoge.dip.jp
  </VirtualHost>

# /etc/init.d/apache2 restart
# chown USERNAME:USERNAME /home/USERNAME/public_html/html/spacer.pl
# chmod 755 /home/USERNAME/public_html/html/spacer.pl

以上を行なってみて、そして、ブラウザのアドレス入力部分に次のように打ってご確認下さい。

http://hogehoge.dip.jp/spacer.pl

私の場合のやり方なので、少し遠回りなご説明になってしまったかも知れませんが、お許し下さい。
詳しくは、下記URLをご覧下さい。
http://thanks.hopto.org/modules/xpwiki/
それでは、ご機嫌よう! :)


ご丁寧はご助言をいただき、お礼と結果のご報告が遅くなり失礼しました。
いろいろあって、常用してきたWindows のノートPCにLinux Mint 17, Cinammonをインストールしました。

Kouji さんのご指摘「"/usr/bin/perl"にPerlがインストールされています。」を参考にして,Perl スクリプトの保存場所を変更、以下のような操作で無事 gedit で編集中のテキストファイルに半角スペースを挿入できるようになりました。

1. 以下を名前"spacer.pl"で home/bin に保存
  #!/usr/bin/perl
  use strict;
  use warnings;
  use Encode;
  my $east = qr/(?!\p{M})(?:\p{Han}|\p{Katakana}|\p{Hiragana})/;
  my $west = qr/(?!\p{M})(?:\p{Latin}|\p{Greek}|\p{Cyrillic})/;
  binmode STDOUT, ':utf8';
  while(<>){
$_ = decode 'utf8', $_;
s/($east)($west)/$1 $2/g;
s/($west)($east)/$1 $2/g;
print;
  }

2. geditの外部ツールに登録(名前は半角で登録)
  #!/bin/sh
  spacer.pl

3. 権限付与:
chmod a+x ~/bin/spacer.pl

以上
sekko
幕下
 
記事: 65
登録日時: 2014年5月04日(日) 10:08

Re: 質問4.Perlスクリプトを利用したい

投稿記事by Kouji » 2014年6月09日(月) 00:43

良かったですね。
私は、Perlスクリプトの知識が無いので、そう、巷に溢れるCGI(Perl)のスクリプトをダウンロードして、使うことしか出来ませんから、
「ここのPerlスクリプトの意味が解らないのですが・・・」
などと言われると、全く返答できませんでしたがね(;´∀`)。
動いた模様で何よりです。 :D
【Linux Paradise】https://linuxparadise.net/画像
アバター
Kouji
幕下
 
記事: 69
登録日時: 2013年9月09日(月) 17:32
お住まい: 東京都


Return to 初心者サポート

オンラインデータ

このフォーラムを閲覧中のユーザー: Bing [Bot] & ゲスト[90人]