質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

解決済

TeraTerm で php ファイルが unzip できない

nikuatsu
nikuatsu

総合スコア172

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

1回答

1リアクション

0クリップ

237閲覧

投稿2022/09/18 22:18

編集2022/09/19 00:36

前提

Windows で圧縮した php ファイルを、サーバー上で解凍することに取り組んでいます。
TeraTerm を使用したことがあるので unzip コマンドを実行してみました。

実現したいこと

TeraTerm で php ファイルを unzip したいです。

なぜ下記 該当のソースコード・実行の流れ の流れでそれができないのか、そして TeraTerm にはどう打てばできるのか、具体的なソースコードを知りたいです。

発生している問題・エラーメッセージ

下記 該当のソースコード・実行の流れ にて、TeraTerm に次のメッセージが表示され解凍がされません。

TeraTerm

[xxxxxxxxxxxx@sv11111 ~]$ unzip -d /home/xxxxxxxxxxxx/example.com/public_html/test.zip UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler. Send bug reports using http://www.info-zip.org/zip-bug.html; see README for details. Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir] Default action is to extract files in list, except those in xlist, to exdir; file[.zip] may be a wildcard. -Z => ZipInfo mode ("unzip -Z" for usage). -p extract files to pipe, no messages -l list files (short format) -f freshen existing files, create none -t test compressed archive data -u update files, create if necessary -z display archive comment only -v list verbosely/show version info -T timestamp archive to latest -x exclude files that follow (in xlist) -d extract files into exdir modifiers: -n never overwrite existing files -q quiet mode (-qq => quieter) -o overwrite files WITHOUT prompting -a auto-convert any text files -j junk paths (do not make directories) -aa treat ALL files as text -U use escapes for all non-ASCII Unicode -UU ignore any Unicode fields -C match filenames case-insensitively -L make (some) names lowercase -X restore UID/GID info -V retain VMS version numbers -K keep setuid/setgid/tacky permissions -M pipe through "more" pager -O CHARSET specify a character encoding for DOS, Windows and OS/2 archives -I CHARSET specify a character encoding for UNIX and other archives See "unzip -hh" or unzip.txt for more help. Examples: unzip data1 -x joe => extract all files except joe from zipfile data1.zip unzip -p foo | more => send contents of foo.zip via pipe into program more unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newer

該当のソースコード・実行の流れ

圧縮するphpファイルはこちら test.php で、圧縮前は 171 バイトです。

php

<?php echo strlen('🏴󠁧󠁢󠁥󠁮󠁧󠁿'); echo mb_strlen('🏴󠁧󠁢󠁥󠁮󠁧󠁿'); echo grapheme_strlen('🏴󠁧󠁢󠁥󠁮󠁧󠁿'); ?>

この test.php を Windows で「右クリック → 送る(N) → 圧縮(zip 形式)フォルダー」にて圧縮し、test.zip を生成しました。

そして test.zip を FileZilla でアップロードし、TeraTerm から次のコマンドを実行しました。

TeraTerm

unzip -d /home/xxxxxxxxxxxx/example.com/public_html/test.zip

以上の流れで実行して 発生している問題・エラーメッセージ になります。

試したこと

試したこと1 (-lで中身を確認)

-dでなく-lを試すと次のようになり、171 という Length も上述のように正しい値なので、ファイル自体はアクセスできているようです。

TeraTerm

[xxxxxxxxxxxx@sv11111 ~]$ unzip -l /home/xxxxxxxxxxxx/example.com/public_html/test.zip Archive: /home/xxxxxxxxxxxx/example.com/public_html/test.zip Length Date Time Name --------- ---------- ----- ---- 171 09-19-2022 06:58 test.php --------- ------- 171 1 file
試したこと2 (類似の状況の検索)

類似の状況を次のリンクで見つけました。上述のメッセージも同様に見えます。しかし、

unzipコマンドでzipファイルの解凍が出来ない
https://ja.stackoverflow.com/questions/57889/unzipコマンドでzipファイルの解凍が出来ない

ここには解決方法として次のようにありますが、これが理解できませんでした。

そのため、フルパスで/usr/bin/unzip を実行すれば、意図した通りにunzipが動作することが確認できました。

具体的に「では TeraTerm にどう打てばいいのか」をここから推察することができないためです。

例えばこう?↓とか…いえ、だめでした。(適当にこう書くくらいコマンドについて無知です。)

TeraTerm

unzip -d /usr/bin/unzip test.zip
試したこと3 (圧縮過程の変更)

Windowsデフォルトでなく、7zipという圧縮ソフトを使って圧縮し、改めて上記の流れを実行しましたが、全て同じ結果でした。

補足情報(FW/ツールのバージョンなど)

Xserverのスタンダードプランを利用
FileZilla 3.60.2

CHERRY様よりご回答を受けて

CHERRY様よりオプション指定が不要とのアドバイスを頂戴し実行したところ、上記のような長いメッセージは表示されませんが、次のようにinflatingとなりました。

TeraTerm

[xxxxxxxxxxxx@sv11111 ~]$ unzip /home/xxxxxxxxxxxx/example.com/public_html/test.zip Archive: /home/xxxxxxxxxxxx/example.com/public_html/test.zip inflating: test.php [xxxxxxxxxxxx@sv11111 ~]$ unzip /home/xxxxxxxxxxxx/example.com/public_html/test.zip -d ext_dir Archive: /home/xxxxxxxxxxxx/example.com/public_html/test.zip inflating: ext_dir/test.php

そしてこれについて検索すると次のご質問を見つけまして

ZIP解凍時のinflatingとは?
https://okwave.jp/qa/q6601345.html

ご質問の状況では「> 解凍は無事に終わった」とありますが、私の状況では解凍自体がされていないようです。
( FileZilllla にてリロードしましたが test.php は見当たりませんし、ext_dir ディレクトリも自動で作成されていません。)

この後 public_html/ に ext_dir ディレクトリ を FileZilla で手動で作成してから再び次のように実行しましたら、replace の指定を要求されましたのでyとしたところ、やはりinflatingとなりました。こちらも解凍はされておらず ext_dir ディレクトリは空のままでした。

TeraTerm

[xxxxxxxxxxxx@sv11111 ~]$ unzip /home/xxxxxxxxxxxx/example.com/public_html/test.zip -d ext_dir Archive: /home/xxxxxxxxxxxx/example.com/public_html/test.zip replace ext_dir/test.php? [y]es, [n]o, [A]ll, [N]one, [r]ename: y inflating: ext_dir/test.php
kemusi👍を押しています

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/09/18 22:44依頼された後にこの質問は修正されています

こちらの質問が他のユーザーから「問題・課題が含まれていない質問」という指摘を受けました。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。