VirtualHost ve NameVirtualHost

Başlatan fatihuzuner, 14 Mart 2012 - 22:58:35

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

fatihuzuner

Arkadaşlar apache php mysql phpmyadmin hepsini kurdum.http://localhost ve http://localhost/phpmyadmin linkleri sorunsuz çalışmakta.
İnternette bulduğum döküman video sayesinde www.mysite.com linki ile localhostuma ulaşabiliyorum.Normalde www.mysite.com başka bir site ancak ben bu link ile kendi bilgisayarımdan kendi localime ulaşıyorum.Takıldığım nokta http://blog.mysite.com linkine tıklayınca http://localhost/blog gitmesini sağlayamadım.Sürekli http://localhost linkini gösteriyor.
İnternette gördüğüm bir çok örneği deneyorum.Apacheye reset çekince bana NameVirtualHost kullanmamı söylüyor.Örnekleri aynen uyguluyorum port hatası veriyor.Buradada araştırdım bulamadım.Yardımcı olabilir misiniz?

cagriemer

/etc/hosts dosyanizda blog.mysite.com tanimli ise once bu adres icin bir VirtualHost olusturmalisiniz. Eger ontanimli gelen dosyayi kullaniyorsaniz, /etc/apache2/sites-available/default adresindedir o dosya. Yonlendirme icin de http://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect adresine bakabilirsiniz. Bir de http://wiki.apache.org/httpd/CanonicalHostNames adresine goz atmakta fayda var.

fatihuzuner

#2
Ben yönlendirme istemedim ki.Basitçe:
http://www.mysite.com yazdığımda  http://localhost
http://blog.mysite.com yazdığımda http://localhost/blog
içerikleri gözükecek.Yönlendirme değil.
/etc/host dosyasına
127.0.0.1 http://www.mysite.com
127.0.0.1 http://blog.mysite.com
bunları ekledim.
VirtualHost ta ekledim www.mysite.com için ,sorunsuz çalışıyorda.Ama blog.mysite.com eklemeye çalıştığımda mysite.comun zaten virtual host olduğunu namevietualhost kullanmamı söylüyor.


Verilen örnekte :

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.mysite.com
  ServerAlias www.mysite.com
  Redirect permanent / http://example.com/
</VirtualHost>

<VirtualHost *:80>
  # Canonical host
  ServerName blog.mysite.com
  DocumentRoot /usr/local/apache/htdocs
</VirtualHost>


gibi yazılma şekli yokmudur bunun.

Kısaca yapmak istediğim şuna benzer bişey.
localhost , localhost/blog bu 2 tane ayrı web sitesinin 4 er tane ayrı sitesi olacak.Yani 4 tane localhost 4 tane localhost/blog toplam 8 websitesi ve hepsi farklı dillerde olacak.Varsayım bunların hepsi.Dil dosyası oluştur ona göre cevap versin demeyin :D. Yapmak istediğimi daha iyi anlatabilmek için sadece varsayım.4 tane localhost ve 4 tane localhost/blog var.Bunlar gerektiğinde birden fazla cihazda da barınabilecekler.Mesele 2 tane localhost 1 cihazda.4 tane localhost/blog 1 cihazda.Toplam 3 cihazda gibi barınıyorlar gibi.İşte 2 localhostun bulunduğu cihazların ipleri 192.168.1.100 ve 192.168.1.101 ve 4 tane blogun bulunduğu cihazında ipsi 192.168.1.102.Ben gelen linke göre bu ayarlamaları yapmak istiyorum.

cagriemer

Bu verdiginiz ornekteki gibi duzenleyince calismasi lazim. NameVirtualHost satirini silebilirsiniz. Bir de ilk VirtualHost'a bir DocumentRoot ekleyebilirsiniz. Simdi bakamiyorum ama eve gidince deneyeyim. Calismasi gerekiyor cunku.

fatihuzuner

Bu şekilde ekleyince 0.0.0.0:80 yazıyor hata veriyor.apacheyi yeniden başlatamıyorum hata yüzünden.

cagriemer

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName site.com
ServerAlias www.site.com
DocumentRoot /var/www
RewriteEngine on
Options FollowSymlinks
Options -Indexes
RewriteCond %{HTTP_HOST} ^www\.site\.com [NC]
RewriteRule (.*) http://site.com/$1 [L,R=301]
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName blog.site.com
DocumentRoot /var/www/test
</VirtualHost>


seklinde yazdigimda aldiginiz hatayi tekrarlayamiyorum.

fatihuzuner

#6
/etc/apache2/sites-available/www.site.com içeriği :


<VirtualHost *:80>
ServerAdmin admin@site
ServerName site.com
ServerAlias www.site.com

DirectoryIndex index.php
DocumentRoot /home/fatih/www/site/htdocs/

ScriptAlias /cgi-bin/ /home/fatih/www/site/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>

ErrorLog /home/fatih/www/site/logs/error.log
CustomLog /home/fatih/www/site/logs/errcustom.log combined

RewriteEngine on
Options FollowSymlinks
Options -Indexes
RewriteCond %{HTTP_HOST} ^www\.site\.com [NC]
RewriteRule (.*) http://site.com/$1 [L,R=301]
</VirtualHost>


<VirtualHost *:80>
ServerAdmin blog@site
ServerName blog.site
ServerAlias blog.site.com

DirectoryIndex blog.php
DocumentRoot /home/fatih/www/blog/htdocs/

ScriptAlias /cgi-bin/ /home/fatih/www/blog/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>

ErrorLog /home/fatih/www/blog/logs/error.log
CustomLog /home/fatih/www/blog/logs/errcustom.log combined
</VirtualHost>


ve ardından

sudo a2ensite www.site.com
yazıyorum.

peşine service apache2 restart

yazdığımda

fatih@ubuntu:~$ service apache2 restart
ulimit: 88: error setting limit (Operation not permitted)
Syntax error on line 17 of /etc/apache2/sites-enabled/www.site.com:
Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
   ...fail!


veriyor


mod_rewrite yi açtım.şimdide bu hatayı veriyor :

fatih@ubuntu:~$ service apache2 restart
* Restarting web server apache2                                                ulimit: 88: error setting limit (Operation not permitted)
ulimit: 88: error setting limit (Operation not permitted)
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.


if

@fatihuzuner, sudo service apache2 restart olması gerek.

fatihuzuner

@if apacheye reset atınca dediğim hatayı veriyor.

if

* Restarting web server apache2                                                ulimit: 88: error setting limit (Operation not permitted)
ulimit: 88: error setting limit (Operation not permitted)
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
Bunu mu?

fatihuzuner


if

@fatihuzuner, sudo kullanıyorsunuz değil mi?

fatihuzuner


cagriemer

Aklima iki sey geliyor. Ya 80 numarali portu baska bir sey kullaniyor ya da apache kullanicisinin (www-data) gosterdiginiz klasorlere yazma-okuma izini yok. Lutfen buraya komut ciktilarini gecerken sudo ile yazdiklarinizi gecin. Ayrica bu log klasorleri gosterilen dizinlerde mevcut mu?

fatihuzuner

@cagriemer
80 portunu apacheden başka bir şey kullanmıyor.www klasörüne elilede dosya oluşturup içine kod yazıyorum.gksudo gedit kullanarakta yazıyoru.Herhangi bir sorun vermiyor.*:80 yerine 192.168.1.1:80 yazdığımda ise başka bir hata veriyor.sanırım lamp ı kaldırıp baştan kurmayı deneyeceğim.

heartsmagic

sudo'lu halini bir görseydik önce.
Ayrıca httpd.conf dosyasında
Alıntı YapServerName localhost
satırı var mı?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

fatihuzuner

fatih@ubuntu:~$ sudo /etc/init.d/apache2 restart


yazınca apache resetleniyor hata vermiyor.

amaservice apache2 reload yada service apache2 restart yazdığımda yukarıda yazdığım hatayı veriyor.Acaba bi yerde hata mı yaptım.

heartsmagic

sudo
Neden sudo'suz deniyorsun?
sudo service apache2 restart
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.