導航:首頁 > 編程語言 > php鏡像代碼

php鏡像代碼

發布時間:2022-09-10 16:50:00

『壹』 如何開發一個 php + MySQL 的 Docker 化應用

因所有官方鏡像均位於境外伺服器,為了確保所有示例能正常運行,DaoCloud 提供了一套境內鏡像源,並與官方源保持同步。
首先,選擇官方的 PHP 鏡像作為項目的基礎鏡像。
dockerfile
FROM cloud.io/php:5.6-apache
接著,用官方 PHP 鏡像內置命令 docker-php-ext-install 安裝 PHP 的 MySQL 擴展依賴。
dockerfile
RUN docker-php-ext-install pdo_mysql
依賴包通過 docker-php-ext-install 安裝,如果依賴包需要配置參數則通過docker-php-ext-configure 命令。
安裝 pdo_mysql PHP 擴展。
然後,將代碼復制到目標目錄。
dockerfile
COPY . /var/www/html/

『貳』 如何製作一個定製的 PHP 基礎 Docker 鏡像

製作基礎鏡像

選擇 Ubuntu 官方的 14.04 版本為我們依賴的系統鏡像。

FROM ubuntu:trusty
因所有官方鏡像均位於境外伺服器,為了確保所有示例能正常運行,DaoCloud 提供了一套境內鏡像源,並與官方源保持同步。如果使用 DaoCloud 的鏡像源,則指向:FROM cloud.io/ubuntu:trusty

設置鏡像的維護者,相當於鏡像的作者或發行方。

MAINTAINER Captain Dao <[email protected]>
用 RUN 命令調用 apt-get 包管理器安裝 PHP 環境所依賴的程序包。

安裝依賴包相對比較固定,因此該動作應該盡量提前,這樣做有助於提高鏡像層的復用率。

RUN apt-get update \
&& apt-get -y install \
curl \
wget \
apache2 \
libapache2-mod-php5 \
php5-mysql \
php5-sqlite \
php5-gd \
php5-curl \
php-pear \
php-apc \
用 RUN 命令調用 linux 命令對 Apache 服務和 PHP 參數進行配置。

RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf \
用 RUN 命令調用 mkdir 來准備一個干凈的放置代碼的目錄。

RUN mkdir -p /app && rm -rf /var/www/html && ln -s /app /var/www/html
將本地的代碼添加到目錄,並指定其為當前的工作目錄。

COPY . /app
WORKDIR /app
設置啟動腳本的許可權,指定暴露的容器內埠地址。

最後指定容器啟動的進程。

RUN chmod 755 ./start.sh
EXPOSE 80
CMD ["./start.sh"]
至此一個 PHP 的基礎鏡像製作完畢,你可以在本地運行 docker build -t my-php-base . 來構建出這個鏡像並命名為 my-php-base。

由於網路環境的特殊情況,在本地運行 docker build 的時間會很長,並且有可能失敗。推薦使用 DaoCloud 加速器 和 DaoCloud 的雲端 代碼構建 功能。

完整 Dockerfile

# Ubuntu 14.04,Trusty Tahr(可靠的塔爾羊)發行版
FROM ubuntu:trusty

# 道客船長榮譽出品
MAINTAINER Captain Dao <[email protected]>

# APT 自動安裝 PHP 相關的依賴包,如需其他依賴包在此添加
RUN apt-get update \
&& apt-get -y install \
curl \
wget \
apache2 \
libapache2-mod-php5 \
php5-mysql \
php5-sqlite \
php5-gd \
php5-curl \
php-pear \
php-apc \

# 用完包管理器後安排打掃衛生可以顯著的減少鏡像大小
&& apt-get clean \
&& apt-get autoclean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \

# 安裝 Composer,此物是 PHP 用來管理依賴關系的工具
# Laravel Symfony 等時髦的框架會依賴它
&& curl -sS https://getcomposer.org/installer \
| php -- --install-dir=/usr/local/bin --filename=composer

# Apache 2 配置文件:/etc/apache2/apache2.conf
# 給 Apache 2 設置一個默認服務名,避免啟動時給個提示讓人緊張.
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf \

# PHP 配置文件:/etc/php5/apache2/php.ini
# 調整 PHP 處理 Request 里變數提交值的順序,解析順序從左到右,後解析新值覆蓋舊值
# 默認設定為 EGPCS(ENV/GET/POST/COOKIE/SERVER)
&& sed -i 's/variables_order.*/variables_order = "EGPCS"/g' \
/etc/php5/apache2/php.ini

