Rumah > Peranti teknologi > industri IT > Menyiapkan persekitaran pembangunan PHP moden dengan Docker

Menyiapkan persekitaran pembangunan PHP moden dengan Docker

Lisa Kudrow
Lepaskan: 2025-02-14 09:43:11
asal
856 orang telah melayarinya

Tutorial ini membimbing anda melalui menubuhkan persekitaran pembangunan PHP menggunakan Docker, amalan terbaik semasa. Kami akan merangkumi evolusi persekitaran pembangunan PHP, menonjolkan kelebihan Docker atas kaedah yang lebih lama. Jika anda ingin melangkau sejarah, lompat ke langkah konfigurasi.

Setting Up a Modern PHP Development Environment with Docker

Sejarah ringkas persekitaran pembangunan PHP

Pace pesat pembangunan web memerlukan pendekatan moden. Tutorial ketinggalan zaman berlimpah. Mari kita tinjau evolusi:

  1. Pemasangan Manual: Proses sukar memasang Apache, PHP, dan MySQL secara manual pada masa lalu. Ini memerlukan kepakaran yang ketara dan memakan masa.

  2. Pakej Pra -Konfigurasi (Xampp, WAMP):
  3. Pakej -pakej ini dipermudahkan, tetapi ketidakkonsistenan antara persekitaran pembangunan dan pengeluaran (versi perisian yang berbeza, perbezaan OS) mencipta cabaran. Ramai pemaju masih menggunakannya, tetapi sudah tiba masanya untuk menaik taraf.

  4. Mesin maya (vagrant):
  5. Mesin maya menyediakan persekitaran pembangunan dan pengeluaran yang konsisten, tetapi adalah sumber yang berintensifkan dan kompleks untuk mengurus.

  6. Docker:
  7. Docker menawarkan manfaat mesin maya tanpa overhead. Ia membungkus aplikasi dan semua kebergantungannya ke dalam bekas, memastikan konsistensi merentasi persekitaran.

  8. Kelebihan Docker over vagrant:

Docker mengelakkan penggunaan sumber dan isu penyegerakan vagrant. Ia membolehkan beberapa laman web dengan konfigurasi yang berbeza (Apache, nginx, pelbagai versi PHP) untuk berjalan serentak, masing -masing terpencil dalam bekasnya sendiri. Memindahkan laman web semudah menyalin folder tunggal.

Menyediakan persekitaran Docker anda Setting Up a Modern PHP Development Environment with Docker

Prasyarat:

Muat turun dan pasang Docker. Pada Linux, pasang dan melalui Pengurus Pakej Pengedaran anda. Anda mungkin perlu menambah pengguna anda ke kumpulan

dan mula/aktifkan perkhidmatan Docker. Pemasang Windows dan MacOS mengendalikan ini secara automatik. Hentikan mana -mana pelayan web yang ada (Apache, nginx, dll.) Atau contoh MySQL sebelum meneruskan.

docker docker-compose Konfigurasi (docker-compose.yml): docker

Buat folder projek dan fail :

docker-compose.yml konfigurasi nginx (nginx.conf):

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/nginx.conf
      - ./app:/app
  php:
    build:
      context: .
      dockerfile: PHP.Dockerfile
    volumes:
      - ./app:/app
  mysql:
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: 'secret'
      MYSQL_USER: 'tutorial'
      MYSQL_PASSWORD: 'secret'
      MYSQL_DATABASE: 'tutorial'
    volumes:
      - mysqldata:/var/lib/mysql
    ports:
      - 3306:3306
volumes:
  mysqldata: {}
Salin selepas log masuk
Salin selepas log masuk

Buat :

nginx.conf php dockerfile (php.dockerfile):

server {
    listen 80 default_server;
    root /app/public;
    index index.php index.html index.htm;
    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
Salin selepas log masuk

Buat :

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/nginx.conf
      - ./app:/app
  php:
    build:
      context: .
      dockerfile: PHP.Dockerfile
    volumes:
      - ./app:/app
  mysql:
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: 'secret'
      MYSQL_USER: 'tutorial'
      MYSQL_PASSWORD: 'secret'
      MYSQL_DATABASE: 'tutorial'
    volumes:
      - mysqldata:/var/lib/mysql
    ports:
      - 3306:3306
volumes:
  mysqldata: {}
Salin selepas log masuk
Salin selepas log masuk

Menjalankan perkhidmatan:

Buka terminal dalam direktori projek anda dan jalankan docker-compose up. Ini akan memulakan Nginx, PHP, dan MariaDB. Akses laman web anda di http://127.0.0.1. "Hello, dunia!" Halaman ujian dalam app/public/index.html mengesahkan persediaan. Sahkan fungsi PHP dengan skrip phpinfo() dalam app/public/index.php. Sambung ke MySQL menggunakan pelanggan seperti MySQL Workbench.

Setting Up a Modern PHP Development Environment with Docker Setting Up a Modern PHP Development Environment with Docker

Penyebaran: hanya memuat naik fail projek anda (termasuk docker-compose.yml, nginx.conf, dan PHP.Dockerfile) ke pelayan anda dan jalankan docker-compose up -d untuk penempatan lancar.

Soalan Lazim: (Soalan Lazim yang disediakan sudah berstruktur dengan baik dan boleh dimasukkan secara langsung.)

Output yang disemak ini mengekalkan lokasi dan format imej asal sambil menyusun semula teks untuk kejelasan dan aliran yang lebih baik, mengelakkan plagiarisme.

Atas ialah kandungan terperinci Menyiapkan persekitaran pembangunan PHP moden dengan Docker. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan