Nginx + MySQL + PHP5 + APC + Spawn_FastCGI ile bir web sunucusu nasıl kurulur [4. Bölüm: SpawnFastCGI ile Nginx + PHP]

bir süre önce Size bu eğitim dizisinden bahsettim, yüksek talepli barındırma için bir sunucunun nasıl kurulacağı ve yapılandırılacağı hakkında. Bu makale yükleme ve yapılandırma hakkında olacak Nginx + PHP ile SpawnFastCGI:

Spawn_FastCGI:

Bu, Nginx'i PHP'ye bağlayan şeyin bu olduğu söylenebilir, yani, PHP5 paketi kurulu olsa bile, PHP'de bir site açtıklarında Spawn_FastCGI kurulu değilse ve çalıştırıldıysa tarayıcı dosyayı indirmez, indirmez onlara .php'nin programlandığı herhangi bir şeyi gösterin çünkü sunucu .php dosyalarını nasıl işleyeceğini bilmiyor, bu yüzden Spawn_FastCGI'yi kurmak ve yapılandırmak çok önemlidir.

Apache kullansaydık, libapache2-mod-php5 paketini kurmak kadar basit bir şey olurdu, ancak Nginx kullandığımız için bunun yerine spawn-fcgi paketini kurmamız gerekecek. Ayrıca, öğreticide, daha rahat kontrol edebilmeniz için /etc/init.d/ içinde bunun için bir başlangıç ​​betiğinin nasıl oluşturulacağını açıklayacağım.

1. Kurulum:

İlk şey ile başlayacağız, Spawn-FastCGI ve PHP'yi depolarımızdan kuracağız.

Yürütülecek tüm komutlar, ya her satırın başına sudo koyarak ya da root olarak oturum açarak, root izinleriyle yürütülür.

Sunucunuzda Debian, Ubuntu veya bir türev gibi bir dağıtım kullanıyorsanız terminalde aşağıdakileri yazmalı ve düğmesine basmalısınız. Keşfet :

aptitude install spawn-fcgi php5-cgi php5-curl

aptitude varsayılan olarak Ubuntu'da kurulu değildir, ancak apt-get yerine onu kurmanızı ve kullanmanızı tavsiye ederim, çünkü aptitude belirli durumlarda bağımlılıkları daha iyi yönetir

Şahsen, Debian'ın herhangi bir türevini önermiyorum, hatta sunucular için Ubuntu bile, yıllar boyunca deneyimlerim tamamen tatmin edici olmadı. Sunucu işletim sistemi için ilk tercihim Debian, sonra CentOS'u ve sonunda biraz BSD'yi düşünürdüm.

2. Yapılandırma:

