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

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 Nginx'in yüklenmesi ve yapılandırılması hakkında olacak:

nginx:

Makalede daha önce size Nginx'ten bahsetmiştik Nginx: Apache'ye ilginç bir alternatif, orada size bunun Apache, LightHttpd veya Cherokee gibi bir web sunucusu olduğunu söylemiştik, ancak Apache ile karşılaştırıldığında performansı ve düşük donanım tüketimi ile öne çıkıyor, tam olarak Facebook, MyOpera.com, DropBox ve hatta WordPress gibi birçok büyük sitenin nedeni de bu. .com Apache yerine Nginx kullanıyor. Linux dünyasında DesdeLinux Nginx kullanan sadece o değil, bildiğim kadarıyla emsLinux ve MuyLinux da kullanıyor :)

Nginx ile olan kişisel deneyimim, zorunluluktan dolayı Apache'ye hafif alternatifler aramaya başladığım birkaç yıl öncesine dayanıyor. O zamanlar Nginx 0.6 sürümüne gidiyordu ve PHP'de yapılan yüksek talep gören sitelerle uyumluluğu en uygun değildi, ancak bugün 0.9 sürümünden itibaren (v1.2.1 Debian Stable'da mevcuttur, v1.4.2 ArchLinux'da mevcuttur), Nginx + PHP'nin uygun bir konfigürasyonu ve birliği ile her şeyin bir cazibe gibi çalışacağı noktaya kadar çok gelişti.

Bu eğitim dizisinde Nginx 1.2.1-2.2 sürümünü kullanacağım, Debian Stable depolarında (Wheezy) mevcuttur.

Bu öğretici, yalnızca ve yalnızca Nginx ile ilgilidir, Nginx + PHP hakkında değil, Nginx + PHP'nin birleşmesi ve optimizasyonu veya gerekli yapılandırması sonraki eğitim

1. Kurulum:

İlk şeyle başlayacağız, Nginx'i 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 nginx

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

Sunucunuzda CentOS, Red Hat, Fedora gibi başka bir dağıtım kullanıyorsanız, sadece paketi kurun: nginx resmi depodan

Ş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:

Zaten Nginx'i kurduk, ancak açıkça yapılandırmamız gerekiyor. Sunucularda kullanılan tüm konfigürasyonları içeren, FTP üzerinde sıkıştırılmış bir dosya hazırladım. DesdeLinux, her ikisi de PHP, Nginx vb. için. Bu dosyayı indirip açalım:

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

Bu, nginx-spawn-fastcgi adlı bir klasör oluşturacak, ondan saf Nginx için iki dosyaya ihtiyacımız olacak (yani, onu PHP'ye bağlamadan):

  • nginx.conf - »Ana Nginx yapılandırma dosyası (içeriği hakkında daha sonra konuşacağız)
  • index.html - »Nginx'in bizim için en basit haliyle gerçekten işe yarayıp yaramadığını görmek için kullanacağımız basit bir html dosyası
  • mywebsite.net - »Basit bir web sitesi için yapılandırma dosyası, önceki html'ye erişimi yapılandıracak bir VHost (Sanal Ana Bilgisayar)

Önce Nginx ayarları klasörüne geçelim:

cd /etc/nginx/

O zaman varsayılan yapılandırmasını kaldıralım ve kendi yapılandırmamızı koyalım:

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

Bu, dediğim gibi, ana Nginx yapılandırma dosyasıdır, içinde aşağıdakileri zaten tanımladım:

kullanıcı www verileri; işçi_işlemleri 4; pid /var/run/nginx.pid;

Dosya sistemine kullanıcı erişimi (nginx'in her yerden erişeceği), çalışılacak işlemlerin sayısı ve ayrıca PID (nginx işlem kimliği).

Ayrıca, olay başına izin verilen maksimum bağlantı sayısını gösteren bir satır içeren olaylar (olaylar için ayarlar) adı verilen küçük bir bloğumuz da var. Aşağıda http adlı blok var.

Bu http bloğu, barındırmayla ilgili hemen hemen her şeyi, en azından ilginizi çekecek birçok şeyi içeren bloktur. Örneğin, genel günlüklerimizin (access.log ve error.log) olacağı maksimum yaşama veya bekleme süresi (zaman aşımı), gzip kullanarak veri sıkıştırma ve gelecekte yararlı olabilecek diğer kurallar.

Ana konfigürasyon dosyası yerleştirildikten sonra, dosyayı VHost'umuzdan sitelerden erişilebilen klasöre kopyalayalım.

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

Ek olarak, bu dosyadan sitelerin etkin olduğu klasöre sembolik bir bağlantı yapmalıyız.

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

Sitelerin etkin ve sitelerin kullanılabilir olmasının yararlılığını açıklarım.

Hazır ve yapılandırılmış birkaç vhost dosyasına sahip olmaları gereken anları bulacaklar, çünkü bu sunucuya çevrimiçi olarak koyacaklar, örneğin 5 site. Ancak, bu 2 sanal ana makineden 5'sini etkinleştirme zamanı henüz gelmemiştir, ancak gerektiğinde mümkün olan en kısa sürede çevrimiçi olabilmeleri için dosyaları hazır bulundurmaları gerekir. Nginx'in çevrimiçi koymak için okudukları yalnızca sitelerin etkinleştirilmiş olanları olduğundan, kullanılabilir sitelere istedikleri kadar sankon koyabilirler, çevrimdışı duruma getirmek istemeleri durumunda ters yönde de çalışır (geçici olarak Örneğin) bir site, sunucunuzdan dosya silmeye gerek yoktur (başka bir zamanda ihtiyaç duyacağımız dosyalar), basitçe sitelerin etkinleştirilmiş sembolik bağlantısını kaldırırız ve bu kadar. Sembolik bağlantılara sahip olmanın ve dosyayı bir klasörden diğerine kopyalamamanın faydası, bir sankon düzenlemek istediğimizde, etkin veya kullanılabilir olanı düzenleyip düzenlemememizin bir önemi olmamasıdır, sonunda aynıdır.
Arşiv.

Daha önce de söylediğim gibi mywebsite.net dosyası, örnek olarak hizmet veren bir vhost, yani mywebsite.net'i 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)

Şimdi html dosyasını VHost dosyamızda tanımladığımız / var / www / klasörüne kopyalamamız gerekiyor:

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

Sonra Nginx'i yeniden başlatıyoruz ve işte bu:

service nginx restart

Ve voila, şöyle bir şey görünecek:

nginx-saf-test-site-html

PHP desteği olmadan önce HTML için Nginx ile çalıştığımızı hatırlatırım, bu PHP'yi kurun ve onu Nginx'e bağlayın sonraki öğreticinin içeriği olacak (birkaç gün içinde söz veriyorum).

Her neyse, bu Nginx kurulum ve konfigürasyon öğreticisidir, böylece saf, yani bir HTML sitesi çalışır, umarım ilginizi çeker.

Evet, hala kullanılabilecek en iyi uygulamalar olduğunu açıklığa kavuşturacağım, ancak bu eğitim dizisini bitirmek için bekleyelim ve sonra çalışmanın nihai sonucunu değerlendireceğiz 😉

selamlar


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

    Teşekkürler, çok yardımcı oldu!

    1.    KZKG ^ Gaara dijo

      Yorum için teşekkürler

  2.   dhunter dijo

    Arka sporlarda nginx 1.4 var ..

    1.    KZKG ^ Gaara dijo

      Evet, ancak üretimdeki bir sunucuda bunların hiçbirini kullanmıyorum 😀

      1.    dhunter dijo

        "It" ile nginx tarafından yayınlanan en son kararlı ve test edilmiş sürümü kastediyorsunuz, sid'den apt-pinning yapıyormuş gibi ses çıkarırsınız. ~ _ ~

        1.    KZKG ^ Gaara dijo

          Ah hadi, şu ... sunucularda diğer depoları, arka portları veya bunun gibi bir şeyi kullanmayı hiç sevmedim

      2.    Raphael Castro dijo

        Sunucularda her zaman kararlı, bunu yıllar önce öğrendim.

        1.    dhunter dijo

          Nginx 1.4, geçtiğimiz Nisan ayından bu yana sabit, arka planda 1.4.1-3.

          2013-04-24

          1.4.0.x dalında geliştirilen birçok yeni özelliği içeren nginx-1.3 kararlı sürümü piyasaya sürüldü - WebSocket bağlantılarının proxy'si, OCSP zımbalama, SPDY modülü, gunzip filtresi ve daha fazlası için destek.

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

          1.    Raphael Castro dijo

            Söylediğin şeyde haklısın, şapkam çıktı.

  3.   Chinoloco dijo

    Paylaştığınız için teşekkürler, şu anda en eski gönderinizi uygulamaya koyuyorum.
    Seni sorularla dolduracağım XD

    1.    KZKG ^ Gaara dijo

      Okuduğunuz için teşekkürler 🙂
      Herhangi bir sorunuz veya endişeniz varsa, yardım etmek için burada olduğumuzu biliyorsunuz, forum var.desdelinux.net nerede birlikte size en iyi çözümü sunmaya çalışacağız

      selamlar

      1.    Gibran barrera dijo

        WordPress ve Owncloud için sunucumda LAMP [Linux (Debian Wheezy), Apache, PHP ve MySQL] çalıştıran bir sorum var, Ngnix'e nasıl geçebilirim, başka bir soru da Ngnix ve Lighttpd arasında ne gibi bir fark olduğu.

        1.    KZKG ^ Gaara dijo

          Apache'den Nginx'e geçişin en büyük karmaşıklığı veya zorluğu, her sitenin yapılandırmalarıdır, yani özellikle kullandığınız .htaccess.

          .Htaccess, Nginx'e geçerken en karmaşık olanıdır, çünkü bunlar Nginx VHost'a koymanız gereken farklı konfigürasyonlardır.

          LightHTTPd ve Nginx hakkında… Bilmiyorum, LightHTTPd'yi sadece yıllar önce bir kez kullandım, şu anda özellikle PHP kullanarak geliştirilmesinin nasıl gittiği hakkında hiçbir fikrim yok.

  4.   eliotime3000 dijo

    NGINX, Apache'ye kıyasla oldukça basit görünüyor. Bir sonraki bölümün PHP ile tamamlanması bekleniyor

  5.   Mauricio dijo

    Nginx için daha fazla optimize etmek için ipuçlarını bekliyorum 😀

    Bu arada Gaara, bir sonraki eğitiminize SSL desteğinin nasıl uygulanacağını dahil edebilirsiniz.

    Selamlar.

    1.    KZKG ^ Gaara dijo

      Gelen ipuçları aslında PHP işlemeyi, site önbelleğini optimize etmeye yönelik, kullandığımız konfigürasyonun örneğini verebilirim. DesdeLinux Nginx+Wordpress+W3_Total_Cache için :)

  6.   Kayser dijo

    Teşekkür ederim iyi katkı

  7.   Apr4xas dijo

    Archlinux rehberi ne zaman? xD

    1.    KZKG ^ Gaara dijo

      Arch'da çok benzerdi, sadece paketlerin isimleri değişir ama ... conf neredeyse aynıdır

      Ama Arch ile üretim sunucusu kimde var? 😀

  8.   Apr4xas dijo

    Merhaba,

    Yine benim xD ...

    Adımlarınızı onları archlinux'lu bir makinede uyguluyordum ve şu problemim var:

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

    Herhangi bir öneri 😀

  9.   rizo dijo

    Jo… xox, ben sadece dahili bir sunucu istiyorum, yani sadece xampp'i değiştirmek istiyorum, tüm bunları yapmalı mıyım?

    1.    KZKG ^ Gaara dijo

      İsterseniz bunu uygulayabilirsiniz (tekrar ediyorum, DL'nin çalıştığı şey budur), aslında sanal sunucum (geliştirme ve test için kullanıyorum) açıkladığım aynı şeyi yaptım.

      Yani, ya XAMPP'yi kaldırabilir ve bu değişkeni koyabilirsiniz ve iyi çalışacaktır ya da XAMPP'den ayrılmak isterseniz ... sizin için yine de çalışacaktır.

      Gösterdiğim bunu kullanmanın olumlu yanı, Apache'ye kıyasla çok düşük donanım tüketimi, ancak yüksek talepli bir barındırma olmayan kişisel bilgisayarınızda bundan çok uzak… XAMPP sizin için iyi çalışıyorsa, ben çalışmıyorum neden kaldırıldığını gör 🙂

  10.   isaac dijo

    Linux sunucum zaten çalışıyor (Debian, Nginx, MySQL ve PHP) PHP'nin Nginx ile çalışmasını sağlamakta zorlandım çünkü basit Apache Web Sunucusuna alışkınım.

    Peki sorum şu: Satın aldığım bir test alanını sunucuma nasıl yönlendirebileceğimi bilen var mı? Nasıl çalıştığını görmek için .com alan adımı denemek istiyorum, ancak nasıl yapılacağına dair en ufak bir fikrim yok çünkü ona noip DUC ile erişmek için her zaman bir NOIP adresi kullandım.

    Umarım birisi bana yardım edebilir, teşekkürler!

  11.   İbrahim dijo

    Ftp'nize bağlanmaya çalışırken bunu anlıyorum:

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

    HTTP isteği gönderildi, yanıt bekleniyor… 404 Bulunamadı
    2015-11-23 17:46:30 ERROR 404: Bulunamadı.

  12.   Ryan dijo

    Sunucumun CentOS (Gunicorn, Nginx, PHP) üzerinde çalışıyor olması, onları çalıştırmak için bana çok iş mal oldu, ancak takıldığım nokta, başlatmak istediğim Web Sayfasının bu alan adı sağlayıcısının yapılandırmasına ihtiyaç duymasıydı. case Go Daddy, Yani bu noktada nasıl devam edeceğimi bilmiyorum.

  13.   Ricardo dijo

    İndiremediğim için konfigürasyon dosyalarını benimle paylaşır mısınız lütfen