Buat projek Laravel menggunakan bekas komposer; 2. Tulis dockerfile yang mengandungi sambungan PHP dan konfigurasi Apache; 3. Tentukan perkhidmatan App, MySQL, dan phpmyadmin melalui docker-ympose.yml; 4. Konfigurasi tuan rumah maya Apache untuk menyokong penghalaan Laravel; 5. Kemas kini fail .Env untuk menyediakan sambungan pangkalan data; 6. Jalankan Docker -Compose UP -D -Membina untuk memulakan bekas; 7. Melaksanakan pemasangan komposer dan penjanaan utama dalam bekas; 8. Secara pilihan menjalankan penghijrahan; 9. Gunakan Docker-Compose Exec untuk melaksanakan perintah Artisan semasa pembangunan, dan kod tersebut disegerakkan dalam masa nyata. Selepas mengubahsuai Dockerfile, imej perlu dibina semula, dan akhirnya menyedari penggunaan persekitaran pembangunan tempatan Laravel di Docker.
Menyediakan Laravel dengan Docker tidak rumit sebaik sahaja anda memahami asas -asas bekas dan cara menyusun perkhidmatan anda. Berikut adalah panduan praktikal untuk mendapatkan projek Laravel yang berjalan di Docker menggunakan Docker Compose
.

? 1. Buat projek Laravel baru (atau gunakan yang ada)
Jika anda mula segar, gunakan komposer melalui Docker untuk membuat aplikasi Laravel:
Docker Run--rm -v $ (pwd):/aplikasi komposer create-project-prefer-dist laravel/laravel my-laravel-app
Gantikan my-laravel-app
dengan nama projek anda. Ini mengelakkan memerlukan komposer yang dipasang secara tempatan.

Sekarang navigasi ke projek anda:
CD My-Laravel-app
? 2. Buat fail docker
Buat Dockerfile
dalam Root Projek untuk menentukan persekitaran PHP:

