Genel PHP

PHP’de Sanal Host Ayarları ve Çözüm Yolları

PHP'de Sanal Host Ayarları ve Çözüm Yolları

PHP’de Sanal Host Ayarları ve Çözüm Yolları

PHP projelerinizi geliştirirken, aynı sunucu üzerinde birden fazla projeyi yönetmeniz gerekebilir. Bu gibi durumlarda, sanal host ayarları yaparak her projeyi kendi alan adı üzerinden çalıştırmak büyük kolaylık sağlar. Bu makalede, PHP’de sanal host ayarlarını nasıl yapabileceğinizi, karşılaşabileceğiniz olası sorunları ve bu sorunların çözüm yollarını adım adım ele alacağız.

Sanal Host Nedir?

Sanal host, bir sunucu üzerinde birden fazla web sitesinin veya uygulamanın çalışmasına olanak tanıyan bir yapılandırmadır. Sanal hostlar, farklı alan adları veya IP adresleri üzerinden sunucuya gelen isteklerin, belirli bir dizine yönlendirilmesini sağlar. Örneğin, www.ornek.com ve www.baskaornek.com alan adlarının her biri ayrı dizinlere yönlendirilebilir.

Sanal Host Dosyasının Yapılandırılması

Apache Kullanarak Sanal Host Yapılandırma

1. Apache Yükleme ve Kontrol:
İlk olarak, Apache yüklü olduğundan emin olun. Apache’yi kontrol etmek için terminalde aşağıdaki komutu çalıştırabilirsiniz:

“`bash
sudo service apache2 status
“`

2. Sanal Host Dosyasını Oluşturun:
Sanal host ayarlarınızı barındıracak bir dosya oluşturun. Bu dosya genellikle /etc/apache2/sites-available/ dizininde yer alır. Örneğin:

“`bash
sudo nano /etc/apache2/sites-available/ornek.com.conf
“`

3. Sanal Host Dosyasını Düzenleyin:
Bu dosyaya aşağıdaki örnek yapılandırmayı ekleyin:

   <VirtualHost *:80>
       ServerAdmin webmaster@ornek.com
       ServerName ornek.com
       ServerAlias www.ornek.com
       DocumentRoot /var/www/ornek.com/public_html
       ErrorLog ${APACHE_LOG_DIR}/ornek.com_error.log
       CustomLog ${APACHE_LOG_DIR}/ornek.com_access.log combined
   </VirtualHost>
   

4. Dizinleri Oluşturun:
Web siteniz için belirtilen dizinlerin var olduğundan emin olun:

“`bash
sudo mkdir -p /var/www/ornek.com/public_html
“`

5. Hakları Ayarlayın:
Dizin izinlerinizi ayarlayın:

“`bash
sudo chown -R $USER:$USER /var/www/ornek.com/public_html
sudo chmod -R 755 /var/www
“`

6. Sanal Host Dosyasını Etkinleştirin:

“`bash
sudo a2ensite ornek.com.conf
“`

7. Apache’yi Yeniden Başlatın:

“`bash
sudo systemctl restart apache2
“`

Nginx Kullanarak Sanal Host Yapılandırma

Nginx kullanıyorsanız süreç aşağıdaki gibidir:

1. Sanal Host Dosyasını Oluşturun:
Nginx yapılandırması genellikle /etc/nginx/sites-available/ içerisinde yer alır. Örneğin:

“`bash
sudo nano /etc/nginx/sites-available/ornek.com
“`

2. Dosyayı Düzenleyin:
Nginx’in sanal host dosyasına aşağıdaki örnek yapılandırmayı ekleyin:

   server {
       listen 80;
       server_name ornek.com www.ornek.com;
   
       root /var/www/ornek.com/public_html;
       index index.php index.html index.htm index.nginx-debian.html;
   
       location / {
           try_files $uri $uri/ =404;
       }
   
       location ~ \.php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
       }
   
       location ~ /\.ht {
           deny all;
       }
   }
   

3. Dizinleri Oluşturun ve Hakları Ayarlayın:

“`bash
sudo mkdir -p /var/www/ornek.com/public_html
sudo chown -R $USER:$USER /var/www/ornek.com/public_html
“`

4. Dosyayı Etkinleştirin:

“`bash
sudo ln -s /etc/nginx/sites-available/ornek.com /etc/nginx/sites-enabled/
“`

5. Nginx’i Test Edin ve Yeniden Başlatın:

“`bash
sudo nginx -t
sudo systemctl restart nginx
“`

Olası Sorunlar ve Çözüm Yolları

1. Port Çakışmaları:

Eğer Apache veya Nginx zaten çalışıyorsa ve yeni bir sanal host eklediğinizde yanıt vermiyorsa, port çakışması yaşıyor olabilirsiniz. Apache ve Nginx’in aynı port üzerinden çalışmadığından emin olun.

2. Yanlış Dizine Yönlendirme:

DocumentRoot veya root parametreleri hatalı ayarlandıysa, istenmeyen dizinlere yönlendirme yapabilir. Bu ayarları kontrol edin.

3. DNS Yönlendirmesi:

Yerel testlerde, hosts dosyanıza gerekli yönlendirmeleri eklemeyi unutmayın:

   127.0.0.1    ornek.com www.ornek.com
   

Bu ayarlarla, sunucunuzda PHP projeleriniz için birden fazla sanal host yapılandırması yapabilirsiniz. Sanal sunucu gibi farklı barındırma çözümlerini değerlendirerek, projelerinizin ihtiyaçlarını daha profesyonelce karşılayabilirsiniz. Daha fazla bilgi için cloud sunucu seçeneklerine de göz atabilirsiniz.