Cara memasang pelayan web dengan Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [Bahagian 1: Persembahan]

Tidak lama dahulu kami menyebutnya sekarang DesdeLinux (semua perkhidmatannya) berfungsi Pelayan GNUTransfer.com. Blog telah bertambah baik dari segi kelajuan, kelancaran, bahkan ketika kita tidak mempunyai (selepas penggabungan UsemosLinux) lebih daripada 30.000 lawatan setiap hari (hampir 200 pengguna berhubung secara serentak). Bagaimana untuk mencapai prestasi yang baik di pelayan walaupun dengan jumlah lalu lintas ini?

Saat ini Justice (VPS di mana blog dan beberapa perkhidmatan lain) memiliki 3GB RAM, namun kurang dari 500MB digunakan, ini mungkin dilakukan dengan pilihan perisian yang betul untuk digunakan dan konfigurasi yang memadai. Sebagai contoh, Apache tidak diragukan lagi adalah yang hebat di dunia, No.1 dalam hal hosting, tetapi dengan alasan itulah Apache tidak selalu menjadi pilihan terbaik. Apabila trafik tinggi dan perkakasan pelayan tidak terlalu besar (Cth: RAM 8 atau 16 GB) Apache mungkin menggunakan terlalu banyak RAM menjadikan pelayan pada masa-masa tertentu mengambil masa yang terlalu lama untuk bertindak balas, atau lebih buruk lagi, bahawa laman web kami di luar talian untuk sumber yang tidak mencukupi. Itulah sebabnya mengapa banyak daripada kita memilih Nginx daripada Apache.

Nginx:

Kami telah memberitahu anda mengenai Nginx sebelumnya dalam artikel Nginx: Alternatif yang menarik untuk Apache, di sana kami memberitahu anda bahawa ia adalah pelayan web seperti Apache, LightHttpd atau Cherokee, tetapi berbanding Apache ia menonjol untuk prestasinya dan penggunaan perkakasan yang rendah, tepatnya mengapa banyak tapak besar seperti Facebook, MyOpera.com, DropBox atau bahkan WordPress .com menggunakan Nginx dan bukannya Apache. Dalam dunia Linux DesdeLinux Ia bukan satu-satunya yang menggunakan Nginx, setakat yang saya tahu, emsLinux dan MuyLinux juga menggunakannya :)

Pengalaman peribadi saya dengan Nginx bermula sejak beberapa tahun, apabila saya memerlukan mencari alternatif lain daripada Apache. Pada masa itu Nginx menggunakan versi 0.6 dan keserasiannya dengan laman web permintaan tinggi yang dibuat dalam PHP bukanlah yang paling optimum, namun sekarang dari versi 0.9 dan seterusnya (v1.2.1 terdapat di Debian Stable, v1.4.2 tersedia di ArchLinux) telah bertambah banyak, sehingga dengan konfigurasi dan penyatuan Nginx + PHP yang betul semuanya akan berfungsi seperti daya tarikan.

Dalam siri tutorial ini Saya akan menggunakan Nginx versi 1.2.1-2.2, terdapat di repositori Debian Stable (Wheezy).

PHP5:

PHP, bahasa pengaturcaraan yang digunakan oleh banyak laman web (dan CMS) hari ini, menurut saya, domba hitam keluarga. Dengan kata lain, dalam pengalaman peribadi saya, laman web yang besar, dengan jumlah lawatan yang besar, dengan banyak pilihan, fungsi, dan lain-lain, jika laman web seperti ini dibuat dalam PHP, ia akan memakan lebih banyak sumber daripada laman web serupa yang dibuat, misalnya, dalam RoR. Pengalaman saya adalah bahawa orang-orang, PHP adalah naga sumber yang besar, PHP + Apache cukup untuk menelan beratus-ratus MB RAM tanpa keperluan sebenar.

Alasan untuk tidak menggunakan RoR, Django atau sesuatu yang lain adalah semata-mata DesdeLinux (blog, perdana kami) berfungsi dengan WordPress, CMS yang dibangunkan dengan PHP yang menawarkan kami begitu banyak keselesaan, sehingga kami tidak bercadang untuk mengubahnya dalam jangka pendek atau sederhana, jujur, WordPress, walaupun ia tidak sempurna, melayani kami untuk apa yang kami perlukan dan mungkin lebih.

Mengenai PHP, dalam tutorial ini saya akan menggunakan Versi PHP 5.4.4-14 boleh didapati di Debian Wheezy (Stabil)

Spawn_FastCGI:

Ini boleh dikatakan sebagai apa yang menyatukan Nginx dengan PHP, iaitu, walaupun mereka memasang pakej PHP5 jika mereka tidak memasang Spawn_FastCGI dan dijalankan ketika mereka membuka laman web di PHP, penyemak imbas akan memuat turun fail tersebut, ia tidak akan menunjukkan mereka apa-apa yang telah diprogramkan oleh .php kerana pelayan tidak tahu bagaimana memproses fail .php, sebab itulah sangat penting untuk memasang dan mengkonfigurasi Spawn_FastCGI.

Sekiranya kita menggunakan Apache, ini akan menjadi sesuatu yang semudah memasang pakej libapache2-mod-php5, tetapi kerana kita menggunakan Nginx kita harus memasang paket spawn-fcgi. Juga, dalam tutorial saya akan menerangkan cara membuat skrip awal untuknya di /etc/init.d/ supaya anda dapat mengendalikannya dengan lebih selesa.

MySQL:

Ini boleh menjadi tanda tanya besar atau mungkin, bagi sesetengah orang, nota yang tidak sesuai. Ramai yang saya tahu akan mengajukan soalan kepada saya: mengapa menggunakan MySQL dan bukan MariaDB?

Isunya ialah saya tidak mempunyai masa yang cukup untuk menumpukan pada melakukan migrasi pada masa ini dari MySQL ke MariaDB, penghijrahan yang secara teorinya harus telus untuk semua orang, 100% serasi dengan segala-galanya, tetapi itu adalah... sebagai Saya berkata, secara teori. Pada masa itu saya mula memindahkan perkhidmatan DesdeLinux dari satu VPS ke VPS yang lain saya terpaksa meninggalkan Apache dan menggunakan Nginx, ini melibatkan fail konfigurasi yang berbeza, cara yang berbeza untuk mengisytiharkan VHosts, pemasangan dan konfigurasi dari awal pelayan dan perkhidmatannya, pada masa itu saya tidak dapat menambah tugas lain ke senarai, juga dan sejujurnya, saya menukar Apache untuk Nginx kerana Apache tidak memenuhi keperluan saya, bagaimanapun, MySQL setakat ini memenuhi keperluan saya 100%, saya tidak nampak sebab untuk saya meningkatkan beban kerja saya dengan mengubah sesuatu yang Ia sudah berfungsi secara teknikalnya baik untuk saya.

Setelah dijelaskan mengapa saya tidak memasang MariaDB, juga jelaskan bahawa kerana sebilangan besar laman web memerlukan pangkalan data untuk operasi mereka, kerana di sinilah banyak maklumat (atau hampir semua) akan disimpan. Terdapat beberapa yang suka Postgre atau orang lain, dalam siri tutorial ini saya akan menerangkan bagaimana pasang MySQL dan konfigurasikan pengguna yang berasingan untuk setiap laman web.

La Versi MySQL yang akan saya gunakan ialah v5.5.31

APC:

APC adalah pengoptimum untuk PHP (dijelaskan dengan sederhana). Ini membolehkan kita dikonfigurasi dengan betul bahawa pemprosesan PHP berfungsi lebih baik, bahawa tindak balas dari pelayan lebih cepat.

Terdapat alternatif seperti memcache namun, saya selalu menggunakan APC dan memperoleh hasil yang sangat baik. Saya cadangkan membaca artikel ini dalam bahasa Inggeris: Membandingkan APC dan Memcache sebagai cache kandungan tempatan

Saya akan menggunakan dalam tutorial versi php-apc v3.1.13-1 juga terdapat di repositori Debian Stable.

Menyusun:

Cara memasang konfigurasi pelayan web ini bukanlah yang paling optimum atau lebih kurang, misalnya banyak yang akan mengesyorkan Varnish, yang dari apa yang saya baca melakukan keajaiban yang benar kerana semuanya atau hampir semuanya disimpan dalam cache, tetapi, dalam kes kita, kita tidak memerlukan bahawa 100% laman web sentiasa disimpan dalam cache kerana kita tidak mahu atau perlu melampau. Walau bagaimanapun, saya menjelaskan, seperti yang saya katakan di atas: "sejauh yang saya baca", saya secara peribadi tidak menggunakan Varnish sehingga hari ini, jadi saya tidak dapat memberikan pendapat objektif 100% kepada anda.

Ini akan menjadi satu siri tutorial di mana saya akan menunjukkan kepada anda cara memasang pelayan web seperti yang dihoskan pada minit ini. DesdeLinux (blog, forum, tampal, dll). Blog ini mempunyai 30.000 lawatan setiap hari, hampir 200 pengguna mengaksesnya secara serentak, namun RAM tidak melebihi 500MB yang digunakan, untuk sesetengahnya ini mungkin penggunaan yang berlebihan tetapi... hei, kami mempunyai 3GB RAM, kurang daripada 500MB (termasuk Perkhidmatan FTP, SSH, dan lain-lain) sangat bagus bukan? 🙂

