亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Rumah pembangunan bahagian belakang tutorial php Bahagian Menggunakan aplikasi PHP (Laravel) ke Amazon ECS

Bahagian Menggunakan aplikasi PHP (Laravel) ke Amazon ECS

Oct 20, 2024 am 06:07 AM

Dalam bahagian pertama siri tutorial kami ini, kami akan menjalankan langkah-langkah untuk menggunakan aplikasi PHP (Laravel) ke Amazon ECS. Kami akan bermula dengan mencipta imej Docker, menolaknya ke Amazon ECR, mencipta Definisi Tugasan ECS, Kluster ECS, Perkhidmatan ECS dan menyambungkan nama domain kepada perkhidmatan.

Bekerja dengan Docker dan ECR

Buat fail Docker dan konfigurasi nginx

Dalam akar repo git anda, buat fail Docker dengan kandungan berikut:

# Use the official PHP-FPM image as the base
FROM public.ecr.aws/docker/library/php:fpm

# Define a user variable
ARG user=www-data

# Install system dependencies and PHP extensions
RUN apt-get update && apt-get install -y \
    git curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip unzip libzip-dev \
    nginx \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && docker-php-ext-install \
        pdo_mysql \
        mbstring \
        exif \
        pcntl \
        bcmath \
        gd \
        zip

# Install Composer
COPY --from=public.ecr.aws/composer/composer:latest-bin /usr/bin/composer /usr/bin/composer

# Create a system user for running Composer and Artisan commands
RUN mkdir -p /home/$user/.composer && \
    chown -R $user:$user /home/$user

# Copy Nginx configuration and entrypoint script
COPY ./docker/default.conf /etc/nginx/sites-enabled/default
COPY ./docker/entrypoint.sh /etc/entrypoint.sh

# Make the entrypoint script executable
RUN chmod +x /etc/entrypoint.sh

# Set the working directory
WORKDIR /var/www

# Copy the application code
COPY --chown=www-data:www-data . /var/www

# Install PHP dependencies
RUN composer install

# Expose port 80
EXPOSE 80

# Define the entrypoint
ENTRYPOINT ["/etc/entrypoint.sh"]

Buat folder baharu bernama docker dan letakkan dua fail berikut di dalam.

  • docker/entrypoint.sh
#!/usr/bin/env bash

# Start Nginx service
service nginx start

# Run Laravel migrations
php artisan migrate --force

# Create symbolic link for storage
php artisan storage:link

# Clear and optimize the application cache
php artisan optimize:clear
php artisan optimize

# Start PHP-FPM
php-fpm
  • docker/default.conf
