Apabila kita melakukan perkembangan, kemungkinan besar kita berada dalam peranan "akar"; Tetapi dalam persekitaran pengeluaran, kita mungkin dilucutkan keistimewaan ini. Juga, tetapan mungkin berbeza. Untuk membuat keadaan lebih teruk, kadang -kadang kita tidak dapat mengubah tetapan ini seperti yang kita lakukan dalam mesin kita sendiri.
Oleh itu, sangat penting untuk memeriksa "keserasian" pelayan pengeluaran kami sebelum sebarang perkembangan sebenar dilakukan di pelayan kami sendiri. Ini akan mengelakkan situasi yang dahsyat seperti: perpustakaan yang bergantung kepada Symfony hilang, beberapa tetapan global yang dipercayai aplikasi tidak berubah, dan lain -lainMenguji "keserasian" pelayan pengeluaran kami semestinya menjadi sesuatu yang kami lakukan pada mulanya. Terdapat juga beberapa aspek lain yang perlu ditangani semasa penempatan - seperti templat untuk pelbagai mesej ralat, dan lain -lain
Di bahagian berikut, kami akan mengandaikan anda tidak mempunyai kawalan penuh ke atas pelayan pengeluaran anda. Sekiranya anda berbuat demikian, kebanyakan isu keserasian mungkin tidak terpakai, kerana anda sepatutnya dapat menyelesaikannya dengan mudah.
Rangka Kerja Symfony Kosong pada Pelayan Pengeluaran
Sila ikuti arahan dalam artikel pertama saya mengenai Symfony 2 untuk menubuhkan rangka kerja Symfony kosong pada pelayan pengeluaran.
Rangka kerja kosong ini kemudiannya boleh diperiksa ke dalam kawalan versi.
Symfony 2 dilengkapi dengan fail config.php yang tinggal di direktori web. Ini adalah skrip untuk menguji kebanyakan isu "kesediaan". Untuk melawat halaman itu, kita perlu tweak sedikit:
<span><span><?php </span></span><span> </span><span><span>if (!isset($_SERVER['HTTP_HOST'])) { </span></span><span> <span>exit('This script cannot be run from the CLI. Run it from a browser.'); </span></span><span><span>} </span></span><span> </span><span><span>if (!in_array(@$_SERVER['REMOTE_ADDR'], array( </span></span><span> <span>'127.0.0.1', </span></span><span> <span>'::1', </span></span><span><span>))) { </span></span><span> <span>header('HTTP/1.0 403 Forbidden'); </span></span><span> <span>exit('This script is only accessible from localhost.'); </span></span><span><span>} </span></span><span><span>...</span></span>
Fail ini dimaksudkan untuk dipanggil dari penyemak imbas tempatan sahaja. Kita perlu mengulas yang kedua jika blok supaya kita dapat melawatnya dari jauh.
pelayan saya dikonfigurasikan dengan betul dan tidak mempunyai masalah kritikal:
Tetapan/Modul
Tahap keseriusan "diperlukan" bermakna kita perlu menukar tetapan pelayan kami untuk memenuhi keperluan. Jika tidak, Symfony 2 tidak akan berjalan dan oleh itu tidak boleh menjadi pilihan yang tepat untuk pembangunan aplikasi kami. Item "disyorkan" boleh diabaikan dengan selamat tetapi saya mencadangkan kami memenuhi cadangan tersebut sebanyak mungkin. Dalam kes saya (ditunjukkan di atas), pelayan pengeluaran saya hanya mempunyai satu amaran. Itu menetapkan tanah yang kukuh dan boleh dipercayai untuk pembangunan selanjutnya.
menggunakan git untuk menyegerakkan fail
Dalam kes itu, yang betul .gitignore (atau bersamaan dengan sistem kawalan versi lain) akan menjadi berguna. Petikan di bawah dari fail .gitignore saya adalah untuk rujukan:
<span><span><?php </span></span><span> </span><span><span>if (!isset($_SERVER['HTTP_HOST'])) { </span></span><span> <span>exit('This script cannot be run from the CLI. Run it from a browser.'); </span></span><span><span>} </span></span><span> </span><span><span>if (!in_array(@$_SERVER['REMOTE_ADDR'], array( </span></span><span> <span>'127.0.0.1', </span></span><span> <span>'::1', </span></span><span><span>))) { </span></span><span> <span>header('HTTP/1.0 403 Forbidden'); </span></span><span> <span>exit('This script is only accessible from localhost.'); </span></span><span><span>} </span></span><span><span>...</span></span>
Ini tidak pernah menjadi senarai lengkap atau fit-all-tujuan. Sebagai contoh, jika anda menggunakan phpStorm tetapi bukan netbeans, anda boleh memadam bahagian NetBeans dan menggantikan dengan penapis yang sesuai untuk phpStorm:
<span># Composer </span><span>vendor </span><span>vendor/* </span><span>!public/assets/js/vendor </span><span>!public/assets/js/vendor/* </span><span>!public/assets/css/vendor </span><span>!public/assets/css/vendor/* </span><span>composer.phar </span><span>composer.lock </span><span> </span><span># Symfony </span><span>app/cache/* </span><span>app/logs/* </span><span> </span><span># Logs </span><span>error.log </span><span>access.log </span><span> </span><span># Netbeans </span><span>nbproject </span><span>.nbproject </span><span>.nbproject/* </span><span>nbproject/* </span><span>nbproject/private/ </span><span>build/ </span><span>nbbuild/ </span><span>dist/ </span><span>nbdist/ </span><span>nbactions.xml </span><span>nb-configuration.xml</span>
atau biarkan mereka berdua, jadi anda secara automatik menampung devs lain yang mungkin menggunakan ides lain. Adalah disyorkan untuk sentiasa memasukkan 3 bahagian pertama (komposer, simfoni, log).
Kali pertama aplikasi Symfony berjalan pada pelayan jauh, ia akan membuat versi kompilasi aplikasi kami dalam direktori App/Cache/Prod. Apabila fail kami, terutamanya pengawal dan laluan kami, dikemas kini, kami perlu menyegarkan semula cache, atau output mungkin salah dan sering menyebabkan 500 kesilapan.
Untuk membersihkan cache, saya biasanya akan SSH ke pelayan pengeluaran saya dan melakukan arahan cache RM -RF di bawah direktori aplikasi. Cache Konsol: Cache Clear atau Console: Perintah pemanasan mungkin bukan cara yang paling bersih untuk melakukannya.
Gunakan ini dengan berhati -hati dan hanya apabila benar -benar diperlukan!
Dalam beberapa kes, tapak berfungsi tempatan hanya boleh terhempas apabila ia digunakan ke pelayan pengeluaran. Sebab -sebab yang menyebabkan ini mungkin kompleks dan tidak berkaitan dengan proses pengekodan itu sendiri. Dalam keadaan ini, kita boleh mempertimbangkan untuk membolehkan mod dev jauh.
Untuk melakukan ini, kami mengambil pendekatan yang sama untuk melumpuhkan cek localhost dengan mengulas blok kod di bawah dalam app_dev.php:
<span># IntelliJ - PhpStorm and PyCharm </span><span>.idea </span><span>.idea/ </span><span>.idea/* </span><span>*.iml </span><span>*.ipr </span><span>*.iws </span>
kita boleh melawat domain dan halaman dengan sesuatu seperti: http: //rsywx_remote/app_dev.php. Apabila ada yang tidak kena, mod dev ini memaparkan maklumat debug yang lebih berguna dan dapat membantu kami untuk mencari beberapa isu berakar yang mendalam. Untuk menambah keselamatan semasa tempoh debug ini, tambahkan cek yang hanya membolehkan lawatan dari IP anda sendiri ke fail di atas - ini akan mengekalkan mod dev untuk orang lain. Kebanyakan isu akan dikaitkan dengan persediaan pangkalan data (pangkalan data dan/atau kelayakan yang salah), API URI yang salah (URI tempatan dan jauh mungkin berbeza), cache yang sudah lapuk, perpustakaan yang hilang digunakan secara tempatan tetapi tidak diaktifkan dari jauh, dan lain -lain
Apabila masalah telah diperbaiki, sila ingatlah untuk tidak memberi kesan kepada garis-garis tersebut untuk memulihkan kawalan akses penuh. Pengguna tetap hanya dibenarkan menggunakan App.php sebagai titik masuk aplikasi kami.
Enjin Template Twig Default Symfony 2 tidak menyediakan beberapa halaman ralat (404, 500, dll). Tetapi reka bentuk halaman ini biasanya tidak sesuai dengan permohonan kami. Laman rasmi mempunyai penjelasan terperinci tentang cara melakukan ini. Kita boleh membangunkan halaman ralat kita sendiri berdasarkan susun atur dan tema kita sendiri.
kita boleh menyesuaikan halaman ralat dan meletakkannya di bawah aplikasi/sumber/twigbundle/paparan/pengecualian. Fail -fail ini boleh dinamakan error404.html.twig untuk 404 ralat, error403.html.twig untuk 403 ralat, dll, atau hanya error.html.twig untuk tujuan umum.
Penting untuk diperhatikan bahawa dalam Symfony 2, halaman mesej ralat tidak menyokong lanjutan Templat Twig. Ini bermakna kita tidak boleh mempunyai halaman ralat yang dilanjutkan dari susun atur sedia ada yang direka untuk halaman lain. Kita perlu merancang halaman ralat dari awal. Ini agak menyusahkan tetapi masih patut dilakukan untuk laman web yang serius.
Dalam artikel ini, kami telah meliputi beberapa topik berkaitan penyebaran Symfony: kesediaan pelayan, kawalan versi, mod dev jauh, kemas kini cache, penyesuaian halaman ralat, dan lain -lain
Penyebaran biasanya merupakan langkah terakhir dalam pembangunan kami. Saya berharap artikel ini membantu anda mengelakkan beberapa pitfal biasa dan membuat proses penempatan anda lebih lancar.
Sila simpan semula artikel ini jika anda mendapati ia menarik atau berguna, dan tinggalkan komen di bawah jika anda mempunyai maklum balas, itu sangat dihargai!
Menggunakan aplikasi Symfony 2 melibatkan beberapa langkah. Pertama, anda perlu memastikan bahawa pelayan anda memenuhi keperluan untuk menjalankan Symfony. Ini termasuk PHP dipasang dan dikonfigurasi dengan betul. Sebaik sahaja pelayan anda disediakan, anda boleh menggunakan alat seperti git untuk mengklonkan aplikasi anda ke pelayan. Selepas itu, anda perlu memasang kebergantungan aplikasi menggunakan komposer. Akhirnya, anda perlu mengkonfigurasi pelayan web anda untuk menunjuk ke direktori 'web' aplikasi Symfony anda.
Terdapat beberapa cara untuk mengoptimumkan prestasi aplikasi Symfony 2. Sebahagian daripada ini termasuk menggunakan persekitaran 'Prod' untuk pengeluaran, membolehkan pelanjutan PHP APC untuk caching OPCode, mengoptimumkan autoloader dengan komposer, dan menggunakan kelas 'HTTPCACHE' untuk menambah tajuk caching HTTP ke respons anda.
Atas ialah kandungan terperinci Senarai Semak Symfony 2 untuk Pembangunan dan Penempatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!