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

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 + PHP dengan SpawnFastCGI:

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.

1. Pemasangan:

Kami akan mulakan dengan yang pertama, pasang Spawn-FastCGI dan PHP 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 spawn-fcgi php5-cgi php5-curl

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

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:

Pada langkah sebelumnya (semasa kami memasang Nginx) kami memuat turun fail bernama nginx-spawn-fastcgi.tar.gz bahawa ketika dizip ia membuat folder nginx-spawn-fastcgi di rumah kami, kami akan menyalin fail daripadanya spawn-fastcgi ke /etc/init.d/:

cp ~/nginx-spawn-fastcgi/spawn-fastcgi /etc/init.d/

Kami juga memerlukan php-fastcgi yang dapat dilaksanakan di / usr / bin /

cp ~/nginx-spawn-fastcgi/php-fastcgi /usr/bin/

Sempurna, kami telah menyediakan fail yang membolehkan kami mengawal spawn-fastcgi dan juga php-fastcgi yang dapat dilaksanakan, sekarang kami akan memulakan spawn-fastcgi:

/etc/init.d/spawn-fastcgi start

Ini akan menunjukkan kepada kita sesuatu seperti: spawn-fcgi: anak berjaya dilahirkan: PID: 3739

Sekarang kita akan menggantikan fail /etc/nginx/sites-available/mywebsite.net kami dengan ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net

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

Kenapa? Sederhana, kerana fail mywebsite.net kami sebelumnya tidak mempunyai sokongan untuk PHP, iaitu hanya Nginx, sedangkan fail mywebsite_plus_php.net memang menyokong PHP, iaitu Nginx + PHP menggunakan SpawnFastCGI.

Perbezaan antara fail ini terdapat beberapa, misalnya:

  • Pada baris 3 fail yang menyokong PHP ditambahkan index.php
  • Garis baru di bawah No.3 yang mengandungi: fastcgi_index index.php;
  • Beberapa baris baru lain yang memberitahu Nginx bagaimana memproses PHP.
  • … .. bagaimanapun, berikut adalah foto yang akan membantu anda mengetahui perbezaan antara dua fail:

nginx_mysql_spawn-fastcgi_comparing_mywebsite_confs

Fail mywebsite_plus_php.net adalah vhost yang berfungsi sebagai contoh, iaitu, dan dengan kata lain, kita mesti mengubahnya 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)

Bersedia, sekarang kita akan memulakan semula Nginx:

/etc/init.d/nginx restart

Untuk mengesahkan bahawa Nginx kami memproses PHP dengan betul, mari salin fail phptest.php ke folder yang dihoskan, iaitu yang ditunjukkan dalam baris No.6 fail mywebsite_plus_php.net (misalnya, root / var / www /), dengan andaian bahawa laman web tersebut dihoskan secara langsung di / var / www / akan:

cp ~/nginx-spawn-fastcgi/phptest.php /var/www/

Seandainya di baris 5 mywebsite_plus_php.net kami (iaitu, line_name name) kami telah mengatakan bahawa laman web kami adalah www.mysite.net maka kami mesti mengakses www.mysite.net/phptest.php. Dengan kata lain, idenya adalah untuk mengakses fail phptest.php dari penyemak imbas kami dan jika yang berikut muncul maka Nginx kami dihubungkan dengan sempurna dengan PHP:

nginx_mysql_spawn-fastcgi_tersting_nginx_php

Sekiranya ini tidak muncul, iaitu penyemak imbas cuba memuat turun fail .php ... ini bermaksud bahawa mereka melakukan sesuatu yang salah, bahawa mereka tidak mengganti /etc/nginx/sites-available/mywebsite.net dengan ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net ... bahawa mereka lupa untuk memulakan semula Nginx dengan /etc/init.d/nginx restart atau mereka lupa untuk memulakan Spawn-FastCGI dengan /etc/init.d/spawn-fastcgi start

