Apache sunucusu nedir? Apache sunucusunu yükleme ve yapılandırma

Apache en popüler ücretsiz web sunucusudur. 2016 yılı itibariyle internet sitelerinin% 33'ünde kullanılmaktadır ve bunlar yaklaşık 304 milyar sitedir. Bu web sunucusu 1995 yılında popüler NCSA sunucusunun yerine geçerek geliştirildi ve birçok sorunu çözdü. Adının NCSA hatalarını düzelttiği için yamalı yamalı bir yamadan geldiği söyleniyor. Şimdi, bu, Windows, Linux ve MacOS'u destekleyen ve yeterli esneklik, özelleştirilebilirlik ve işlevsellik sağlayan bir çapraz platform programıdır. Program, işlevselliğini neredeyse modüller yardımıyla sonsuzluğa genişletmenizi sağlayan modüler bir yapıya sahiptir.

Apache'yi Linux'a birkaç komut kullanarak yükleyebilirsiniz, ancak program daha sonra daha iyi çalışacak modüllerin yanı sıra değiştirilebilecek çok sayıda ayar sunar. Bu makalede, kurulum ve apache ayarıana sistem olarak Ubuntu kullanacağız, ancak bu adımları diğer dağıtımlarda da tekrarlayabilirsiniz. Yalnızca programın kurulumu değil, aynı zamanda apache sanal konaklarının ve en kullanışlı modüllerin nasıl yapılandırılacağı da dikkate alınacaktır.

Apache yükle

Şu anda, yeni versiyon   program 2.4 ve bu nedenle apache 2.4 olarak değerlendirilecektir. Dediğim gibi, Linux'ta, program tam anlamıyla bir çift komutla yüklenir. Ubuntu’ya kurmak için, önce sistemi en yeni sürüme yükseltin:

sudo apt güncelleme
  $ sudo apt yükseltme

Sonra apache2'yi kurun:

sudo apt yükleme apache2

Diğer dağıtımlarda, yazılım paketine bu şekilde ya da httpd denir ve bunu kurmak herhangi bir zorluğa neden olmaz.

Yükleme tamamlandıktan sonra, bilgisayarı açtıktan sonra elle başlatmamak için web sunucusunu otomatik yüklemeye eklemeniz gerekir:

sudo systemctl apache2'yi etkinleştir

Apache kurulumu

Apache yapılandırması bir dosyada saklandığında zaman geçti. Ancak doğrudur, her şey dizinlerinde dağıtıldığında, yapılandırma dosyalarında gezinmek daha kolaydır.

Tüm ayarlar / etc / apache / klasöründe bulunur:

  • dosya /etc/apache2/apache2.conf   temel ayarlardan sorumlu
  • / etc / apache2 / conf-available / *   - gelişmiş web sunucusu ayarları
  • / etc / apache2 / mods kullanılabilir / *   - modül ayarları
  • / etc / apache2 / sites-available / *   - sanal ana bilgisayar ayarları
  • /etc/apache2/ports.conf   - apache'nin çalıştığı portlar
  • / etc / apache2 / envvars

Fark ettiğiniz gibi, conf, mods ve site için iki klasör vardır. Kullanılabilir ve etkin. Bir modülü veya ana bilgisayarı etkinleştirdiğinizde, kullanılabilir klasörden enable klasörüne sembolik bir bağlantı oluşturulur. Bu nedenle, ayarları mevcut klasörlerde yapmak daha iyidir. Genel olarak konuşursak, bu klasörler olmadan yapmak, her şeyi eski yoldan alıp tek bir dosyaya dökmek mümkün olacaktı ve her şey işe yarayacaktı, ama şimdi kimse yapmıyor.

İlk olarak, ana yapılandırma dosyasına bakalım:

vi /eta/apache2/apache2.conf


Zaman aşımı   - Sunucunun veri aktarımını kesmeye veya veri alımına ne kadar devam etmeye çalışacağını gösterir. 160 saniye yeterli olacaktır.

KeepAlive açık   - örneğin sadece html sayfasının değil, aynı zamanda görüntülerin ve css dosyalarının da tek bir bağlantı için birkaç dosya aktarmanıza izin veren çok kullanışlı bir parametre.

MaxKeepAliveRequests 100   - Bağlantı başına maksimum istek sayısı, daha çok, daha iyi.

KeepAliveTimeout 5- bağlantı zaman aşımı, genellikle sayfayı yüklemek için 5-10 saniye yeterlidir, bu yüzden daha fazla koymanıza gerek kalmaz, ancak tüm veriler de yüklenmeden bağlantıyı kesmeniz gerekmez.

Kullanıcı, Grup   - programın üzerinde çalışacağı kullanıcı ve grup.

HostnameLookups   - IP adresleri yerine log'a alan isimleri yazın, işi hızlandırmak için onu devre dışı bırakmak daha iyidir.

LogLevel   - hata günlüğü seviyesi. Varsayılan uyarla kullanılır, ancak günlükleri daha yavaş doldurmak için hatayı açmak yeterlidir.

Dahil   - tüm dahil direktifler yukarıdaki konfigürasyon dosyalarının bağlanmasından sorumludur.


Dizin yönergeleri, belirli bir dizine izin vermek için sorumludur. dosya sistemi. Sözdizimi:


  Parametre değeri

İşte ana seçenekler:

  AllowOverride   - .htaccess dosyalarını bu dizinden okumak için gerekli olup olmadığını gösterir, bunlar aynı ayar dosyaları ve aynı sözdizimidir. Hepsi - herşeye izin ver, Yok - bu dosyaları okumayın.

DocumentRoot   - kullanıcıya göstermek için hangi klasörden belge almanız gerektiğini yükler.

Seçenekler   - web sunucusunun hangi özelliklerine bu klasörde izin verilmesi gerektiğini belirtir. Örneğin, Tümü - her şeye izin ver, FollowSymLinks - sembolik bağlantıları izle, Dizinler - dizin dosyası yoksa, dizin içeriğini göster.

gerektir - hangi kullanıcıların bu dizine erişebileceğini ayarlar. Tümünü reddetmeyi iste - Tümünü yasakla, İzin ver Hepsini ver - izin ver. kullanıcıyı açıkça belirtmek için tüm yönlendirici kullanıcı veya grup yerine kullanılabilir.

sipariş   - dizine erişimi kontrol etmenizi sağlar. İki değeri kabul eder: İzin ver, Reddet - Belirtilenler dışındaki herkes için izin ver veya Reddet; İzin ver - Belirtilenler dışındaki herkes için izin ver.

Burada, tüm bu direktifler kullanılmaz, çünkü varsayılan değerlerden memnun kaldık, ama .htaccess dosyalarında çok faydalı olabilirler.

Hala /etc/apache2/ports.conf dosyasına sahibiz:


Programın hangi port üzerinde çalışacağını söyleyen tek bir yönergesi olan Listen vardır.

En son / etc / apache2 / envvars dosyası, kullanmanız pek mümkün değildir, diğer yapılandırma dosyalarında kullanılabilecek değişkenleri içerir.


Htaccess ile Apache sunucusu kurma

.Htaccess dosyaları, belirli bir dizindeki davranış için Ubuntu'daki bir web sunucusunu yapılandırmanıza izin verir. Bu dosyada belirtilen tüm talimatlar bir etikete alınmış gibi uygulanır.   eğer ana dosyadaydın.

Sunucunun, ana klasördeki bu klasörün .htaccess ayarlarındaki talimatları okuması için veya ana bilgisayardaki sanal dosyayı içermemesi gerektiğini unutmayın. AllowOverride Yoktüm ayarların çalışabilmesi için AllowOverride All.

Gerisi için, modüllerin dahil edilmesinden, bir klasöre erişimin normal olarak değiştirilmesine kadar, herhangi bir apache sunucusu kurulumu gerçekleştirilebilir. Tüm parametreleri zaten düşündüğümüz için, birkaç örnek vereceğiz:

Sipariş Reddet, İzin Ver
  Tümünden reddet

Bu klasöre tüm erişimi yasaklar, yapılandırması olan klasörler için uygulanması önemlidir. Çoğu zaman, .htaccess mod_rewrite modülüyle çalışmak için kullanılır, bu da anında istekleri değiştirmenizi sağlar:

RewriteEngine on
  RewriteRule ^ product / ((//) / product product.php? Id = $ 1 [L]

Ancak bu çok geniş bir konudur ve bu makalenin kapsamı dışındadır.

Apache Modüllerini Yapılandırma

Daha önce de söylediğim gibi Apache modüler bir programdır, işlevselliği modüller yardımıyla genişletilebilir. Mevcut tüm modül yükleyiciler ve modül konfigürasyon dosyaları / etc / apache / mods available klasöründe bulunur. Ve / etc / apache / mods-enable içinde aktif hale getirildi.

Ancak bu klasörlerin içeriğini analiz etmeniz gerekmez. Apache 2.4'in modül ekleyerek yapılandırılması özel komutlar kullanılarak yapılır. Çalışan tüm modülleri şu komutla görüntüleyebilirsiniz:


Modülü şu komutla etkinleştirebilirsiniz:

sudo a2enmod module_name

Ve devre dışı bırak:

sudo a2dismod module_name

Modülleri etkinleştirdikten veya devre dışı bıraktıktan sonra apache'yi yeniden başlatmanız gerekir:

sudo systemctl apache2'yi yeniden başlat

Bu komutlardan birinin yürütülmesi sırasında, mods kullanılabilir dizininde bir yük uzantısına sahip bir modül dosyasına sembolik bir bağlantı oluşturulur veya silinir. Bu dosyanın içeriğini görebilirsiniz, sadece bir satır var. Örneğin:

vi /etc/apache2/mods-available/deflate.load


Bunun nedeni, modülün apache2.conf dosyasına bu satırı ekleyerek etkinleştirilmesidir. Ancak, karışıklığı önlemek için bunu yapmak gelenekseldir.

Modül ayarları aynı klasörde, sadece yükleme yerine .conf uzantılı dosyada. Örneğin, havasız sıkıştırma için aynı modülün ayarlarına bakalım:

vi /etc/apache2/mods-available/deflate.conf


Konfigüre edilebilir klasördeki dosyalar aynı modüllerdir, sadece apache'den ayrı olarak kurulurlar, php modülünü veya diğer programlama dillerini etkinleştirmek için konfigürasyon dosyaları olabilirler. Burada aynı şekilde çalışır, yalnızca bu modülleri etkinleştirmek ve devre dışı bırakmak için verilen komutlar biraz farklıdır:

a2enconf modülü_adı

a2disconf modül adı

Gördüğünüz gibi modülleri açmak çok basit. Gerekli olan, ancak varsayılan olarak dahil edilmeyen birkaç modül ekleyelim:

sudo a2enmod süresi doluyor
  $ sudo a2enmod başlıkları
  $ sudo a2enmod yeniden yazma
  $ sudo a2enmod ssl

Son kullanım tarihi ve başlık modülleri sunucu yükünü azaltır. Belge son istekten bu yana değişmediyse, Değişiklik Yok başlığını döndürürler. Expiries modülü, tarayıcının alınan belgeyi önbelleğe alacağı süreyi ayarlamanıza olanak tanır. Yeniden yazma, istenen adresleri anında değiştirmenize olanak tanır, NC referansları oluştururken çok faydalıdır ve ikincisi SSL üzerinden şifreleme desteği sağlamaktır. Ayarları tamamladıktan sonra apache2'yi yeniden başlatmayı unutmayın.

Apache Sanal Konaklarını Yapılandırma

Bir fiziksel makineye yalnızca bir site yerleştirilebilirse çok uygun olmaz. Apache bir bilgisayardaki yüzlerce siteyi destekleyebilir ve her biri için doğru içeriği sağlayabilir. Bunun için sanal konaklar kullanılır. Sunucu isteğin hangi etki alanına girdiğini belirler ve gerekli içeriği bu etki alanının klasöründen iletir.

Apache ana bilgisayar ayarları / etc / apache2 / hosts-available / klasöründe bulunur. Yeni bir ana bilgisayar oluşturmak için herhangi bir ada sahip bir dosya oluşturmak (ana bilgisayar adıyla bitmek daha iyidir) ve gerekli verileri doldurmak yeterlidir. İhtiyacınız olan tüm bu parametreleri bir yönergeye dahil edin   Sanal Ana.   Burada tartışılan parametrelere ek olarak, bunlar kullanılacaktır:

  • ServerName - birincil alan adı
  • ServerAlias   - sitenin kullanılacağı ek isim
  • ServerAdmin   - yönetici e-postası
  • DocumentRoot   - bu etki alanı için belgeler içeren klasör

Örneğin:

vi /etc/apache2/sites-available/test.site.conf


SunucuAdı test.site
  ServerAlias ​​www.test.site
  ServerAdmin [e-posta korumalı]
  DocumentRoot /var/www/test.site/public_html
  ErrorLog $ (APACHE_LOG_DIR) /error.log
  CustomLog $ (APACHE_LOG_DIR) /access.log birleştirilmiş

Sanal ana bilgisayarlar, modüller gibi, etkinleştirilmeleri gerekir. Bunun için özel araçlar var. Türü etkinleştirmek için:

sudo a2ensite test.site

Burada test.site sanal ana bilgisayar dosyasının adıdır. Devre dışı bırakmak için bir komut var:

sudo a2dissite test.site

Apache sanal konaklarını konfigüre etmek tamamlanmıştır ve hepsi ortak bir sunucuda çalışacaktır, fakat eğer Apache'yi bir ev makinesinde yapılandırmanız gerekirse, yeni siteniz bir tarayıcıda açılmaz. Tarayıcı bu siteyi tanımıyor. Ve nasıl bilebilir? DNS hizmetleri bu etki alanı adını bildiremez. Ancak Linux'ta, / etc / hosts dosyasında alan adları için IP adreslerini belirtebiliriz. Bu nedenle, aşağıdaki satırları dosyanın sonuna ekliyoruz:

127.0.0.1 test sitesi
  127.0.0.1 www.test.site

İşte, peki, şimdi işe yarayacak, tarayıcıyı aç, kontrol et.

bulgular

Hepsi bu. Apache Linux kurulum ve konfigürasyonu tamamlandı, programı sitenizi barındırmak için kullanabilirsiniz. Üstelik, henüz ayarlamadınız, tüm detayları anladınız ve şimdi biraz daha fazlasını biliyorsunuz. Hala sorularınız varsa, yorumlarınızı yazın!

  Bu materyal, özellikle web geliştiricilerin ince saflarına katılacak veya yalnızca sürecin karmaşıklıklarını anlamak isteyen insanlar için yazılmıştır. Burada Apache sunucusunun ne olduğunu, ne işe yaradığını, nereden alacağınızı ve nasıl kullanacağınızı öğreneceksiniz. Gelecekte, Apache ayarlarını ve işlevsel özelliklerini mümkün olduğunca açık bir şekilde tarif etmeye çalışacağız, böylece profesyoneller bile bu materyallerde kendileri için yeni bir şey bulabilir.

Bir web sitesinin İnternette görünmesi için, barındırma sunucusunda veya kendi ağınızda barındırılması, Ağa bağlı ve özel bir IP adresine sahip olması gerekir. Sunucu, üzerinde özel bir bilgisayar yazılım"web sunucusu" olarak da adlandırılır.

Dünyada pek çok web sunucusu var. İşlevsellik ve amaç bakımından birbirlerinden farklıdırlar. Bugün, çoğu sunucu barındırma sağlayıcısına yüklenen en popülerlerinden bahsedeceğiz. Apache sunucusu, modern web geliştirmenin neredeyse tüm gereksinimlerini karşılar, ancak aynı zamanda programcıların programlarını ayıklamak için yüklemeleri için de yeterince basittir.

1994 yılında ABD, Illinois Üniversitesi'ndeki Süper Bilgisayar Uygulamaları Ulusal Merkezi'nden Rob McCool (NCSA), NCSA HTTP daemon adı verilen ilk web sunucusunu belirledi. Sunucu dar çevrelerde popülerlik kazandı, ancak 1994 ortasında McCool üniversiteden ayrıldı ve gelişme durdu.

Küçük bir ilgi grubu webmaster grubu ürün üzerinde birlikte çalışmaya başladı. Tartışma listesinde iletişim kurma e-mail, sunucu için yamalar ve yenilikler geliştirdiler. Apache sunucusunun ilk sürümünü geliştiren Apache Group'u onlar oluşturdular. Bu, 1995 yılının Nisan ayında, mevcut tüm yamalar vakfa uygulandığında oldu (NCSA Server 1.3). Bu, Apache 0.6.2’nin ilk resmi yayınlanmasının ortaya çıkmasıdır.

Apache'nin ilk halka açık sürümü Nisan 1995’te çıktı ve 1.0 sürümü Aralık’ta piyasaya sürüldü.

Sunucu üzerinde çalışmak bir gün bile durmadı ve çok yakında en popülerlerinden biri oldu. Çok sayıda testten sonra, 1 Aralık 1995’te, sürüm 1.0 kararlı ve güvenilir göründü. Tüm bu yıllar boyunca ve bu güne kadar Apache tamamen özgür kalıyor. Belki de bu, sunucunun başarısını da belirledi, çünkü NetCraft'a göre, Apache şu anda dünyadaki tüm sunucuların% 67'sine kurulmuş durumda.

Apache sunucusu şimdi dünya çapındaki sunucuların% 67'sine kuruludur. Şu anda, aynı anda iki dal geliştirilmektedir.

Şu anda, iki Apache dalı paralel olarak geliştirilmektedir - sürüm 2.0 ve 1.3. İkinci versiyonda öncelikle programın çekirdeğini ve bazı önemli modülleri etkileyen önemli miktarda değişiklik yapıldı. Üçüncü taraf geliştiriciler tarafından sürüm 1.3 için yazılmış modüller sürüm 2.0'da çalışmayacağından "eski" Apache de desteklenir. Ancak, Apache'yi ilk kez kuracaksanız, yeni sürüme bakmalısınız.

Apache, tam özellikli, genişletilebilir bir açık kaynaklı web sunucusudur.

Peki Apache nedir? Tam özellikli, genişletilebilir bir web sunucusudur ve HTTP / 1.1 protokolünü tam olarak destekler ve açık kaynak kodludur. Sunucu neredeyse tüm ortak platformlarda çalışabilir. Windows NT, Windows 9x, OS / 2, Netware 5.x ve birkaç UNIX sistemi için hazır sunucu çalıştırılabilir dosyaları bulunmaktadır. Aynı zamanda kurulumu ve yapılandırması çok kolaydır. Bunu biraz sonra görebilirsin.

Apache, metin tabanlı yapılandırma dosyaları kullanılarak yapılandırılmıştır. Ana parametreler zaten "varsayılan" olarak ayarlanmıştır ve çoğu durumda çalışacaktır. Apache çalışanları için yeterli işlevselliğe sahip değilseniz, Apache Group ve üçüncü taraf geliştiriciler tarafından yazılmış dağıtılmış modüllere bakmalısınız. Önemli bir avantaj, içerik oluşturucuların kullanıcılar ile aktif olarak iletişim kurmaları ve tüm hata mesajlarına cevap vermeleridir.

Apache'nin yapabileceği en basit işlev sunucuda durup düzenli bir HTML sitesi sunmaktır. Belirli bir sayfa için bir istek alındığında, sunucu tarayıcıya bir yanıt gönderir. Adresi yazarsın, sayfa açılır - basittir.

Apache sunucusunun yardımı ile basit kimlik doğrulaması yapabilirsiniz.

İşlev, daha karmaşıktır; bu, HTTP / 1.1 protokolünde - kullanıcı kimlik doğrulamasında ortaya konmuştur. Yardımı ile personel fonları   Apache sunucusu, farklı kullanıcılar için sitenin belirli sayfalarına erişimi sınırlayabilirsiniz. Bu, örneğin yönetici arayüzünü siteye yapmak için gereklidir. Bunun için, .htaccess ve .htpasswd dosyaları mod_auth ve mod_access modüllerinin yanı sıra kullanılır. Kullanıcılar gruplara ayrılabilir ve her biri için kendi erişim haklarınızı atayabilirsiniz.

Apache sunucusu SSI'yi destekliyor

Sitenin tasarımını ve işlevsel bölümünü ayırmak ve statik cisimlerin değişimini kolaylaştırmak için SSI teknolojisi var. Tüm kopya bilgileri bir dosyaya koymanıza izin verir (örneğin, top.inc) ve sonra sayfalara bir link ekler. Ardından, bu bilgilerdeki birkaç satırı değiştirmeniz gerekirse, bunları yalnızca bir dosyada değiştirmeniz gerekecektir. Apache sunucusu bu teknolojiyi destekler ve sunucu tabanlı olarak tam kullanmanızı sağlar.

Apache sunucusundaki web siteleri için kullanıcı dizinleri oluşturabilirsiniz.

Unix ailesi işletim sistemiyle aynı sunucuda kurulu ise ve apache sunucusu Birkaç kullanıcı oluşturulduğunda, her biri ayrı bir dizin oluşturabilir. Daha doğrusu, bir takma adla otomatik olarak yaratılacaktır. Bu mod_userdir modülü ve UserDir yönergeleri kullanılarak yapılır. Örneğin, kullanıcının ana klasöründeki public_html klasörünü www.site.ru/~user adresiyle ilişkilendirebilirsiniz. Genelde bu, ücretsiz barındırma sağlayan çoğu sitenin sunucularında yapılır. Sunucu yöneticisi, belirli kullanıcıların SSI ve diğer sunucu işlevlerini kullanarak ana sayfalar oluşturmasına izin verebilir veya yasaklayabilir. Tam barındırma genellikle her kullanıcı için ayrı bir sanal sunucu oluşturulmasını sağlar.

Sanal ana bilgisayarları yapılandırabilirsiniz. Onlar sayesinde, aynı fiziksel sunucu üzerinde birkaç sanal sunucunuz olabilir.

Apache sunucusu, sanal sunucuları (ana bilgisayarları) desteklemeye başlayan ilk sunuculardan biriydi. Bu özellik, aynı fiziksel sunucu üzerinde birkaç tam teşekküllü siteyi barındırmanıza izin verir. Her birinin kendi etki alanı, yöneticisi, IP adresi vb. Olabilir.

Domain.ru ve domain.com alan adlarını sunucunuzda barındırmanız gerekiyorsa, önce DNS sisteminde IP adresinizle eşleştiğinden emin olmanız gerekir. Bundan sonra, Apache yapılandırma dosyasında iki direktif oluşturun Her sanal ana bilgisayarı tanımladığınız yer. Böylece, sunucu hangi isteği gelen isteği "göndereceğini" bilecektir.

Apache, PHP, CGI ve diğer scriptlerle çalışmayı destekler.

Şu anda, çoğu web sayfası dinamiktir. Bu, onların görünümlerinin ve içeriğinin “dillerden” birinde yazılmış bir yazılım betiği kullanılarak oluşturulduğu anlamına gelir (tam dil olarak adlandırılamazlar, tanım oldukça keyfidir). Şu anda en yaygın kullanılan teknolojiler CGI ve PHP'dir. Tabii ki, Apache'de her ikisine de destek, ayrıca diğer dilleri bağlama yeteneği de var.

Mod_cgi modülü, sunucuda CGI betiklerini barındırmanıza izin verir. Genel olarak, bunlar sadece kabul edilebilir programlama dillerinden birinde yazılmış olan yürütülebilir dosyalardır. Hem derlenmiş formda bulunabilirler (örneğin, C ++ 'da CGI yazarlarsa bunu yaparlar) veya kaynak kodu olarak (eğer Perl sunucuya kurulursa, programcı bu tür dosyaları yerleştirebilirler.

PHP'ye gelince, Apache'ye entegre etme yeteneği PHP'nin geliştiricileri tarafından sağlanır. Apache sadece script ile derleyici arasında bir aracı olarak hizmet eder. PHP'yi Apache'ye entegre etmenin iki yolu vardır. Birincisi, sunucunun yeteneklerini artıran özel bir modülün kurulmasıdır ve daha sonra komut dosyalarını “derleme” yeteneğine sahiptir. İkincisi ise, php dosyaları ile derleyicinin kendisi arasındaki bağlantının konfigürasyon dosyalarındaki kurulumdur (diskte files.cgi or.exe şeklindedir).

Apache'nin en son sürümünde, güçlü SSL / TSL şifreleme koruması ile çalışmak için bir modül var.

Apache sunucusuna dayanarak, yalnızca basit amatör siteler değil, aynı zamanda iletilen verilerin ciddi şifreleme korumasını gerektiren kaynaklar da oluşturabilirsiniz. SSL / TLS protokolü bunun için özel olarak geliştirilmiştir ve desteği Apache 2.0'da yerleşiktir. Özel bir modül kullanarak, kişisel sertifikalara dayanarak kimlik doğrulaması yapabilirsiniz; bu, kullanıcının orijinalliğini garanti etmeyi neredeyse kesinleştirir.

Apache, sunucuda olan her şeyin ayrıntılı günlüklerini tutar.

Elbette, Apache sunucusu onunla gerçekleştirilen tüm işlemlerin kaydını tutabilir. Ayrıca, yönetici protokol ayrıntılarının derecesini seçebilir. Protokoller hatalar, başarılı işlemler ve her sanal ana bilgisayar için ayrı tutulur. Kısacası, ortaya çıkan hataların eksiksiz bir analizi için komple bir set.

Bir materyal çerçevesinde, yalnızca Apache sunucusunun tüm özellikleri hakkında ayrıntılı bilgi veremedik, aynı zamanda onları listeleyemedik. Bu makale, kullanıcıların ve gelecekteki geliştiricilerin Apache sunucusuyla ilk yüzeysel aşina olmaları için hazırlanmıştır. Diğer materyallerde, kesinlikle bu harika yazılım paketini temel alan site oluşturmanın tüm inceliklerini inceleyeceğiz.

Apache HTTP sunucusu, platformlar arası bir yazılım olan ücretsiz bir web sunucusudur. Apache aşağıdakileri destekler işletim sistemleri: BSD, Microsoft Windows, Linux, Mac OS, BeOS, Novell NetWare.

Apache nasıl yapılandırılır?

Genellikle, Apache sunucusu .htaccess dosyası aracılığıyla yapılandırılır (ayrıntılı talimatlar). Bu dosya sitenizin bulunduğu sunucuda bulunur. Sunucunun kendisi içeriğini okur ve burada belirtilen ayarları uygular. Aşağıda .htaccess dosyasında değiştirilen ve web yöneticileri için faydalı olacak ana parametreleri listeliyoruz.

Bir sayfadan diğerine otomatik yönlendirmeler

  • Http://www.site.com adresinden http://site.com adresine yönlendirin.
  • Http://site.com adresinden http://www.site.com adresine yeniden yönlendir
  • Eski etki alanından yenisine geçme
  • site.com/page veya site.com/page/ site.com/page.html adresine yönlendirin.
  • Site.com/page adresinde site.com/page.html ile ters çevirin
  • URL'nin sonunda eğik çizgiyi kaldırdık (site.com/page/, site.com/sayfa oldu)
  • Bir site.com/razdel-1/razdel-2/page bölümünün tüm sayfalarını başka bir site.com/razdel-1/page bölümünün sayfalarına yönlendirin

Hata işleme

  • Bir hata oluşursa, standart bok yerine kullanıcı belirttiğiniz güzel bir sayfa gösterecektir.

Site güvenliği ayarı

  • Enjeksiyon koruması
  • Hırsızlığa karşı koruma
  • Kullanıcıları IP'ye göre engelle
  • Dosya ve klasör koruması
  • Kullanıcı aracılarıyla çalışma

Sayfaları kodlama

  • Sunucu düzeyinde site sayfalarının kodlanması ile çalışın.

Web sitesi optimizasyonu

  • Siteyi hızlandırmak
  • Önbelleğe alma ile çalışmak
  • Giriş sayfasını değiştir

PHP ayarları

  • Sunucu düzeyinde ayarlanmış PHP parametreleriyle çalışın.

Apache hakkında bilgi

Yapılandırmanın güvenilirliği ve esnekliği Apache'nin temel avantajlarıdır. Bu yazılım sayesinde veri sağlamak, hata mesajlarını değiştirmek, kullanıcıların kimliklerini doğrulamak için DBMS'yi kullanmak için kullanılan harici modülleri bağlayabilirsiniz. Apache IPv6'yı destekler.

Nisan 1996’dan bugüne Apache, İnternet’teki en yaygın ve popüler HTTP sunucusu oldu. Ağustos 2007’deki istatistiklere göre, HTTP sunucusu tüm web sunucularının% 51’inde çalıştı, Mayıs 2009’da bu rakam% 46’ya düştü ve Ocak 2011’de% 59’a çıktı. Bugün, toplam web sitelerinin% 59'undan fazlası Apache web sunucusu tarafından sunulmaktadır. Apache, Apache Software Foundation'ın himayesinde açık kaynak topluluğundaki uzmanlar tarafından geliştirilir ve desteklenir. Apache, IBM WebSphere ve Oracle DBMS dahil olmak üzere çoğu yazılım ürününde bulunur.

Apache yerleşik bir sanal konak mekanizması ile donatılmıştır. Bu sayede, her biri için içeriğinizi görüntülerken, bir IP adresinde çok sayıda web projesi (etki alanı adı) sunabilirsiniz. Her sanal ana bilgisayar için, kendi modül ve çekirdek ayarlarını belirtmek ve tüm siteye veya belirli dosyalara erişim ile ilgili kısıtlamaları ayarlamak mümkündür. Apache-ITK ile her sanal ana bilgisayar için httpd işlemini gid ve uid tanımlayıcıları ile çalıştırabilirsiniz. Her sanal ana bilgisayar için sunucu kaynaklarını (trafik, RAM, CPU) ayrı ayrı sınırlandırmanıza ve dikkate almanıza izin veren modüller de vardır.

Linux'a bir web sunucusu kurmak:

  • Ubuntu'nuz varsa, "PHP 7 ile Apache web sunucusu nasıl kurulur, Ubuntu 16.10'da MariaDB / MySQL ve phpMyAdmin (LAMP)" size uyacaktır.
  • Arch Linux'unuz varsa, "Arch Linux / BlackArch'a" LAMP (Linux, Apache, MySQL / MariaDB, PHP7 ve phpMyAdmin) Kurulumu "makalesi tam size göre.

Yerel sunucu   çok kullanışlı bir araç. Kesinlikle yöneticileri, PHP programcıları, penetrasyon test cihazları için kullanışlı olacak. Bir web sunucusunun tipik kurulumuna dahil olan tüm programlar ücretsizdir, hepsinin açık kaynak kodu vardır. Yerel web sunucusu asgari miktarda kaynak tüketir ve aslında onu kurmak ve yapılandırmak zor değildir.

Bu talimat, önceden oluşturulmuş yapımları kullanmadan yerel bir web sunucusunu nasıl kuracağınızı size söyleyecektir. Bu yöntemin avantajları vardır. Bunlardan en önemlileri: Ne yüklediğiniz üzerinde tam kontrol; en çok kullanma yeteneği son sürümler   yazılımı.

Talimatları tam olarak uygularsanız, her şey işe yarayacak! Windows XP'ye sahip olanlar hariç: windows XP'de çalışmıyor.

Windows 10'a yükleme örneği göstereceğim, ancak varsa windows sürümüo zaman sizi rahatsız etmesine izin vermeyin - prosedür her yerde aynı. Yazılım versiyonunu yazarken en son sürümünü (en son sürümünü) indireceğim. Okuduğunuz zaman, yeni sürümler piyasaya sürülecekse, bunları indirin.

Kurulum adımları:

  1. Hazırlık (sunucuda yer alan programları indirmek, bir sunucu yapısı oluşturmak)

İhtiyacımız var:

  • Apaçi   (doğrudan web sunucusu)
  • PHP   - PHP programlarını çalıştırma ortamı (neredeyse tüm web siteleri için gerekli)
  • MySQL   - veritabanı yönetim sistemi (çoğu web sitesi için gerekli)
  • phpMyAdmin   - veritabanı yönetimi için çok kullanışlı bir araç

Apache'nin resmi geliştirici sitesi httpd.apache.org . Apache'yi bu siteden indirebilirsiniz. Ancak resmi sürüm eski derleyici kullanılarak oluşturulmuştur, bu nedenle PHP'nin yeni sürümleriyle çalışmaz. PHP yazarları Apache'yi siteden tavsiye eder. Bu nedenle, bu talimat için Apache'yi siteden indiriyoruz.

Windows'un 64 bit sürümüne sahipseniz, bileşenlerin hem 64 bit hem de 32 bit sürümlerini seçebilirsiniz. Ana kural - tüm bileşenler bir bit olmalıdır. Windows'un 32 bit sürümü varsa, tüm bileşenlerin 32 bit olması gerekir. Bu, PHP ile yazılmış phpMyAdmin için geçerli değildir. PHP programları için bit kavramı geçerli değildir.

Ayrıca bir C ++ Yeniden Dağıtılabilir Visual Studio 2017 dosyasına ihtiyacımız var. Visual Studio 2017 için Visual C ++ Yeniden Dağıtılabilir Bileşeni (veya daha sonraki bir sürüm), resmi Microsoft web sitesinde (doğrudan indirme 64 bit sürümü; doğrudan indirme 32 bit sürümü) indirebilirsiniz. Bu dosya web sunucusu için gereklidir. Ve MySQL için Visual Studio 2013 için Visual C ++ Yeniden Dağıtılabilir Paketlerine ihtiyacınız var. Bunun için indirebilirsiniz.

Böylece, aşağıdaki dosyaları indirdim:

  • httpd-2.4.29-Win64-VC15.zip
  • php-7.2.0-Win32-VC15-x64.zip
  • mysql-5.7.20-winx64.zip
  • phpMyAdmin-4.7.6-all-languages.zip
  • vc_redist.x64.exe
  • vcredist_x64.exe

Dosyaları yükle vc_redist.x64.exe   ve vcredist_x64.exe.

  2. Bir web sunucusu yapısı oluşturma

Sunucumuzun bir dizin yapısını oluşturun. Ana fikir, yürütülebilir dosyaları ve site dosyalarını veritabanlarıyla paylaşmaktır. Bu, yedekleme dahil sunucu bakımı için uygundur.

Diskin kökünde C: \\   dizin oluştur Sunucu. Bu dizinde 2 alt dizin oluşturun: çöp kutusu   (çalıştırılabilir dosyalar için) ve veri.

Dizini değiştir veri   ve orada alt klasörler yarat DB   (veritabanları için) ve htdocs   (siteler için).

Dizini değiştir C: \\ Sunucu \\ veri \\ DB \\   ve orada boş bir klasör oluşturun veri.

  3. Apache 2.4'ü yükleyin

İndirilen arşivin içeriği (daha doğrusu, sadece rehber Apache24), açmak C: \\ Sunucu \\ bin \\.

Dizini değiştir c: \\ Sunucu \\ bin \\ Apache24 \\ conf \\   ve dosyayı açın httpd.conf   Herhangi bir metin editörü.

İçinde bir sıra satırı değiştirmemiz gerekiyor.

ServerRoot "c: / Apache24"

ServerRoot "c: / Sunucu / bin / Apache24"

   # SunucuAdı www.example.com:80

SunucuAdı localhost

DocumentRoot "c: / Apache24 / htdocs"

DocumentRoot "c: / Sunucu / veri / htdocs /"

DirectoryIndex index.html

DirectoryIndex index.php index.html index.htm

# AllowOverride, .htaccess dosyalarına hangi yönergelerin yerleştirilebileceğini kontrol eder. # "Tüm", "Yok" veya anahtar kelimelerin herhangi bir kombinasyonu olabilir: # AllowOverride FileInfo AuthConfig Sınırı # AllowOverride Yok

   # AllowOverride, .htaccess dosyalarına hangi yönergelerin yerleştirilebileceğini kontrol eder. # "Tüm", "Yok" veya anahtar kelimelerin herhangi bir kombinasyonu olabilir: # AllowOverride FileInfo AuthConfig Sınırı # AllowOverride All

   #LoadModule rewrite_module module / mod_rewrite.so

LoadModule Instagram Hesabındaki Resim ve Videoları rewrite_module / mod_rewrite.so

Dosyayı kaydedin ve kapatın. Her şey, Apache kurulumu tamamlandı!

Bir komut istemi açın (bu, Win + X tuşlarına aynı anda basılarak yapılabilir). Orada seçin Komut satırı   (yönetici) ve oraya kopyalayın:

C: \\ Sunucu \\ bin \\ Apache24 \\ bin \\ httpd.exe -k kurulumu

Güvenlik duvarından Apache ile ilgili bir istek alırsanız İzin Ver'i tıklatın.

Şimdi komut satırına giriyoruz:

C: \\ Sunucu \\ bin \\ Apache24 \\ bin \\ httpd.exe -k başlangıç

Ve Enter tuşuna basın.


Kullanıcı adı olarak root giriniz. Şifre alanı boş bırakılmıştır. Her şey doğru yapılırsa, her şey şöyle görünmelidir:


  7. Sunucu kullanımı ve veri yedekleme

Katalogda   c: \\ Sunucu \\ veri \\ htdocs \\   klasörler ve dosyalar oluşturun, örneğin:

c: \\ Sunucu \\ veri \\ htdocs \\ test \\ ajax.php - bu dosya http: //localhost/test/ajax.php, vb. adresinde bulunacaktır.

Tüm sitelerin ve veritabanlarının tam yedeklemesini oluşturmak için dizini kopyalamanız yeterlidir. veri.

Modülleri yükseltmeden önce, yedekleme klasörleri çöp kutusu   - Sorun durumunda, önceki sürümlere kolayca geri dönebilirsiniz.

Sunucuyu yeniden kurarken veya güncellerken konfigürasyon dosyalarını yeniden yapılandırmanız gerekir. Bu dosyaların kopyalarını varsa, işlem büyük ölçüde hızlandırılabilir. Aşağıdaki dosyaları yedeklemeniz önerilir:

  • c: \\ Sunucu \\ bin \\ Apache24 \\ conf \\ httpd.conf
  • c: \\ Sunucu \\ bin \\ mysql-5.7 \\ my.ini
  • c: \\ Sunucu \\ bin \\ PHP \\ php.ini
  • c: \\ Sunucu \\ veri \\ htdocs \\ phpMyAdmin \\ config.inc.php

Tüm ayarlar bunlarda saklanır.

  8. Ek PHP kurulumu

PHP şu anda çok güçlü, esnek ve kullanışlı bir araçtır. üzerinde yerel bilgisayar   Web sayfalarının oluşturulmasıyla ilgili olmayan çeşitli görevleri çözmek için kullanılabilir. Olağanüstü görevleri çözerken, ayarlarda belirtilen kısıtlamalara dayanabilirsiniz. Bu ayarlar php.ini dosyasında bulunur (c: \\ Server \\ bin \\ PHP \\ php.ini) Bunlardan bazılarını göz önünde bulundurun:

Memory_limit = 128M

bir betiğin kullanabileceği maksimum bellek miktarını ayarlar.

Post_max_size = 8M

pOST yöntemiyle gönderilirken kabul edilecek maksimum veri miktarını belirler

   ; default_charset = "UTF-8"

kodlamayı ayarlar (varsayılan olarak, satır açıklanır)

Upload_max_filesize = 2M

sunucuya yüklenen dosyanın maksimum boyutu. Başlangıçta çok küçük bir boyut kurulur - sadece iki megabayt. Örneğin, phpMyAdmin'e bir veritabanı yüklerken, bu ayar öğesi değiştirilinceye kadar 2 megabayttan daha büyük bir dosyayı yüklemek mümkün olmayacaktır.

Max_file_uploads = 20

bir seferde indirilecek maksimum dosya sayısı

Max_execution_time = 30

bir komut dosyasını çalıştırmak için maksimum süre

Bu ayarların değiştirilmesi tamamen isteğe bağlıdır ancak bunlar hakkında bilgi sahibi olmak faydalıdır.

  9. Ek phpMyAdmin ayarı

PhpMyAdmin'i zaten yapılandırdık ve temel işlevlerin çoğu yeterli. Ancak, phpMyAdmin'in başlangıç ​​sayfasında bir yazıt var: "phpMyAdmin'in ek özellikleri tam olarak yapılandırılmadı, bazı özellikler devre dışı bırakıldı."

Yeni özellikler:

  • (ilgili) tablolar arasındaki bağlantıları göstermek;
  • tablolar hakkında bilgi ekleme (2.3.0 sürümünden başlayarak, imleci ilgili tuşun üzerine getirdiğinizde hangi sütunun bir açılır ipucunda gösterileceğini özel bir tablo table_info’da tanımlayabilirsiniz);
  • pDF oluşturma (2.3.0 sürümünden itibaren, PHPMyAdmin'de tablolar oluşturarak ilişkileri gösteren PDF sayfaları oluşturabilirsiniz);
  • sütun yorumlarını görüntüleme (2.3.0 sürümünden başlayarak, her tablo için her sütunu açıklayan bir yorum yapabilirsiniz. Ve bunlar "yazdırma önizlemesinde" görünür hale gelirler. 2.5.0 sürümünden itibaren, yorumlar tabloların kendi sayfalarında kullanılır ve görünüm modunda sütun başlıkları (özellik tabloları) üzerinde araç ipucu olarak gösterilen ya da tablo başlığına gömülmüş görünümler (ayrıca tablo dökümü olarak da gösterilebilir);
  • yer imleri oluşturmak (2.2.0 sürümünden beri, phpMyAdmin kullanıcıların istekleri yer imlerine eklemelerine izin verir. Bu, sık kullanılan istekler için yararlı olabilir);
  • sQL sorgu geçmişi (sürüm 2.5.0'dan başlayarak, phpMyAdmin arabirimi aracılığıyla yapılan tüm SQL sorgularının geçmişinizi kaydedebilirsiniz);
  • tasarımcı (sürüm 2.10.0'dan beri, Tasarımcı aracı kullanılabilir; tablolar arasındaki ilişkileri görsel olarak yönetmenize olanak tanır);
  • son kullanılan tablolar hakkında bilgi;
  • sık kullanılan tabloların arayüz ayarı;
  • izleme (3.3.x sürümünden başlayarak, bir izleme mekanizması mevcuttur. phpMyAdmin tarafından yürütülen her SQL komutunu izlemenize yardımcı olur. Verilerle çalışmanın kaydedilmesini ve komutların kaydedilmesini destekler. Açtıktan sonra tabloların sürümlerini yapabilirsiniz);
  • kullanıcı ayarları (3.4.x sürümünden beri, phpMyAdmin, kullanıcıların ayarların çoğunu ayarlamasına ve veritabanına kaydetmesine izin verir);
  • özel menüler (4.1.0 sürümünden itibaren, yalnızca atanmış menü öğelerinin kullanılabileceği kullanıcı grupları oluşturabilirsiniz. Bir kullanıcı bir grupta tanımlanabilir ve yalnızca grubu için kullanılabilen menü öğelerini görebilir);
  • gezinme noktalarını gizleme / gösterme (4.1.0 sürümünden başlayarak gezinti ağacındaki noktaları gizleyebilirsiniz / gösterebilirsiniz).
  • ve diğerleri

Şimdi bu ek özellikleri tam olarak yapılandıracağız. Bağlantıyı takip et http: //localhost/phpmyadmin/chk_rel.php   ve "Veritabanı Oluştur" u tıklayın. Bundan sonra, tüm yeni özellikler aktif hale gelecektir.

Yeni özelliklerin birkaç ekran görüntüsü:

1) Tasarımcı


2) İzleme


  10. Posta fişini takma

C: \\ Server \\ bin \\ dizininde Sendmail adlı yeni bir dizin oluşturun. Şimdi bu dizinde, sendmail.php dosyasını aşağıdaki içeriklerle oluşturun:

   #! / usr / bin / env php

PHP yapılandırma dosyasını açın, burada bulunur. C: \\ Sunucu \\ bin \\ PHP \\ php.ini. Ve orada bir satır ekleyin:

Sendmail_path = "C: \\ Sunucu \\ bin \\ PHP \\ php.exe C: \\ Sunucu \\ bin \\ Sendmail \\ sendmail.php --dir C: \\ Sunucu \\ bin \\ Sendmail \\ e-postalar"

Dosyayı kaydedin ve sunucuyu yeniden başlatın. Tamam, şimdi gönderilen tüm e-postalar dizine kaydedilir. C: \\ Sunucu \\ bin \\ Sendmail \\ e-postalar \\


Harflerin uzantısı olacak .Eml   ve örneğin, program tarafından açılabilirler. Thunderbird. Veya normal metin editörü.

  11. Windows'ta PATH'a PHP dizinleri ekleme

Bu yapılmazsa, php_curl.dll, php_intl.dll, php_ldap.dll, php_pdo_pgsql.dll ve php_pgsql.dll gibi bazı PHP modüllerinde sorun olabilir. En azından sunucuyu başlattığınızda her zaman günlüklerde aşağıdakiler görünür:

PHP Uyarı: PHP Başlangıç: "C: \\\\ Sunucu \\\\ bin \\\\ PHP \\\\ ext \\\\ php_curl.dll" dinamik kütüphanesi yüklenemiyor - \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbf \\ xb \\ xb \\ xb \\ xb \\ xef \\ xbf \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb "- \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xbf \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xbf \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbf \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xef \\ xbf \\ xbd \\ xef \\ xef \\ xbf \\ xbd \\ xef \\ xef \\ xbf \\ xbd \\ xef \\ xef \\ xbf \\ xbf \\ xbd \\ xef \\ xef \\ xbf \\ xbd \\ xef \\ xef \\ xbf \\ xbd. \\ r \\ n 0 satırında bilinmeyen PHP Uyarı: PHP Başlangıç: Dinamik kitaplık yüklenemiyor " C: \\ Sunucu \\ \\ bin \\\\ php \\\\ ext \\\\ php_ldap.dll "- \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbf \\ d \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbf \\ xb \\ xb \\ xb \\ xb \\ xbd \\ xbf x xb \\ xb \\ xb \\ xb \\ xb \\ xb .dll "- \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf x xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xbf x xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbf \\ xef \\ xef \\ xbf \\ xbd \\ xb \\ xbf x xb \\ xef \\ xbf x xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xb \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xef \\ xbf \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xef \\ xbf \\ xbf \\ xbd \\ xef \\ xbf \\ xbf \\ xbd. kitaplığı "C: \\\\ Sunucu \\ \\ bin \\\\ PHP \\\\ ext \\\\ php_pgsql.dll" - \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xef \\ xef \\ xef \\ xef \\ xef \\ xef \\ xef \\ xef \\ xef \\ xef \\ xef xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xef \\ xbf \\ xbd \\ xbd \\ xbd \\ xbd \\ xbd \\ xbf \\ xbd \\ xbd \\ xbd \\ xbd \\ xdb 0 satırında Bilinmeyen'de \\ r \\ n

Bu uyarıları önlemek için, PHP'nin yolunu sistem ortamı değişkenlerine eklemeniz gerekir.

Başlat düğmesini tıklayın (veya Windows 10'da ne denir?), Yazmaya başlayın " Sistem ortamı değişkenlerini değiştirMsgstr "" "İlgili ayarlar penceresini açın.

İşte, "tıklayın Çevre değişkenleri»:


"İçinde Sistem değişkenleri»Bul ve tıkla yolsonra " değiştirmek»:



Yaptığınız değişikliklerle tüm pencereleri kapatın.

Sunucuyu yeniden başlatın.

  12. Kapatma, trafik yavaşlaması ve / veya sunucu hatası Asenkron AcceptEx başarısız oldu

Sunucunuz bir yük olmadan bile “donuyor ”sa, yeniden başlatmadan önce web sayfasını göstermez ve sunucudaki Asenkron AcceptEx hatalarını kaydeder:

AH00455: Apache / 2.4.9 (Win64) PHP / 5.5.13 yapılandırılmış - normal işlemlere devam ediliyor AH00456: Apache Lounge VC11 Sunucu oluşturuldu: 16 Mar 2014 12:42:59 AH00094: Komut satırı: "c: \\\\ Sunucu \\\\ (OS 64) Belirtilen ağ adı artık kullanılabilir değil. : AH00341: winnt_accept: Eşzamansız AcceptEx başarısız oldu. (OS 64) Belirtilen ağ adı artık kullanılabilir değil. : AH00341: winnt_accept: Eşzamansız AcceptEx başarısız oldu. (OS 64) Belirtilen ağ adı artık kullanılabilir değil. : AH00341: winnt_accept: Eşzamansız AcceptEx başarısız oldu. (OS 64) Belirtilen ağ adı artık kullanılabilir değil. : AH00341: winnt_accept: Eşzamansız AcceptEx başarısız oldu. (OS 64) Belirtilen ağ adı artık kullanılabilir değil. : AH00341: winnt_accept: Eşzamansız AcceptEx başarısız oldu. (OS 64) Belirtilen ağ adı artık kullanılabilir değil. : AH00341: winnt_accept: Eşzamansız AcceptEx başarısız oldu.

Sonra Apache yapılandırma dosyasına ekleyin:

AcceptFilter http none AcceptFilter https none EnableSendfile off EnableMMAP kapalı

  13. Bir sunucuyu çıkarma

Aşağıdaki komut satırını çalıştırarak hizmetleri durdurun ve başlangıçtan otomatik olarak kaldırın:

C: \\ Sunucu \\ bin \\ Apache24 \\ bin \\ httpd.exe - k durdurma c: \\ Sunucu \\ bin \\ Apache24 \\ bin \\ httpd.exe - k ağ durdurucusunu kaldır mysql c: \\ Server \\ bin \\ mysql-5.7 \\ bin \\ Sunucu dosyalarını silin, bunu yapmak için klasörü silin

C: \\ Sunucu \\ Dikkat, bu tüm veritabanlarını ve sitelerinizi siler..   14. Hiçbir şey benim için çalışmıyor

YORUM YAZMADAN ÖNCE

(OKUMA BELGESİ) 1. Bir şey sizin için işe yaramazsa, talimatlar için değil kesinlikle sizin içindir. Bu kılavuz 5 yıldan daha eskidir (başka bir site için yazılmıştır), düzenli olarak güncellendiğinden ve farklı konfigürasyonlara sahip makinelerde tekrar kontrol edildiğinden. Her zaman için birkaç yüz bin kişi tarafından izlendi. Çoğu şey işe yarıyor.:

2. Hiçbir şeydeki talimatlardan sapma yapamazsınız: Başka bir diske kurmaya karar verirseniz, herhangi bir modülü etkinleştirmeyin, Visual Studio için dağıtılacak Visual C ++ bileşenini yüklemeyin, vb. ve bu sizin için işe yaramıyor, tam olarak durum böyle ve neden işe yaramadığını sormanıza gerek yok Bu nedenle, çalışmıyor.

3. Başka bir programın 80. bağlantı noktasını dinlediği gerçeğiyle ilgili nadir bir hata var. 80 numaralı bağlantı noktasının meşgul olup olmadığını belirlemek için şunu yapın:

{!LANG-e23b5f98cee8c9fe187e665df88ecfd9!}

1) WIN + x tuş bileşimine basın

2) beliren listeden "Komut satırı (yönetici)" seçin.

3) orada koşmak:

/ F "tokens = 1,2,3,4,5 *" için% i ("netstat -aon ^ | findstr": 80 "^ | findstr / i dinleme") yapmak% j% l & @tasklist | findstr% m

Bazı programlar zaten 80m bağlantı noktasında asılıysa, onu göreceksiniz.

4. Başka bir talimat üzerine kurulum yapmaya başladıysanız, bir şey oraya gitmedi, buraya geldi ve bu konuda devam etmeye başladı ve sonra hiçbir şey işe yaramazsa, lütfen sorunuzu başka bir talimatın yazarına yönlendirin. Ya her şeyi silin ve tam olarak bu el kitabını yeniden başlatın. Sorular sadece yukarıdaki talimatlara göre her şeyi yapanlardan kabul edilir. Bu arada, o zaman hiçbir hata olmayacak ve soru sormak zorunda kalmayacaksınız.

5. İndirdiğiniz dosyalara dikkatlice bakın. Çok dikkatli. Apachelounge.com'dan Apache ve httpd.apache.org'dan Apache çok farklıdır (çalıştırılabilirlik açısından). Apache Lounge sürümü bir nedenden dolayı seçildi - bunun için ciddi sebepler var. Bu kılavuzdaki her şey sadece ...

PHP indirme sayfasında 12 sürümleri! Ve indirmek için 24 dosya !!! Dosyayı indirme önerisini dikkatlice okuyun.

6. Farklı bir klasöre kurmak ve her şeyin işe yaracağını umarsanız, beklemeyin, çalışmayacaktır. En kurnaz olanlar "hareket halindeyken" yapılandırma dosyalarını değiştirmeye çalışıyor. Bir şeyleri özleyenler, sonra "işe yaramaz" yazıyor. Ya da hiçbir şeyi değiştirmeyin ya da sorunlarınız hakkında buraya yazmayın.

7. Windows XP'de çalışmaz, asla çalışmaz ve kimse size yardım etmez. Zaten güncelleme, sonunda - nekrofaj olmayın.

8. Her şeyi talimatlara göre yaparsam, ancak sunucu hala çalışmıyorsa ne yapmam gerekir?

1) Her şeyi yeni bir kafa ile yeniden yaparak başlayın. Halen hataların% 99'unun sadece bir yerlerin birisinin “kendi yolunda” “daha ​​iyi” olmaya karar verdiği ya da göz ardı ettiği gerçeğiyle ilgili olduğu durumundan yanıtlamaktan bıktım.

2) Durum böyle değilse, yanlışlığınızı mümkün olduğunca ayrıntılı bir şekilde tanımlayın - ne olduğu. Yorumunuzdan sonra “ne tür bir hata, ne tezahür edersiniz?” Diye sormam gerekiyorsa, o zaman böyle bir yorum silinir.

3) Dosyanın içeriğini getirmek C: \\ Sunucu \\ bin \\ Apache24 \\ logs \\ error.log. Değiştirmek, kesmek, "gerekli" yi seçmek, çevirmek, vb. Gerekli değildir. Bunu kendim çözeceğim. Dosya büyükse, dosya paylaşım servisine yükleyin.

9. Diğer her şey başarısız olursa, sadece kabul edilmesi için alın: herkes 2 metreye atlayamaz, tüm eller yeterince düz değildir, doğru yerden büyürler ve web sunucusunu kendi başlarına kurmaya özen gösterirler ... Çok sayıda hazır montajlara bakın ...

10. Her şeyi tam olarak talimatlara göre yaptıysanız, ancak bir hata yaptıysanız, aşağıdaki adımları uygularsanız (bir kerede bir gönderimde ve birkaç kez sormamıştım), sorununuzu anlamanıza kesinlikle yardımcı olmaya çalışacağım:

  • Sorununuzu ayrıntılı olarak tanımlayın ve hata mesajları verin.
  • Komut isteminde çalıştır
  ağaç C: \\ Sunucu\u003e C: \\ Sunucu \\ tree.txt

C: \\ Server dizininizde bir tree.txt dosyasına sahip olacaksınız.

Web sunucusu hakkında yeterince konuştuk, yüklememiz ve test etmemizin zamanı geldi. En yaygın web sunucularının oluşturulmuş bir listesi vardır, seçerken, dağıtıldığı belirli görevler dikkate alınır. Ücretsiz Apache web sunucusunda seçimimizi durdurun. Birincil ve ikincil seviyeli siteler için ideal olduğunu düşünüyorum. Elbette, kolay yoldan gidebilirsiniz - hazır bir Denwer kombinasyonu kurmak, çoğu yeni başlayanlar gibi, ancak bizim durumumuzda, sonuçların yanı sıra, teorik bilgi de önemlidir. Ve bugünkü dersten sonra, yeteneğin kesinlikle artacak :)

Proje indirme sayfasına gidin - http://httpd.apache.org/download.cgi ve Windows altındaki en son kararlı sürümü MSI yükleyici olarak indirin (benim durumumda apache_2.2.14-win32-x86-no_ssl.msi). Kurulumu başlatın. Bizi yanlış yönlendirebilen ilk diyalog, sunucu hakkında bilgi girmek için kullanılan diyalog penceresidir:

Sunucumuzu kurulumdan sonra yapılandıracağız ve şimdi çok fazla rahatsız etmeyip "Ağ Etki Alanı" ve "Sunucu Adı" localhost alanlarına ve "Yönetici" E-posta Adresi "alanlarına e-posta adresinizi (yaklaşık olarak ne) gireceğiz localhost, daha sonra ele alınacaktır.) Alt anahtarlara dokunmayız. "Next" e tıklayın, tipik kurulumla bir kez daha "Next" 'e karar veririz. Yükleyici, web sunucusunun kurulacak dizini seçmeyi teklif eder:


Bence yol çok uzun, kısalmayalım C: \\ Program Files \\ Apache. Kuruluma devam ediyoruz, bitmesini bekleyin. Yükleyici kapatıldıktan sonra, tepside Apache monitör simgesi görünür:

Bu yardımcı program, web sunucumuzu başlatmanıza, durdurmanıza, yeniden başlatmanıza, durumunu öğrenmenize olanak sağlar. Apache'nin kendisi, bilgisayar önyüklendiğinde otomatik olarak başlayacak bir hizmet olarak kuruldu:


