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

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

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

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

PHP

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

Docker

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

Q&A

0回答

1252閲覧

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

kapi

総合スコア4

Linux

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

PHP

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

Docker

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

0グッド

0クリップ

投稿2018/07/15 10:35

編集2022/01/12 10:55

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

実現したいこと

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

発生している問題

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

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

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

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

text

1bash-4.4# ls -l / 2total 56 3drwxr-xr-x 2 root root 4096 May 13 10:57 bin 4drwxr-xr-x 5 root root 340 Jul 15 06:35 dev 5drwxr-xr-x 30 root root 4096 May 27 08:12 etc 6drwxr-xr-x 2 www-data www-data 4096 Jul 14 09:03 hoge 7drwxr-xr-x 2 root root 4096 Jan 9 2018 home 8drwxr-xr-x 7 root root 4096 May 13 10:57 lib 9drwxr-xr-x 5 root root 4096 Jan 9 2018 media 10drwxr-xr-x 2 root root 4096 Jan 9 2018 mnt 11dr-xr-xr-x 190 root root 0 Jul 15 06:35 proc 12drwx------ 2 root root 4096 Jul 15 06:40 root 13drwxr-xr-x 2 root root 4096 Jul 15 06:35 run 14drwxr-xr-x 2 root root 4096 May 13 10:57 sbin 15drwxr-xr-x 2 root root 4096 Jan 9 2018 srv 16dr-xr-xr-x 13 root root 0 Jul 15 06:35 sys 17drwxrwxrwx 2 www-data www-data 4096 Jul 14 07:42 tmp 18drwxr-xr-x 18 root root 4096 Jul 15 09:00 usr 19drwxr-xr-x 17 root root 4096 Jul 15 08:42 var 20bash-4.4#

text

1bash-4.4# ls -l /tmp/ 2total 4 3-rwxrwxrwx 1 www-data www-data 10 Jul 15 08:38 test.txt 4bash-4.4#

text

1$docker ps 2CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3b572c6da36ff 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 46b826def15b2 laradock_php-fpm "php-fpm" 7 weeks ago Up 2 weeks 9000/tcp laradock_php-fpm_1 53082d1768e27 laradock_workspace "/sbin/my_init" 7 weeks ago Up 2 weeks 0.0.0.0:2222->22/tcp laradock_workspace_1 66c3dc7bf9f42 laradock_phpmyadmin "/run.sh phpmyadmin" 7 weeks ago Up 2 weeks 9000/tcp, 0.0.0.0:88->80/tcp laradock_phpmyadmin_1 7b1f4a846a4f7 laradock_mysql "docker-entrypoint.s…" 2 months ago Up 2 weeks 0.0.0.0:3306->3306/tcp laradock_mysql_1

該当のソースコード

php

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

試したこと

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

(/var/tmp、/usr/local)

  • 「/tmp」ディレクトリ配下のパーミッションをフル権限に変更し検証。
  • nginxとphp-fpmとworkspaceの3つすべてに/tmp/test.txtを配置。

text

1[workspace] 2root@3082d1768e27:/tmp# ls -ltr 3total 4 4-rwxrwxrwx 1 www-data www-data 15 Jul 16 04:37 test.txt 5root@3082d1768e27:/tmp#

text

1[php-fpm] 2root@6b826def15b2:/tmp# ls -ltr 3total 8 4drwxr-xr-x 3 root root 4096 Aug 10 2016 pear 5-rwxrwxrwx 1 www-data www-data 13 Jul 16 04:42 text.txt 6root@6b826def15b2:/tmp#

text

1[nginx] 2bash-4.4# cd /tmp/ 3bash-4.4# ls -ltr 4total 4 5-rwxrwxrwx 1 www-data www-data 10 Jul 15 08:38 test.txt 6bash-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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/07/16 04:06

laradockは詳しくないのですが、コンテナ立ち上げ中にdocker psした結果を追記して頂いて良いでしょうか?
kapi

2018/07/16 04:26

ありがとうございます。docker psした結果を追記いたしました。よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2018/07/16 04:33

ありがとうございます。試しに、nginxとphp-fpmとworkspaceの3つすべてに/tmp/test.txtを配置して試して頂けますか?
kapi

2018/07/16 04:46

nginxとphp-fpmとworkspaceの3つすべてに配備して試してみましたが状況変わらずでした。
退会済みユーザー

退会済みユーザー

2018/07/16 05:15

うーん、そもそもlaravelからそれより上のディレクトリを見に行く処理を書いたことがないのでlaravelの問題なのかdockerの問題なのか判然としないですね…どうして/tmpにファイルを見に行きたいんでしょうか?
kapi

2018/07/16 05:21

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

退会済みユーザー

2018/07/16 05:33

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

2018/07/16 05:35

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問