# Gunakan Php 8.3 dengan Apache (anda juga boleh menggunakan nginx) Dari PHP: 8.3-APACHE # Pasang kebergantungan sistem Jalankan kemas kini apt-get & apt-get install -y \ git \ curl \ libpng-dev \ libonig-dev \ libxml2-dev \ zip \ unzip # Cache Cache Jalankan Apt -Get Clean && rm -rf/var/lib/apt/lists/* # Pasang sambungan PHP Jalankan docker-php-ext-memasang pdo_mysql mbstring exif pcntl bcmath gd # Pasang komposer Salin -dari = komposer: terbaru/usr/bin/komposer/usr/bin/komposer # Tetapkan direktori kerja Workdir/var/www/html # Salin kod aplikasi yang ada Salin. /var/www/html/ # Salin Apache Vhost Config Salin .docker/vhost.conf /etc/apache2/sites-available/000-default.conf # Dayakan mod_rewrite untuk laluan laravel Jalankan A2Enmod Rewrite # Betulkan kebenaran Run Chown -R www-data: www-data/var/www/html
? 3. Sediakan Docker
Buat fail docker-compose.yml
dalam akar:
Versi: '3.8' Perkhidmatan: App: Membina: Konteks :. Dockerfile: Dockerfile Pelabuhan: - "8000: 80" Persekitaran: - APACHE_RUN_USER = www-data - APACHE_RUN_GROUP = www-data Jilid: -.:/var/www/html bergantung_on: - db DB: Imej: MySQL: 8.0 Perintah:--Default-Authentication-Plugin = mysql_native_password Mulakan semula: Sentiasa Persekitaran: Mysql_database: laravel Mysql_root_password: rootpassword Mysql_user: laravel_user Mysql_password: laravel_password Pelabuhan: - "3306: 3306" Jilid: - mysql_data:/var/lib/mysql phpmyadmin: Imej: phpmyadmin/phpmyadmin Pelabuhan: - "8080: 80" Persekitaran: Pma_host: db Pma_user: laravel_user Pma_password: laravel_password bergantung_on: - db Jilid: mysql_data:
Pilihan: Keluarkan
phpmyadmin
jika anda tidak memerlukannya.
? 4. Konfigurasi Apache Host Virtual
Buat fail .docker/vhost.conf
:
<VirtualHost *: 80> ServerName Localhost Documentroot/var/www/html/public <Direktori/var/www/html/public> Allowoverride semua Memerlukan semua yang diberikan Indeks Pilihan berikut </Direktori> Errorlog $ {APACHE_LOG_DIR} /ror.log CustomLog $ {APACHE_LOG_DIR} /access.log digabungkan </VirtualHost>
Ini membolehkan .htaccess
dan mod_rewrite
untuk penghalaan Laravel.
? 5. Kemas kini persekitaran Laravel
Edit fail .env
anda (buatnya dari .env.example
):
App_name = laravel App_env = tempatan App_key = App_debug = true App_url = http: // localhost: 8000 Db_connection = mysql Db_host = db Db_port = 3306 Db_database = laravel Db_username = laravel_user Db_password = laravel_password
Nota: DB_HOST=db
sepadan dengan nama perkhidmatan dalam docker-compose.yml
.
? 6. Membina dan menjalankan bekas
Jalankan arahan ini di terminal anda:
Docker -Compose UP -D -Membina
Ini membina bekas aplikasi, memulakan MySQL dan phpmyadmin.
? 7. Pasang kebergantungan Laravel & menghasilkan kunci
Jalankan Komposer Pasang dan Buat Kunci Aplikasi di dalam bekas:
Pemasangan Komposer Aplikasi Exec-Compose Docker Docker-Compose Exec App PHP Artisan Kunci: Menjana Docker-compose exp app php artisan config: cache
? 8. Migrasi Jalankan (Pilihan)
Memohon Migrasi Laravel:
Docker-compose exp app php artisan berhijrah
Anda kini boleh mengakses:
- App Laravel:
http://localhost:8000
- phpmyadmin:
http://localhost:8080
(pilihan)
? 9. Petua Pembangunan
- Kod anda dipasang melalui jumlah, jadi perubahan tempatan mencerminkan dengan serta -merta.
- Untuk arahan tukang, selalu gunakan:
Docker-compose exp app php artisan <command>
- Jika anda menambah sambungan PHP atau menukar
Dockerfile
, membina semula:Docker-Compose Build App
? Nota Akhir
Persediaan ini memberi anda:
- Laravel berjalan di Apache PHP
- Pangkalan Data MySQL
- GUI pilihan melalui phpmyadmin
- Pengasingan Docker Penuh
Anda boleh menukar Apache untuk Nginx PHP-FPM untuk pengeluaran, tetapi ini sesuai untuk pembangunan tempatan.
Pada asasnya, simpan
.env
,Dockerfile
, dandocker-compose.yml
selaras-dan anda baik untuk pergi.Atas ialah kandungan terperinci Bagaimana untuk menyediakan Laravel dengan Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Terdapat tiga cara untuk menambah peraturan pengesahan tersuai di Laravel: Menggunakan penutupan, kelas peraturan, dan permintaan borang. 1. Gunakan penutupan sesuai untuk pengesahan ringan, seperti menghalang nama pengguna "admin"; 2. Buat kelas peraturan (seperti ValidUserNamerule) untuk membuat logik kompleks lebih jelas dan dapat dipelihara; 3. Mengintegrasikan pelbagai peraturan dalam permintaan borang dan mengurus logik pengesahan secara berpusat. Pada masa yang sama, anda boleh menetapkan arahan melalui kaedah mesej tersuai atau array mesej ralat masuk untuk meningkatkan fleksibiliti dan penyelenggaraan.

Kaedah teras untuk aplikasi Laravel untuk melaksanakan sokongan berbilang bahasa termasuk: menetapkan fail bahasa, penukaran bahasa dinamik, penghalaan URL terjemahan, dan mengurus kekunci terjemahan dalam templat bilah. Pertama, aturkan rentetan setiap bahasa dalam folder yang sepadan (seperti en, es, fr) dalam direktori /sumber /lang, dan tentukan kandungan terjemahan dengan mengembalikan array bersekutu; 2. Terjemahkan nilai utama melalui panggilan fungsi penolong \ _ _ _ _ (), dan gunakan app :: setLocale () untuk menggabungkan sesi atau parameter penghalaan untuk merealisasikan pertukaran bahasa; 3. Untuk URL Terjemahan, laluan boleh ditakrifkan untuk bahasa yang berbeza melalui kumpulan penghalaan prefixed, atau alias laluan dalam fail bahasa yang dipetakan secara dinamik; 4. Simpan kunci terjemahan ringkas dan

TowOrkeffectivyWithPivotTableSinlaravel, firstAccessPivotDataingWithPivot () orwithTimestamps (), thenupdateEntriesWithupdatee XistingPivot (), ManagerelationshipSviadetach () andSync (), AnduseCustompivotModelSwhenneeded.1.usewithPivot () toincludespecificcol