Şimdi makalede neyden bahsettiğimizi hatırlayalım. Hatırladığınız gibi, ağa bağlı olan her bilgisayarın kendi IP adresi vardır. Ancak bilgisayarınızın tek bir ağ bağlantısı olmasa bile, en az bir dahili IP adresine sahiptir. Bu adres 127.0.0.1 . Tüm bilgisayarlarda aynıdır ve bilgisayarın kendisine işaret eder. Diğer bir deyişle, ağ istemcisi uygulaması 127.0.0.1 sunucu adresini belirtirse, istemci bilgisayarınızda bulunan sunucuya bağlanmaya çalışır. Ardından, DNS sunucuları tarafından IP adreslerine dönüştürülen alan adlarından bahsettik. İç adres 127.0.0.1'in kendi iç etki alanı adı vardır - localhost. Aynı zamanda bu ismi bilgisayarın adresine çevirmek için DNS sunucusuyla bağlantı kurmanıza gerek yoktur, çünkü bu yazışma bilgisayarın kendisindedir.

Bir web tarayıcısı açalım ve etki alanı localhost’unu adres çubuğuna yazalım:


Umarım ne olduğunu anlamışsındır? Localhost etki alanı, 127.0.0.1 IP adresine dönüştürüldü, web tarayıcısı, bu adres ve bağlantı noktası 80'deki web sunucusuna bağlı ve HTTP protokolünü kullanarak ana sayfayı istedi. Yani, web sunucumuz çalışıyor, "Çalışıyor" ("çalışıyor") yazan bir tarayıcı sayfası gönderdi.

