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