Panduan Bahasa dan Kerangka ke...
Panduan Menjalankan Aplikasi Laravel dalam Kontainer
32 mnt
back4app containers adalah platform yang kuat untuk hosting aplikasi laravel dengan kemampuannya untuk secara otomatis menerapkan aplikasi laravel yang terdocker, anda dapat meluncurkan proyek anda dalam lingkungan yang dapat diskalakan dan fleksibel dengan mudah dalam panduan ini, kami akan memandu anda melalui proses mempersiapkan dan menerapkan aplikasi laravel anda di back4app containers, mencakup segala hal mulai dari proyek sederhana hingga pengaturan yang lebih kompleks kami akan mulai dengan persiapan yang diperlukan, kemudian beralih ke dockerizing aplikasi, mengujinya secara lokal, mendorong proyek ke github, mengatur proyek di back4app containers, memantau penerapan, dan memecahkan masalah umum jika anda memiliki pertanyaan atau komentar, silakan bergabung dalam percakapan di saluran #containers di komunitas back4app di slack kapan saja anda juga dapat menghubungi kami di community\@back4app com kapan saja, jika anda ingin memeriksa contoh proyek laravel yang berfungsi di kontainer back4app, kunjungi https //github com/templates back4app/containers laravel sample 1 persiapkan aplikasi laravel anda a struktur proyek verifikasi bahwa aplikasi laravel anda mengikuti struktur direktori yang benar, dengan semua file dan folder yang diperlukan, seperti app , routes , resources , dan public , terorganisir dengan baik b ketergantungan periksa apakah semua ketergantungan yang diperlukan terdaftar di composer json file, termasuk versi yang benar pastikan anda telah menginstal semua ketergantungan menggunakan composer install untuk menghasilkan file composer lock c variabel lingkungan jika aplikasi anda bergantung pada variabel lingkungan, pastikan anda memiliki file env dengan variabel yang diperlukan didefinisikan saat menerapkan ke back4app containers, anda perlu mengonfigurasi variabel lingkungan ini di pengaturan penerapan d pengaturan server (jika berlaku) jika aplikasi laravel anda mencakup server kustom (misalnya, apache atau nginx), pastikan itu diatur dan dikonfigurasi dengan benar untuk melayani aplikasi laravel anda uji server anda secara lokal untuk memastikan ia berfungsi seperti yang diharapkan e optimasi aplikasi optimalkan aplikasi laravel anda dengan menerapkan praktik terbaik kinerja gunakan alat seperti lighthouse untuk mengaudit aplikasi anda dan mengatasi masalah kinerja atau aksesibilitas f kompatibilitas lintas browser uji aplikasi anda di berbagai browser dan perangkat untuk memastikan rendering dan fungsionalitas yang tepat setelah anda meninjau dan mempersiapkan aplikasi laravel anda dengan seksama, anda dapat melanjutkan ke langkah berikutnya, yaitu membuat dockerfile untuk proyek anda 2 dockerisasi dockerisasi aplikasi laravel melibatkan pembuatan dockerfile di direktori root proyek anda dockerfile berisi instruksi untuk membangun gambar docker dari aplikasi anda, yang kemudian dapat diterapkan ke kontainer back4app berikut adalah penjelasan rinci tentang cara membuat dockerfile untuk aplikasi laravel biasa 1 buat file baru bernama dockerfile (tanpa ekstensi file) di direktori root aplikasi laravel anda 2 tentukan gambar dasar mulai dockerfile dengan menentukan gambar dasar menggunakan perintah from untuk aplikasi laravel yang khas, gambar dasar harus berupa gambar php, misalnya, php 8 1 apache from php 8 1 apache 3 tetapkan direktori kerja gunakan perintah workdir untuk menetapkan direktori kerja untuk aplikasi anda di dalam kontainer docker ini adalah tempat di mana file aplikasi anda akan disimpan dan dieksekusi workdir /var/www/html 4 salin file proyek salin semua file dari direktori aplikasi laravel ke dalam kontainer docker menggunakan perintah copy copy 5 instal dependensi gunakan perintah run untuk menginstal dependensi yang diperlukan untuk aplikasi laravel anda menggunakan composer install run apt get update && apt get install y \\ unzip \\ libzip dev \\ && docker php ext install zip \\ && php r "copy('https //getcomposer org/installer', 'composer setup php');" \\ && php composer setup php install dir=/usr/local/bin filename=composer \\ && php r "unlink('composer setup php');" \\ && composer install no scripts no autoloader prefer dist 6 siapkan server apache aktifkan modul rewrite apache, konfigurasikan file 000 default conf untuk menyertakan pengaturan apache yang tepat untuk laravel, dan siapkan variabel lingkungan apache run a2enmod rewrite copy /docker/apache/000 default conf /etc/apache2/sites available/ env apache document root /var/www/html/public 7 hasilkan kunci aplikasi laravel laravel memerlukan kunci aplikasi untuk mengenkripsi sesi pengguna dan data sensitif lainnya gunakan perintah run untuk menghasilkan kunci aplikasi run php artisan key\ generate 8 bangun aplikasi laravel tambahkan perintah run untuk membangun aplikasi laravel anda menggunakan skrip build anda, biasanya composer dump autoload , php artisan config\ cache , php artisan route\ cache dan php artisan view\ cache run composer dump autoload \\ && php artisan config\ cache \\ && php artisan route\ cache \\ && php artisan view\ cache 9 paparkan port server gunakan perintah expose untuk menentukan port di mana server anda akan berjalan di dalam kontainer docker misalnya, anda dapat menggunakan port 80 expose 80 10 mulai server gunakan perintah cmd untuk menentukan perintah yang memulai server untuk melayani aplikasi laravel yang telah anda bangun cmd \["apache2 foreground"] dockerfile lengkap untuk aplikasi laravel biasa harus terlihat seperti ini \#dockerfile example on running php laravel app using apache web server from php 8 1 apache \# install necessary libraries run apt get update && apt get install y \\ libonig dev \\ libzip dev \# install php extensions run docker php ext install \\ mbstring \\ zip \# copy laravel application copy /var/www/html \# set working directory workdir /var/www/html \# install composer copy from=composer\ latest /usr/bin/composer /usr/bin/composer \# install dependencies run composer install \# change ownership of our applications run chown r www data\ www data /var/www/html run docker php ext install mbstring copy env example env run php artisan key\ generate \# expose port 80 expose 80 \# adjusting apache configurations run a2enmod rewrite copy apache config conf /etc/apache2/sites available/000 default conffrom php 8 1 apache workdir /var/www/html copy run apt get update && apt get install y \\ unzip \\ libzip dev \\ && docker php ext install zip \\ && php r "copy('https //getcomposer org/installer', 'composer setup php');" \\ && php composer setup php install dir=/usr/local/bin filename=composer \\ && php r "unlink('composer setup php');" \\ && composer install no scripts no autoloader prefer dist run a2enmod rewrite copy /docker/apache/000 default conf /etc/apache2/sites available/ env apache document root /var/www/html/public run php artisan key\ generate \\ && composer dump autoload \\ && php artisan config\ cache \\ && php artisan route\ cache \\ && php artisan view\ cache expose 80 cmd \["apache2 foreground"] 3 uji proyek anda secara lokal sebelum menerapkan aplikasi laravel anda di back4app containers, penting untuk mengujinya secara lokal menggunakan docker ini membantu memastikan bahwa aplikasi anda berjalan seperti yang diharapkan dan membantu anda mengidentifikasi serta memperbaiki masalah sebelum penerapan bangun gambar docker untuk aplikasi laravel anda di terminal anda, navigasikan ke direktori root proyek anda dan jalankan perintah berikut, mengganti nama aplikasi anda dengan nama aplikasi anda docker build t nama aplikasi anda jalankan kontainer docker secara lokal selanjutnya, jalankan perintah berikut untuk memulai kontainer docker secara lokal perintah ini memetakan port yang diekspos oleh kontainer (misalnya, 80) ke port di mesin lokal anda (misalnya, 8000) docker run p 8080 80 nama aplikasi anda uji aplikasi anda buka browser web dan navigasikan ke http //localhost 8000/ untuk melihat aplikasi laravel anda pastikan semuanya berfungsi seperti yang diharapkan jika anda mengalami masalah, selesaikan sebelum melanjutkan ke langkah berikutnya 4 push proyek anda ke github buat sebuah gitignore file di direktori root proyek anda untuk mengecualikan file yang tidak perlu atau sensitif dari repositori anda (misalnya, vendor , env , node modules , dll ) inisialisasi repositori git, commit file proyek anda, dan push ke repositori jarak jauh (misalnya, di github) gitcopy codegit add git commit m "initial commit" git remote add origin \<your remote repo url> git push u origin master 5 deploy aplikasi anda di back4app containers setelah membuat akun back4app anda, anda dapat mengikuti langkah langkah yang terdaftar di dokumen https //www back4app com/docs containers/integrate with github https //www back4app com/docs containers/prepare your deployment singkatnya, kontainer akan mengikuti instruksi yang terperinci di dockerfile anda dan mulai membuat aplikasi anda 6 monitor deployment dan tangani kemungkinan kesalahan perhatikan log dan status deployment di dasbor back4app containers tangani setiap kesalahan atau masalah yang muncul selama deployment dalam kasus proyek yang lebih kompleks, pastikan semua layanan yang diperlukan (seperti basis data atau api eksternal) dikonfigurasi dengan benar dan dapat diakses 7 menyelesaikan masalah umum kesalahan deployment umum saat menjalankan aplikasi laravel di back4app containers terdaftar https //www back4app com/docs containers/troubleshooting kesalahan umum lainnya saat melakukan deployment aplikasi laravel adalah konfigurasi port yang salah aplikasi laravel harus dikonfigurasi untuk berjalan di port yang ditentukan saat dikerahkan di back4app containers jika aplikasi masih tidak dapat diakses, periksa dockerfile untuk memastikan port yang benar diekspos (misalnya, expose 80 untuk port 80) ketergantungan yang tidak kompatibel atau hilang pastikan semua ketergantungan yang diperlukan terdaftar di composer json file dan bahwa versi mereka kompatibel satu sama lain dan dengan kode aplikasi anda ketergantungan yang hilang atau tidak kompatibel dapat menyebabkan kesalahan saat runtime variabel lingkungan atau konfigurasi yang tidak valid periksa apakah aplikasi anda bergantung pada variabel lingkungan atau file konfigurasi tertentu, dan pastikan mereka diatur dengan benar di lingkungan back4app containers atur variabel lingkungan yang diperlukan di dockerfile anda menggunakan perintah env tidak dapat menentukan nama domain lengkap server" kesalahan masalah kesalahan ini terjadi ketika apache tidak dapat menentukan nama domain lengkap (fqdn) dari server solusi untuk menekan kesalahan ini, anda dapat mengatur direktif servername secara global dalam konfigurasi apache modifikasi file konfigurasi apache ( apache config conf ) sebagai berikut apache config conf servername localhost \<virtualhost 80> documentroot /var/www/html/public \<directory /var/www/html/public> allowoverride all order allow,deny allow from all \</directory> \# log access messages to access log file errorlog /var/log/apache2/access log customlog /var/log/apache2/access log combined \# log error messages to error log file loglevel error errorlog /var/log/apache2/error log \</virtualhost> 500 kesalahan internal server masalah kesalahan ini menunjukkan bahwa ada masalah dengan konfigurasi server atau aplikasi itu sendiri solusi periksa log kesalahan apache ( /var/log/apache2/error log ) untuk pesan kesalahan yang lebih spesifik ini dapat membantu mengidentifikasi penyebab utama kesalahan verifikasi bahwa file konfigurasi apache ( apache config conf ) telah disiapkan dengan benar dengan documentroot yang sesuai dan direktif directory untuk aplikasi laravel anda pastikan bahwa ekstensi php yang diperlukan telah diinstal dan diaktifkan dalam dockerfile gunakan perintah docker php ext install untuk menginstal ekstensi yang diperlukan, dan perintah run a2enmod untuk mengaktifkan modul apache periksa izin file dan kepemilikan file aplikasi laravel anda gunakan perintah chown untuk memastikan bahwa file dimiliki oleh pengguna yang sesuai ( www data dalam kebanyakan kasus) masalah konfigurasi apache masalah pengaturan apache yang salah atau tidak terkonfigurasi dapat menyebabkan kesalahan atau perilaku yang tidak terduga solusi periksa kembali file konfigurasi apache ( apache config conf ) untuk memastikan bahwa itu menunjuk dengan benar ke documentroot aplikasi laravel dan memiliki direktif directory yang sesuai aktifkan modul rewrite dengan menjalankan run a2enmod rewrite dalam dockerfile ini diperlukan agar routing laravel berfungsi dengan baik ketergantungan yang hilang atau tidak benar masalah jika aplikasi laravel anda memiliki ketergantungan yang hilang atau tidak benar, itu dapat mengakibatkan kesalahan atau perilaku yang tidak terduga solusi periksa file composer json untuk memastikan bahwa semua ketergantungan yang diperlukan terdaftar, termasuk versi yang benar jalankan composer install untuk menginstal ketergantungan dan menghasilkan file composer lock verifikasi bahwa ekstensi php yang diperlukan telah diinstal dan diaktifkan di dockerfile menggunakan perintah docker php ext install masalah izin file masalah izin file yang tidak benar dapat menyebabkan masalah dengan penyimpanan file atau cache laravel solusi gunakan perintah chown di dockerfile untuk mengubah kepemilikan file aplikasi laravel ke pengguna yang sesuai ( www data dalam kebanyakan kasus) pastikan bahwa direktori penyimpanan dan cache memiliki izin yang benar anda dapat menjalankan perintah chmod di dockerfile untuk mengatur izin yang sesuai kecelakaan aplikasi atau pengecualian yang tidak ditangani pengecualian yang tidak ditangani atau kecelakaan dalam kode aplikasi laravel anda dapat menyebabkan kegagalan penyebaran atau perilaku yang tidak terduga periksa log aplikasi anda untuk pesan kesalahan, dan tangani masalah apa pun dalam kode anda periksa log kontainer dengan menjalankan docker logs nama aplikasi anda untuk melihat apakah ada kesalahan atau pengecualian yang terjadi gunakan alat seperti sentry untuk melacak dan memantau kesalahan dalam aplikasi anda konfigurasi server jika aplikasi laravel anda mencakup konfigurasi server kustom (misalnya, apache atau nginx), pastikan itu dikonfigurasi dengan benar di dockerfile dan bahwa modul atau konfigurasi yang diperlukan telah diinstal izin file yang salah izin file yang salah dapat menyebabkan kesalahan runtime saat menerapkan aplikasi laravel di back4app containers pastikan bahwa direktori dan file yang diperlukan memiliki izin yang benar, seperti yang dijelaskan dalam dokumentasi laravel batasan memori jika aplikasi anda kehabisan memori saat diterapkan di back4app containers, pertimbangkan untuk meningkatkan batas memori di dockerfile menggunakan pengaturan php ini masalah jaringan jika aplikasi laravel anda bergantung pada layanan eksternal atau api, pastikan bahwa mereka dikonfigurasi dengan benar dan dapat diakses dari dalam lingkungan back4app containers gunakan perintah jaringan docker untuk memecahkan masalah jaringan 8 skalakan aplikasi anda untuk proyek yang lebih kompleks yang memerlukan sumber daya tambahan atau penskalaan horizontal/vertikal, pertimbangkan untuk meningkatkan rencana back4app containers anda untuk menangani peningkatan lalu lintas dan beban 9 aplikasi contoh untuk proyek aplikasi laravel contoh, anda dapat pergi ke https //github com/templates back4app/containers python flask sample