server {
    listen 80 default_server;
    index index.php index.html;
    server_name localhost;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/public;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;

        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_hide_header X-Powered-By;

        # Tells PHP we're using a reverse proxy with TLS termination
        fastcgi_param HTTPS on;
        fastcgi_param HTTP_X_FORWARDED_PROTO $scheme;
        fastcgi_param HTTP_X_FORWARDED_SSL on;
        add_header Content-Security-Policy "upgrade-insecure-requests" always;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

Dan jadikan entrypoint.sh boleh laku dengan menjalankan chmod x docker/entrypoint.sh.

Menolak imej ke Amazon ECR

Langkah pertama ialah menolak imej ke ECR. Anda perlu melakukan langkah ini secara manual terlebih dahulu, sebelum anda boleh meneruskan dan menggunakan aplikasi ke ECS.

Buat repositori ECR

Buat repositori ECR dengan menuju ke konsol Amazon ECR, mengklik Buat repositori dan menaip nama repositori. Untuk contoh ini, kami akan menggunakan apl demo.

Part  Deploying a PHP (Laravel) application to Amazon ECS

Setelah dibuat, salin URI repositori. Anda akan memerlukan URI ini nanti.

Tolak imej ke ECR

Pilih repositori yang baru anda buat, klik pada Lihat arahan tolak, dan jalankan arahan dalam terminal anda. Arahan akan kelihatan seperti ini (pastikan untuk memilih rantau yang betul dan menggunakan ID Akaun yang betul):

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.us-east-1.amazonaws.com
docker build -t demo-app .
docker tag demo-app:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/demo-app:latest
docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/demo-app:latest

Setelah arahan berjaya dijalankan, kembali ke konsol Amazon ECR, masukkan repositori dan sahkan bahawa imej telah berjaya ditolak dengan teg terkini.

Part  Deploying a PHP (Laravel) application to Amazon ECS

Bekerja dengan Amazon ECS

Buat Definisi Tugas ECS

Langkah seterusnya ialah mencipta Definisi Tugasan ECS dengan imej Docker yang baru kami tolak ke ECR.
Mulakan dengan menuju ke konsol Amazon ECS, di bawah Takrifan Tugasan, klik Buat definisi tugas baharu.

Pilih nama unik untuk definisi tugasan (kami akan menggunakan apl demo), dan pastikan Fargate dipilih sebagai jenis pelancaran. Jangan ubah apa-apa lagi dalam bahagian ini buat masa ini.

Tatal ke bawah ke bahagian Bekas - 1 dan taipkan nilai berikut:

  • Nama: apl tunjuk cara
  • Imej: 123456789012.dkr.ecr.us-east-1.amazonaws.com/demo-app:latest (ganti dengan URI ECR anda sendiri yang kami salin tadi)

Kemudian, anda mungkin mahu melaraskan tetapan memori dan CPU bergantung pada aplikasi anda. Anda juga boleh menambah Pembolehubah Persekitaran dan Jilid EFS di sini, jika anda perlu. Kami akan membincangkannya dalam tutorial berasingan.

Part  Deploying a PHP (Laravel) application to Amazon ECS

Jangan ubah apa-apa lagi dalam bahagian ini buat masa ini. Tatal ke bawah dan klik Buat.

Buat Kluster ECS

Kami kini perlu mencipta Kluster ECS. Kluster ialah tempat kami menjalankan perkhidmatan yang ditakrifkan dalam definisi tugas yang baru kami buat.

Pergi ke konsol Amazon ECS, di bawah Kluster, klik Buat kluster, taip nama kluster dan pastikan anda memilih AWS Fargate (tanpa pelayan) sebagai infrastruktur:

Part  Deploying a PHP (Laravel) application to Amazon ECS

Kluster akan mengambil masa beberapa minit untuk dibuat. Penciptaan kluster kadangkala boleh gagal, terutamanya pada akaun baharu; cuma tunggu beberapa minit dan cuba lagi, pilih nama kluster yang berbeza.

Buat Perkhidmatan ECS

Buka kluster yang baru anda buat, tatal ke bawah ke jadual Perkhidmatan, klik Buat dan taipkan nilai berikut:

  • Keluarga: apl tunjuk cara
  • Semakan: 1 (biarkan ini seperti sedia ada)
  • Nama perkhidmatan: apl demo

Part  Deploying a PHP (Laravel) application to Amazon ECS

Jangan klik Buat lagi.

Tambah Pengimbang Beban

Memandangkan kami mungkin menyediakan aplikasi melalui HTTPS, kami ingin menambah pengimbang beban. Anda tidak boleh melakukannya kemudian.

Tatal ke bawah ke bahagian Rangkaian dan pilih VPC yang anda mahu gunakan perkhidmatan itu. Pastikan VPC mempunyai Subnet Awam dengan Gerbang Internet dilampirkan padanya. Jika anda tidak mempunyai VPC, anda boleh menciptanya dengan mengklik Buat VPC baharu dan mengikut wizard.

Setelah anda memilih VPC, teruskan membaca.

Tatal ke bawah ke bahagian Pengimbangan beban, pilih Pengimbang Beban Aplikasi dan pilih pilihan Buat pengimbang beban baharu.

Jika pilihan ini tidak tersedia, anda mungkin tidak memilih VPC dalam langkah sebelumnya.

Laraskan nilai berikut:

  • Nama pengimbang beban: demo-app-alb
  • Tempoh tangguh pemeriksaan kesihatan: 300 (Saya syorkan tetapkan ini kepada 300 saat, iaitu 5 minit, untuk membolehkan apl anda bermula dan stabil)

Di bawah bahagian Pendengar, pastikan pilihan Buat pendengar baharu dipilih, tetapi laraskan nilai untuk menggunakan port 443 dan protokol HTTPS. Untuk mengesahkan pemilihan ini, anda memerlukan sijil ACM untuk domain yang ingin anda gunakan; lihat dokumentasi AWS untuk mendapatkan maklumat lanjut tentang cara mendapatkannya.

Part  Deploying a PHP (Laravel) application to Amazon ECS

Di bawah bahagian Kumpulan sasaran, laraskan nilai berikut:

  • Protokol: HTTP (ia adalah lalai, pastikan untuk menyimpannya kerana bekas nginx kami mendengar pada port 80)
  • Kelewatan penyahdaftaran: 60 (Saya syorkan untuk menetapkan ini kepada 60 saat dan bukannya 5 minit lalai untuk membuat penggunaan lebih cepat)
  • Laluan pemeriksaan kesihatan: / (Saya syorkan untuk menetapkan ini kepada laluan, seperti /healthcheck, anda buat secara khusus dalam apl anda; anda boleh membiarkannya sebagai lalai buat masa ini)

Part  Deploying a PHP (Laravel) application to Amazon ECS

Klik Buat.

Semak Status Perkhidmatan

Perkhidmatan mungkin mengambil masa beberapa minit untuk dipaparkan dalam jadual Perkhidmatan. Tunggu sebentar dan muat semula halaman jika anda tidak melihat perkhidmatan baharu dengan segera.

Jika semuanya berjalan lancar, anda seharusnya melihat perkhidmatan yang disenaraikan dalam jadual Perkhidmatan, dengan status Aktif dan Pengerahan dan tugas menunjukkan 1/1 menjalankan tugas.

Ralat agihan ditunjukkan seperti ini:

Part  Deploying a PHP (Laravel) application to Amazon ECS

Untuk menyahpepijat ralat penggunaan, buka perkhidmatan, kemudian klik pada tab Pengaturan; tatal ke bawah ke bahagian Acara, dan klik pada Id tugasan yang paling baru dimulakan. Bahagian Log pelaksanaan tugas akan menunjukkan kepada anda butiran lanjut tentang perkara yang salah.

Laravel biasanya mengadu tentang struktur folder storan yang tidak lengkap (mis., kehilangan salah satu rangka kerja, cache, sesi). Kami akan melihat cara untuk melampirkan volum EFS pada definisi tugasan untuk membetulkannya dalam tutorial yang berasingan.

Sambungkan nama domain kepada perkhidmatan

Anda mungkin ingin menyambungkan nama domain kepada perkhidmatan yang baru kami gunakan. Dalam langkah sebelumnya, kami telah mencipta Pengimbang Beban Aplikasi, iaitu komponen AWS yang bertanggungjawab untuk menghalakan trafik internet ke perkhidmatan.

Kami juga telah menyediakan sijil ACM, yang digunakan untuk menyulitkan trafik antara pengguna akhir dan pengimbang beban.

Untuk melengkapkan proses dan menjadikan aplikasi anda boleh diakses melalui HTTPS daripada internet awam, anda perlu mencipta rekod DNS yang menghalakan nama domain anda ke pengimbang beban. Proses ini berbeza bergantung pada pembekal DNS yang anda gunakan; sila rujuk dokumentasi mereka untuk maklumat lanjut.

Mulakan dengan mendapatkan nama DNS Pengimbang Beban Aplikasi. Navigasi ke bar Carian dalam AWS Console (Pilihan S pada macOS), taip Pengimbang Beban dan pilih Pengimbang Beban (Ciri EC2). Anda akan melihat jadual dengan Pengimbang Beban yang kami perlukan untuk menyambungkan nama domain kami kepada:

Part  Deploying a PHP (Laravel) application to Amazon ECS

Salin nama DNS pengimbang beban.

Jika anda menggunakan Laluan 53, ikut arahan ini:

  • Navigasi ke konsol Laluan 53, klik pada Zon dihoskan dan pilih nama domain anda.
  • Klik pada butang Buat rekod.
  • Tetapkan jenis rekod kepada A.
  • Semak pilihan Alias.
  • Dalam medan Halakan trafik ke, pilih Alias ??ke Aplikasi dan Pengimbang Beban Klasik dan pilih kawasan pengimbang beban.
  • Daripada menu lungsur Pilih pengimbang beban, pilih pengimbang beban yang kami perlukan untuk menyambungkan nama domain kami. Jika anda mempunyai berbilang pengimbang beban, semak yang anda pilih daripada menu lungsur mesti sepadan dengan nama DNS pengimbang beban yang kami salin sebelum ini.
  • Matikan Nilai Kesihatan Sasaran.
  • Klik pada Buat rekod.

Jika anda tidak menggunakan Laluan 53:

Sila rujuk dokumentasi pembekal DNS anda untuk mendapatkan maklumat lanjut. Anda mungkin perlu mencipta rekod CNAME yang mempunyai nama DNS pengimbang beban sebagai sasaran/nilainya.

tahniah

Setelah anda mencipta rekod DNS, tunggu beberapa minit untuk merebak, kemudian cuba akses aplikasi anda melalui nama domain.

Tahniah! Anda kini telah berjaya menggunakan aplikasi PHP (Laravel) ke AWS ECS.

Akan datang dalam siri tutorial ini

  • Melampirkan volum EFS pada definisi tugas untuk menyelesaikan masalah struktur folder storan Laravel
  • Menggunakan AWS CodePipeline untuk menggunakan kod baharu secara automatik pada perkhidmatan
  • Mengautomasikan peruntukan infrastruktur dengan AWS CDK

Atas ialah kandungan terperinci Bahagian Menggunakan aplikasi PHP (Laravel) ke Amazon ECS. 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
1488
72
Skop pembolehubah PHP dijelaskan Skop pembolehubah PHP dijelaskan Jul 17, 2025 am 04:16 AM

Masalah dan penyelesaian biasa untuk skop pembolehubah PHP termasuk: 1. Pembolehubah global tidak dapat diakses dalam fungsi, dan ia perlu diluluskan menggunakan kata kunci atau parameter global; 2. Pembolehubah statik diisytiharkan dengan statik, dan ia hanya dimulakan sekali dan nilai dikekalkan antara pelbagai panggilan; 3. Pembolehubah hyperglobal seperti $ _get dan $ _post boleh digunakan secara langsung dalam mana -mana skop, tetapi anda perlu memberi perhatian kepada penapisan yang selamat; 4. Fungsi Anonymous perlu memperkenalkan pembolehubah skop induk melalui kata kunci penggunaan, dan apabila mengubah suai pembolehubah luaran, anda perlu lulus rujukan. Menguasai peraturan ini boleh membantu mengelakkan kesilapan dan meningkatkan kestabilan kod.

Bagaimana cara mengendalikan fail memuat naik dengan selamat di PHP? Bagaimana cara mengendalikan fail memuat naik dengan selamat di PHP? Jul 08, 2025 am 02:37 AM

Untuk mengendalikan muat naik fail PHP dengan selamat, anda perlu mengesahkan sumber dan jenis, mengawal nama fail dan laluan, menetapkan sekatan pelayan, dan memproses fail media dua kali. 1. Sahkan sumber muat naik untuk mengelakkan CSRF melalui token dan mengesan jenis mime sebenar melalui finfo_file menggunakan kawalan putih; 2. Namakan semula fail ke rentetan rawak dan tentukan pelanjutan untuk menyimpannya dalam direktori bukan web mengikut jenis pengesanan; 3. Konfigurasi PHP mengehadkan saiz muat naik dan direktori sementara Nginx/Apache melarang akses ke direktori muat naik; 4. Perpustakaan GD menyambung semula gambar -gambar untuk membersihkan data yang berpotensi.

Mengulas kod dalam php Mengulas kod dalam php Jul 18, 2025 am 04:57 AM

Terdapat tiga kaedah umum untuk kod komen PHP: 1. Use // atau # untuk menyekat satu baris kod, dan disyorkan untuk menggunakan //; 2. Gunakan /.../ untuk membungkus blok kod dengan pelbagai baris, yang tidak boleh bersarang tetapi boleh diseberang; 3. Komen -komen kemahiran gabungan seperti menggunakan / jika () {} / untuk mengawal blok logik, atau untuk meningkatkan kecekapan dengan kunci pintasan editor, anda harus memberi perhatian kepada simbol penutupan dan mengelakkan bersarang apabila menggunakannya.

Bagaimana penjana berfungsi dalam php? Bagaimana penjana berfungsi dalam php? Jul 11, 2025 am 03:12 AM

Ageneratorinphpisamemory-efficientwaytoiterateOverlargedatasetsbyieldingvaluesonateatimeNsteadofreturningthemallatonce.1.GeneratorSuseTheyEldeyWorderWorderToProducevaluuesondemand,

Petua untuk menulis komen php Petua untuk menulis komen php Jul 18, 2025 am 04:51 AM

Kunci untuk menulis komen PHP adalah untuk menjelaskan tujuan dan spesifikasi. Komen harus menjelaskan "mengapa" dan bukannya "apa yang dilakukan", mengelakkan redundansi atau terlalu kesederhanaan. 1. Gunakan format bersatu, seperti docblock (/*/) untuk deskripsi kelas dan kaedah untuk meningkatkan keserasian dan keserasian alat; 2. Menekankan sebab -sebab di sebalik logik, seperti mengapa JS melompat perlu dikeluarkan secara manual; 3. Tambahkan gambaran keseluruhan gambaran sebelum kod kompleks, terangkan proses dalam langkah -langkah, dan membantu memahami idea keseluruhan; 4. Gunakan Todo dan Fixme secara rasional untuk menandakan item dan masalah untuk memudahkan penjejakan dan kerjasama berikutnya. Anotasi yang baik dapat mengurangkan kos komunikasi dan meningkatkan kecekapan penyelenggaraan kod.

Tutorial pemasangan php cepat Tutorial pemasangan php cepat Jul 18, 2025 am 04:52 AM

Toinstallphpquickly, usexampponwindowsorhomeBrewonmacos.1.onwindows, downloadandInstallxampp, selectcomponents, startapache, andplaceFilesinhtdocs.2.alternative, secara manualstallphpfromphp.netandsheBerver.3

Cara mengakses watak dalam rentetan dengan indeks dalam php Cara mengakses watak dalam rentetan dengan indeks dalam php Jul 12, 2025 am 03:15 AM

Dalam PHP, anda boleh menggunakan kurungan persegi atau pendakap keriting untuk mendapatkan aksara indeks spesifik rentetan, tetapi kurungan persegi disyorkan; Indeks bermula dari 0, dan akses di luar julat mengembalikan nilai null dan tidak dapat diberikan nilai; MB_SUBSTR dikehendaki mengendalikan watak multi-bait. Sebagai contoh: $ str = "hello"; echo $ str [0]; output h; dan watak -watak Cina seperti MB_SUBSTR ($ str, 1,1) perlu mendapatkan hasil yang betul; Dalam aplikasi sebenar, panjang rentetan perlu diperiksa sebelum gelung, rentetan dinamik perlu disahkan untuk kesahihan, dan projek berbilang bahasa mengesyorkan menggunakan fungsi keselamatan multi-bait secara seragam.

Belajar PHP: Panduan Pemula Belajar PHP: Panduan Pemula Jul 18, 2025 am 04:54 AM

Tolearnphpeffectively, startbysettingupalocalverenvironmentusingToolsLikexamppandaCodeDitorLikevscode.1) InstallXamppforapa Che, MySql, danPhp.2) UseAcodeeditorForsyntaxSupport.3) testyoursetupwithasimplephpfile.next, learnphpbasicsincludingvariables, ech

See all articles