A Docker használata a PHP és az Apache tárolásához – CloudSavvy IT

Avatar admin | 2021.04.08. 3 Views 0 Likes 0 Ratings

3 Views 0 Ratings Rate it

A Docker-tárolók az alkalmazást környezetekben hordozhatóvá teszik. Ha megvan a tároló képe, bárhol használható, ahol a Docker elérhető. Így tárolhatja a PHP webalkalmazásokat az Apache szerver használatával.

Fel fogjuk használni a tisztviselőt PHP Docker kép mint a bázisunk. Az Apache-ban előre konfigurált változatok rendelkezésre állnak, így nem kell magának telepítenie a webszervert. A PHP alapkép kényelmi segédprogramokat is kínál a PHP kiterjesztések kezeléséhez.

Dockerfájl létrehozása

A Docker képek a Dockerfile. Ez a fájl a kép elkészítéséhez használt utasításokat tartalmazza. Az utasítások tartalmazzák COPY, fájlok és mappák másolásához a tárolóba, és RUN, amely parancsot futtat a tárolóban.

Egy egyszerű PHP-oldalt futtathat, ha a fájljait egyszerűen képre másolja php:8.0-apache.

FROM php:8.0-apache
WORKDIR /var/www/html

COPY index.php index.php
COPY src/ src
EXPOSE 80

Ez Dockerfile veszi index.php és src a munkakönyvtárunkból, és átmásolja őket az Apache dokumentumgyökérbe. Most elkészítheti a képet, és elindíthat belőle egy tárolót. Láthatná, hogy webhelyét az Apache szolgálja ki.

docker build -t my-php-site:latest .
docker run -d -p 80:80 my-php-site:latest

A PHP Docker képek Apache dokumentumgyökere az alapértelmezett Debian helyen található /var/www/html. Az WORKDIR utasítás a Dockerfile azt jelenti, hogy a következő parancsok a dokumentumgyökérben kerülnek végrehajtásra.

Az Apache kiteszi magát az alapértelmezett 80-as webszerver portra EXPOSE irányelv a Dockerfile ezt jelzi. A port kifejezett kimutatásával használhatja a -P zászlóval docker run hogy véletlenszerű gazdagép-portot automatikusan összekötjön a tároló 80-as portjával.

Az Apache konfigurációjának testreszabása

A hivatalos PHP / Apache képek a Debianon alapulnak. Használhatja a apt csomagkezelő a szükséges szoftverek hozzáadásához.

Teljes hozzáférést kap az Apache beépített eszközeihez is. Te tudod használni a2enmod/a2dismod modulok és a2ensite/a2dissite kölcsönhatásba lépni a virtuális gazdagépekkel.

Az Apache konfigurációs fájl alapértelmezett értéke: /etc/apache2/apache2.conf. Adjon hozzá sorokat ehhez a fájlhoz, vagy cserélje le teljesen, hogy kibővítse az Apache konfigurációt.

Az egyik változtatás, amelyet mindig érdemes megtenni, az Apache kifejezett beállítása ServerName. Ez leállítja a „nem tudja megbízhatóan meghatározni a kiszolgálónevet” figyelmeztetést, amely általában a tároló naplóiban jelenik meg.

Általában hozzá kell adnia saját Apache virtuális gazdagépét is. Ez lehetővé teszi az egyéni konfiguráció beállítását az Apache-on felül 000-default oldal biztosítja. Így hajthatja végre ezeket a módosításokat.

COPY my-apache-site.conf /etc/apache2/sites-available/my-apache-site.conf

RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf &&
    a2enmod rewrite &&
    a2dissite 000-default &&
    a2ensite my-apache-site &&
    service apache2 restart

Ez a példa letiltja az alapértelmezett helyet, engedélyezi az egyéni webhelyet és újraindítja az Apache alkalmazását a változtatások végrehajtására. Az mod_rewrite modul is engedélyezve van, lehetővé téve a Rewrite irányelvek .htaccess fájlokat. Érdemes engedélyeznie más modulokat is, például headers ha a konfiguráció kölcsönhatásba lép a válaszfejlécekkel.

PHP kiterjesztések hozzáadása

A PHP Docker képek beépített kiterjesztés-kezelő segédprogramokkal vannak ellátva. Egyes bővítmények alapértelmezés szerint engedélyezve vannak – futtatással ellenőrizheti, hogy mi áll rendelkezésre php -m futó konténeren belül.

