Rumah > pembangunan bahagian belakang > tutorial php > PHP Master | Menyebarkan aplikasi CakePHP di Appfog dengan cara yang betul

PHP Master | Menyebarkan aplikasi CakePHP di Appfog dengan cara yang betul

Jennifer Aniston
Lepaskan: 2025-02-25 20:10:13
asal
547 orang telah melayarinya

Menggunakan Aplikasi CakePHP di Appfog: Panduan Komprehensif

PHP Master | Deploy CakePHP Apps on AppFog the Right Way

Panduan ini, yang asalnya diterbitkan di Cloudspring, butiran yang menggunakan aplikasi CakePHP ke Appfog, platform sebagai perkhidmatan (PAAS), sambil menekankan amalan terbaik untuk struktur aplikasi PHP. Kami akan membuat aplikasi pengambilan nota mudah, kemudian menyusunnya untuk penggunaan dan penyelenggaraan yang optimum.

Konsep Utama:

    Penyebaran CakePHP yang cekap pada Appfog dicapai dengan menstrukturkan aplikasi ke dalam komponen yang berbeza: kod aplikasi, data & tetapan aplikasi, dan kod perpustakaan/vendor.
  • Appfog memudahkan penggunaan, menyokong pelbagai bahasa dan pelbagai penyedia infrastruktur (Amazon AWS, HP OpenStack, Microsoft Azure, Rackspace DFW).
  • Struktur direktori yang jelas adalah penting untuk memisahkan kod aplikasi dari rangka kerja dan perpustakaan, memudahkan kemas kini, sandaran, dan penyelenggaraan.
  • Appfog menawarkan alat pemantauan prestasi (CPU, memori, trafik rangkaian) dan keupayaan amaran.

Bermula dengan Appfog:

Appfog, berdasarkan Foundry Cloud, menyokong pelbagai bahasa pengaturcaraan dan membolehkan penempatan merentasi pelbagai penyedia infrastruktur. Daftar untuk akaun percuma (memerlukan e -mel dan kata laluan) yang menawarkan 2GB RAM, 10 perkhidmatan (100MB setiap satu), dan had pemindahan data 50GB. Anda juga boleh memindahkan aplikasi anda ke mana-mana perkhidmatan yang bersesuaian dengan awan.

Mewujudkan aplikasi tempatan:

    Muat turun dan ekstrak versi CakePHP terkini. Namakan semula direktori (mis., "Fognotes").
  1. Buat aplikasi yang boleh diakses melalui pelayan web (mis.,
  2. ), menetapkan root dokumen ke http://fognotes.local. app/webroot
  3. Buat pangkalan data MySQL kosong (mis., ).
  4. fognotes_local Buat direktori
  5. dengan subdirektori
  6. dan data. Bergerak config ke logs. Pastikan direktori app/tmp boleh ditulis oleh pelayan web. data data/logs Buat pautan simbolik untuk konsol CakePHP:
  7. ln -s lib/Cake/Console/cake cake
  8. struktur direktori anda harus menyerupai ini:

Struktur ini memisahkan kod aplikasi (
<code>FogNotes/
    app/
    data/
        config/
        logs/
        tmp/
            cache/
            logs/
            sessions/
            tests/
    lib/
        Cake/
    plugins/
    vendors/
    cake
    index.php</code>
Salin selepas log masuk
Salin selepas log masuk
), kerangka (

), perpustakaan (app, lib/Cake), dan data/tetapan (). plugins vendors Ubah suai data/* untuk menentukan direktori sementara tersuai:

app/webroot/index.php Seterusnya, laraskan konfigurasi pangkalan data. Salin

ke
<?php
// Custom TMP directory
if (!defined('TMP')) {
    define('TMP', ROOT . DS . 'data' . DS . 'tmp' . DS);
}
?>
Salin selepas log masuk
Salin selepas log masuk
dan menggantikan

dengan: app/Config/database.php.default

<code>FogNotes/
    app/
    data/
        config/
        logs/
        tmp/
            cache/
            logs/
            sessions/
            tests/
    lib/
        Cake/
    plugins/
    vendors/
    cake
    index.php</code>
Salin selepas log masuk
Salin selepas log masuk

dalam app/Config/bootstrap.php, tambahkan baris ini (selepas Configure::write('Dispatcher.filters'...) untuk mendaftarkan jalan data/config:

<?php
// Custom TMP directory
if (!defined('TMP')) {
    define('TMP', ROOT . DS . 'data' . DS . 'tmp' . DS);
}
?>
Salin selepas log masuk
Salin selepas log masuk

dan pada akhir app/Config/bootstrap.php:

<?php
class DATABASE_CONFIG {
    public $default = null;
    public $test = null;
    public $env = null;

    function __construct() {
        if (!defined('APP_ENV')) return false;
        $this->env = APP_ENV;
        $config = Configure::read('Database.config');
        if (!is_array($config)) return false;
        foreach ($config as $name => $data) $this->$name = $data;
        if (empty($config['default']) || empty($this->default)) return false;
    }
}
?>
Salin selepas log masuk

Configure::load() carian data/config untuk fail yang sepadan dengan persekitaran (mis., local.php, prod.php). Sampel local.php disediakan dalam artikel asal.

Menyebarkan ke appfog:

Buat aplikasi Appfog baru (pilih PHP dan penyedia pilihan anda).
  1. mengikat perkhidmatan MySQL (mis.,
  2. ).
  3. fognotes_prod Tetapkan pembolehubah persekitaran
  4. ke "prod".
  5. APP_ENV membuat
  6. , mengekstrak tetapan pangkalan data dari pembolehubah persekitaran
  7. (seperti yang terperinci dalam artikel asal). data/config/prod.php VCAP_SERVICES Gunakan utiliti
  8. (pemasangan arahan yang disediakan di Appfog) untuk menolak kod tempatan anda (
  9. ). af af update FogNotes
  10. Selepas penempatan, import skema pangkalan data (
) ke dalam pangkalan data jauh anda menggunakan terowong (

). Kemudian, gunakan arahan Bake CakePHP untuk menghasilkan model, pandangan, dan pengawal aplikasi. Akhirnya, kemas kini penghalaan untuk menunjuk halaman rumah ke nota anda. Redeploy menggunakan data/config/notes.sql. af tunnel af update FogNotes Artikel asal juga termasuk Soalan Lazim yang meliputi pelbagai aspek penyebaran CakePHP pada Appfog, termasuk penyelesaian masalah, penskalaan, keselamatan, dan pemantauan.

Atas ialah kandungan terperinci PHP Master | Menyebarkan aplikasi CakePHP di Appfog dengan cara yang betul. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan