Jadual Kandungan
✅ Gunakan imej asas php yang betul
? Konfigurasi PHP selamat
? Gunakan PHP-FPM Proksi (NGINX)
? Mengoptimumkan untuk membina dan runtime
? Onton tambah penyelia (pilihan tetapi berguna)
? Ujian sebelum menggunakan
Nota akhir
Rumah pembangunan bahagian belakang tutorial php Mewujudkan persekitaran docker siap pengeluaran untuk php

Mewujudkan persekitaran docker siap pengeluaran untuk php

Jul 27, 2025 am 04:32 AM
php docker

Menggunakan imej asas PHP yang betul dan mengkonfigurasi persekitaran docker yang dioptimumkan prestasi yang selamat adalah kunci untuk mencapai pengeluaran siap. 1. Gunakan PHP: 8.3-fpm-alpine sebagai imej asas untuk mengurangkan permukaan serangan dan meningkatkan prestasi; 2. Lumpuhkan fungsi berbahaya melalui php.ini adat, matikan paparan ralat, dan aktifkan Opcache dan JIT untuk meningkatkan keselamatan dan prestasi; 3. Gunakan nginx sebagai proksi terbalik untuk menyekat akses kepada fail sensitif dan memajukan permintaan PHP dengan betul kepada PHP-FPM; 4. Gunakan imej pengoptimuman pelbagai peringkat untuk menghapuskan kebergantungan pembangunan, dan menubuhkan pengguna bukan akar untuk menjalankan bekas; 5. Supervisord pilihan untuk menguruskan pelbagai proses seperti Cron; 6. Sahkan bahawa tiada kebocoran maklumat sensitif, output log kepada aliran standard, mengkonfigurasi pemeriksaan kesihatan, mengimbas kelemahan imej, dan aplikasi boleh dijalankan secara bebas. Akhirnya memastikan bahawa alam sekitar adalah selamat, prestasi tinggi, kebolehkawalan dan pemerhatian dipanggil pengeluaran siap.

Mewujudkan persekitaran docker siap pengeluaran untuk php

Menyediakan persekitaran Docker yang siap pengeluaran untuk PHP bukan sekadar mendapatkan aplikasi anda untuk dijalankan-ini mengenai keselamatan, prestasi, penyelenggaraan, dan skalabiliti. Banyak tutorial berhenti di "Ia berfungsi secara tempatan," tetapi persekitaran pengeluaran sebenar memerlukan lebih banyak. Berikut adalah cara membina persediaan docker yang mantap, selamat dan cekap untuk PHP yang siap untuk penggunaan dunia sebenar.

Mewujudkan persekitaran docker siap pengeluaran untuk php

✅ Gunakan imej asas php yang betul

Mulakan dengan imej asas yang minimum dan selamat. Elakkan php:latest atau pembangunan seperti php:8.3-cli .

Disyorkan:

Mewujudkan persekitaran docker siap pengeluaran untuk php
  • php:8.3-fpm-alpine untuk perkhidmatan backend (ringan, selamat)
  • Pasangan dengan nginx dalam bekas yang berasingan untuk melayani trafik web

Mengapa Alpine?
Permukaan serangan yang lebih kecil, membina lebih cepat, dan penggunaan sumber yang lebih rendah. Tetapi berhati -hati: Sesetengah sambungan PHP mungkin memerlukan langkah -langkah tambahan untuk dipasang di Alpine kerana Musl vs GLIBC.

 Dari PHP: 8.3-fpm-alpine

# Pasang sambungan PHP yang penting (disusun untuk Alpine)
Jalankan APK Tambah --No-cache \
    nginx \
    penyelia \
    postgresql-dev \
    && docker-php-ext-install -j $ (nproc) \
    pdo_pgsql \
    opcache \
    && docker-php-ext-enable pdo_pgsql

Elakkan RUN apk add --update && pecl install ... melainkan benar -benar perlu -setiap arahan meningkatkan saiz imej dan membina masa.

Mewujudkan persekitaran docker siap pengeluaran untuk php

? Konfigurasi PHP selamat

Tetapan php.ini lalai tidak selamat pengeluaran. Mengatasi mereka secara eksplisit.

Buat fail konfigurasi tersuai:

 ./docker/php/php.ini
./docker/php/opcache.ini

Contoh php.ini tweak:

 ; Lumpuhkan fungsi berbahaya
disable_functions = exec, passthru, shell_exec, sistem, proc_open, popen

; Had pendedahan
Expose_php = OFF
display_errors = off
log_errors = on

; Tetapkan had yang munasabah
upload_max_filesize = 16m
post_max_size = 18m
max_execution_time = 30

Opcache (kritikal untuk prestasi):

 opcache.enable = 1
opcache.validate_timestamps = 0; Hanya dalam pengeluaran (gunakan penyebaran rolling untuk membersihkan)
opcache.max_accelerated_files = 20000
opcache.memory_consumption = 256
opcache.jit = 1205; Dayakan JIT dalam Php 8

