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

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

ただいまの
回答率

90.51%

  • PHP

    20322questions

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

  • Linux

    3768questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Docker

    704questions

    Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Laradock環境下での外部ファイル参照

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 159

kapi

score 0

はじめまして。初投稿させていただきます。
下記実現したいことがあるのですがうまくいかず苦戦しております。
お知恵を貸していただけると幸いです。よろしくお願いいたします。

 実現したいこと

nginx(LaraDock)上にあるPHPアプリケーションから「tmp」ディレクトリ配下にある外部ファイル(test.txt)を参照したいです。

 発生している問題

「/tmp」ディレクトリ配下にある「test.txt」を参照できずに困っています。
「/var/www/」ディレクトリ配下に外部ファイル(test.txt)がある場合は参照できています。

下記のソースコードを実行すると以下の文言が表示されます。

/tmp/test.txt は存在しません

「tmp」ディレクトリには目的のファイルが存在することは確認済みです。

bash-4.4# ls -l /
total 56
drwxr-xr-x    2 root     root          4096 May 13 10:57 bin
drwxr-xr-x    5 root     root           340 Jul 15 06:35 dev
drwxr-xr-x   30 root     root          4096 May 27 08:12 etc
drwxr-xr-x    2 www-data www-data      4096 Jul 14 09:03 hoge
drwxr-xr-x    2 root     root          4096 Jan  9  2018 home
drwxr-xr-x    7 root     root          4096 May 13 10:57 lib
drwxr-xr-x    5 root     root          4096 Jan  9  2018 media
drwxr-xr-x    2 root     root          4096 Jan  9  2018 mnt
dr-xr-xr-x  190 root     root             0 Jul 15 06:35 proc
drwx------    2 root     root          4096 Jul 15 06:40 root
drwxr-xr-x    2 root     root          4096 Jul 15 06:35 run
drwxr-xr-x    2 root     root          4096 May 13 10:57 sbin
drwxr-xr-x    2 root     root          4096 Jan  9  2018 srv
dr-xr-xr-x   13 root     root             0 Jul 15 06:35 sys
drwxrwxrwx    2 www-data www-data      4096 Jul 14 07:42 tmp
drwxr-xr-x   18 root     root          4096 Jul 15 09:00 usr
drwxr-xr-x   17 root     root          4096 Jul 15 08:42 var
bash-4.4#
bash-4.4# ls -l /tmp/
total 4
-rwxrwxrwx    1 www-data www-data        10 Jul 15 08:38 test.txt
bash-4.4#
$docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                                  NAMES
b572c6da36ff        laradock_nginx        "nginx"                  7 weeks ago         Up 22 hours         0.0.0.0:443->443/tcp, 80/tcp, 0.0.0.0:8888->8888/tcp   laradock_nginx_1
6b826def15b2        laradock_php-fpm      "php-fpm"                7 weeks ago         Up 2 weeks          9000/tcp                                               laradock_php-fpm_1
3082d1768e27        laradock_workspace    "/sbin/my_init"          7 weeks ago         Up 2 weeks          0.0.0.0:2222->22/tcp                                   laradock_workspace_1
6c3dc7bf9f42        laradock_phpmyadmin   "/run.sh phpmyadmin"     7 weeks ago         Up 2 weeks          9000/tcp, 0.0.0.0:88->80/tcp                           laradock_phpmyadmin_1
b1f4a846a4f7        laradock_mysql        "docker-entrypoint.s…"   2 months ago        Up 2 weeks          0.0.0.0:3306->3306/tcp                                 laradock_mysql_1

 該当のソースコード

    $filename = '/tmp/test.txt';
    if (file_exists($filename)) {
        echo "$filename が存在します";
    } else {
        echo "$filename は存在しません";
    }

 試したこと

  • 「/tmp」ディレクトリ以外のディレクトリにファイルを配備して検証。
    (/var/tmp、/usr/local)

  • 「/tmp」ディレクトリ配下のパーミッションをフル権限に変更し検証。

  • nginxとphp-fpmとworkspaceの3つすべてに/tmp/test.txtを配置。

[workspace]
root@3082d1768e27:/tmp# ls -ltr
total 4
-rwxrwxrwx 1 www-data www-data 15 Jul 16 04:37 test.txt
root@3082d1768e27:/tmp#
[php-fpm]
root@6b826def15b2:/tmp# ls -ltr
total 8
drwxr-xr-x 3 root     root     4096 Aug 10  2016 pear
-rwxrwxrwx 1 www-data www-data   13 Jul 16 04:42 text.txt
root@6b826def15b2:/tmp#
[nginx]
bash-4.4# cd /tmp/
bash-4.4# ls -ltr
total 4
-rwxrwxrwx    1 www-data www-data        10 Jul 15 08:38 test.txt
bash-4.4#

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

  • Windows 10 Home
  • Docker Toolbox
  • nginx(laradock) 1.13.12
  • PHP 7.2.6
  • Linux b572c6da36ff 4.9.93-boot2docker #1 SMP Thu May 10 16:27:54 UTC 2018 x86_64 Linux
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

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

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • kapi

    2018/07/16 14:21

    アプリケーション(laravel)と外部ファイルを分離することが目的です。そのため、/tmpである必要はありません。最終的にはlaravel配下(DocumentRoot)に配備して運用してみます。

    キャンセル

  • dyoshikawa

    2018/07/16 14:33

    そうですね。私には解決できなさそうなのでLaravelプロジェクト下に置くのが良いと思います。

    キャンセル

  • kapi

    2018/07/16 14:35

    ご検討いただきありがとうございました。

    キャンセル

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

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

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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

  • PHP

    20322questions

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

  • Linux

    3768questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Docker

    704questions

    Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです