簡體   English   中英

PHP 腳本不會在 docker localhost 上運行

[英]Php script won't run on docker localhost

我對 Docker 很陌生,所以請原諒我在這方面犯的任何技術措辭錯誤。

我正在嘗試獲得一個非常基本的“Hello World!” php 腳本通過 localhost docker 容器運行。 我正在嘗試運行這個腳本來測試這個包含 php 和 oracle 的圖像: https ://hub.docker.com/r/silencesys/php-oci8

我使用以下命令將其拉出: docker pull quietsys/php-oci8

然后我嘗試使用許多命令運行它,其中一些命令給了我這個:

[16-Jun-2022 17:57:12] NOTICE: fpm is running, pid 1
[16-Jun-2022 17:57:12] NOTICE: ready to handle connections

然后其中一些給出隨機的字母和數字字符串。 我不知道它指的是什么,但我知道這意味着它正在運行容器。 當我打開容器的終端並運行“ls”時,我可以看到我的 index.php 文件。 我什至可以運行“cat index.php”並查看其中包含運行“Hello World!”的正確代碼。 我什至會在此處包含代碼作為健全性檢查:

<?php 
  echo "Hello World!";
?>

但是每次我在瀏覽器中打開本地主機時,我都會得到這個:

This page isn’t working right now
localhost didn’t send any data.
ERR_EMPTY_RESPONSE

我已經嘗試了很多我在這里找到的基本 docker run 命令的變體:

docker run -d -p 80:80 --rm --name temp-container -v "$PWD":/var/www/html silencesys/php-oci8

任何幫助是極大的贊賞!

您所指的 docker 映像確實包含 PHP,但它不包含 Web 服務器。

使用 PHP 提供網頁服務的服務器由一個網絡服務器軟件組成,該軟件接受 HTTP 請求並在需要時與在后台運行的 PHP 通信。 它可以被認為是瀏覽器和 PHP 之間的中介,如果缺少它,瀏覽器將無法訪問您的 PHP 腳本。

我還沒有找到可以立即幫助您的圖像,但是我偶然發現了這個,它告訴您,對於您的用例,您應該選擇包含 Apache 的PHP 圖像(即名稱將在標簽中包含apache )。

我解決這個問題的方法是將此圖像我在問題中使用的圖像結合使用。 這是我所做的分步指南:

  1. 在 home/[username] 目錄中創建文件夾

  2. docker pull soivangoi/nginx-php-adminer-oci8

  3. 碼頭工人拉靜默系統/php-oci8

  4. docker run -dit -p 8080:80 soivangoi/nginx-php-adminer-oci8 -v "$PWD":/var/www/silencesys/php-oci8

    4.1。 如果這不起作用,試試這個“docker run -d -it -p 8080:80 -v "$PWD":/var/www/silencesys/php-oci8”

  5. docker run -it -p 8080:80 --rm --name test-container -v "$PWD":/var/www/soivgoi/nginx-php-adminer-oci8

  6. 猛擊到容器中。 通過命令行或單擊容器上的終端按鈕。

  7. cd 到您的 php 代碼的存儲位置。

  8. 運行!

只要確保您所在的任何網絡都可以訪問 oracle 數據庫,否則它不會讓您繼續運行您的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM