Skip to content

güncel bir php sürümü yükledikten sonra unutulması gerekenler

linux tabanlı bir sistemden php + apache ikilisinde yeni bir php sürümü yüklenince güncel php sürümünü kullanmak için eski sürümü pasif ederek yeni sürümü aktif etmek ihtiyacı bulunmaktadır.

sudo a2dismod php* 
sudo a2enmod php8.2 
sudo systemctl restart apache2 

apache üzerinde birden fazla alan adı

örnekte site1.com ve site2.com alan adlarna sahip iki sitenin sunucumuz üzerinden yayın yapabilmesi için en basit konfigürasyonun nasıl yapılacağına bakacağız.

apache için öncelikle vhost_alias modülünü aktif edelim.

a2enmod vhost_alias

sitelerin barındırılacağı alanı disk üzerinde belirlememiz bu dizinleri oluşturarak gerekli yetkilendirmeyi yapmamız gerekiyor. alan adlarına ait dosyalar /var/www/sitex.com/public_html olarak barındıracağımızı düşünerek

sudo mkdir -p /var/www/site1.com/public_html
sudo mkdir -p /var/www/site2.com/public_html

sudo chown -R $USER:$USER /var/www/site1.com/public_html
sudo chown -R $USER:$USER /var/www/site2.com/public_html

sudo chmod -R 755 /var/www

gerekli dizinleri ve kullanıcı izinlerini vermiş olduk. şimdi test aşamasında kullanılmak üzere birer adet index.html dosyası oluşturalım. bu en kolay kısmı 🙂

nano /var/www/site1.com/public_html/index.html

  
    site1
  
  
    

site1.com sitemiz başarılı şekilde çalışmaktadır.

nano /var/www/site2.com/public_html/index.html

  
    site2
  
  
    

site2.com sitemiz başarılı şekilde çalışmaktadır.

gerekli index.html dosyasına oluşturduğumuza göre esas konfigürasyona gelebiliriz.

apachenin sites-available altındaki örnek default konfigürasyonuda sitemiz adına uygun olarak kopyalayalım.

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site1.com.conf

şimdi konfigürasyon dosyamız üzerinde gerekli değişikleri yapalım.

sudo nano /etc/apache2/sites-available/site1.com.conf

olması gereken minimum konfigürasyon aşagıdaki şekilde yapabiliriz.


    ServerAdmin admin@site1.com
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

şimdi aynı işlemi diğer alanımız içinde yapalım…

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site2.com.conf

sudo nano /etc/apache2/sites-available/site2.com.conf

    ServerAdmin admin@site2.com
    ServerName site2.com
    ServerAlias www.site2.com
    DocumentRoot /var/www/site2.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

şimdi sıra konfigürasyonlarımı aktif etmeye geldi.

sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf

eğer konfigürasyonumuzda hata yoksa komutları uyguladığımızda

Enabling site site1.com.
To activate the new configuration, you need to run:
  service apache2 reload

şeklinde bir bilgilendirme mesajı alacağız. yönergeyi uygulayarak apache suncumuzu yeniden başlatıyoruz.

sudo service apache2 restart

apache sunucumuzda hata vermez ise yapamız gereken bir tek nokta kaldı. oda hosts dosyasının güncellenmesi. bu işlem sonucunda /etc/apache2/sites-enabled dizini altına konfigürasyon dosyaları kopyalanmış olacaktır.

ferhat@cicek:/etc/apache2/sites-enabled# ls
000-default.conf  site1.com.conf  site2.com.conf
sudo nano /etc/hosts

hosts dosyasının içine alan adlarımıza ait gerekli satırları ekleyerek işlemimizi tamamlıyoruz.

127.0.0.1   localhost
127.0.1.1   ubuntu
127.0.0.1    site1.com
127.0.0.1   site2.com

yukarıda bahsedilen durumun en temek yöntemlerden biri olduğu tekrarlamakta fayda var. farklı modüller ve yapılarla bu işlem uygulanabilir…

apache web server üzerinde kullanıcı dizin yapısını aktifleştirmek

Linux üzerinde Apache kullanıyor ve Linux üzerindeki kullanıcılarınıza bir alan açmak istiyorsanız bu işlem için en kolay yöntem userdir eklentisini aktifleştirmek olacaktır. Bunun ne kadar güvenli ve yönetilebilir olduğu tartışılır ancak en kolay yöntem olduğu kesin.

Gerekli modüllerin ve araçların yüklü olduğundan emin olunmalıdır. Aşağıdaki örnek debian tabanlı bir dağıtım da uygulanmıştır. Dağıtımlara göre dizin yapısı vb fark edebilir.

A2enmod ile userdir modülünü aktifleştirelim.

sudo a2enmod userdir

Modül aktifleştirdikten sonra Apache konfigürasyon dosyaları altında userdir modülü ile ilgili konfigürasyon dosyaları oluşturulmuştur. Bu konfigürasyon dosyası içinde gerekli düzenlemeleri yapılması gerekmektedir.

sudo nano /etc/apache2/mods-enabled/userdir.conf

Temel konfigürasyon dosyası aşağıdaki gibidir. Kullanıcıya açılan dizin ve erişim yetkisi ayarları doğru şekilde ayarlanmalıdır. Yoksa başımıza olmadık işler açabilir.


        UserDir public_html
        UserDir disabled root
 
        
		AllowOverride All
		Options MultiViews Indexes SymLinksIfOwnerMatch
		
			# Apache < = 2.2:
		        Order allow,deny
		        Allow from all
 
		        # Apache >= 2.4:
		        #Require all granted
		
		
			# Apache < = 2.2:
		        Order deny,allow
		        Deny from all
 
			# Apache >= 2.4:
			#Require all denied
		
        


Statik bir alan verecekseniz bu kadar yeterlidir. statik alanmı kaldı diyebilirsiniz. kullanıcıların php kullanmalarını istiyorsanız apachenin php modül konfigürasyon dosyasında gerekli düzenlemeyi yapmanız gerekecektir.

sudo nano /etc/apache2/mods-available/php5.conf

güvenlik gereği kullanıcı dizinlerinde server-side uygulamalar engellenmiş durumdadır. yapılması gereken “php_admin_value engine Off” satırını pasif ederek sunucu yeni konfigürasyonu ile başlatmaktır.


    
	SetHandler application/x-httpd-php
    
    
	SetHandler application/x-httpd-php-source
    
    # To re-enable php in user directories comment the following lines
    # (from  to .) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    
        
    #        php_admin_value engine Off
        
    


sunucumuzu yeniden başlattıktan sonra mevcut kullanıcılar için public_html dizinini oluşturmayı unutmayalım..

sudo service apache2 restart
mkdir /home/$USER/public_html
Back To Top