Salin ke dalam imej:

 Copy ./docker/php/php.ini /usr/local/etc/php/conf.d/app.ini
Copy ./docker/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini

? Gunakan PHP-FPM Proksi (NGINX)

Jangan sekali-kali mendedahkan PHP-FPM secara langsung. Gunakan nginx sebagai proksi terbalik.

Struktur biasa:

 # dock-compose.yml (untuk pementasan/ci)
Versi: '3.8'
Perkhidmatan:
  nginx:
    Imej: nginx: alpine
    Pelabuhan:
      - "80:80"
    Jilid:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./public:/var/www/html/public
    bergantung_on:
      - php

  PHP:
    Membina :.
    Jilid:
      - ./:/var/www/html
    Persekitaran:
      - app_env = prod

Sorotan konfigurasi nginx:

  • Hidangkan hanya public/ direktori
  • Blok akses ke fail .env , .git , dan konfigurasi
  • Tetapkan tajuk yang betul (keselamatan, caching)
  • Lulus permintaan php ke php:9000

Contoh Blok Lokasi:

 Lokasi ~ \ .php $ {
    fastcgi_pass php: 9000;
    fastcgi_index index.php;
    fastcgi_param script_filename/var/www/html/public $ fastcgi_script_name;
    termasuk fastcgi_params;
}

? Mengoptimumkan untuk membina dan runtime

Multi-stage membina (jika diperlukan untuk alat seperti komposer):

 # Membina peringkat
Dari komposer: terkini sebagai komposer
Salin composer.json composer.lock ./
Jalankan Pemasangan Komposer --No-Dev-Mengoptimumkan-Autoloader-No-Scripts

# Peringkat Akhir
Dari PHP: 8.3-fpm-alpine
Salin -dari = komposer/app/vendor ./Vendor
Salin. .

Pengoptimuman Runtime Utama:

  • Tetapkan APP_ENV=prod untuk membolehkan pengoptimuman kerangka (misalnya, Symfony, Laravel)
  • Gunakan --optimize-autoloader dan --classmap-authoritative dalam komposer
  • Jalankan sebagai pengguna bukan akar:
     Jalankan Adduser -D -S /BIN /SH WWW
    Pengguna www

? Onton tambah penyelia (pilihan tetapi berguna)

Sekiranya anda perlu menjalankan PHP-FPM dan Cron atau daemon lain:

 Jalankan APK Tambah-Penyelia No-Cache
Copy ./docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
Cmd ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

Konfigurasi Supervisord:

 [Supervisord]
Nodaemon = benar

[Program: PHP-FPM]
perintah = php-fpm
stdout_logfile =/dev/stdout
stderr_logfile =/dev/stderr

[Program: Cron]
perintah = cron -f

? Ujian sebelum menggunakan

Sebelum menyebutnya "siap sedia," sahkan:

  • [] Tiada maklumat sensitif dalam persekitaran atau konfigurasi
  • [] Log ralat pergi ke stdout/stderr (untuk pemandu pembalakan docker)
  • [] Pemeriksaan kesihatan ditakrifkan:
     HealthCheck-interval = 30s --Timeout = 3s-start-tempoh = 5s-retries = 3 \
      Cmd curl -f http: // localhost/kesihatan || Keluar 1
  • [] Imej diimbas untuk kelemahan (Gunakan docker scan atau alat CI)
  • [] Ia berfungsi tanpa pemasangan volum (iaitu, kod tertanam)

  • Nota akhir

    Baki persediaan PHP Docker yang siap dihasilkan:

    • Keselamatan (imej minimum, konfigurasi selamat, pengguna bukan akar)
    • Prestasi (Opcache, JIT, Pengoptimuman Autoloader)
    • Pengekalkan (jelas dockerfiles, pemisahan kebimbangan)
    • Observability (Log ke STDOUT, Pemeriksaan Kesihatan)

    Anda tidak memerlukan Kubernet pada hari pertama, tetapi anda memerlukan asas yang kukuh. Mulakan konfigurasi mudah, automatik, dan ujian seperti sudah dalam pengeluaran.

    Pada asasnya: jika ia tidak selamat, cepat, dan dapat dilihat, ia bukan pengeluaran-siap.

    Atas ialah kandungan terperinci Mewujudkan persekitaran docker siap pengeluaran untuk php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1535
276
VSCODE SETTINGS.JSON Lokasi VSCODE SETTINGS.JSON Lokasi Aug 01, 2025 am 06:12 AM

Fail Tetapan.JSON terletak di laluan peringkat pengguna atau ruang kerja dan digunakan untuk menyesuaikan tetapan vscode. 1. Laluan peringkat pengguna: Windows adalah C: \ Users \\ AppData \ Roaming \ code \ user \ settings.json, macOS adalah /users//library/applicationsupport/code/user/settings.json, linux adalah/ 2. Laluan Tahap Ruang Kerja: .VSCODE/Tetapan dalam Direktori Root Projek

Pergi dengan contoh contoh pembalakan middleware http Pergi dengan contoh contoh pembalakan middleware http Aug 03, 2025 am 11:35 AM

HTTP Log Middleware di GO boleh merakam kaedah permintaan, laluan, IP klien dan memakan masa. 1. Gunakan http.handlerfunc untuk membungkus pemproses, 2. Rekod waktu mula dan masa akhir sebelum dan selepas memanggil next.servehttp, 3. Dapatkan IP pelanggan sebenar melalui r.remoteaddr dan X-forward-for headers, 4. Gunakan log.printf untuk mengeluarkan log permintaan, 5. Kod sampel lengkap telah disahkan untuk dijalankan dan sesuai untuk memulakan projek kecil dan sederhana. Cadangan lanjutan termasuk menangkap kod status, menyokong log JSON dan meminta penjejakan ID.

Penonton pdf tepi tidak berfungsi Penonton pdf tepi tidak berfungsi Aug 07, 2025 pm 04:36 PM

Testthepdfinanotherapptodetermineiftheisseiswiththefileoredge.2.enableTetHEBuilt-Inpdfviewerbyturningoff "AlwaysopenpdffileseXternally" dan "muat turun" inedgesettings.3.clearbrowsdataincludingcookiesandcookiescookiesandcookiescookiesandcookiescookieshincookieshincookiescookiescookiescookiescookiescookiescookiescookiescookiescokiescookiescookiescookiescookiescookiescooker

Menggunakan PHP untuk mengikis data dan automasi web Menggunakan PHP untuk mengikis data dan automasi web Aug 01, 2025 am 07:45 AM

UseGuzzleforrobustHTTPrequestswithheadersandtimeouts.2.ParseHTMLefficientlywithSymfonyDomCrawlerusingCSSselectors.3.HandleJavaScript-heavysitesbyintegratingPuppeteerviaPHPexec()torenderpages.4.Respectrobots.txt,adddelays,rotateuseragents,anduseproxie

Pembangun Yii: Menguasai Kemahiran Teknikal Penting Pembangun Yii: Menguasai Kemahiran Teknikal Penting Aug 04, 2025 pm 04:54 PM

Untuk menjadi tuan YII, anda perlu menguasai kemahiran berikut: 1) Memahami seni bina MVC YII, 2) mahir dalam menggunakan ActiveReCordorm, 3) dengan berkesan menggunakan alat penjanaan kod GII, 4) menguasai peraturan pengesahan YII, 5) mengoptimumkan prestasi pertanyaan pangkalan data, 6) secara berterusan memberi perhatian kepada sumber -sumber YII. Melalui pembelajaran dan amalan kemahiran ini, keupayaan pembangunan di bawah kerangka YII dapat diperbaiki secara komprehensif.

Menggunakan jenis html `input` untuk data pengguna Menggunakan jenis html `input` untuk data pengguna Aug 03, 2025 am 11:07 AM

Memilih jenis htmlinput yang betul dapat meningkatkan ketepatan data, meningkatkan pengalaman pengguna, dan meningkatkan kebolehgunaan. 1. Pilih jenis input yang sepadan mengikut jenis data, seperti teks, e -mel, tel, nombor dan tarikh, yang secara automatik boleh menyemak dan menyesuaikan diri dengan papan kekunci; 2. Gunakan HTML5 untuk menambah jenis baru seperti URL, Warna, Julat dan Carian, yang dapat memberikan kaedah interaksi yang lebih intuitif; 3. Gunakan pemegang tempat dan sifat -sifat yang diperlukan untuk meningkatkan kecekapan dan ketepatan pengisian bentuk, tetapi harus diperhatikan bahawa pemegang tempat tidak dapat menggantikan label.

Pintasan kod vs untuk memberi tumpuan kepada Panel Explorer Pintasan kod vs untuk memberi tumpuan kepada Panel Explorer Aug 08, 2025 am 04:00 AM

Di VSCode, anda boleh menukar kawasan panel dan penyuntingan dengan cepat melalui kekunci pintasan. Untuk melompat ke panel Explorer kiri, gunakan CTRL Shift E (Windows/Linux) atau CMD Shift E (MAC); Kembali ke kawasan penyuntingan untuk menggunakan Ctrl `atau ESC atau Ctrl 1 ~ 9. Berbanding dengan operasi tetikus, pintasan papan kekunci lebih cekap dan tidak mengganggu irama pengekodan. Petua lain termasuk: Kotak carian fokus Ctrl Kctrl e, fail menamakan semula F2, memadam fail, masukkan fail terbuka, arrow kunci memperluas/runtuh folder.

Tetap: Kemas kini Windows gagal dipasang Tetap: Kemas kini Windows gagal dipasang Aug 08, 2025 pm 04:16 PM

RuntheWindowsUpdateTroubleshooterviaSettings>Update&Security>Troubleshoottoautomaticallyfixcommonissues.2.ResetWindowsUpdatecomponentsbystoppingrelatedservices,renamingtheSoftwareDistributionandCatroot2folders,thenrestartingtheservicestocle

See all articles