Semua 'sihir' tidak hanya dilakukan oleh Nginx + Spawn_FastCGI + APC, sistem cache blog kami dikonfigurasi dengan betul dan peraturan untuk Nginx tepat, ini menjadikan blog walaupun menerima banyak proses trafik lebih kurang PHP daripada apa biasa kerana sudah banyak cache. Sekiranya anda mempunyai laman web dengan permintaan tinggi dan mempunyai masalah sumber, saya cadangkan tanpa ragu bahawa anda belajar untuk melihat sistem cache mana yang paling sesuai untuk anda, mana yang paling sesuai dengan keperluan anda.

Saya harap anda dapati tutorial ini menarik, kerana setiap satu daripadanya saya akan cuba menerangkan semuanya dengan cara yang komprehensif, terperinci dan sesederhana mungkin.

salam


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Bruno cascio kata

    Sangat bagus dan jelas! Saya ucapkan tahniah kepada kamu!

    1.    KZKG ^ Gaara kata

      Terima kasih

  2.   Christopher castro kata

    Tutorial yang sangat bagus.

    Apa yang mengisi saya dengan keraguan adalah bagaimana mereka mengkonfigurasi pelayan e-mel.

    1.    KZKG ^ Gaara kata

      MailServer adalah sesuatu yang terpisah, iaitu, ia tidak ada kaitan dengan pelayan web seperti yang anda tahu 🙂

      Walau bagaimanapun, lama dahulu saya memutuskan untuk tidak menyulitkan diri dengan MailServer, saya memilih untuk menggunakan iRedMail (sokongan untuk MySQL, LDAP dan Postgre) dan dengan tetapan dan perincian yang betul yang saya tambahkan dalam fail konfigurasi, semuanya berfungsi dengan baik.

  3.   Reput87 kata

    Saya suka artikel, saya sedang menunggu siri artikel

    1.    KZKG ^ Gaara kata

      Terima kasih, saya harap membawanya yang seterusnya pada hari Isnin atau Selasa, ia akan menangani pemasangan dan konfigurasi Nginx.

  4.   aca kata

    Sangat baik, konfigurasi yang betul, sukar dicari, kompromi antara faktor kadang-kadang hampir tidak dapat diselesaikan, saya juga pergi ke nginx beberapa ketika yang lalu dan kemudian ke mariadb (baru-baru ini, saya fikir setahun yang lalu).

    // Seperti yang saya sebutkan, ada baiknya jika Anda mengangkat kemungkinan chroot, dan menggunakan proxy_cache_path yang juga berguna. Juga perbandingan soket (dalam kes yang mungkin) terhadap port. dan tentukan dengan baik bilangan anak / ram.

    salam

    1.    KZKG ^ Gaara kata

      Terima kasih atas komen anda 🙂
      Ya tentu saja, sangat bagus untuk mengasingkan Nginx agar tetap terpisah daripada sistem yang lain, saya tidak mempertimbangkan kemungkinan itu dalam tutorial ini, saya akan melihat apa yang boleh saya lakukan. Mengenai proxy_cache_path, saya tidak pernah menggunakannya, saya akan membacanya sedikit untuk melihat bagaimana ia berfungsi

      Mengenai bilangan utas (min & max), dalam konfigurasi Nginx jelas ditentukan, dalam catatan Nginx saya akan banyak membincangkan fail .conf 😉

      Sekali lagi, terima kasih atas komen anda.

  5.   MSX kata

    Jenis HowTos inilah yang menjadikan web benar-benar hebat untuk saintis komputer kerana menjimatkan banyak penyelidikan dan ujian sehingga kami akhirnya memutuskan pilihan yang sesuai, terima kasih banyak!

    Satu soalan, adakah ini dijalankan pada Debian? Apa versi OS dan pakej?

    Salam!

    1.    KZKG ^ Gaara kata

      Terima kasih.
      Sesungguhnya, laman web yang melaporkan, yang mengulang dan mengulangi berita sudah terlalu banyak ... apa yang diperlukan adalah laman web yang meletakkan tutorial, itulah yang diperlukan oleh web!

      Ya, Debian Wheezy (Stable semasa), versi pakej ada di pos 😉

  6.   eliotime3000 kata

    Komen yang sangat baik. Mari kita lihat sama ada saya melakukan kesalahan dengan ZPanel X, dan secara tidak sengaja, lakukan pemasangan secara manual di Debian Wheezy.

  7.   Federico Antonio Valdes Toujague kata

    Teruskan KZKG ^ Gaara !!!, bahawa Kriteria Kebenaran Terbaik adalah Praktik, dan anda mempunyai pengalaman tentang apa yang anda tulis. Laman web profesional dan berfungsi. Besbol Liga Utama, Dude.

    1.    eliotime3000 kata

      Itu betul. Juga, ketika saya mula bermain dengan pelayan web yang saya pasang di Windows, kebenarannya adalah bahawa Apache meningkat dari segi penggunaan sumber jika anda menggunakan WordPress (di Drupal ia menghabiskan separuh sumber daya).

  8.   kereta kuda kata

    Saya berpendapat bahawa untuk bahagian Nginx tutorial ini akan sangat berguna bagi saya. Saya sekarang mahu memasang pelayan dengan Nginx, php, Varnish dan MariaDB. Tetapi tentu saja, anda harus bermula, dan kemalasan dapat banyak berlaku ketika bertengkar dengan pelayan dan buat masa ini saya gembira dengan lampu dan memcache khas yang saya miliki xDD.

    Sesuatu ucapan.

  9.   auroszx kata

    Hebat, salah satu daripadanya akan berguna 🙂 Seorang lagi menantikannya.

  10.   Ivan Gabriel Sosa kata

    Kami mengikuti anda. Kami kini bermula dalam dunia pelayan web. Kami membeli dua dari Hostinger, dan seorang rakan menolong kami mengkonfigurasinya dari awal (PHP, MySQL, Apache). Ini adalah satu-satunya kombinasi yang digunakan dalam Linux, platform yang saya gunakan sejak Januari.
    Tetapi saya sangat berminat dengan topik ini. Ceria!

  11.   Jose Manuel kata

    Saya tidak pernah memasang pelayan web tetapi jika saya ingin melakukannya, satu soalan, adakah tahap yang diperlukan untuk memahami tutorial dan adakah pemasangannya tinggi atau dengan pengetahuan asas bolehkah saya mencubanya? Terima kasih terlebih dahulu.

    1.    eliotime3000 kata

      Yang benar adalah bahawa ia tidak memerlukan banyak pengetahuan untuk dapat mengendalikan pelayan pangkalan data. Seorang yang sudah mencuba pengalaman itu memberitahu anda.

  12.   Mauritius kata

    Helo, sangat baik apa yang akan anda lakukan dengan siri catatan ini.

    Saya baru-baru ini memasang Nginx + Php Fastcgi + Mariadb. Nginx.

    Semua ini, saya lakukan di Archlinux, kerana pengedaran itu adalah satu-satunya dari sudut pandangan saya, yang tidak membawa banyak barang seperti yang lain. Saya meletakkannya di dalam sangkar dan memberikan banyak kesulitan untuk menjadikannya berfungsi dengan sempurna.

    Sekarang ia berfungsi dengan sempurna. Walaupun saya berminat untuk mengetahui pendapat anda, mengenai proses anak-anak dan ayah, semakin banyak petua yang mereka berikan kepada saya, semakin baik.

    Semua ini hanya untuk latihan.
    Peralatan ini mempunyai ram DDR4 2GB dan pemproses 2Ghz Core 2.4duo.

    Salam dan saya menantikan catatan siri ini yang akan datang.

  13.   otot kata

    200 pengguna berhubung secara serentak?
    Hanya pada waktu-waktu tertentu dalam sehari, bukan? Kerana jika tidak, jumlah itu melebihi 30.000 kunjungan harian.

    1.    KZKG ^ Gaara kata

      Ya, tentu saja, tidak selalu ada 200 orang dalam talian, pada masa ini terdapat hampir 40 orang kerana masih awal, dalam beberapa jam mereka akan melebihi 100 orang.

  14.   penipu kata

    Hanya untuk keseronokan, saya hanya beralih dari ringan ke nginx di stesen kerja saya (Symfony2 sekarang), saya mengambil konfigurasi dari sini [1], sangat sederhana.

    [1] http://ihaveabackup.net/2012/11/17/nginx-configuration-for-symfony2

  15.   Apr4xas kata

    Menunggu kesinambungan ini 😀

    1.    KZKG ^ Gaara kata

      Minggu ini saya mesti menerbitkannya, terima kasih kerana membaca kami 🙂

      1.    kesihatan kata

        dan? banyak yang hilang?

  16.   Dekan kata

    Catatan yang baik ...

  17.   NOEL IVAN kata

    SELAMAT PETANG.
    SEBAGAI SPESIFIKASI PROJEK SEKOLAH, MEREKA MEMBUATKAN NGINX DI OPENBSD 5.4 DI ORACLE MV VIRTUALBOX UNTUK MENGGUNAKAN PHP, MYSQL, DI LAINNYA, NADAMAS YANG SAYA TIDAK DAPAT MENCARI MAKLUMAT DENGAN DI ATAS DI ATAS TELAH MASALAH DI ATAS.