Apache nasıl yapılandırılır (siteler için uygun - httpd.conf)


27

Apache'nin nasıl çalıştırılacağını ve nasıl çalıştığını açıklayan birkaç temel öğreticiyi izlemeye çalışıyorum (ubuntu'da, Amazon'da çalışıyor). Çoğunlukla boş geldim, çünkü tüm eğiticiler bana httpd.conf dosyasını yapılandırmamı söyledi (DocumentRoot eklemek, vb.).

Şimdi bana, sitelerin kullanılabilir dizinine (/ etc / apache altında) site yapılandırmaları eklememi ve ardından sitelerden etkinleştirilmiş siteye bağlanmamı söyleyen bir derste tökezledim. Bu şekilde yapılandırma çalışmak gibi görünüyor.

Ama şimdi kafam karıştı - Apache'yi nasıl yapılandırabilirim? Çoğu ders hala httpd.conf kullanmam gerektiğini söylüyor. Hangisini kullanmalıyım? Fark ne? Neden tüm dersler "yanlış" (eğer öyleyse)?

Yanıtlar:


35

sites-availableBu yöntem genel olarak "Debian Yolu" olarak kabul edilir:

  • "ana" yapılandırma /etc/apache2/apache2.conf
  • "user" yapılandırma /etc/apache2/httpd.conf
  • /etc/apache2/sites-availabledosyalardaki vhosts (genellikle dosya başına bir tane)
    • numaralandırmak isteyebilirsiniz, örneğin 00-domain.com, 01-otherdomain.com
  • bağlantı noktaları ( Listendirektifler) içerisinde/etc/apache2/ports.conf
  • mods /etc/apache2/mods-available

Bunları sembolik bağlantılar veya bir a2dizi komutla değiştirebilirsiniz:

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>

Kişisel tercihinize bağlı olarak, kullanarak Apache yeniden başlatabilirsiniz apachectl, /etc/init.d/apache2 (start|stop|reload|restart)yaservice apache2 (start|stop|reload|restart)

Bir httpd.confvhost girişi yerine kullanacağınız bir örnek, örneğin genel bir yönlendirme veya yeniden yazma kuralı olabilir. Diğer bilgiler - genellikle apache2.confyalnız bırakmalısınız ve sites-availabledizindeki vhosts için tutarlı bir isimlendirme planı kurduğunuzdan emin olmalısınız .


Harika bir özet! Üzerinde çalıştığımdan çok daha net ve özlü. +1.
Steven Pazartesi

2
Mevcut siteler konfigürasyonun iyi modülerleşmesini sağlar. Tek bir sitenin konfigürasyonuna kolayca odaklanmanızı sağlar. Ayrıca, bir sunucudaki siteleri karşılaştırmayı veya bir siteyi sunucular arasında taşımayı veya çoğaltmayı çok kolaylaştırır.
BillThor

+1. Bu yapılandırmaları korumanız gerektiğinde, 'siteler kullanılabilir' yerine 'siteler etkin' seçeneğine gidin ve bunlara doğrudan oradan erişin. Bu şekilde, halihazırda kullanılan site yapılandırmalarını her zaman belirleyebilir ve bunlara erişebilirsiniz.
Ross,

9

Yapılandırma dosyalarının konumu ve organizasyonu yapılandırılabilir ve büyük sürümler arasında veya dağıtımlar arasında değişebilir.

Apache Wiki'nin yapılandırma dosyalarının adları ve yerleri hakkında kullanışlı bir rehber vardır .

includeKonfigürasyon dosyaları direktif içerebildiğinden , konfigürasyonun bölümleri daha küçük dosyalara ayrılabilir. Standart bir Apache yapılandırma dosyası birçok yorum ve birçok standart öğe içerdiğinden, büyük olasılıkla değiştireceğiniz parçaları ayırmanız mantıklı olacaktır.

Ana yapılandırma dosyasının adı, derleme zamanında değiştirilebilir ve son sürümlerde olarak değiştirildi httpd.conf.apache2.conf

Yıllar boyunca, içerilen konfigürasyon dosyalarının organizasyonunda da bir miktar evrim olmuştur.

Örneğin, Apache2'yi Ubuntu tabanlı bir sisteme kullanarak yükledim apt-get install apache2- işte dosyalar

/etc/apache2$ ls
apache2.conf  envvars     mods-available  ports.conf       sites-enabled
conf.d        httpd.conf  mods-enabled    sites-available

/etc/apache2$ grep ^Include apache2.conf
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/ 

/etc/apache2$ ls -l sites-enabled
total 0
lrwxrwxrwx 1 root root 26 Dec 26 12:30 000-default -> ../sites-available/default

Bu nedenle, en çok ilgilendiğiniz yapılandırma ayarları şu an için geçerli /etc/apache2/sites-available/default.

Bunun, ilk önce okumanızı tavsiye ettiğim Apache'nin Ubuntu belgelerine uygun olduğunu görebiliyorum . Apache'nin eski sürümleri (veya diğer dağıtımlar) için başka belgeleriniz varsa, bu bilgileri Ubuntu'da işlerin düzenlenme biçimine uyacak şekilde uyarlayabilirsiniz.


-2

Linux'taki Apache iki tipte kurulabilir. biri apt-get ve diger indir tar dosyasi ile ayıklanır .... Bu nedenle apt-get işlem sitelerinde, dış dünyaya hizmet veren her site bu klasörde yapılandırıldığı için / etc / apache2 / sites etkin klasörden hizmet verilir. .conf dosya örneği, 000-default.conf, apache çalışmalarını göstermek için etkin bir varsayılan sitedir.

Böylece, sitelerde etkin olan herhangi bir .conf dosyasını oluşturarak ve içeriği içeriğine yönlendirerek .. siteye sunulur.

Bu nedenle, yeni bir statik site eklemek için, sitelerin etkin olduğu klasörde, her zaman example.conf adında bir adla yeni bir .conf dosyası oluşturulmalıdır. ve içine aşağıdaki satırları eklemek zorunda

ServerAdmin webmaster @ localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log birleştirilmiş

*: 80, "80 numaralı bağlantı noktasından dünyaya aç" ifadesini gösterirken, DocumentRoot / var / www / html "site içeriğinin yolunu" belirtir


Bu yanlış ve yanıltıcı. Dosyalarınızı sitelerden erişilebilir halde a2ensite gibi araçların (önerilen) çalışabilmesi için oluşturursunuz. Normalde a2ensite kullanarak bu conf dosyalarını linkli sitelere yönlendirin. apt-get, sitelerinizi yapılandırmakla hiçbir ilgisi yoktur.
HörmannHH
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.