Docker için WordPress geliştiricilerine giriş, ikinci bölüm

Bu, Docker + WordPress serimizdeki ikinci gönderidir, bu yüzden birincisini okumadıysanız, yakalamak için yapın. Karışıma WordPress ekleyerek devam etmeden önce, bugün sahip olduğumuz düzenlemeleri gözden geçirelim; Apache yerine Nginx’i kullanmaya karar verdiğimiz için iki Docker dosyası oluşturmak zorunda kaldık. Bu yaklaşım tek sorumluluk ilkesini teşvik eder, ancak karışıma birkaç sorun getirir. En büyüğü, neredeyse aynı kaynak koduna sahip iki ayrı görüntüden ihtiyaç duyulan bakımdır – WordPress’i yüklemeniz ve her ikisinde de çevrenin hacmini ve değişkenlerini düzenlemeniz gerekir. Bu, ilk etapta olmaması gereken sorunlara hızlı bir şekilde neden olabilir. Ancak, şimdi oyunun kurallarını bildikten sonra, onları ihlal etmeyi düşünelim. Projemiz için bir Docker görüntüsünün nasıl kullanılacağına dair üç olası senaryo:
Biri PHP-FPM ve diğeri Nginx’i çalıştıran iki ayrı resim
İçindeki PHP-FPM ve Nginx ile aynı resim, farklı bir başlangıç ​​komutuna sahip ayrı bir kapta yürürken
Tek bir resim ve kap, iki işlem çalıştırır
Çoğu yazılım gibi, geliştiricinin kişisel tercihlerine bağlıdır ve bazen konfor için bazı kuralları ihlal etmek daha iyidir (WordPress bunu her zaman yapar), bu yüzden Seçenek 3’ü kullanacağım: Her iki işlemi de bir kapta çalıştıracağız .Önceki makalede, iki dockerfiles yaptık, devam etmek için, şimdi karar vermeliyiz, ikisinden hangisi Nginx’e veya PHP-fpm’ye dayanan (ve tek) olacak?Bir kez daha, cevap bağımlı olabilir, ancak benim için karar, ikisinden birinin kurulumunun neden olduğu karmaşıklığa dayanmaktadır.PHP-FPM daha karmaşık olduğu için, ana resmimizi üzerine dayandıracağım ve benden daha deneyimli birinin endişelenmesine izin vereceğim.
Bu yüzden lütfen, önceki öğreticide yaptığımız dockerfile.php-fpm’yi silin ve ayrıca tüm ana dockerfile içeriğimizi silin. Ayrıca, Direktifimizi Bakımımızdan Girin: PHP: 7.0.6-fpm-Alpine Tomaz Tomaz Daha ileri sistemin paketini yüklemek, gerekli sistemlerin tüm bağımlılıklarını ekleyin, böylece görüntü olması için gerekli sistemlerin tüm bağımlılıklarını ekleyin. Doğru çalışabilir: APK add-no-cache nginx mysql-müvekkil süpervizörü kıvrılma bash redis imageMagick-dev çalıştırın. -Client gereklidir, böylece WP MySQL resmimize bağlı – Süpervizör birkaç işlem çalıştırmamıza izin verir (makalenin sonunda daha fazla bilgi) – Web’den dosyaları indirmek için kıvrılın – Bash çok popüler bir kabuktur (Alpine gönderildi Varsayılan olarak Almquist Shell ile)-Redis, WP’nin WP’yi redis resmimize (hız! Hız!) Bağlamasına izin verecektir-Imagemagick-Dev, medyamız için gerekli tüm grafik kütüphaneleriyle birlikte gelir
(Ters eğik çizgi yönünde dikkat edin – Linux komutu, netlik için çok satır komutlarına ayrılır) PHP uzantısını gerekli tüm programlar ve kütüphanelerle yükleme, PHP’yi yapılandırmanın veya daha kesin bir şekilde tüm PHP uzantıları yükleme zamanı geldi. WordPress tarafından koşmak için gerekli. Bu yönü ekleyin: APK add-no-cache libtool yapı-tabanı autoconf && docker-php-ext-install -j $ (grep -c ^işlemci/proc/cpuinfo 2>/dev/null || 1) iconv gd mbstring FileInfo curl xmlReader xmlwriter spl ftp mysqli opcache && pecl yükleme imagick && Docker-php-ext-exable imageick && apk del libtool yapı-taban otomatik-üs vay! Bu büyük, değil mi? Ancak şimdi öğreneceğiniz gibi, bu bir Docker görüntüsü oluşturmada oldukça yaygın olan bir modeldir, buna zincir komutu denir; Sadece çalıştırmak istediğiniz bazı komutları alırsınız ve çift ampersand (&&) ile birleştirirsiniz. Bu önemlidir, önceki makalede öğrendiğimiz SS, dockerfile’daki her yönün sonuçları önbellektir ve son görüntüye (megabayte açısından) son görüntüye birleştirilir- yararlı değil.
Örnek Örnek: Yapı-tabanı paketi ~ 200MB gerektirir ve sadece durumlarımızda paketleri oluşturmak (derlemek) için kullanılan çeşitli derleme cihazlarını kurar-ancak görüntü yapıldıktan sonra tamamen işe yaramaz. Yanlış, bunu böyle yapabiliriz ve bu çalışmaya devam edecek: APK add-no-cache libtool yapı tabanı otomatik ikili çalıştırma pecl yükleme imagick run docker-php-ext-exablick run apk del libtool yapı-tabanı autoconf Ancak , Her yön bağımsız olarak önbellek olduğu için, son görüntüye ~ 200MB eklenir ve daha da kötüsü, oluşturma paketini son yönde sildiğimiz için, kapta da erişilemez/işe yaramaz hale gelirler, bu yüzden Docker görüntülerinin çoğu Resmi olarak (PHP gibi) bir zincir deseni kullanarak. Fark edebileceğiniz gibi, zorunlu olmayan bir PHP uzantısı da koyduk, ancak bu uzatma, WordPress’i herhangi bir yapılandırma olmadan önemli ölçüde hızlandırıyor: opCache. PHP, yorumlanan bir dildir, yani bir ziyaretçi index.php için her istediğinde, PHP-FPM’nin gerekli tüm PHP dosyalarını birçok CPU döngüsü ve bellek gerektiren bilgisayarlar tarafından anlaşılabilen kodlara yüklemesi ve derlemesi gerektiği anlamına gelir. OpCache’nin yaptığı, derleme sonuçlarını (bayt kodu veya opcode olarak adlandırılan) belleğe saklamaktır, böylece bir sonraki komut dosyası çağrısında, PHP bu sürümü yalnızca baştan tekrar derlemek yerine içerebilir. Sabit diskten okuma yoktur ve daha iyi performansı eşitleyen bir derleme yoktur.
WordPress’i yerinde tüm PHP bağımlılıkları ile yükleme WordPress yükleme zamanı, ancak bundan önce çevresel değişkenler konusunu gözden geçirelim. Docker görüntüsünü hızlı ve ağrısız olarak güncellemek istiyoruz ve belki de sistem boyunca mevcut olacak bazı çevresel değişkenleri ayarlayacağız ve sonraki birkaç komutu kısaltmamıza yardımcı olacağız, çünkü kabukta bir dolar ile erişebiliriz. PHP’de erişme şeklimize benzer. Bu satırları bir sonraki DockerFile’e ekleyin: ENV WP_ROOT/USR/SRC/WordPress Env WP_Version 4.5.2 ENV WP_SHA1 Bölüm94003A5D2285F6AE76407EEY WP.org/wordpress-https://wordpress.orgpress-https://wordpress.orgpress-https://wordpress.orppress urum. En önemli şey elbette sürüm, ardından checksum izlemesidir, bu da indirilen dosyanın indirme dizini saldırıya uğrarsa ve WordPress’in kötü amaçlı yazılım enjekte edilmesini sağlayan gerçekten önemli olmasını sağlar. Sonuç olarak, sağlama toplamı doğru olmayacak ve komutunuz başarısız olacaktır. WordPress İndirme sayfasında sağlama toplamı dosyasını bulabilirsiniz.
WP_ROOT ve WP_Download_url sadece rahat kısayollardır ve WordPress kurulumunun kendisi üzerinde hiçbir etkisi yoktur, ancak genellikle komut dosyasının başında yaygın olarak kullanılan değişkenleri tanımladığınız için her şeyin tek bir yerde olması mantıklıdır. Şimdi wordPress, checksum ve çıkarma $ wp_root olarak indirme zamanı: curl -o wordpress.tar.gz -sl $ wp_download_url && echo “$ wp_sha1 *wordpress.tar.gz” | Sha1sum -c -&& tar -xzf wordpress.tar.gz -c $ (dirname $ wp_root) && rm wordpress.tar.gz run adduser -d dağıtıcı -s /bin /bin -bin -g www -data ilk direktif indir tarball WordPress, dosyanın değiştirilmediğini kontrol edin, /usr /src olarak çıkarır ve daha sonra orijinal tarball’u siler. Yukarıda açıklanan nedenlerden ötürü, bir komutta bundan sonra bir komutta ihtiyaç duyulmayacaktır. İkinci yön, WWW-Data ile aynı gruba özel kullanıcılar ekler. Bu, kurulumumuzun güvenliğini artıracaktır, çünkü dosya web sunucumuz tarafından çalıştırılanlara değil, bu kullanıcıya ait olacaktır (izni her şey hazır olduğunda aşağıdaki adımlardan birinde ayarlayacağız). WordPress neden /usr /src olarak çıkarılır? Bunu cevaplamak için WordPress dosya sisteminin önemli kısmına bakalım. Bu üç ana parçaya ayrılmıştır:
WP-Content, özel işlevinizin bulunduğu yerdir
WP-Config.php, kök WordPress dizinindeki bir yapılandırma dosyasıdır.
Core WordPress (tüm WordPress dizinindeki, önceki ikisi dışında)
WordPress çekirdeğini dizine çıkaran yukarıdaki yön nedir, ancak WP-Content’i, kurulumun tek benzersiz kısmı ve cevap çekirdek dizinin dışındadır. Neden? Niye? Çünkü yerel olarak, ana bilgisayarlarda, görüntünün dışında ihtiyacımız olan tek dizin. Bu, ana bilgisayarda temalar ve eklentiler yüklememize ve/veya geliştirmemize ve kabı kapatılmış olsa bile dosyaları depolamamıza olanak tanır. Bunu başarmak için iki şeye ihtiyacımız var; İlk olarak, DockerFile’da bir Birim Direktifine sahip olmamız gerekir (hangi işlevleri unutursanız, önceki makaleyi ziyaret edin), bu yüzden bu üç satırı ekleyin: cilt/var/www/wp-konsantrasyon işçisi/var/www/wp-concenta Şimdi sadece WordPress’e sıradan WP-Content’den dosyalara ihtiyacınız olduğunda/var/www/wp-concent’i görmek için söylememiz gerekiyor ve bunu doğru yapılandırılmış wp-config.php ile yapabiliriz. Configuration wp-config.php şimdi size bazı mucizeler gösterme zamanıdır ve Magic ile kastettiğim Docker güçlerinden biridir. WP-Config.php Oluşturun Projenizin kök dizininde Boş Ana Bilgisayarda Boş ve aşağıdaki içeriği girin:
$ değer) {$ capitaled = strtoupper ($ Key); if (! Defined ($ Capitaled)) {DEFINE ($ Capitaled, $ değeri); }} if (! Tanımlı (‘abspath’)) tanımlayın (‘abspath’, dirname (__ dosya__). ‘/’); Requir_once (abspath. ‘Wp-settings.php’); Büyü! Büyü! Hayır, arkadaşım, çevresel değişkenin gerçek gücü. Her şeyi yönetmek için geliştirme, evreleme veya üretim-one wp-config.php için aynı konfigürasyonu yeniden kullanabileceğini söyledim! Ana işlevi, tüm çevresel değişkenleri tekrarlamak ve WP_CONCENT_DIR’den bir PHP sabiti olarak tanımlamaktır, çünkü dockerfile’mız dizinin/var/www/wp-concent olmasını beklediğinden değiştirilemez. Not: Bu yaklaşım, WordPress kurulumumuzun güvenliği için başka büyük faydalar da dolaylı olarak getirir. Haardcode olan üretim değeri yoktur, bu nedenle PHP-FPM başarısız olursa ve Nginx dosyadan sıradan bir metin sürümü göndermek yanlışsa, potansiyel saldırganlar (veya sadece rastgele ziyaretçiler) veritabanımıza veya şifrelerle korunan diğer alanlara kimlik bilgileri alamazlar. Şimdi bu dosyanın kendisi çok kullanışlı değil (çünkü hala sabitimizi tanımlamak için bir yere ihtiyacımız var), bu yüzden tüm bu değerleri gerçekten tanımlayacağımız yeni bir tane yapalım;
Name .env ve Proje Dizini’ne benzer (veya şimdilik özdeş) ile proje dizininize girin: # bunların hepsi wp-config.php tarafından okunuyor disable_wp_cron = true wp_redis_host = redis db_name = wp db_user = wp db_password = wp db_host = mysql table_prefix = wp_ wp_siteurl = http: // localhost: 8080 wp_debug = true wp_cache_key_salt = my-situ- fs_method = direct # don’t forget -key/1.1/salt/ AUTH_KEY=your_auth_key SECURE_AUTH_KEY=your_secure_auth_key LOGGED_IN_KEY=your_logged_in_key NONCE_KEY ! Dockerfile’ımıza konulmadan önce, bitirmeden önce, bu wp-config.php’yi dizine kopyalamakla başlayarak Kaynaklar ve doğru sahipliği/izni düzenler. Aşağıdaki iki yönü ekleyin: kopyala wp-config.php $ wp_root run chown -r dağıtıcı: www-data $ wp_root/wp-config.php wp-cron resmi çözüm için vahşi cron çalışması için resmi çözüm çoğunlukla yeniden hazırlandı Geliştiriciler ve iki ana neden vardır: düşük trafiğe sahip bir site, ziyarete bağlı olduğu için doğru zamanda tetiklemez.
Yüksek trafiğe sahip siteler bunu doğru zamanda tetiklemez, çünkü önbellekleme genellikle herhangi bir WordPress dosyasının ziyarette çağrılmasını önler
Bunun üstesinden gelmek için, WP-CRON’u tamamen devre dışı bırakmaya karar verdim (yukarıdaki çevre değişkenine dikkat edin) ve uygulanacak kadar basit olan özel bir çözüm kullanıyorum. İlk olarak, proje dizininizde cron.conf adlı bir dosya oluşturun ve aşağıdaki yapılandırmayı girin: # cron yapılandırma dosyası, WordPress Cron’u bir kez çalıştıracak şekilde ayarlayın * * * * * * * php/usr/src/wordpress/wp-cron .php Bu, her dakika CRON WordPress’i tetikleyen standart CRON sözdizimidir – ihtiyaçlarınıza göre değiştirmekten çekinmeyin. İşleyebilmek için, bu dosyayı yalnızca doğru dizine kopyalamamız ve iznin doğru olduğundan emin olmamız gerekir. Resmimizin temeli olan Alpine Linux’ta dizin/etc/crontabs, bu yüzden bunu bir sonraki dockerfile’a girin: cronf/etc/crontabs/dağıtıcı çalıştırma Chmod 600/etc/crontabs/dağıtıcı ödeyebileceğiniz gibi Resimde, cron.conf dosyasına dikkat dağıtıcı verilir, çünkü bu, Cron ve Cron Daemon komutlarımızı çalıştırmamız gereken kullanıcıdır ve daha fazla yapılandırma olmadan anlar. (İsteğe bağlı) WP-CHLI yükleme Daha önce hiç kullanmadıysanız, WP-CHLI, komut satırından WordPress’i manipüle etmek için çok kullanışlı bir araçtır: eklentileri yükleyip etkinleştirebilir, nesne önbelleği, seçenekler, yayınlar, … diyelim. .
Resmimize sahip olmak için sadece DockerFile’ımıza aşağıdaki yönü eklememiz gerekir: curl -o -o https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && chmod + x wp-cli.phar && mv wp-char.phar/usr/local/local/wp Bu görüntüyü çalıştırmak için tüm bileşenlerimiz olmadığı için (mysql), bu konuyu (test etmek için) inceleyeceğiz (test etmek için) Bu makalenin sonu, ancak şimdilik, yığının son ana kısmını yapılandırarak devam edelim: Nginx. NGINX Yapılandırması Nginx ilk yönergemize yüklenmiş olsa da, bunu düzgün çalışacak şekilde yapılandırmamız gerekir ve bunu yapmak için iki dosyaya ihtiyaç vardır (her ikisi de proje dizininde): Nginx.conf, dosyaların ana yapılandırması olan Nginx.conf ve sanal ev sahibimiz olacak vhost.conf. Önceki makalemizde, oldukça iyi bir ana yapılandırma dosyasına sahip resmi bir Nginx görüntüsü oluşturduk, bu nedenle içeriği nginx.conf’ımıza kopyalayın ve yalnızca Nginx kullanıcısı yazan satırı değiştirin; www-data kullanıcısı demek; , bu yüzden PHP-FPM sürecimizi çalıştıran kullanıcı ve Nginx için farklı bir kullanıcı olmanın bir anlamı yok. Bu dosya ayrıca, yalnızca .conf ile biten ve /etc/nginx/conf.d/ adresinde bulunan yapılandırma dosyalarını içeren çok kullanışlı bir satıra (31) sahiptir. Bu, her türlü ek konfigürasyon yapmayı kolaylaştırır, en yararlı olanı ana sanal ana bilgisayarımızdır. Aşağıdaki kodu vhost.conf’a koyun: Server {Server_name _; Dinle 80 Varsayılan_server; Kök/usr/src/wordpress; index.php index.html; Access_log /dev /stdout; error_log /dev /stdout bilgi; Konum /WP-Content {root /var /www; 1m sona erer;
Access_log Off; add_header önbellek “genel”; } Location / {try_files $ uri $ uri / /index.php?ored; } Konum ~ .php $ {fastcgi_params dahil; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param script_filename $ document_root $ fastcgi_script_name; # İsteğe bağlı olarak maksimum yükleme boyutunu burada ayarlayın fastcgi_param php_value “upload_max_filesize = 20m n post_max_size = 20m”; }} Artık her iki dosyayı da yerinde, görüntüye kopyalamamız ve günlüğün standart çıkışa ve hata akışına (stdout ve istasyon) aktarıldığından (senkronize) emin olmalıyız: kopyala nginx.conf / cons. etc/gnx/gnx /nginx.conf kopya vhost .conf /etc/nginx/conf.d/ ln -sf/dev/dev/stdout /var/log/nginx/access.log && ln -sf/dev/istasyon /log/nginx/error.log && chown-& chown-r www-data: www-data/var/lib/nginx Ayrıca Nginx tarafından önbellekleme ve depolama dosya yüklemeleri için kullanılan sahipliği/var/lib/nginx’i de değiştiriyoruz www-data, çünkü varsayılan olarak Nginx’e aittir ve ABD kullanıcıyı kullanmaz. (İsteğe bağlı) Giriş noktasını ayarlayın Önceki makaleyi takip ederseniz, bir rahatsızlık görebilirsiniz:
Bir Docker-Compose’u çalıştırdığınızda ve tarayıcınızı ziyaret ettiğinizde, bir veritabanı bağlantı hatası alabilirsiniz, ancak yenilendiğinizde artık mevcut değildir. Bu, docker-compose’un tüm kapları oldukça rastgele bir sırayla çalıştırması, böylece Nginx kabı MySQL’den hazır ve daha hızlı olması, hatalarla (kısa ömürlü) daha hızlıdır. PHP dünyasında sadece müdahale ederken, önyükleme yaparken veritabanına bağlanamazlarsa bazı uygulamalar (Ruby on Rails gibi) düzgün bir şekilde başlamaz. Karşılaştığımız sorun, tüm koşulların ana konteyner işlemi başlamadan önce karşılanmamasıdır, ancak neyse ki, Docker bunun için doğuştan gelen bir çözümle birlikte gelir ve buna giriş noktası yönü denir. Giriş noktası basittir, komutlar ana komutumuzdan (CMD yönergesi) önce çalıştırılır ve birçok görüntü üreticisi, veritabanının etkin olup olmadığını kontrol etmek gibi çeşitli görevler yazarak özel kabuk komut dosyaları yazarak potansiyellerini kullanır. diğer durumlar. Öğrenme amacıyla, MySQL konteynerimizin bir bağlantı alıp almadığını ve ana komutumuzun yürütülmesini geciktirip geciktirip geciktirip geciktirip kontrol edemeyecek bir komut dosyası oluşturalım. Project Root’ta yeni bir dosya oluşturun, Docker-EntryPoint.sh adını (bu en yaygın olarak kullanılan addır) adlandırın ve aşağıdaki kodu girin ve $ chmod +x docker-entrypoint ile yürütülebilir olarak değiştirmeyi unutmayın. sh. #!/Bin/BASH SET -E # Hatalarda sonlandırma işlevi test_mysql {mysqladmin -h “$ {db_host}” ping} (test_mysql); Do> & 2 yankı “mysql kullanılamıyor – uyku.” Uyku 3 bitti> & 2 yankı “mysql yukarı – yürütme komutu.”
EXEC “[E -posta Korumalı]” PHP olmasa da, bunu okumakta zorluk çekmeyeceksiniz; MySQL bağlantısını test etmek için bir işlev tanımlıyoruz ve daha sonra hazırlanana kadar 3 saniyelik bir aralıkta tekrar ediyoruz. O zaman ana konteyner komutunu gerçekleştirdik. Son satıra daha yakından bakarsanız (exec “[e -posta korumalı]”), kalan argümanları ([e -posta korumalı] anlamına gelen) yürüttüğümüzü görürsünüz, peki ilk argüman nedir? Bu giriş noktası! Genel olarak, giriş noktası yönergesi mevcutsa, Docker yalnızca CMD’ye ekler ve her ikisi de tek bir komut olarak çalışır. İki farklı örneğe bakalım: -Entrypoint [“Docker-EntryPoint.sh”] ve CMD [“Nginx”] $ Docker-Entrypoint.sh Nginx-EntryPoint [“LS”] ve CMD [“-la”] Will üretecek $ ls -al üretin. Bu, CMD’nin giriş noktasına iletilen bir argüman şeklinde yeterli olan bir komut şeklinde olması gerekmediği anlamına gelir. Bir Docker’ı ne kadar çok kazarsanız, bu yaklaşımı o kadar güçlü bulacaksınız. Artık giriş noktasının nasıl çalıştığına dair temel bir anlayışa sahip olduğumuza göre, bunu resme kopyalamak ve doğru ayarlamak için DockerFile’a ekleyin: docker-entrypoint.sh/usr/local/bin/entrypoint [“Docker-EntryPoint. SH ”

] Makalenin başında söylediğim gibi amirle birleştirin, amir düzenlememizin ayrılmaz bir parçasıdır, çünkü tek sorumluluk ilkesini ihlal ediyoruz ve kasıtlı olarak.Resmi açıklama, bunun bir süreç kontrol sistemi olduğunu söylüyor, yani bu bizim durumumuzda çocuğun sürecini, PHP-FPM ve NGINX’i işleyen bir ana süreçtir.Bunu kullanmak, yalnızca tek bir komutu (süpervizör) çalıştırmamıza ve yapılandırma dosyaları aracılığıyla diğer işlemleri ele almamıza izin verecektir.Dosyayı Project Root Dizorisinde oluşturun, Supervisord.conf adını adlandırın ve aşağıdaki kodu girin: [Supvisord] Stains = True LogleVel = Hata Ayıklama LogFile =/var/log/Supervisor/Supervisord.log pidfile =/var/run/Supvisord. pid childlogdir =/var/log/amir [program: nginx] command = nginx -g “Daemon off;”
Redirect_stderr = true autorestart = false startretries = 0 [program: php-fpm] command = php-fpm redirect_stderr = true autorestart = false startretries = 0 [eventlistener: işlemler] komutu = stop-superVisor.sh olaylar = process_state standart süpervizör yapılandırmasıdır Sözdizimi, nasıl çalıştığını öğrenmek istiyorsanız resmi belgeleri kontrol edin. Kısacası, izlenmesi gereken iki program ([program: nginx]) ve etkinlik dinleyicisi ([eventListener: işlemler]), çocuk süreçlerinden biri kayıtlı olaylardan biriyle başarısız olursa amirin kendisini durduran tüm şapkalarda. Bu, bence, doğru yaklaşımdır, çünkü varsayılan olarak süpervizör başarısız süreci yeniden başlatmaya çalışacaktır. Normal sunucularda veya sanal makinelerde, bu istenen davranıştır, ancak Docker’da, bu – hatırlamıyor – Konteyner Docker, Docker Swarm veya Kubernetes gibi çeşitli yönetim yazılımı altında çalışır ve bunun bir ana konteyner yöneticisi olmasını istiyoruz, değil Süpervizör. Bu nedenle, proje dizinindeki stop-squisor.sh betiği için, yürütülebilir ($ chmod +x stop-superVisor.sh) ve aşağıdaki kodu girebilir: #!/Bin/Bash printf “Readyn”; Okuma satırı; “Gelen Süpervizör Etkinliği: $ Line”> & 2; -3 $ (kedi “/var/run/supervisord.pid” öldürüldü >
Redis, nesne önbelleğini açın ve daha hızlı WordPress’in tadını çıkarın! Bonuslar ve Sonuçlar Tüm bunlar ilk başta biraz aşırı görünse de, bu uzun vadede olağanüstü faydalar getiriyor. Bu resmi oluşturduktan sonra, yerel olarak veya prodüksiyonda bir dizi WordPress web sitesinde etkili bir şekilde kullanabilirsiniz ve bunu yaptım, bu resmi hepiniz kullanmanız için resmi Docker deposuna itiyorum. Docker için zaten geliştirildiğinde mevcut web sitelerinizden birini, şu adımları yapın: 1) WordPress kök dizininize Docker-Compose.yml’i kopyalayın. 2) Docker-Compose.yml’i değiştirin ve satırı derleme ile değiştirin :. Resim: Kodlanabilir/WordPress: 4.5.2 (bu nedenle Docker DockerFile’i aramayacak, ancak hazırlanmış görüntüleri indirecek) 3) Bir .env dosyası oluşturun ve orada WP-Config.php’de sahip olduğunuz değeri girin. 4) (İsteğe bağlı) Proje dizinindeki WP-Admin, WP-Incomudes ve tüm .php dosyalarını silin. Unutmayın, çekirdek WordPress resim tarafından sağlanır! 5) (İsteğe bağlı) Veritabanını Şimdiye kadar kullandığınız yerden dışa aktarın, WP-Concent’e girin, konteyneri girin ($ Docker-Compose RunPress/Bin/Bash, CD-/var/www/wp-concent ve onu aktarın MySQL konteyneri) 6) $ Docker-Compose Up 7) Bermeat çalıştırın!

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir