Cara memasang pelayan web dengan Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [Bahagian ke-2: Nginx]

Sedang yang lalu Saya memberitahu anda mengenai siri tutorial ini, mengenai cara memasang dan mengkonfigurasi pelayan untuk hosting permintaan tinggi. Artikel ini akan mengenai pemasangan dan konfigurasi Nginx:

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).

Tutorial ini hanya membincangkan tentang Nginx, bukan mengenai Nginx + PHP, penyatuan Nginx + PHP serta pengoptimuman atau konfigurasi yang diperlukan akan ditangani dalam tutorial seterusnya

1. Pemasangan:

Kami akan mulakan dengan perkara pertama, pasang Nginx dari repositori kami.

Semua perintah yang akan dijalankan dijalankan dengan izin root, baik dengan meletakkan sudo pada awal setiap baris atau dengan masuk sebagai root

Sekiranya di pelayan anda menggunakan sebaran seperti Debian, Ubuntu atau beberapa derivatif di terminal, anda mesti meletakkan yang berikut dan tekan Masukkan :

aptitude install nginx

aptitude tidak dipasang secara lalai di Ubuntu, namun saya mengesyorkan agar anda memasangnya dan menggunakannya bukan apt-get, kerana kemampuan menguruskan pergantungan dengan lebih baik pada kesempatan tertentu

Sekiranya anda menggunakan sebaran lain di pelayan anda seperti CentOS, Red Hat, Fedora, cukup pasang pakej: nginx dari repositori rasmi

Secara peribadi saya tidak mengesyorkan sebarang derivatif Debian, bahkan Ubuntu untuk pelayan, selama ini pengalaman saya tidak sepenuhnya memuaskan. Pilihan pertama saya untuk sistem operasi pelayan adalah Debian, maka saya akan memikirkan CentOS, akhirnya beberapa BSD

2. Konfigurasi:

Ya tenemos instalado Nginx, pero necesitamos obviamente configurarlo. Les he preparado un archivo comprimido en el FTP el cual contiene todas las configuraciones que se usan en los servidores de DesdeLinux, tanto para PHP, Nginx, etc. Vamos a descargar y descomprimir ese archivo:

cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

Ini akan membuat folder bernama nginx-spawn-fastcgi, dari itu kita akan memerlukan dua fail untuk Nginx tulen (iaitu, tanpa menghubungkannya ke PHP):

  • nginx.conf - »Fail konfigurasi Nginx Utama (kita akan membincangkan kandungannya kemudian)
  • index.html - »Fail html ringkas yang akan kita gunakan untuk melihat apakah Nginx benar-benar berfungsi untuk kita dalam bentuk yang paling asas
  • mywebsite.net - »Fail konfigurasi untuk laman web sederhana, VHost (Virtual Host) yang akan mengkonfigurasi akses ke html sebelumnya

Mari mula-mula beralih ke folder tetapan Nginx:

cd /etc/nginx/

Kemudian mari keluarkan konfigurasi lalai dan letakkan sendiri:

mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./

Ini, seperti yang saya katakan, adalah fail konfigurasi Nginx utama, di dalamnya saya telah menentukan perkara berikut:

pengguna www-data; pekerja_proses 4; pid /var/run/nginx.pid;

Akses pengguna ke sistem fail (dengan mana nginx akan mengakses ke mana-mana sahaja), bilangan proses untuk dikerjakan dan juga PID (id proses nginx).

Kami juga memiliki blok kecil yang disebut peristiwa (pengaturan untuk acara) yang berisi garis yang menunjukkan jumlah maksimum sambungan yang dibenarkan per acara. Di bawah adalah blok yang dipanggil http.

Blok http ini adalah yang mengandungi hampir semua perkara yang berkaitan dengan hosting, sekurang-kurangnya banyak perkara yang menarik minat anda. Sebagai contoh, masa maksimum untuk hidup atau menunggu (timeout), di mana log umum kita (access.log dan error.log), pemampatan data menggunakan gzip, serta peraturan lain yang mungkin berguna pada masa akan datang.

Setelah fail konfigurasi utama disediakan, mari salin fail dari VHost kami ke folder yang tersedia di laman web

cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/

Juga, kita mesti membuat pautan simbolik dari fail ini ke folder yang didayakan laman web.

ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/

Saya menerangkan kegunaan menyediakan laman web dan menyediakan laman web.

Mereka akan menemui saat-saat ketika mereka mesti mempunyai beberapa fail vhost yang siap dan dikonfigurasi, kerana di pelayan itu mereka akan meletakkan dalam talian, katakan 5 laman web. Walau bagaimanapun, kebetulan belum tiba masanya untuk mengaktifkan 2 dari 5 vhost tersebut, tetapi mereka mesti menyediakan failnya sehingga apabila perlu, mereka dalam talian dalam masa sesingkat mungkin. Anda boleh meletakkan seberapa banyak vhost yang anda mahukan di laman web-tersedia (laman web-tersedia), kerana yang dibaca oleh Nginx untuk dimasukkan dalam talian hanyalah yang didayakan oleh laman web (diaktifkan oleh laman web), ia juga akan berfungsi ke arah yang bertentangan, sekiranya anda ingin meletakkan laman web di luar talian (untuk sementara waktu misalnya), tidak perlu menghapus fail dari pelayan anda (fail yang kami perlukan pada masa yang lain), kami hanya membuang pautan simbolik dari laman web yang diaktifkan dan itu sahaja. Kegunaan mempunyai pautan simbolik dan tidak hanya menyalin fail dari satu folder ke folder lain, adalah bahawa apabila kita ingin mengedit vhost, tidak menjadi masalah jika kita mengedit yang terletak di aktif atau tersedia, pada akhirnya ia sama
arkib.

Fail mywebsite.net seperti yang saya katakan sebelumnya, vhost yang berfungsi sebagai contoh, iaitu, dan dengan kata lain, kita mesti mengubahsuai mywebsite.net dan menetapkan konfigurasi kita.

Kita mesti mengubah perkara berikut:

  • access_log (baris 3): Ini akan menjadi laluan fail log akses ke laman web ini
  • error_log (baris 4): Ini akan menjadi laluan fail log ralat ke laman web ini
  • server_name (baris 5): URL, domain yang dihoskan dalam folder itu, contohnya, jika forum itu DesdeLinux ia akan menjadi: forum server_name.desdelinux. Bersih
  • root (baris 6): Laluan ke folder di mana fail html berada, mari tinggalkan ini di / var / www / kerana ia hanya akan menjadi ujian
Jelas mereka mesti menunjukkan dalam catatan DNS penyedia hosting mereka (menggunakan CPanel atau alat lain) bahawa domain atau subdomain yang dinyatakan dalam nama_pengguna terletak di IP pelayan ini yang mereka konfigurasikan. Maksudnya, dalam DNS di mana mereka membuat subdomain untuk domain mereka, mereka mesti menyatakan bahawa domain atau subdomain yang mereka masukkan pada baris 5 terletak di pelayan ini (pelayan ini = alamat IP pelayan yang dimaksudkan)

Sekarang kita hanya perlu menyalin fail html ke folder yang kita tentukan dalam fail VHost kami, / var / www /:

mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/

Kemudian kita mulakan semula Nginx dan begitulah:

service nginx restart

Dan voila, sesuatu seperti ini akan muncul:

nginx-pure-test-site-html

Saya mengingatkan anda bahawa kami bekerja terlebih dahulu dengan Nginx untuk HTML, tanpa sokongan PHP, pemasangan PHP ini dan menghubungkannya ke Nginx akan menjadi isi tutorial seterusnya (dalam beberapa hari, saya berjanji).

Bagaimanapun, ini adalah tutorial pemasangan dan konfigurasi Nginx agar berfungsi dengan tulen, iaitu laman HTML, saya harap ini akan menarik minat anda.

Saya akan menjelaskan bahawa ya, masih ada amalan terbaik yang boleh digunakan, namun mari kita tunggu untuk menyelesaikan siri tutorial ini dan kemudian kita akan menilai hasil akhir kerja 😉

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.   Nelson kata

    Terima kasih, sangat membantu!

    1.    KZKG ^ Gaara kata

      Terima kasih atas komen

  2.   penipu kata

    Di backports terdapat nginx 1.4.

    1.    KZKG ^ Gaara kata

      Ya, tetapi pada pelayan pengeluaran saya tidak menggunakan semua itu 😀

      1.    penipu kata

        Dengan "itu" anda bermaksud versi stabil dan teruji terbaru yang dikeluarkan oleh nginx, anda membuatnya nampaknya sesuai dari sid. ~ _ ~

        1.    KZKG ^ Gaara kata

          Ah mari, adakah ... di pelayan yang saya tidak pernah gemar menggunakan repos lain, atau backport atau seumpamanya

      2.    Raphael Castro kata

        Sentiasa stabil pada pelayan, saya belajar tahun-tahun yang lalu.

        1.    penipu kata

          Nginx 1.4 stabil sejak April lalu, di bahagian belakangnya 1.4.1-3.

          2013-04-24

          versi stabil nginx-1.4.0 telah dikeluarkan, menggabungkan banyak ciri baru yang dikembangkan di cawangan 1.3.x - sokongan untuk proksi sambungan WebSocket, stapling OCSP, modul SPDY, penapis gunzip dan banyak lagi.

          http://nginx.org/en/CHANGES-1.4

          1.    Raphael Castro kata

            Anda betul dalam apa yang anda katakan, topi saya tidak ada.

  3.   chinoloco kata

    Terima kasih kerana berkongsi, saya sedang mempraktikkan siaran tertua anda.
    Saya akan mengisi anda dengan soalan XD

    1.    KZKG ^ Gaara kata

      Terima kasih kerana membaca 🙂
      Cualquier duda o pregunta ya sabes, estamos para ayudar, ahí tienes el foro.desdelinux.net donde entre todos te intentaremos dar la mejor solución

      salam

      1.    Gibran barrera kata

        Saya mempunyai soalan yang saya jalankan LAMP [Linux (Debian Wheezy), Apache, PHP dan MySQL] di pelayan saya untuk WordPress dan Owncloud, bagaimana saya berhijrah ke Ngnix, satu lagi persoalan ialah apa perbezaan antara Ngnix dan Lighttpd.

        1.    KZKG ^ Gaara kata

          Komplikasi atau kesukaran terbesar untuk berpindah dari Apache ke Nginx adalah konfigurasi setiap laman web, iaitu, khususnya .htaccess yang anda gunakan.

          .Htaccess adalah yang paling kompleks ketika beralih ke Nginx, kerana mereka adalah konfigurasi yang berbeza yang mesti anda masukkan ke dalam Nginx VHost.

          Tentang LightHTTPd dan Nginx ... Saya tidak tahu, saya menggunakan LightHTTPd hanya sekali bertahun-tahun yang lalu, pada masa ini saya tidak tahu bagaimana perkembangannya, khususnya menggunakan PHP.

  4.   eliotime3000 kata

    NGINX kelihatan cukup mudah berbanding dengan Apache. Menunggu episod seterusnya dapat melengkapkannya dengan PHP

  5.   Mauritius kata

    Saya sedang menunggu petua untuk mengoptimumkan lebih banyak ke nginx 😀

    Dengan cara Gaara, anda boleh memasukkan dalam tutorial anda seterusnya, bagaimana menerapkan sokongan SSL.

    Greetings.

    1.    KZKG ^ Gaara kata

      Los tips que vienen son en realidad para optimizar el procesamiento PHP, caché a sitios, puedo poner el ejemplo de la configuración que usamos en DesdeLinux para Nginx+Wordpress+W3_Total_Cache 🙂

  6.   kaiser kata

    Terima kasih atas sumbangan yang baik.

  7.   Apr4xas kata

    Dan panduan untuk archlinux bila? xD

    1.    KZKG ^ Gaara kata

      Dalam Arch sangat mirip, hanya nama-nama pakej yang berubah tetapi ... conf hampir serupa

      Tetapi siapa yang mempunyai pelayan pengeluaran dengan Arch? 😀

  8.   Apr4xas kata

    Hi there,

    Ini saya lagi xD ...

    Saya mengikuti langkah anda menerapkannya pada mesin dengan archlinux dan saya menghadapi masalah berikut:

    [abr4xas@Genius www]$ systemctl status nginx.service
    nginx.service - A high performance web server and a reverse proxy server
    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
    Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
    Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)

    Sebarang cadangan 😀

  9.   rhiz kata

    Jo… xox, saya hanya mahukan pelayan dalaman, iaitu, saya hanya mahu mengganti xampp, adakah saya perlu melakukan semua ini?

    1.    KZKG ^ Gaara kata

      Sekiranya anda mahu, anda boleh melaksanakannya (yang saya ulangi, ia berfungsi dengan DL), sebenarnya pelayan maya saya (yang saya gunakan untuk pembangunan dan ujian) saya telah melakukannya dengan perkara yang sama yang saya jelaskan.

      Maksudnya, anda boleh mengeluarkan XAMPP dan meletakkan varian ini dan ia akan berfungsi dengan baik, atau jika anda mahu meninggalkan XAMPP ... ia tetap akan berfungsi untuk anda.

      Titik positif menggunakan ini yang saya tunjukkan adalah penggunaan perkakasan yang sangat rendah berbanding Apache, tetapi, pada komputer peribadi anda, yang bukan hosting permintaan tinggi, jauh dari itu ... jika XAMPP berfungsi dengan baik untuk anda, saya tidak nampak mengapa membuangnya 🙂

  10.   Ishak kata

    Saya sudah menjalankan pelayan Linux saya (Debian, Nginx, MySQL, dan PHP) Saya sukar mendapatkan PHP untuk bekerja dengan Nginx kerana saya terbiasa dengan Pelayan Web Apache yang sederhana.

    Baiklah soalan saya: Adakah ada yang tahu bagaimana saya dapat menunjukkan domain ujian yang telah saya beli ke pelayan saya? Saya ingin mencuba domain .com saya untuk melihat cara kerjanya, tetapi saya tidak mempunyai sedikit pun idea bagaimana melakukannya, kerana saya selalu menggunakan alamat NOIP untuk mengaksesnya dengan noip DUC.

    Saya harap seseorang dapat menolong saya, Terima kasih!

  11.   Abraham kata

    Saya mendapat ini semasa cuba menyambung ke ftp anda:

    cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

    Permintaan HTTP dihantar, menunggu jawapan ... 404 Tidak Ditemui
    2015-11-23 17:46:30 KESALAHAN 404: Tidak dijumpai.

  12.   Ryan kata

    Saya menjalankan pelayan CentOS saya (Gunicorn, Nginx, PHP) saya memerlukan banyak kerja untuk membuatnya berfungsi tetapi titik di mana saya terjebak adalah bahawa Halaman Web yang ingin saya lancarkan memerlukan konfigurasi penyedia domain dalam hal ini Go Daddy Jadi pada ketika ini saya tidak tahu bagaimana untuk meneruskannya.

  13.   Ricardo kata

    Bolehkah anda berkongsi fail konfigurasi dengan saya kerana saya tidak dapat memuat turunnya