Apache yapılandırma dosyalarının düzenlenmesi ile ilgili web sunucumuzu kurmaya başlayalım. Öncelikle kullanışlı, pratik ve aynı zamanda basit bir metin editörü almanız gerekir. Zaten bir tane varsa, tebrikler, mutsuz bir Not Defteri kullanıcısıysanız, bir editör önerebilirim. Klasöre git C: \\ Program Files \\ Apache \\ conf   ve dosyayı yeniden adlandırın httpd.conf   içinde httpd.conf.bakbaşlangıçtaki konfigürasyona sahip olmak için. Yeni bir dosya oluştur httpd.conf   aşağıdaki içeriğe sahip:

ServerRoot "C: / Program Dosyaları / Apache" Dinle 80 LoadModule actions_module modülleri / mod_actions.so LoadModule alias_module modülleri / mod_alias.so LoadModule asis_module modülleri / mod_asis.so /mod_authn_file.so LoadModule authz_default_module modülleri / mod_authz_default.so LoadModule authz_groupfile_module modülleri / mod_authz_groupfile.so LoadModule authz_host_module modülleri / mod_authz_host.so LoadModule authz_user_module modülleri / mod_authz_user.so LoadModule autoindex_module modülleri / mod_autoindex.so LoadModule cgi_module modülleri / mod_cgi.so LoadModule dir_module modülleri / mod_dir.so LoadModule env_module modülleri / mod_env.so LoadModule include_module modülleri / mod_include.so LoadModule _negotiation.so loadModule rewrite_module modülleri / mod_rewrite.so loadModule setenvif_module modülleri / mod_setenvif.so    DirectoryIndex index.html    Sipariş izni ver, Tümünü reddet    TypesConfig conf / mime.types AddType uygulaması / x-compress .Z AddType uygulaması / x-gzip .gz .tgz    LogFormat "\\ nclient =% h \\ ntime =% (% d.% M.% Y% H:% M:% S) t \\ nsayfa =% U% q \\ nreferer =% (Hakem) i \\ nreqmethod =% m \\ nhost =% (Ana Bilgisayar) i \\ nagent =% (Kullanıcı aracısı) i \\ n \\ n "mylog

Anlıyoruz. ServerRoot   - web sunucumuzun kurulu olduğu yol. Eğik çizgilere dikkat edin. Listern   - web sunucusunun “dinleyeceği” port numarasını ve gerekirse IP adresini belirtin (bilgisayarınızda birkaç bağlantı varsa ve yalnızca bir taneden bağlantı kabul etmeniz gerekiyorsa). Web sunucuları için standart olan 80 numaralı bağlantı noktasını belirledik. LoadModule   web sunucusu modülünü yükler, modüller ek özellikler sağlar. Standart modüllerin listesi konfigürasyon dosyamızda kayıtlıdır. AddDefaultCharset   - varsayılan kodlama, unicode'u (UTF-8) ayarlayın. Geri kalanımız biraz endişeli.

Ve şimdi en önemli şey. Neden bir web sunucusu kurmayı unutma? Bu doğru, gelecekteki sitelerimizde çalışmak. Bir kavram var kök dizini - bu site içeriğinin bulunduğu dizindir, yani dosyaları içerir. Varsayılan olarak, Apache kök dizinimiz . Oraya gidip bulacağınız tek bir dosya var. index.html. Bu, adresindeki "Çalışıyor" etiketli ana sayfayı içeren dosyadır. http: // localhost. Gerçek şu ki, istek (bu arada, url olarak adlandırılır) dosya adını eksikse, web sunucusu standart adlardan birindeki dosyayı arar. Bu isimler (daha doğrusu, bir isim - index.html) bizim yapılandırma dosyamızda kayıtlı:

   DirectoryIndex index.html

Böylece, istendiğinde http: // localhost   web sunucusu dosyayı arayacak C: \\ Program Files \\ Apache \\ htdocs \\ index.htmlistek üzerine http: // localhost / docs - C: \\ Program Files \\ Apache \\ htdocs \\ docs \\ index.html   (durumunda docs   - klasör), istendiğinde http: //localhost/news.html - C: \\ Program Files \\ Apache \\ htdocs \\ news.html   ve benzeri.

Web oluşturma sırasında, sitelerinizi bağımsız olarak test edebileceğiniz bir tane yerel ağ (yerel bir makinede bulunur) etki alanı olması uygun değildir. Apache birkaç siteye hizmet etmenize izin verir, yani her bir alan için kendi web sunucusu kopyanızı yüklemeniz gerekmez (ayrıca, yalnızca bir sunucu uygulamasının bilgisayardaki belirli bir bağlantı noktasında çalışabileceğini unutmayın). Birden çok etki alanı adı aynı IP adresine başvurabilir. Apache, HTTP isteğinde iletilen alan adına bağlı olarak (Host parametresini, "Web Sunucusu İşleminin Prensipleri" makalesini unutmayın), belirli bir kök dizindeki dosyaları arayabilir. Bu teknoloji denir "sanal ana bilgisayar".

Bu yüzden, localhost 127.0.0.1 adresine karşılık gelir, hadi aynı adrese karşılık gelecek olan üç tane daha iç etki alanı test alanı1, test alanı2 ve test alanı3 oluşturalım. Dosyayı bir metin düzenleyicide açın. C: \\ WINDOWS \\ system32 \\ drivers \\ etc \\ hosts. Bu dosyada, etki alanı adlarının ve IP adreslerinin eşlemesini ayarlayabilirsiniz. Burada aynı maçı bulacağız localhost address 127.0.0.1. Dosya satırının sonuna ekleyin:

127.0.0.1 test alanı1 127.0.0.1 test alanı2 127.0.0.1 test alanı3

DNS sunucusuna erişmeden önce, bu dosyada bir eşleşme aranır ve başarılı olursa çağrı iptal edilir ve bulunan adres kullanılır.

Bir sonraki adım, her alan adı için kendi kök dizininizi oluşturmak ve web sunucumuza bunun hakkında bilgi vermektir. Klasörde sil C: \\ Program Files \\ Apache \\ htdocs   dosya index.html   ve orada üç klasör oluşturun: test-domain1, test-domain2   ve test-alan3, bu klasörlerin her birinde bir klasör kütük   - günlükler ve klasör için www   - aslında, etki alanı için kök dizini. Dosyanın sonunda C: \\ Program Files \\ Apache \\ conf \\ httpd.conf   aşağıdakileri ekliyoruz:

İsimVirtualHost *: 80    SunucuAdı test-domain1 DocumentRoot "C: / Program Dosyaları / Apache / htdocs / test-domain1 / www" HataLog "C: / Program Dosyaları / Apache / htdocs / test-domain1 / log / error.log" CustomLog "C: / Program Dosyalar / Apache / htdocs / test-domain1 / log / access.log "mylog    SunucuAdı test-domain2 DocumentRoot "C: / Program Dosyaları / Apache / htdocs / test-domain2 / www" ErrorLog "C: / Program Dosyaları / Apache / htdocs / test-domain2 / log / error.log" CustomLog "C: / Program Dosyalar / Apache / htdocs / test-domain2 / log / access.log "mylog    AllowOverride Tüm Seçenekler -Indexleri    SunucuAdı test-domain3 DocumentRoot "C: / Program Dosyaları / Apache / htdocs / test-domain3 / www" ErrorLog "C: / Program Dosyaları / Apache / htdocs / test-domain3 / log / error.log" CustomLog "C: / Program Dosyalar / Apache / htdocs / test-domain3 / log / access.log "mylog    AllowOverride Tüm Seçenekler -Indexleri

Üç blok Sanal Ana   üç sanal sunucumuzu tanımlayın. Her birine kök dizini verilir - DocumentRoot, hata günlüğüne giden yol - ErrorLog   ve erişim günlüğü - CustomLog.

Her etki alanının kök dizininde bir dosya oluşturun. index.html   "test-domain1'den Merhaba", "test-domain2'den Merhaba" ve "test-domain3'den Merhaba" içeriği ile, yapılandırma değişikliklerinin etkili olabilmesi için Apache'yi yeniden başlatmanız (Apache simgesine sol tıklayın -\u003e Yeniden Başlat). Hata yapılmadıysa, her şey işe yaramalı:

Tebrikler, artık üç yerel ana makineye sahip yapılandırılmış bir web sunucunuz var. Webmasterlar için harika bir yol :) Web sitemizin temellerini öğrenmeye başlamanın zamanı geldi.