Önceki adımda (Nginx'i kurduğumuzda) nginx-spawn-fastcgi.tar.gz adlı bir dosya indirdik, bu dosya açıldığında evimizdeki nginx-spawn-fastcgi klasörünü oluşturdu, dosyayı buradan kopyalayacağız. spawn-fastcgi /etc/init.d/:

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

Ayrıca / usr / bin / içindeki php-fastcgi çalıştırılabilir dosyasına ihtiyacımız var.

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

Mükemmel, spawn-fastcgi'yi ve ayrıca php-fastcgi çalıştırılabilir dosyasını kontrol etmemizi sağlayacak dosyayı hazırladık, şimdi spawn-fastcgi'ye başlayacağız:

/etc/init.d/spawn-fastcgi start

Bize şöyle bir şey gösterecek: spawn-fcgi: çocuk başarıyla ortaya çıktı: PID: 3739

Şimdi /etc/nginx/sites-available/mywebsite.net dosyamızı ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net ile değiştireceğiz.

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

Neden? Basit, çünkü önceki mywebsite.net dosyamız PHP'yi desteklemediğinden, yani sadece Nginx'tir, mywebsite_plus_php.net dosyası PHP'yi, yani SpawnFastCGI kullanan Nginx + PHP'yi destekler.

Bu dosyalar arasındaki farklar birkaç örnektir:

  • 3. satıra PHP'yi destekleyen dosya index.php eklenir.
  • No.3'ün altındaki yeni bir satır şunları içerir: fastcgi_index index.php;
  • Nginx'e PHP'yi nasıl işleyeceğini söyleyen birkaç yeni satır.
  • … .. neyse, işte iki dosya arasındaki farkları anlamanıza yardımcı olacak bir fotoğraf:

nginx_mysql_spawn-fastcgi_comparing_mywebsite_confs

Mywebsite_plus_php.net dosyası, örnek olarak hizmet veren bir sankosttur, yani başka bir deyişle onu değiştirmeli ve yapılandırmalarımızı oluşturmalıyız.

Aşağıdakileri değiştirmeliyiz:

  • access_log (3. satır): Bu, bu siteye erişim günlüğü dosyasının yolu olacaktır
  • error_log (4. satır): Bu, hata günlüğü dosyasının bu siteye olan yolu olacaktır
  • sunucu_adı (satır 5): Bu klasörde barındırılan URL, etki alanı; örneğin, eğer forumsa DesdeLinux şöyle olurdu: forum sunucusu_adı.desdelinux. Net
  • root (satır 6): html dosyalarının bulunduğu klasörün yolu, bunu / var / www / içinde bırakalım çünkü bu sadece bir test olacak
Açıktır ki, barındırma sağlayıcılarının DNS kayıtlarında (CPanel veya başka bir araç kullanarak) sunucu_adı içinde belirtilen etki alanı veya alt etki alanının yapılandırmakta oldukları bu sunucunun IP'sinde bulunduğunu göstermeleri gerekir. Yani, etki alanları için alt etki alanları oluşturdukları DNS'de, 5. satıra koydukları etki alanı veya alt etki alanının bu sunucuda bulunduğunu beyan etmeleri gerekir (bu sunucu = söz konusu sunucunun IP adresi)

Hazır, şimdi Nginx'i yeniden başlatacağız:

/etc/init.d/nginx restart

Nginx'in PHP'yi düzgün bir şekilde işlediğini doğrulamak için, phptest.php dosyasını barındırılan klasöre, yani mywebsite_plus_php.net dosyasının 6 numaralı satırında belirtilen klasöre kopyalayalım (örneğin, root / var / www /), Sitenin doğrudan / var / www / içinde barındırıldığını varsayarsak:

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

Mywebsite_plus_php.net'in 5. satırında (yani, server_name satırında) sitemizin www.mysite.net olduğunu söylediğimizi varsayarsak, www.mysite.net/phptest.php'ye erişmemiz gerekir. Başka bir deyişle, fikir phptest.php dosyasına tarayıcımızdan erişmektir ve eğer aşağıdaki görünüyorsa, o zaman Nginx'imiz PHP ile mükemmel bir şekilde bağlantılıdır:

nginx_mysql_spawn-fastcgi_tersting_nginx_php

Bunun görünmemesi, yani tarayıcının .php dosyasını indirmeye çalışması durumunda ... bu, yanlış bir şey yaptıkları, /etc/nginx/sites-available/mywebsite.net'i ~ ile değiştirmedikleri anlamına gelir. / nginx-spawn-fastcgi / mywebsite_plus_php.net… /etc/init.d/nginx yeniden başlatma ile Nginx'i yeniden başlatmayı unutmuşlar veya /etc/init.d/spawn-fastcgi start ile Spawn-FastCGI başlatmayı unutmuşlar

Şimdiye kadar Nginx'i SpawnFastCGI kullanarak PHP ile bağlama öğreticisi, sadece MySQL ve APC'ye ihtiyacımız var 🙂

Umarım bunu ilginç buluyorsundur.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   f3niX dijo

    Çeyrekse, görüntü neden 3 diyor? 0'da başladı sanırım? mükemmel gönderi.

    selamlar

    1.    KZKG ^ Gaara dijo

      1: Sunum
      2: Nginx
      3'üncü: Nginx + PHP (Spawn_FastCGI)

      🙂

      ^ _ ^ Okuduğunuz için teşekkürler

      1.    Rodrigo dijo

        4. bölüme ne oldu ???
        ve sonraki ?????

  2.   rpyanm dijo

    Selam

    Eğer mysql yerine MariaDB kullanmış olsaydınız, bilmeniz gerektiği gibi ikincisi ilkinin çatalıysa ve geleceğin Mysql'i olacağı şimdiden konuşuluyor (http://www.genbetadev.com/bases-de-datos/mariadb-sera-el-mysql-del-futuro) Mysql ücretsiz olduğu için bir noktaya kadar.

    Ücretsiz veritabanlarından hizmet veren bir şirket olan SkySQL, MariaDB projesini finansal olarak destekledi (http://www.genbetadev.com/bases-de-datos/mariadb-y-skysql-unen-fuerzas-para-llevar-a-mariadb-a-lo-mas-alto) ve Wikipedia'nın yaptığı gibi Mysql'e bağlı kalmak isteyen Google, MySQL 5.1'den MariaDB 10.0'a geçişi tam da bu alanda uzman olan SkySQL'in yardımıyla yapacak.

    merhaba2.

    1.    KZKG ^ Gaara dijo

      Merhaba,

      Evet elbette, MariaDB'yi biliyorum ve aslında bunun hakkında zaten konuştuk: https://blog.desdelinux.net/tag/mariadb/

      Ancak şu anda MySQL kullanıyorum çünkü bu eğitimleri, geçiş sırasında edindiğim belirli deneyimlere dayanarak yapıyorum. DesdeLinux (tüm hizmetleriyle birlikte) diğer sunuculara, o zamanlar teknolojiyi tamamen değiştirdik ve yüzleşmek zorunda kaldığım görevler veya değişiklikler az değildi.
      O andan itibaren bu yorumumu okuyun: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      Nihai fikir gerçekten evet, MariaDB'ye geçiş yapın, ancak ilgili testleri yapmak için zamanım olmadı 🙂

      Okuduğunuz için teşekkürler

  3.   eliotime3000 dijo

    Bu eğitim, GNUPanel VPS'ye geçerken sitemi doyurmamak için zPanel X'i NGINX ile kurmama yardımcı olacak.

  4.   ejderha dijo

    Noel hediyesi mi? Herkese tebrikler bekliyordum.

    1.    KZKG ^ Gaara dijo

      Teşekkürler ortak 😀

  5.   st0rmt4il dijo

    Sık kullanılanlara eklendi!

    Bu arada, şu şüphem ve sorum var, Nginx gerçekten Apache'den daha fazla performansa sahip mi?

    Selamlar!

    1.    KZKG ^ Gaara dijo

      Pekala, Apache çok optimize edilebilir ama… şimdiye kadar Google ve neredeyse hepimiz Nginx'in çok daha az RAM tükettiğini, göz ardı edilemeyecek bir performansa sahip olduğunu kabul ediyoruz.

  6.   louis morali dijo

    İyi KZKG ^ Gaara bu dünyayla ilgilenen bizler için mükemmel bilgiler, bir soru, 4. gönderi ne zaman