Rumah >pembangunan bahagian belakang >tutorial php >Panduan Terbaik untuk Menggunakan Aplikasi PHP Di Awan
Jawatan ini pertama kali diterbitkan di blog Auth0 dan diterbitkan semula di sini sepenuhnya dengan kebenaran mereka.
tl; DR: Terdapat mantra popular di kalangan pemaju yang seperti inimenulis, menguji dan menggunakan . Dalam tutorial ini, saya akan menunjukkan kepada anda bagaimana untuk menggunakan aplikasi PHP anda ke platform pelayan awan yang berbeza seperti Google Cloud, Microsoft Azure, Heroku, IBM Bluemix, dan lain -lain.
Takeaways KeyAplikasi PHP generik melibatkan lampu biasa (Linux, Apache, MySQL dan PHP)
Stack.
Linux: Sistem operasi yang menjalankan pakej perisian lain.Sekarang mari kita tutup bagaimana untuk menggunakan aplikasi PHP ke beberapa platform pelayan awan.
Heroku
PHP Heroku Architecture
Jika anda tidak mempunyai akaun, teruskan dan buat satu di heroku.com. Kemudian teruskan dan pasang Heroku CLI. Sebaik sahaja anda memasangnya, klon aplikasi PHP Starwars mudah ini.
Heroku menjalankan aplikasi PHP anda dalam dyno, bekas pintar yang menyediakan timbunan moden dengan pilihan pelayan web anda (Apache atau nginx) dan runtime (PHP atau HHVM).
Pastikan anda mengikuti langkah -langkah berikut di bawah:
Buat fail .env dari .env.example.
PAGE LANDING
hebat! Aplikasi kami berfungsi secara tempatan. Masa untuk digunakan! Perkara pertama yang akan kami lakukan ialah menambah procfile ke direktori akar aplikasi kami.
Buat fail baru yang dipanggil ProcFile tanpa sebarang pelanjutan fail dan tambahkan ini:
web: vendor/bin/heroku-php-apache2
ProcFile adalah fail teks dalam direktori root aplikasi anda yang mentakrifkan jenis proses dan secara eksplisit mengisytiharkan arahan apa yang harus dilaksanakan untuk memulakan aplikasi anda di Heroku.
Jika anda berminat menggunakan nginx sebagai pelayan web, maka kandungan procfile akan menjadi:
web: vendor/bin/heroku-php-nginx
Sekarang anda telah menambah ProcFile, teruskan dan muat naik projek ke GitHub atau Bitbucket. Mine adalah Starwazapp.
pergi ke dashboard.heroku.com/apps dan buat aplikasi baru seperti So:
Buat aplikasi baru dari papan pemuka
memberi aplikasi nama
Sambung ke GitHub
Alasan untuk memilih GitHub adalah untuk membuat proses pembangunan dan penyelenggaraan sangat lancar. Pemaju boleh mengusahakan ciri -ciri baru menggunakan aliran kerja git.Sekarang, taipkan nama repo di kawasan yang dilingkari dan klik carian. Heroku akan mencari repo anda di bawah akaun github anda dan memaparkannya seperti
Cari repo
Klik pada butang Sambung
Projek yang disambungkan
Klik untuk membolehkan penyebaran automatik. Kami tidak mempunyai perkhidmatan CI, jadi kami tidak perlu membolehkan pilihan itu. Sekarang, mari kita gunakan cawangan induk.
NOTA: Anda boleh mempunyai cawangan lain dan menentukan cawangan yang anda mahukan untuk pengeluaran. Dalam kes kami, cawangan induk adalah cawangan pengeluaran.
Klik pada cawangan yang digunakan. Heroku akan mengimbas fail komposer.lock anda, pasangkan pakej yang diperlukan, dan gunakan!
menggunakan akhirnya
Klik butang Lihat untuk menyemak aplikasi anda.
ralat 500
ooops! Kami mengalami ralat 500. Aha, kami belum menetapkan pembolehubah persekitaran. Secara tempatan, kami mempunyai fail .env. Pada Heroku, tidak ada fail .env, tetapi ada cara untuk menetapkan pembolehubah persekitaran. Pergi ke tetapan di papan pemuka anda dan tambahkannya sebagai pembolehubah konfigurasi seperti:
url panggil balik yang dibenarkan di papan pemuka auth0 anda.
aplikasi anda harus hidup & berfungsi sekarang!
App Live
Buka index.php dan tukar kandungan tag
dari mendengar anda tidak mahu berhijrah ke Php 7? Berani kita! kepada Star Wars - The Awakening!. Berikan dan tolak cawangan induk anda. Sekarang, pergi ke tab aktiviti papan pemuka Heroku anda dan perhatikan binaan. Muat semula aplikasi anda dan anda akan melihat perbezaannya.
membina berjaya
versi baru
web: vendor/bin/heroku-php-apache2Perintah ini menyediakan pangkalan data ClearDB baru dan mengembalikan URL yang akan digunakan oleh aplikasinya untuk mengaksesnya. Apa yang perlu anda lakukan ialah menambahkannya ke aplikasi anda sebagai pemboleh ubah persekitaran dan menghuraikannya dalam konfigurasi aplikasi anda seperti:
Cleardb adalah pangkalan data toleran yang kuat dan bersalah di awan untuk aplikasi berkuasa MySQL anda.
web: vendor/bin/heroku-php-nginx
menggunakan mysqli
Anda boleh tweak itu sesuai dengan gaya PDO. Tambahkan postgres ke aplikasi anda seperti SO:
heroku addons:create cleardb:ignitepergi ke Addons, dan anda akan melihat jenis pangkalan data lain yang boleh anda gunakan dengan aplikasi PHP anda.
Heroku menyediakan pelbagai addons untuk caching, dari memcache, dengan cepat, ke besi, dan lain -lain. Anda boleh menyemak cara menggunakan Memcache dengan PHP di Heroku di sini.
Akhirnya, anda boleh menggunakan Heroku Scheduler untuk menjalankan pekerjaan pada aplikasi anda pada selang waktu yang dijadualkan.
Platform Google Cloud adalah platform awan gergasi dan dipercayai yang banyak syarikat di seluruh dunia telah mengadopsi dalam mengerahkan dan menganjurkan aplikasi mereka. Aplikasi anda akan berjalan pada infrastruktur yang sama yang menguasai semua produk Google. Apa bentuk keyakinan lain yang anda perlukan untuk memberi jaminan bahawa aplikasi anda akan cukup baik untuk melayani ribuan dan berjuta -juta pengguna anda dengan mudah?
Google Cloud menawarkan pilihan yang berbeza untuk menganjurkan aplikasi PHP. Platform ini menawarkan enjin aplikasi (diuruskan sepenuhnya), mengira enjin (VMS berskala) dan enjin kontena (kluster Kubernet).
Dalam kes kami, kami akan menggunakan App Engine. Ia abstrak infrastruktur. Mari kita melompat ke aplikasi Star Wars kami yang terkenal ke Google App Engine.
Apabila menggunakan Google App Engine, anda boleh memilih persekitaran standard atau fleksibel. Yang terakhir, seperti namanya, membolehkan anda memasang sebarang pelanjutan PHP yang berfungsi pada Debian Linux, mempunyai pelayan web Nginx yang boleh dikonfigurasikan, sistem fail yang boleh ditulis, versi PHP terkini dan membolehkan anda menjalankan skrip penempatan menggunakan composer.json.
Kami akan menggunakan persekitaran yang fleksibel. Teruskan dan buat projek baru. Klik pada Buat, berikan projek nama, pilih rantau yang anda ingin servang aplikasi anda, dan aktifkan pengebilan.
Nota: Anda tidak akan dikenakan tanpa izin anda.Sekarang, muat turun Google SDK dan pasang Alat Awan Google.
Memasang Google SDK
menjalankan gcloud
app.yaml
web: vendor/bin/heroku-php-apache2Jadi, fail .env kami telah ditolak ke Google Cloud. Alternatif untuk menggunakannya adalah untuk menambah pembolehubah persekitaran ke fail app.yaml seperti SO:
web: vendor/bin/heroku-php-nginxSekarang, gunakan aplikasi anda dari konsol anda dengan menjalankan aplikasi gcloud.
Dapatkan URL, dalam kes saya ia adalah https://starwars-166515.appspot.com/, dan tambah kepada asal-usul yang dibenarkan (CORS) dan membenarkan URL panggil balik dalam papan pemuka Auth0 anda. Juga tambahkan URL ke auth0_callback_url dalam fail .env anda.
Jalankan aplikasi GCloud sekali lagi untuk menyediakan versi baru aplikasinya. Lihat aplikasi anda sekarang. Ia harus hidup seperti begitu:
App Live
anda juga boleh menggunakan phpmyadmin pada enjin aplikasi Google.
Google App Engine termasuk pelaksanaan API MEMCACHE dan MEMCACHED standard. Lihat cara menggunakan memcache di aplikasi anda di Google Cloud.
Perkhidmatan Cron Engine App membolehkan anda mengkonfigurasi tugas -tugas yang dijadualkan secara teratur yang beroperasi pada masa yang ditetapkan atau selang masa yang tetap. Lihat cara menjadualkan pekerjaan Cron dan gunakan beratur tugas dengan PHP di Google Cloud.
Ia agak mudah untuk menggunakan aplikasi Laravel, Symfony dan WordPress ke platform Google Cloud.
IBM Bluemix membolehkan anda dengan mudah mengkonfigurasi, menggunakan dan skala pada infrastruktur awan global yang berkuasa tinggi. Mari kita melompat ke aplikasi Star Wars kami yang terkenal ke IBM Bluemix.
Daftar di Bluemix seperti So:
Daftar pada Bluemix
NOTA: Platform Bluemix menawarkan percubaan percuma selama 30 hari supaya anda berpeluang untuk mencuba menggunakan permohonan anda sendiri sebelum menyerahkan butiran kad kredit anda.
Teruskan dan buat organisasi dan ruang. Saya menamakan prod ruang saya.
web: vendor/bin/heroku-php-apache2
Log masuk ke Bluemix
web: vendor/bin/heroku-php-nginxanda juga boleh menentukan dengan jelas binaan dalam fail manifes. Syukurlah, Cloud Foundry secara automatik mengesan mana binaan diperlukan apabila anda menolak aplikasi.
Buildpacks menyediakan rangka kerja dan sokongan runtime untuk aplikasi anda. Buildpacks biasanya mengkaji artifak yang disediakan pengguna untuk menentukan kebergantungan untuk dimuat turun dan cara mengkonfigurasi aplikasi untuk berkomunikasi dengan perkhidmatan terikat.Akhirnya, gunakan aplikasi anda dengan menjalankan arahan berikut seperti:
heroku addons:create cleardb:ignite
Bermula menggunakan
mengakhiri penyebaran
Anda boleh menggunakan CLI Foundry Cloud atau antara muka pengguna Bluemix untuk menetapkan pembolehubah persekitaran. Mari kita gunakan antara muka pengguna Bluemix. Jadi, ikuti langkah -langkah di bawah:
Pilih runtime dari panel kiri.
Sekarang, klik pada pembolehubah persekitaran
tatal ke bawah dan klik butang Tambah untuk menambah pembolehubah persekitaran seperti
Klik butang Simpan. Sebaik sahaja anda berbuat demikian, aplikasi anda akan dimulakan semula secara automatik.
Sekarang ambil URL, dalam kes saya, ia adalah https://starwarsapp.mybluemix.net/, dan tambahkannya kepada asal -usul yang dibenarkan (CORS) dan membenarkan URL panggilan balik di papan pemuka Auth0 anda.
Sekarang lihat aplikasi anda - ia harus hidup!
Foundry Cloud menyediakan keupayaan untuk membuat perkhidmatan. IBM Bluemix menawarkan pangkalan data NoSQL Cloudant (nama Bluemix untuk CouchDB). Anda boleh menggunakan alat CF untuk membuat perkhidmatan pangkalan data seperti:
web: vendor/bin/heroku-php-apache2
IBM Bluemix juga menawarkan perkhidmatan MySQL ClearDB. Jadi, anda boleh menggunakan alat CF untuk membuatnya seperti:
web: vendor/bin/heroku-php-nginx
Mereka menawarkan mongoDB, postgresql, dan rethinkdb.
Anda sentiasa boleh menggunakan alat Foundry Cloud untuk menyemak banyak perkara seperti log, pembolehubah persekitaran, dan lain -lain. Seperti So:
IBM Bluemix juga menawarkan Redis Cloud, perkhidmatan awan yang diuruskan sepenuhnya untuk menganjurkan dan menjalankan dataset Redis anda di Bluemix dengan cara yang sangat tersedia dan berskala.
IBM Bluemix menyediakan perkhidmatan penjadual beban kerja. Perkhidmatan ini membolehkan anda mengintegrasikan aplikasi anda dengan keupayaan untuk menjadualkan aliran kerja. Jauh di luar Cron, mengeksploitasi penjadualan pekerjaan di dalam dan di luar Bluemix. Mudah membuat alur kerja dalam aplikasi anda untuk dijalankan secara teratur, pada masa tertentu, pada peristiwa (contohnya, apabila fail dipadam atau dikemas kini), mengikut keperluan anda. Anda boleh menggunakan antara muka pengguna Jadual Kerjaatau menggunakan API.
Bermula dengan pekerjaan penjadualan di sini.Juga, inilah cara untuk menggunakan aplikasi Laravel anda di IBM Bluemix.
Microsoft Azure
dengan Microsoft Azure, anda boleh menggunakan melalui:
Dashboard
klik pada baru di panel kiri.
Klik lihat semua di sebelah Marketplace.
Klik Web SQL, kemudian teruskan dan buat.
Anda akan diminta untuk memilih tawaran untuk jenis langganan yang anda selesa dengan. Saya memilih Percubaan Percuma . Dengan itu, anda akan diberikan kredit $ 200 azure.
Buat aplikasi baru
aplikasi baru
, kemudian klik pada GitHub.
Sekarang, semak imbas ke http: // [yoursitename] .azurewebsites.net. Dalam kes saya, ia adalah http://starwarzapp.azewebsites.net.
pergi ke aplikasi anda dalam perkhidmatan aplikasi, klik pada tetapan aplikasi, dan kemudian tambahkan pembolehubah persekitaran ke kanan.
Sekarang ambil URL aplikasi, dalam kes saya, ia adalah http://starwarzapp.azewebsites.net/ dan tambahkan ke asal -usul yang dibenarkan (CORS) dan membenarkan URL panggilan balik di papan pemuka AUTH0 anda.
Secara lalai, penyebaran Azure tidak melakukan apa -apa dengan fail komposer.json atau komposer.lock kami. Jadi, tiada pakej yang dipasang. Sekarang kembali ke perkhidmatan aplikasi, klik pada aplikasi anda, kemudian pergi ke Alat Pembangunan dan pilih Sambungan. Pilih lanjutan komposer dan bersetuju dengan syarat undang -undang.
Sekarang lihat aplikasi anda sekali lagi. Ia harus hidup dan berfungsi!
Microsoft Azure menawarkan Azure Redis Cache . Ia berdasarkan cache sumber terbuka yang popular. Sangat mudah untuk membuat dan menggunakan seperti SO:
lihat dokumentasi mengenai cara menggunakannya.
Untuk penjadualan dan tugas menjalankan, Azure menawarkan penjadual. Ia membolehkan anda:
lihat cara membuat dan menguruskan pekerjaan menggunakan penjadual.
Kami sudah bercakap sedikit tentang menubuhkan pangkalan data semasa kami menggunakan aplikasi kami, tetapi mari kita lihat dengan cepat bagaimana untuk menubuhkan pangkalan data MySQL.
Log masuk ke portal Azure.
Klik baru di panel kiri papan pemuka. Pilih penyimpanan data di pasaran, kemudian pilih pangkalan data MySQL.
Teruskan dan konfigurasikan pangkalan data MySQL baru anda. Masukkan nama, pilih langganan anda, lokasi dan isi medan yang diperlukan. Buat!
Sambung ke pangkalan data.
pemaju Laravel dengan mudah boleh mengkonfigurasi pangkalan data MySQL untuk aplikasi mereka di Azure.
Lebih banyak syarikat menggunakan AWS (Amazon Web Services) untuk menyimpan pelbagai jenis data dari imej dan fail MP3 ke video daripada platform awan lain. Malah, banyak organisasi seperti Uber, Spotify, atau Salesforce menggunakan perkhidmatan Web Amazon sepenuhnya - untuk hosting, penempatan, dan infrastruktur. AWS mempunyai satu tan produk pemaju.
Perkhidmatan yang akan kami gunakan untuk menggunakan aplikasi Starwars kami yang terkenal ialah Amazon Elastic Beanstalk. Mari kita mulakan.
Sekarang ambil URL, dalam kes saya, ia adalah http://starwarzapp.us-west-2.elasticbeanstalk.com dan tambah kepada asal-usul yang dibenarkan (CORS) dan membenarkan URL panggil balik dalam papan pemuka auth0 anda. Pastikan anda menambahnya sebagai pemboleh ubah persekitaran dalam elastik beanstalk juga.
App Live
Untuk caching, Amazon Web Services menawarkan elasticache. Ia adalah perkhidmatan web yang memudahkan untuk digunakan, mengendalikan, dan skala kedai data dalam memori atau cache di awan. Amazon Elasticace menyokong dua enjin dalam sumber terbuka:
Amazon Elasticace secara automatik mengesan dan menggantikan nod yang gagal, mengurangkan overhead yang berkaitan dengan infrastruktur yang diurus sendiri dan menyediakan sistem yang berdaya tahan yang mengurangkan risiko pangkalan data yang terlalu banyak, yang melambatkan laman web dan meningkatkan masa beban aplikasi. Melalui integrasi dengan Amazon CloudWatch, Amazon Elasticace memberikan penglihatan yang lebih baik ke dalam metrik prestasi utama yang berkaitan dengan nod redis atau memcached anda.
Syarikat -syarikat seperti Airbnb, HealthGuru, Placeiq dan Tokyo Data Network menggunakan elasticache untuk caching pada pelbagai lapisan yang merangkumi serpihan HTML, hasil pertanyaan DB mahal, data sesi ephemeral, dan hasil carian.
Lihat Cara Memasang Pelanggan Kluster Elasticace untuk PHP Di Sini.Berikut adalah jawatan yang sangat baik untuk membina kaunter pelawat PHP dengan elasticache dan elastik beanstalk
Anda boleh menyediakan pekerjaan cron di Beanstalk elastik. Ketahui cara menjalankan pekerjaan Cron di Amazon Web Services (AWS) Beanstalk elastik.
Laravel Forge
Laravel Forge
James Fairhurst juga mempunyai panduan yang hebat untuk menggunakan Laravel Forge untuk menyediakan pelayan AWS.
Platform PHP pendidikan yang paling popular, Laracasts.com mempunyai siri Pengurusan Pelayan dengan Forge.
Dan tentu saja, kami menyebutnya dalam kursus Laravel kami, dan juga menutupnya dalam tutorial mendalam seperti ini.
Envoyer
dengan utusan, anda boleh melakukan:
Deployer adalah alat penempatan untuk PHP. Ia membolehkan anda melakukan perkara berikut:
ia berfungsi dengan laravel , symfony , cakephp , yiiframework , zend , fuelphp ,
Bagaimana anda mengendalikan penyebaran anda? Tolong, beritahu saya di bahagian komen di bawah!
Soalan Lazim (Soalan Lazim) Mengenai Menggunakan Aplikasi PHP Di Awan
Menggunakan aplikasi PHP di Google Cloud melibatkan beberapa langkah. Pertama, anda perlu membuat akaun Google Cloud dan menyediakan projek baru. Kemudian, anda perlu memasang Google Cloud SDK pada mesin tempatan anda. Seterusnya, anda perlu mengkonfigurasi tetapan aplikasi anda dalam fail app.yaml. Selepas itu, anda boleh menggunakan aplikasi anda menggunakan arahan GCLoud App Deploy. Akhirnya, anda boleh melihat aplikasi anda dalam penyemak imbas menggunakan perintah pelayaran aplikasi gcloud.
Platform hosting PHP seperti Cloudways menyediakan persekitaran yang diuruskan untuk menggunakan dan menjalankan aplikasi PHP anda di awan. Ia menjaga banyak aspek teknikal hosting awan, seperti persediaan pelayan, keselamatan, sandaran, dan kemas kini, yang membolehkan anda memberi tumpuan kepada membangunkan aplikasi anda. Ia juga menyediakan alat dan ciri untuk membantu anda mengoptimumkan prestasi dan skalabiliti aplikasi anda. langkah. Pertama, anda perlu memilih perkhidmatan awan dan membuat akaun. Kemudian, anda perlu menyediakan aplikasi anda untuk penghijrahan, yang mungkin melibatkan refactoring kod anda atau membuat perubahan lain untuk memastikan keserasian dengan persekitaran awan. Seterusnya, anda perlu menggunakan aplikasi anda ke awan, menguji dengan teliti untuk memastikan ia berfungsi dengan betul, dan kemudian menukar pengguna anda ke versi baru.
Perpustakaan Google Cloud PHP menyediakan cara untuk berinteraksi dengan perkhidmatan Google Cloud dari aplikasi PHP anda. Mereka menyediakan satu set API yang boleh anda gunakan untuk melakukan pelbagai operasi, seperti menyimpan dan mengambil data, menjalankan pertanyaan, dan menguruskan sumber. Menggunakan perpustakaan ini boleh memudahkan untuk mengintegrasikan aplikasi anda dengan Google Cloud dan memanfaatkan ciri -ciri dan perkhidmatannya. > RunCloud adalah alat pengurusan pelayan awan yang memudahkan proses mengerahkan dan mengurus aplikasi PHP di awan. Ia menyediakan antara muka mesra pengguna dan pelbagai alat dan ciri untuk membantu anda menubuhkan, menjamin, dan mengoptimumkan pelayan awan anda. Ia menyokong pelbagai penyedia awan dan membolehkan anda menguruskan semua pelayan anda dari papan pemuka tunggal.
Atas ialah kandungan terperinci Panduan Terbaik untuk Menggunakan Aplikasi PHP Di Awan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!