# 配置默認放置 App 的目錄
RUN mkdir -p /app && rm -rf /var/www/html && ln -s /app /var/www/html
COPY . /app
WORKDIR /app
RUN chmod 755 ./start.sh

EXPOSE 80
CMD ["./start.sh"]

『叄』 如何製作一個定製的 PHP 基礎 Docker 鏡像

選擇 Ubuntu 官方的 14.04 版本為我們依賴的系統鏡像。
dockerfile
FROM ubuntu:trusty

因所有官方鏡像均位於境外伺服器,為了確保所有示例能正常運行,DaoCloud 提供了一套境內鏡像源,並與官方源保持同步。如果使用 DaoCloud 的鏡像源,則指向:FROM cloud.io/ubuntu:trusty
設置鏡像的維護者,相當於鏡像的作者或發行方。
dockerfile
MAINTAINER Captain Dao <[email protected]>

用 RUN 命令調用 apt-get 包管理器安裝 PHP 環境所依賴的程序包。
安裝依賴包相對比較固定,因此該動作應該盡量提前,這樣做有助於提高鏡像層的復用率。
dockerfile
RUN apt-get update \
&& apt-get -y install \
curl \
wget \
apache2 \
libapache2-mod-php5 \
php5-mysql \
php5-sqlite \
php5-gd \
php5-curl \
php-pear \
php-apc \

用 RUN 命令調用 Linux 命令對 Apache 服務和 PHP 參數進行配置。
dockerfile
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf \

用 RUN 命令調用 mkdir 來准備一個干凈的放置代碼的目錄。
dockerfile
RUN mkdir -p /app && rm -rf /var/www/html && ln -s /app /var/www/html

將本地的代碼添加到目錄,並指定其為當前的工作目錄。
dockerfile
COPY . /app
WORKDIR /app

設置啟動腳本的許可權,指定暴露的容器內埠地址。
最後指定容器啟動的進程。
dockerfile
RUN chmod 755 ./start.sh
EXPOSE 80
CMD ["./start.sh"]