Laravelprovidesacleanandflexiblaytosendnotificationsviamultiplechannelslikeemail, sms, in-appalerts, andpushnotifications.youdinotificationchannelsinthevia () methodoFanotificationClass, andImplementsPecificmethods (toDDoTaTaStoMail (toDDoTaTaStomail (toDDoTaTaSTOMAIL (

ServiceProvider adalah mekanisme teras yang digunakan dalam rangka kerja Laravel untuk mendaftarkan perkhidmatan dan memulakan logik. Anda boleh membuat perkhidmatan perkhidmatan tersuai melalui perintah artisan; 1. Kaedah daftar digunakan untuk mengikat perkhidmatan, mendaftarkan singleton, menetapkan alias, dan lain -lain, dan perkhidmatan lain yang belum dimuatkan tidak dapat dipanggil; 2. Kaedah boot berjalan selepas semua perkhidmatan didaftarkan dan digunakan untuk mendaftarkan pendengar acara, melihat sintesis, middleware dan logik lain yang bergantung kepada perkhidmatan lain; Kegunaan umum termasuk antara muka dan pelaksanaan yang mengikat, mendaftarkan fasad, memuatkan konfigurasi, mendaftarkan arahan baris arahan dan melihat komponen; Adalah disyorkan untuk memusatkan pengikatan yang relevan kepada perkhidmatan perkhidmatan untuk mengurus, dan memberi perhatian kepada pendaftaran

Suntikan ketergantungan secara automatik mengendalikan kebergantungan kelas melalui bekas perkhidmatan di Laravel tanpa objek baru manual. Intinya adalah suntikan pembina dan suntikan kaedah, seperti lulus secara automatik dalam contoh permintaan dalam pengawal. Ketergantungan parses Laravel melalui jenis arahan dan rekursif mencipta objek yang diperlukan. Antara muka dan pelaksanaan yang mengikat boleh digunakan oleh pembekal perkhidmatan untuk menggunakan kaedah mengikat, atau singleton untuk mengikat singleton. Apabila menggunakannya, anda perlu memastikan jenis arahan, elakkan komplikasi pembina, gunakan pengikatan konteks dengan berhati -hati, dan memahami peraturan parsing automatik. Menguasai ini dapat meningkatkan fleksibiliti dan penyelenggaraan kod.

Kaedah teras untuk mengendalikan pengecualian dan kesilapan rakaman dalam aplikasi Laravel termasuk: 1. Gunakan Kelas Pengecualian APP \ Pengecualian untuk mengurus pengecualian yang tidak diasingkan, dan merekodkan atau memberitahu maklumat pengecualian melalui kaedah laporan (), seperti menghantar pemberitahuan Slack; 2. Gunakan monolog untuk mengkonfigurasi sistem log, tetapkan kaedah log dan output dalam config/logging.php, dan membolehkan ralat dan log peringkat di atas dalam persekitaran pengeluaran. Pada masa yang sama, maklumat pengecualian terperinci boleh direkodkan secara manual dalam laporan () dalam kombinasi dengan konteks; 3. Sesuaikan kaedah render () untuk mengembalikan tindak balas ralat format JSON bersatu, meningkatkan kecekapan kerjasama depan dan belakang API. Langkah -langkah ini adalah

Pengoptimuman prestasi Laravel dapat meningkatkan kecekapan aplikasi melalui empat arah teras. 1. Gunakan mekanisme cache untuk mengurangkan pertanyaan pendua, menyimpan data yang jarang berubah melalui cache :: ingat () dan kaedah lain untuk mengurangkan kekerapan akses pangkalan data; 2. Mengoptimumkan pangkalan data dari model ke pernyataan pertanyaan, elakkan pertanyaan n 1, menentukan pertanyaan medan, menambah indeks, pemprosesan paging dan pemisahan membaca dan menulis, dan mengurangkan kesesakan; 3. Gunakan operasi yang memakan masa seperti menghantar e-mel dan mengeksport fail ke pemprosesan asynchronous giliran, gunakan penyelia untuk menguruskan pekerja dan menubuhkan mekanisme semula; 4. Gunakan middleware dan penyedia perkhidmatan dengan munasabah untuk mengelakkan logik kompleks dan kod permulaan yang tidak perlu, dan kelewatan pemuatan perkhidmatan untuk meningkatkan kecekapan permulaan.
