WampServer'da Sanal Konak nasıl oluşturulur
WAMPServer 3 bu işlemi çok daha kolay hale getirdi!
WAMPServer'ın bir parçası olarak sağlanan bir yardımcı programdan neredeyse her şeyi yapabilirsiniz.
Proje.sitenizi içerecek bir klasör oluşturun. Bu, C:\wamp\www\
dizinin altında veya gibi tamamen ayrı bir klasörde olabilir C:\websites
.
Seçtiğiniz konumun içinde C:\websites\project1\www
veya altında bir klasör oluşturun .c:\wamp\www\project1\www
Şimdi localhost'u açın wampmanager->localhost
ve Add a Virtual Host
ana sayfadaki ARAÇLAR bölümünün altındaki bağlantıya tıklayın .
Bunun gibi bir sayfa göreceksiniz:
Alanları, her alanın üzerindeki talimatlarda belirtildiği şekilde doldurun
Sanal Konak yapılandırması sizin için oluşturulmuş olacaktır.
Şimdi DNS Önbelleğini yeniden başlatmalısınız. Bunu wampmanager menülerinden bunun gibi yapabilirsinizright click wampmanager->Tools->Restart DNS
. DNS Önbelleği yeniden başlatılacak ve ardından Apache de durdurulacak ve yeniden başlatılacaktır. Wampmanager simgesi tekrar yeşile döndüğünde her şey tamamlanmış demektir.
Şimdi basit bir index.php
dosya oluşturmalı veya sitenizi yukarıda oluşturduğunuz klasöre yüklemelisiniz.
VH'nizin çağrıldığını varsayarak , WAMPServer ana sayfasının Sanal Konaklarınız Bölümünde project.dev
bu adı görmelisiniz.
Siteyi bu menüden başlatabilir veya sadece EG adres çubuğundaki yeni Etki Alanı Adını kullanabilir project1.dev
ve site shoudl başlatabilirsiniz.
Eski WAMPServer 2.5 mekanizması veya hepsini manuel olarak yapmak istiyorsanız
WampServer 2.5 ve sonraki sürümlerinde bir kavram değişikliği oldu ve bu değişikliğin iyi bir nedeni var!
WampServer'da artık projelerinizin her biri için, onları bir \wamp\www\subfolder
yapıda tutsanız bile, bir Sanal Konak oluşturmanız ŞİDDETLE teşvik edilmektedir .
Sanal Konak Belgeleri
Sanal Konak Örnekleri
WampServer ana sayfası ( \wamp\www\index.php
) artık tüm projeleriniz için bir Sanal Ana Bilgisayar oluşturmanızı bekliyor ve bu nedenle yalnızca bunu yaparsanız düzgün çalışacaktır.
Tarih
Yeni başlayanlar için PHP Apache ve MySQL öğrenmek için WampServer kullanarak hayatı kolaylaştırmak için, \wamp\www\
klasörün altında alt klasörler oluşturmanız önerildi .
wamp
|
|
|
|
Bu alt klasörler daha sonra WampServer Ana Sayfasında 'Projeleriniz' adlı bir menü altında bağlantılar olarak gösterilir ve bu bağlantılar bir bağlantı içerir localhost/subfoldername
.
Yalnızca basit öğreticiler için kabul edilebilir
Bu, yeni başlayanlar için hayatı kolaylaştırdı ve örneğin PHP kodlamasını öğrenmek için eğitimleri takip edenler için mükemmel bir şekilde kabul edildi. Ancak, daha sonra canlı barındırılan sunucunuza kopyalamak isteyeceğiniz gerçek bir web sitesi geliştirirken asla kullanılması amaçlanmamıştır. Aslında, bu mekanizmayı kullandıysanız, canlı siteler yapılandırması geliştirme yapılandırmanızla eşleşmeyeceği için genellikle sorunlara neden olur.
Gerçek web sitesi geliştirme için Sorun .
Bunun nedeni elbette wamp için varsayılan DocumentRoot ayarının
DocumentRoot "c:/wamp/www/"
alt klasörünüzün adı ne olursa olsun. Yapıyı veya sitenizi sorgulayan PHP kodunu sıklıkla kullanan bu açıklama, WampServer geliştirmenizde çalıştırırken, DocumentRoot yapılandırmasının web sitesinin en üstündeki klasörü gösterdiği canlı barındırılan bir sunucuda çalışırken ne alacağına dair farklı bilgiler aldı. dosya hiyerarşisi. Bu tür bir kod birçok çerçevede ve CMS'de örneğin WordPress ve Joomla vb.
Örneğin
Diyelim ki proje1 adında bir projemiz var wamp\www\project1
ve yanlış çalışıyorlocalhost/project1/index.php
Bu, söz konusu PHP komutunun bazıları tarafından bildirilecek olan şeydir:
$_SERVER['HTTP_HOST'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www
Şimdi, bu siteyi bir Sanal Konak tanımını kullanarak doğru bir şekilde tanımlamış http://project1
olsaydık ve WAMPServer geliştirme sitesindeki sonuçlar, canlı barındırılan bir ortamdayken alınanlarla eşleşecek şekilde çalıştırırsak.
$_SERVER['HTTP_HOST'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www/project1
Şimdi bu fark ilk başta önemsiz görünebilir, ancak örneğin WordPress veya CMS gibi Joomla gibi bir çerçeve kullanacaksanız, bu, sitenizi canlı bir sunucuya taşıdığınızda sorunlara neden olabilir ve olur.
WampServer'da Sanal Konak nasıl oluşturulur
Aslında bu, temelde herhangi bir wndows Apache sunucusu için aynı şekilde çalışmalıdır, yalnızca Apache yapılandırma dosyalarını nerede bulabileceğinize ilişkin farklılıklar vardır.
Apache'de ilk Sanal Konakınızı oluşturmak için 3 adım vardır ve önceden tanımladıysanız yalnızca 2 adım vardır.
- Sanal Konak tanımlarını oluşturun
- Yeni alan adınızı HOSTS dosyasına ekleyin.
- Sanal Konaklar tanım dosyasını içeren httpd.conf satırındaki açıklamayı kaldırın.
Adım 1 , Sanal Konak tanımlarını oluşturun
httpd-hosts.conf
WampServer'ın içinde yaşadığı adlı dosyayı düzenleyin
\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf
(Apache sürüm numaraları farklı olabilir, devam etmeden önce beyni meşgul edin)
Bu dosyayı ilk kez düzenliyorsanız, varsayılan örnek kodu kaldırın, hiçbir faydası yoktur.
İçinde yaşayan project1 adlı bir site için bir tanım oluşturmak istediğimizi varsayıyorum
\wamp\www\project1
Çok önemli, ilk önce localhost'un hala çalıştığından emin olmalıyız, böylece bu dosyaya koyacağımız ilk VHOST tanımı budur.
<VirtualHost *:80>
DocumentRoot "c:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "c:/wamp/www">
Options Indexes FollowSymLinks
AllowOverride All
Require local
</Directory>
</VirtualHost>
Şimdi projemizi tanımlıyoruz: ve bunu tabii ki yeni bir projeye başlarken her bir projeniz için yaparsınız.
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/project1"
ServerName project1
<Directory "c:/wamp/www/project1">
Options Indexes FollowSymLinks
AllowOverride All
Require local
</Directory>
</VirtualHost>
NOT: Her Sanal Konağın kendi DocumentRoot
tanımladığı. Bir Sanal Konak tanımına ekleyebileceğiniz birçok başka parametre de vardır, Apache belgelerine bakın.
Küçük kenara
Sanal ana bilgisayarların Apache'de çalışma şekli: Bu dosyadaki ilk tanım aynı zamanda varsayılan site olacaktır, dolayısıyla tarayıcıda kullanılan etki alanı adı gerçekte tanımlanmış sanal olarak barındırılan herhangi bir etki alanıyla eşleşmiyorsa, localhost, dosyadaki ilk etki alanı yapar. bir saldırı girişimi yalnızca IP Adresinizi kullanırsa yüklenen sitedir. Bu nedenle, bu etki alanı için Apache güvenliğinin HER ZAMAN ŞUNA SAHİP OLDUĞUNDAN emin olursak
Require local
harici bir adresten gelen herhangi bir rasgele hack bir hata alır ve bilgisayarınıza girmez, ancak bir etki alanını yanlış yazarsanız WampServer ana sayfası gösterilir, çünkü WampServer ile aynı bilgisayardasınız ve bu nedenle bu nedenle local
.
2. Adım :
Yeni alan adınızı HOSTS dosyasına ekleyin. Şimdi Sanal Konak tanımında kullandığımız alan adını HOSTS dosyasına eklememiz gerekiyor, böylece pencereler onu nerede bulacağını bilir. Bu, bir DNS A kaydı oluşturmaya benzer, ancak yalnızca bu durumda bu belirli PC'de görülebilir.
Düzenle C:\windows\system32\drivers\etc\hosts
Dosyanın uzantısı yoktur ve bu şekilde kalmalıdır. Not defterine dikkat edin, çünkü bir.txt
Daha iyi bir düzenleyiciniz yoksa uzantı edin. Ücretsiz ve çok iyi bir düzenleyici olan Notepad ++ 'ı indirmenizi öneririm.
Ayrıca bu korumalı bir dosyadır, bu nedenle onu yönetici ayrıcalıklarıyla düzenlemelisiniz, bu nedenle Yönetici Olarak Çalıştır'ı kullanarak düzenleyicinizi başlatın. menü seçeneğini .
Bu düzenlemeleri tamamladığınızda hosts dosyası şöyle görünmelidir
127.0.0.1 localhost
127.0.0.1 project1
::1 localhost
::1 project1
Burada IPV4 geridöngü adresi 127.0.0.1
ve ayrıca IPV6 geridöngü adresi için tanımlara sahip olmanız gerektiğini unutmayın.::1
çünkü Apache artık IPV6'nın farkındadır ve tarayıcı IPV4'ü veya IPV6'yı veya her ikisini birden kullanacaktır. Hangisinin kullanılacağına nasıl karar verdiği hakkında hiçbir fikrim yok, ancak IPV6 yığını açıksa ve çoğu pencere işletim sistemi XP SP3'ten itibaren yapıyorsa kullanabilir.
Şimdi pencerelere etki alanı adı önbelleğini yenilemelerini söylemeliyiz, bu nedenle Yönetici olarak Çalıştır menü seçeneğini tekrar kullanarak bir komut penceresi açın ve aşağıdakileri yapın.
net stop dnscache
net start dnscache
Bu, pencereleri etki alanı adı önbelleğini temizlemeye ve yeniden yüklemeye zorlar, yeniden yüklerken HOSTS dosyasını yeniden okuyacak ve böylece etki alanı hakkında bilgi sahibi olacaktır project1
.
Adım 3 : Sanal Konaklar tanımlama dosyasını içeren httpd.conf satırındaki açıklamayı kaldırın.
Httpd.conf dosyanızı düzenleyin, doğru dosyayı düzenlediğinizden emin olmak için wampmanager.exe menülerini kullanın.
Bu satırı httpd.conf içinde bulun
Ve sadece #
bu satırı yorumlamak için kaldırın .
Apache çalıştırırken bu değişikliği etkinleştirmek için şimdi Apache hizmetini durdurmalı ve yeniden başlatmalıyız.
wampmanager.exe -> Apache -> Service -> Restart Service
Şimdi, sistem tepsisindeki WAMP simgesi tekrar YEŞİL gitmezse, muhtemelen \wamp\bin\apache\apache2.4.9\conf\extra\httpd-hosts.conf
dosyada yanlış bir şey yapmışsınız demektir .
Eğer öyleyse, burada neyin yanlış olduğunu bulmak için yararlı bir mekanizma var. Yapılandırma dosyalarını kontrol etmek ve hataları dosya adı ve satır numaralarına göre bildirmek için Apache exe'nin (httpd.exe) bir özelliğini kullanır.
Bir komut penceresi açın.
cd \wamp\bin\apache\apache2.4.9\bin
httpd -t
Bu yüzden hataları düzeltin ve çıktıyı alana kadar tekrar test edin
Syntax OK
Şimdi bir şey daha var.
Wampmanager menü sisteminde aslında 2 yeni menü öğesi var. Bir adlandırılan 'My Projects' varsayılan olarak açıktır. Ve 'Sanal Konaklarım' adlı ikincisi varsayılan olarak etkinleştirilmemiş olan .
'Projelerim', \ wamp \ www dizininin herhangi bir alt dizinini listeleyecek ve siteyi bu alt dizinde başlatmak için bir bağlantı sağlayacaktır. Daha önce de söylediğim gibi, "localhost / project1" yerine "project1" i başlatıyor, bu nedenle bağlantının çalışmasını sağlamak için, bu bağlantının tarayıcınızda o siteyi gerçekten başlatmasını sağlamak için bir Sanal Konak tanımı oluşturmalıyız, Sanal Konak tanımı olmadan muhtemelen anahtar kelime olarak site adı için bir web araması başlatın veya sadece bir site bulunamadı koşulunu döndürür.
'My Virtual Hosts' menü öğesi biraz farklıdır. Sanal Konakları tanımlamak için kullanılan dosyayı arar (buna bir dakika içinde ulaşacağız) ve bulduğu her SunucuAdı parametresi için menü bağlantıları oluşturur ve her biri için bir menü öğesi oluşturur. Bu biraz kafa karıştırıcı görünebilir, çünkü \ wamp \ www klasörünün alt dizinleri için bir Sanal Ana Bilgisayar tanımı oluşturduğumuzda bazı öğeler hem 'Projelerim' menüsünde hem de 'Sanal Ana Bilgisayarlarım' menüsünde görünecektir.
Bu diğer 'Sanal Konaklarım' menüsünü nasıl açabilirim?
- \ Wamp \ wampmanager.tpl dosyasının bir yedeğini alın, bir hata yapmanız durumunda bu çok önemli bir dosyadır.
- \ Wamp \ wampmanager.tpl dosyasını düzenleyin
- Bu parametreyi
;WAMPPROJECTSUBMENU
'[Menu.Left]' bölümünde bulun.
- Bu yeni parametreyi parametrenin
;WAMPVHOSTSUBMENU
önüne veya arkasına ekleyin ;WAMPPROJECTSUBMENU
.
- Dosya 'yı kaydet.
- Şimdi wampmanager simgesine sağ tıklayın ve 'Yenile'yi seçin. Bu, menüyü eklemezse, 'çıkın' ve wampmanager'ı yeniden başlatın.
Büyük Not
Yeni menü yalnızca önceden tanımlanmış bazı Sanal Konaklarınız varsa görünecektir! Aksi takdirde, bir VHOST tanımlayana kadar hiçbir fark görmeyeceksiniz.
Şimdi bunu mantıksal uzantısına götürürseniz
Artık \wamp\
sadece VHOST tanımındaki DocumentRoot parametresini değiştirerek web sitesi kodunuzu klasör yapısının tamamen dışına taşıyabilirsiniz . Yani örneğin şunu yapabilirsiniz:
Wamp diskinde veya başka bir diskte bir klasör oluşturun (ağ sürücüsüne dikkat edin, bunlar biraz daha karmaşıktır)
D:
MD websites
CD websites
MD example.com
CD example.com
MD www
Şimdi site kodunuzu \websites\example.com\www
klasörüne kopyalayın veya klasörde oluşturmaya başlayın ve VHOST'unuzu şu şekilde tanımlayın:
<VirtualHost *:80>
DocumentRoot "d:/websites/example.com/www"
ServerName example.dev
ServerAlias www.example.dev
<Directory "d:/websites/example.com/www">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
php_flag display_errors Off
php_flag log_errors On
php_value max_upload_size 40M
php_value max_execution_time 60
php_value error_log "d:/wamp/logs/example_com_phperror.log"
</VirtualHost>
Ardından bu yeni geliştirme etki alanını HOSTS dosyasına ekleyin:
127.0.0.1 localhost
::1 localhost
127.0.0.1 project1
::1 project1
127.0.0.1 example.dev
::1 example.dev
NOT: Canlı etki alanı adınızla aynı olan bir SunucuAdı veya SunucuAlias'ı kullanmak iyi bir fikir değildir, sanki SunucuAdı olarak example.com'u kullanmışız gibi bu, bundan gerçek canlı siteye artık ulaşamayacağımız anlamına gelir. Ornek.com'u 127.0.0.1'e yönlendireceği için PC, yani bu PC, internete değil.
AYRICA: Bu siteye VHOST tanımları dahilinde internetten erişilmesine izin verdiğimi görün, bu değişiklik sadece bu site için geçerli olacak, diğerleri için geçerli olmayacak. Bir istemcinin değişikliklerinizi canlı sunucuya kopyalamak zorunda kalmadan bir saat kadar görüntülemesine izin vermek için çok kullanışlıdır. Bu, wampmanager'da Çevrimiçi / Çevrimdışı Koy menü öğesini kullanmak yerine bu erişimi açıp kapatmak için bu dosyayı manuel olarak düzenlememiz gerektiği anlamına gelir.
Ayrıca PHP yapılandırmasına, yine yalnızca bu site için geçerli olacak bazı değişiklikler ekledim. Bakımını yaptığınız diğer tüm sitelerin aksine, belirli gereksinimleri olan bir siteyi korurken çok kullanışlıdır. Sanırım kullanılan parametrelerden bir yerde uzun süre çalışan bir sayfa olduğunu ve çok kötü yazılmış olduğunu ve sayfayı korkunç bir şekilde karıştırmadan tarayıcıda görüntülenen hatalarla çalışmayacağını varsayabiliriz. İnanın bana bunun gibi siteler var ve insanlar hala bunların kötü bir şekilde korunmasını istiyor . Ancak bu, bu parametreleri yalnızca bu belirli site için değiştirmemiz gerektiği ve genel olarak WampServer üzerinde çalışan tüm Sanal sitelerde değiştirmememiz gerektiği anlamına gelir.