至此一個 PHP 的基礎鏡像製作完畢,你可以在本地運行 docker build -t my-php-base . 來構建出這個鏡像並命名為 my-php-base 。
由於網路環境的特殊情況,在本地運行 docker build 的時間會很長,並且有可能失敗。推薦使用 DaoCloud 加速器 和 DaoCloud 的雲端 代碼構建 功能。
完整 Dockerfile
``` dockerfile
Ubuntu 14.04,Trusty Tahr(可靠的塔爾羊)發行版
FROM ubuntu:trusty
道客船長榮譽出品
MAINTAINER Captain Dao < [email protected] >
APT 自動安裝 PHP 相關的依賴包,如需其他依賴包在此添加
RUN apt-get update \
&& apt-get -y install \
curl \
wget \
apache2 \
libapache2-mod-php5 \
php5-mysql \
php5-sqlite \
php5-gd \
php5-curl \
php-pear \
php-apc \
# 用完包管理器後安排打掃衛生可以顯著的減少鏡像大小
&& apt-get clean \
&& apt-get autoclean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
# 安裝 Composer,此物是 PHP 用來管理依賴關系的工具
# Laravel Symfony 等時髦的框架會依賴它
&& curl -sS https://getcomposer.org/installer \
| php -- --install-dir=/usr/local/bin --filename=composer
Apache 2 配置文件:/etc/apache2/apache2.conf
給 Apache 2 設置一個默認服務名,避免啟動時給個提示讓人緊張.
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf \
# PHP 配置文件:/etc/php5/apache2/php.ini
# 調整 PHP 處理 Request 里變數提交值的順序,解析順序從左到右,後解析新值覆蓋舊值
# 默認設定為 EGPCS(ENV/GET/POST/COOKIE/SERVER)
&& sed -i 's/variables_order.*/variables_order = "EGPCS"/g' \
/etc/php5/apache2/php.ini
配置默認放置 App 的目錄
RUN mkdir -p /app && rm -rf /var/www/html && ln -s /app /var/www/html
COPY . /app
WORKDIR /app
RUN chmod 755 ./start.sh
EXPOSE 80
CMD ["./start.sh"]

『肆』 網站被鏡像怎麼辦

惡意鏡像也就是所謂的惡意克隆別人網站,在域名記錄里填上別人空間的Ip地址,以此達到惡意克隆被人的網站,當瀏覽者打開兩個截然不同網址,但網站內容卻是一模一樣。以下來介紹克隆原理和如何預防這些問題。
一.首先在這里我要說明以下並不是所有的網站都會被惡意鏡像,當網站是這幾種情況時有可能被惡意鏡像,獨立IP的網站是惡意鏡像的必備條件,雖然我們提倡使用獨立IP以免網站受到其它網站的牽連,第二是網站已安裝好了文件位於根目錄下,第三新建的網站域名權重不如惡意鏡像對手。惡意鏡像的操作非常簡單只需在自己的域名管理中打開頂級域名,修改以下A記錄就完事了。
二.惡意鏡像的通過域名年齡優勢給對手施壓,然而剛剛成立的網站沒有什麼權重給搜索引擎造成混亂,對於技術不成熟的搜索引擎分是不出真假,往往受到惡意鏡像的受害者都是剛建站的新手,不知如何去應對這些。
三.剛建站的站長們其實不用慌正所謂是上有政策,下有對策,即便惡意鏡像成功了,兩個網站看起來一模一樣,惡意鏡像者並非完全控制了我們的網站,下面我來介紹不同情況以不同的方法來應對。
1.更換IP或空間。本條僅提供一種可行性方案。事實上,如果你不解決獨立IP及根目錄程序問題,只是治標不治本。因為惡意者更換成本及操作上更簡單。
2.改變網站程序位置,由根目錄換到一級目錄。如果該方案可以實施的話,可以有效解決網站惡意鏡像問題,因為惡意鏡像只能解析IP,而無法與目錄進行綁定。
3.伺服器端操作。如果你的伺服器可以設置禁止直接通過IP訪問,必須使用某個域名訪問,那麼設置好它。

『伍』 php如何通過linux命令,在docker中執行一個文件並且接收docker容器中執行之後,控制台的返回的結果

Docker中我們一般會有兩種執行命令的方式,一種是直接進入容器的命令行,在終端執行並查看結果,一種是在後台執行,並不會在終端查看結果。
1、進入容器命令行
su root
docker run -i -t ubuntu:16.04/bin/bash#或者執行下面這句docker run -it ubuntu:16.04/bin/bash

-i和-t的作用是幫助你進入交互模式,如果不加這部分,你將無法進入容器內部,更別說使用命令行了。/bin/bash的意思就是使用容器的命令行來輸入命令。執行結果如下:
root@7d150a0fb029:/#
root後面跟的就是容器id,表明你已經進入容器,可以輸入命令了,你可以輸入一些常用命令試試:
root@7d150a0fb029:/# docker run -i -t ubuntu:16.04 /bin/bash
結果輸出了鏡像的內核版本信息:
Linux version 4.13.0-36-generic (buildd@lgw01-amd64-033)(gcc version 5.4.020160609(Ubuntu5.4.0-6ubuntu1~16.04.9))#40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018

通過exit可退出容器。
2、後台執行命令
輸入下面的代碼,-d表示的就是後台運行,這點可以直接通過docker run –help查看該命令的功能。下面這句話的意思就是在鏡像的程序中添加引號內的代碼,並在後台運行。
docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 1;done"
輸出結果不會顯示運行的結果,而是給出新建的容器id,這里說明一下,每次輸入docker run命令都會新建一個容器,產生一個新的id。
輸出結果如下:

查看一下正在運行的容器:
root@cdl-XPS15R:/home/cdl# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7188be9bd7b ubuntu:16.04"/bin/sh -c 'while t…"13 seconds ago Up11 seconds keen_vaughan1b6ba17f7df7 ubuntu:16.04"/bin/bash"2 minutes ago Exited(0)2 minutes ago cocky_noether7d150a0fb029 ubuntu:16.04"/bin/bash"4 minutes ago Exited(0)2 minutes ago hopeful_banach

這里會發現,第一個容器的id和後台運行的容器id前幾位一模一樣,但是長度要長很多,其實是一樣的,只不過通過ps命令列印輸出時為了方便顯示只顯示了前幾位。
如果想要進入後台運行的容器的命令行而不創建新的容器,只需要輸入以下命令:
#Exec是進入已經存在的容器,run是創建新容器docker Exec-it c7188be9bd7b /bin/bash

輸入哪個更長的id也是一樣的效果:
docker Exec -it /bin/bash
輸出結果都是:
root@c7188be9bd7b:/#

『陸』 如何製作一個定製的 PHP 基礎 Docker 鏡像

選擇 Ubuntu 官方的 14.04 版本為我們依賴的系統鏡像。
dockerfile
FROM ubuntu:trusty

因所有官方鏡像均位於境外伺服器,為了確保所有示例能正常運行,DaoCloud 提供了一套境內鏡像源,並與官方源保持同步。如果使用 DaoCloud 的鏡像源,則指向:FROM cloud.io/ubuntu:trusty
設置鏡像的維護者,相當於鏡像的作者或發行方。
dockerfile
MAINTAINER Captain Dao <[email protected]>

用 RUN 命令調用 apt-get 包管理器安裝 PHP 環境所依賴的程序包。
安裝依賴包相對比較固定,因此該動作應該盡量提前,這樣做有助於提高鏡像層的復用率。

『柒』 網站被鏡像了怎麼辦

  1. 網路站長平台投訴
    通過下面的渠道可以反饋問題
    1.jubao..com
    2.tousu..com
    3.zhanzhang..com/feedback
    但處理速度是根據對用戶造成的傷害來界定處理優先順序。

  2. 屏蔽鏡像網站伺服器IP
    鏡像網站看似一個完整的站點,其實每次用戶訪問網站的時候,程序還是調用的原網站的數據,所以可以屏蔽這個伺服器的IP,禁止抓取網站數據。如果是LINUX主機可以通過以下方法獲取和屏蔽鏡像網站伺服器IP。

  3. 獲取鏡像網站IP,復制如下代碼,新建一個php文件,並命名為「ip.php」上傳到網站根目錄。

<?php
$file="ip.txt";//保存的文件名
$ip=$_SERVER['REMOTE_ADDR'];
$handle=fopen($file,'a');
fwrite($handle,"IPAddress:");
fwrite($handle,"$ip");
fwrite($handle," ");
fclose($handele);
?>

4. 訪問鏡像網站,在地址後面加.../ip.php,如:http://www.gannxy.com/ip.php,然後網站根目錄下會生成一個ip.txt的文件,打開復制裡面的ip地址。查找伺服器IP地址還可以通過站長工具的HTTP狀態碼查詢

5. 屏蔽鏡像站點IP,打開.htaccess文件,加上如下代碼
Linux下 規則文件.htaccess(沒有可以手工創建.htaccess文件到站點根目錄),自行修改紅字中的IP地址

<IfMolemod_rewrite.c>
RewriteEngineOn
#Blockip
RewriteCond%{http:X-Forwarded-For}&%{REMOTE_ADDR}(188.129.143.73)[NC]
RewriteRule(.*)-[F]
</IfMole>

然後再次訪問或者刷新鏡像網站,這時候就會出現403錯誤(禁止訪問),現在就可以等著蜘蛛刪除了
windows2008下 規則文件web.config (手工創建web.config文件到站點根目錄) ,自行修改紅字中的IP地址

<?xmlversion="1.0"encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rulename="bandip"stopProcessing="true">
<matchurl="(.*)"/>
<conditionslogicalGrouping="MatchAny">
<addinput="%{HTTP_X_FORWARDED_FOR}&%{REMOTE_ADDR}"pattern="(188.129.143.73)"/>
</conditions>
<actiontype="AbortRequest"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>


註:如果不知道如何獲取和屏蔽鏡像網站IP地址可以咨詢主機商,也會幫助解決。但缺點是如果對方更換了IP地址還要重新寫一次。

6. 添加跳轉代碼
這個辦法就簡單粗暴了,直接在網站head下加入一段JS代碼,就可以實現鏡像站自動跳轉到主站,代碼如下:

<scripttype="text/javascript">if(document.location.protocol!="https:"&&navigator.userAgent.indexOf("MSIE6.0")<0){location.href=location.href.replace(/^http:/,"https:");}if(document.location.host!="www.gannxy.com"){location.href=location.href.replace(document.location.host,'www.gannxy.com);}</script>

『捌』 docker php 鏡像怎麼配置

1.選擇 Ubuntu 官方的 14.04 版本為我們依賴的系統鏡像。
dockerfile
FROM ubuntu:trusty

2.因所有官方鏡像均位於境外伺服器,為了確保所有示例能正常運行,DaoCloud 提供了一套境內鏡像源,並與官方源保持同步。如果使用 DaoCloud 的鏡像源,則指向:FROM cloud.io/ubuntu:trusty
3.設置鏡像的維護者,相當於鏡像的作者或發行方。
dockerfile
MAINTAINER Captain Dao <[email protected]>

4.用 RUN 命令調用 apt-get 包管理器安裝 PHP 環境所依賴的程序包。
安裝依賴包相對比較固定,因此該動作應該盡量提前,這樣做有助於提高鏡像層的復用率。

『玖』 如何製作一個定製的 PHP 基礎 Docker 鏡像

選擇 Ubuntu 官方的 14.04 版本為依賴的系統鏡像。
dockerfile
FROM ubuntu:trusty

因所有官方鏡像均位於境外伺服器,為了確保所有示例能正常運行,DaoCloud 提供了一套境內鏡像源,並與官方源保持同步。如果使用 DaoCloud 的鏡像源,則指向:FROM cloud.io/ubuntu:trusty
設置鏡像的維護者,相當於鏡像的作者或發行方。
dockerfile
MAINTAINER Captain Dao <[email protected]>

用 RUN 命令調用 apt-get 包管理器安裝 PHP 環境所依賴的程序包。
安裝依賴包相對比較固定,因此該動作應該盡量提前,這樣做有助於提高鏡像層的復用率

『拾』 如何使用docker中的php環境來調試代碼

Docker容器化PHP開發環境搭建-DVWA (含xdebug調試)
摘要:Docker容器化技術在過去的2015年得到了大面積的普及應用,特別是以靈雀雲、數人雲、阿里雲以及阿里百川TAE2.0等為代表的服務商的推動,可以預見2016會是雲服務大爆發的一年,會有越來越多的互聯網企業將自己的業務部署到基於Docker容器的環境里來。
Docker容器化技術在過去的2015年得到了大面積的普及應用,特別是以靈雀雲、數人雲、阿里雲以及阿里百川TAE2.0等為代表的服務商的推動,可以預見2016會是雲服務大爆發的一年,會有越來越多的互聯網企業將自己的業務部署到基於Docker容器的環境里來。
本文以 DVWA 部署為例,來講解PHP環境部署+基於XDEBUG調試環境的容器化解決方案。
Github代碼
segmentfault參考鏈接
Docker容器化PHP開發環境搭建-DVWA (含xdebug調試)
創建目錄
基礎目錄
~/dvwa/data 存放MySQL資料庫
~/dvwa/htdocs 項目代碼
~/dvwa/log 存放所有輸出log
從代碼倉庫構建
cd ~
git clone https://github.com/MarkThink/DockerPHP.git dvwa
創建這些目錄
mkdir ~/dvwa ~/dvwa/data ~/dvwa/data/mysql ~/dvwa/log ~/dvwa/log/nginx ~/dvwa/log/php ~/dvwa/htdocs
下載鏡像及構建
cd ~/dvwa/htdocs/dvawfiles
make pull
make dl
make build
下載代碼
cd ~/dvwa/htdocs
git clone https://github.com/MarkThink/DVWA.git dvwa_app
IDE調試配置
Docker容器化PHP開發環境搭建-DVWA (含xdebug調試)Docker容器化PHP開發環境搭建-DVWA (含xdebug調試)
綁定域名
```
sudo vi /etc/hosts
192.168.99.100

閱讀全文

與php鏡像代碼相關的資料

熱點內容
華為交換機dhcp配置命令 瀏覽:314
androidbitmap縮小 瀏覽:270
單片機串口控制燈 瀏覽:83
大訊雲伺服器安裝視頻 瀏覽:783
華為演算法領先世界 瀏覽:653
linux路由重啟 瀏覽:565
php的模板編程 瀏覽:319
編譯器原理與實現書 瀏覽:708
dos選擇命令 瀏覽:16
apm固件編譯到單片機 瀏覽:120
聯通深藍卡都包含什麼app 瀏覽:263
如何判斷網路伺服器正常 瀏覽:649
路由器搭橋遠端伺服器地址是什麼 瀏覽:516
編譯動態庫時會連接依賴庫嗎 瀏覽:708
淘寶手機加密是隨機的嗎 瀏覽:672
解壓包子怎麼裝飾 瀏覽:586
四個數湊24演算法 瀏覽:676
哪一種不是vi編譯器的模式 瀏覽:170
xp在此處打開命令窗口 瀏覽:128
代碼編譯運行用什麼軟體 瀏覽:999