Setakat ini tutorial untuk menghubungkan Nginx dengan PHP menggunakan SpawnFastCGI, kami hanya memerlukan MySQL dan APC 🙂

Saya harap anda dapati ini menarik.


11 komen, tinggalkan komen anda

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

    Sekiranya ia satu perempat, mengapa gambar itu menyatakan 3? bermula pada 0 saya rasa? jawatan yang sangat baik.

    salam

    1.    KZKG ^ Gaara kata

      1st: Pembentangan
      Ke-2: Nginx
      Ke-3: Nginx + PHP (Spawn_FastCGI)

      (I.e.

      Terima kasih kerana membaca ^ _ ^

      1.    Rodrigo kata

        apa yang berlaku pada bahagian 4 ???
        dan dengan yang seterusnya ?????

  2.   rpyanm kata

    Hello:

    Ini akan menjadi pilihan yang lebih baik jika sebagai ganti mysql, anda menggunakan MariaDB, seperti yang anda tahu, yang terakhir adalah garpu yang pertama, dan sudah ada pembicaraan bahawa ia akan menjadi Mysql masa depan (http://www.genbetadev.com/bases-de-datos/mariadb-sera-el-mysql-del-futuro) kerana Mysql percuma, sehingga satu titik.

    SkySQL, sebuah syarikat yang menyediakan perkhidmatan berdasarkan pangkalan data percuma, menyokong projek MariaDB secara kewangan (http://www.genbetadev.com/bases-de-datos/mariadb-y-skysql-unen-fuerzas-para-llevar-a-mariadb-a-lo-mas-alto) dan Google yang ingin berhenti bergantung pada Mysql, seperti juga yang dilakukan oleh Wikipedia, dan akan melakukan peralihan dari MySQL 5.1 ke MariaDB 10.0 dengan bantuan, tepatnya, dari SkySQL, yang sudah pakar dalam bidang ini.

    hello2.

    1.    KZKG ^ Gaara kata

      Hello,

      Ya tentu saja, saya kenal MariaDB dan sebenarnya, kita sudah membincangkannya: https://blog.desdelinux.net/tag/mariadb/

      Walau bagaimanapun, sekarang saya menggunakan MySQL kerana saya melakukan tutorial ini daripada pengalaman tertentu yang saya alami semasa berhijrah. DesdeLinux (dengan semua perkhidmatannya) kepada pelayan lain, pada masa itu kami menukar teknologi sepenuhnya dan tugas atau perubahan yang perlu saya hadapi tidak sedikit.
      Baca komen saya dari saat itu: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      Idea terakhir adalah ya, berhijrah ke MariaDB, tetapi saya tidak sempat melakukan ujian yang berkaitan relevant

      Terima kasih untuk membaca

  3.   eliotime3000 kata

    Tutorial ini akan membantu saya memasang zPanel X dengan NGINX agar tidak memenuhi laman web saya semasa berhijrah ke GNUPanel VPS.

  4.   dragnell kata

    Hadiah Krismas? Saya mengucapkan tahniah kepada semua.

    1.    KZKG ^ Gaara kata

      Terima kasih rakan kongsi 😀

  5.   st0rmt4il kata

    Ditambah ke kegemaran!

    Ngomong-ngomong, saya mempunyai keraguan dan pertanyaan ini, adakah Nginx benar-benar mempunyai prestasi lebih banyak daripada Apache?

    Salam!

    1.    KZKG ^ Gaara kata

      Baiklah, Apache dapat dioptimumkan dengan banyak tetapi ... sehingga sekarang, Google dan hampir semua kita bersetuju bahawa Nginx menggunakan RAM lebih sedikit, mempunyai prestasi yang tidak dapat dipertimbangkan, walaupun tidak semudah itu ketika mengkonfigurasi.

  6.   louis morales kata

    KZKG ^ Gaara yang baik maklumat yang sangat baik bagi kita yang berminat dengan dunia ini, satu pertanyaan, untuk bila kiriman ke-4 😀