Számos általános kiterjesztés telepíthető a docker-php-ext-install:

docker-php-ext-install pdo_mysql

Néhány bővítményt telepítésük előtt konfigurálni kell. Te tudod használni docker-php-ext-configure a telepítés előtti konfigurálás elvégzéséhez. Az elérhető opciók kiterjesztésenként változhatnak. Olvassa el a kiterjesztés kézikönyvoldalát, hogy meghatározza az elérhető zászlókat.

RUN docker-php-ext-configure gd --with-jpeg=/usr/include/ &&
    docker-php-ext-install gd

Használhatja a PECL-en keresztül terjesztett kiterjesztéseket is. Ezek a bővítmények kétlépcsős telepítési eljárást igényelnek. Először telepítse a PECL csomagot, majd használja docker-php-ext-enable hogy regisztrálja a kiterjesztést a PHP telepítésével.

RUN apt-get install -y libmcached-dev zlib1g-dev &&
    pecl install memcached-3.1.5 &&
    docker-php-ext-enable memcached

PHP konfiguráció

A Docker képek előre konfigurálva vannak a PHP konfigurációs fájlok betöltéséhez /usr/local/etc/php/conf.d. Adja hozzá a sajátját .ini fájlt ebbe a könyvtárba. A PHP futás közben tartalmazza a tartalmát, felülírva a meglévő értékeket. Ez az alapértelmezett konfiguráció kiterjesztésének ajánlott módja.

A konfigurációs könyvtár elérési útja a jövőben megváltozhat. Az aktuális helyét a $PHP_INI_DIR környezeti változó. Jelenleg megoldódik /usr/local/etc/php/conf.d.

A zeneszerző használata

A zeneszerző alapértelmezés szerint nem érhető el. A zeneszerző a PHP-től függetlenül létező közösségi erőfeszítés. Manuálisan telepítenie kell, ha Docker-tárolóban szeretné használni.

A Composer használatának legjobb építési módja az, ha az eszköz saját Docker képére hivatkozik a többlépcsős felépítés. Használat COPY --from bevinni a Composer bináris fájlt a PHP konténerbe; ezután a Composer programot a szokásos módon használhatja a projekt függőségeinek telepítéséhez.

COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
COPY composer.json composer.json
COPY composer.lock composer.lock
RUN composer install --no-dev

Ennek a megközelítésnek a használata csökkenti a bonyolultságot. Nem szükséges letöltenie és futtatnia a Composer telepítési parancsfájlt. Hivatkozással composer:2, A Docker lehúzza a képet, majd kimásolja a Composer bináris fájlt.

Egyéni belépési parancsfájlok

Előfordulhat, hogy egyéni belépési pont szkriptet kell használnia, ha az alkalmazás-migrációkat a fő szerver futásidejének megkezdése előtt szeretné futtatni. Felülírhatja a tárolót ENTRYPOINT hogy saját indítási sorrendjét használja.

A tároló végrehajtását a szokásos módon végrehajthatja végrehajtással apache2-foreground. Ez az Apache-t futtatja az előtérben, megakadályozva a tároló kilépését a belépési parancsfájl befejezése után.

ENTRYPOINT ["bash", "/Docker.sh"]

Docker.sh tartalom:

php app.php my-migration-command    # run migrations
service cron start                  # start some services
exec apache2-foreground             # main execution

Következtetés

A PHP webszolgáltatás dokkolása egyszerű a hivatalos képek használatakor. Könnyen beállíthatja az Apache és a PHP kiterjesztéseivel és saját konfigurációs fájljaival.

A legnagyobb valószínűséggel nehézségekkel szembesülsz, ha olyan harmadik féltől származó közösségi kiegészítőket próbálsz használni, mint a Composer. Ezeket alapértelmezés szerint nem tartalmazzák, ezért többlépcsős Docker buildeket vagy kézi telepítési eljárásokat kell használnia.

A Docker használata sokoldalúvá teszi az alkalmazást abban, hogy hogyan és hol telepítse. Képével csak egy használatával pörgetheti fel webhelyének működő telepítését docker build és docker run a terminálodban.


Forrás link


3 Views 0 Ratings Rate it

  • Minden jog fenntartva 2019-2020. Hogyankészítsek.Hu Impresszum Adatkezelési szabályok