このスレッドはクローズされています。記事の閲覧のみとなります。
Perlのシンボリックリンクのことです |
|
- æ¥æï¼ 2012/11/23 12:43
- ååï¼ みかん
- 1.不明点・障害内容:
2.ログの有無 : (有:その内容) : 3.Distribution :Centos5.9 Version : 4.Service Name : Version : 5.ネットワーク構成: こんにちは。
こちらを参考に自サバに取り組んでいます。
質問は書きのことです、よろしくどうぞ。
CGIを実行するPerlのシンボリックリンクを貼る所まで来たのですが # which perl /usr/bin/perl
# ln -s /usr/bin/perl /usr/local/bin/perl
# which perl /usr/bin/perl になっており/usr/local/bin/perlに変更できません どこが悪いのでしょうか?
apacheとPHPのインストールおよびapacheの設定もやっております。
|
■ コンテンツ関連情報
Re: Perlのシンボリックリンクのことです ( No.41 ) |
|
- æ¥æï¼ 2012/11/24 19:41
- ååï¼ stranger
- 参照: http://ja.528p.com/
- どこもおかしくはないと思う
CentOS 5.8でしょうから perlのrpmパッケージはi386でOK CentOS 5.8で i686のパッケージがあるのは opensslなど一部のパッケージのみ ほとんどが i386パッケージです
test.cgiを windowsからアップデートするのでなく CentOSで作成してみる viエディタが使いにくいならnanoエディタを使ってみる (たぶんUTF-8で保存されるので charsetの部分をUTF-8に変更) そのくらいしてみたら
|
Re: Perlのシンボリックリンクのことです ( No.42 ) |
|
- æ¥æï¼ 2012/11/24 19:53
- ååï¼ みかん
- stranger、さんへ
手順1 CentOSのviにコピーしましcharsetの部分をUTF-8に変更。
#!/usr/local/bin/perl print "Content-type: text/html¥n¥n"; print "<html>¥n"; print "<head>¥n"; print "<META http-equiv=¥"Content-Type¥" content=¥"text/html; charset=UTF-8¥">"; print "<title>テストページ</title>¥n"; print "</head>¥n"; print "<body>¥n"; print "CGI表示テスト¥n"; print "</body>¥n"; print "</html>¥n";
手順2 chmod 750 /var/www/cgi-bin/test.cgi chown apache:apache /var/www/cgi-bin/test.cgi
ブラウザで見るとやっぱりエラーでした。
|
Re: Perlのシンボリックリンクのことです ( No.43 ) |
|
- æ¥æï¼ 2012/11/24 21:11
- ååï¼ しずくちゃん
- 私はPuttyでサーバーへ接続して、viを使ってテキストをペイストしますが、
ここの掲示板のスクリプトをコピー&ペイストすると、なぜだか知りませんが、 円マーク(¥)が逆スラッシュにならないです。
# cat test.cgi とかやって、コンソール上の表示で(目視で)逆スラッシュになってるか確認した方がいいです。 (見た目円マークだったら逆スラッシュに直さないとだめです) 掲示板に貼り付けるとどちらも円マークになるので区別がつきません。 いちおうご注意を、という感じです。
16進ダンプするとこんな感じです 0000000 23 21 2f 75 73 72 2f 6c 6f 63 61 6c 2f 62 69 6e # ! / u s r / l o c a l / b i n 0000020 2f 70 65 72 6c 0a 70 72 69 6e 74 20 22 43 6f 6e / p e r l ¥n p r i n t " C o n 0000040 74 65 6e 74 2d 74 79 70 65 3a 20 74 65 78 74 2f t e n t - t y p e : t e x t / 0000060 68 74 6d 6c c2 a5 6e c2 a5 6e 22 3b 0a 70 72 69 h t m l 302 245 n 302 245 n " ; ¥n p r i 0000100 6e 74 20 22 3c 68 74 6d 6c 3e c2 a5 6e 22 3b 0a n t " < h t m l > 302 245 n " ; ¥n 0000120 70 72 69 6e 74 20 22 3c 68 65 61 64 3e c2 a5 6e p r i n t " < h e a d > 302 245 n
追記: 今調べたら、(16進で)c2 a5 になってる部分はUTF-8の円マークのコードのようです。 私の環境が特別なだけかもしれないので、ご参考までに。
|
Re: Perlのシンボリックリンクのことです ( No.44 ) |
|
- æ¥æï¼ 2012/11/25 10:39
- ååï¼ stranger
- 参照: http://ja.528p.com/
- No.42 の表示をそのままCentOSのクライアントで張り付けると
perl test.cgiを実行した場合
Bareword found where operator expected at test.cgi line 5, near ""<META http-equiv=¥"Content" (Missing operator before Content?) syntax error at test.cgi line 5, near ""<META http-equiv=¥"Content" Unrecognized character ¥xC2 in column 40 at test.cgi line 5.
のようなエラーを出します 0xC2 は U+00A5 YEN SIGN でキーボードの円マークで入力され windowsで表示される 円マークとは別物と思われる
perlはデフォルトでパスが通っているので test.cgiを作成したディレクトリでそのまま perl test.cgi を実行して html文が表示できるようになってから apacheのディレクトリに移動して、必要な設定をすれば良いです
perl test.cgiに失敗したら apacheで表示できないと思う
|
Re: Perlのシンボリックリンクのことです ( No.45 ) |
|
- æ¥æï¼ 2012/11/25 10:43
- ååï¼ しずくちゃん
- なんかの理由でperlが動かないという感じですけど、以下をやってみてください。
[root@xxxxxxx ~]# cd /var/www/cgi-bin/ で /var/www/cgi-bin/へ移動
[root@xxxxxxx cgi-bin]# echo "print ¥"hoge¥n¥";" > test2.cgi で test2.cgi というスクリプト作成(print文しかないです。¥は逆スラッシュ)
[root@xxxxxxx cgi-bin]# cat test2.cgi で中身の確認 print "hoge¥n"; のように表示されればOKです。(¥は逆スラッシュ)
[root@xxxxxxx cgi-bin]# perl test2.cgi でtest2.cgiを実行
hoge と表示されればOKです。
>もう一度、最初からcentosのインストールをしてみたらどうでしょうね? >どこかがおかしくなってしまった? > >意味ないですか?
面倒でなければインストールし直した方がいいかもです。 (上書きじゃなくて全部消してインストール) ただここまで追求しているから、後学のために、不具合の原因だけでも知りたいですが・・・
5.x系のバージョンは5.8で終わってるような感じ(たぶん)なので、 スペック的に問題がなければ、CentOS 6.3 かなんかの6.xの最新版を入れた方がいいと思います。
OSをインストールしたら、まず最初に yum update でパッケージすべてを最新版にしてから 作業を始めた方がいいです。インストール直後が最新とは限りません。
ここのサイトはEUC-JPで解説されている部分もあるので、デフォルトのUTF-8でシステムの 文字コードを使う場合には注意と言うか、配慮が必要です。
以上は私の意見でして、人によって違うかもです(w
|
■ その他