Apache2 için farklı bağlantı noktası altında dizin değiştirmenin veya birden çok dizinten çalıştırmanın doğru yolu aşağıdaki gibidir:
Apache2 için yapılandırma dosyaları altında bulunur /etc/apache2
ve eski sürümlerde olduğu gibi tek bir yapılandırma dosyası kullanmaz, ancak /etc/apache2/apache2.conf
ana yapılandırma dosyası olarak daha küçük yapılandırma dosyalarına bölünür . Farklı bir dizindeki dosyaları sunmak için yeni bir sanal ana bilgisayar conf dosyasına ihtiyacımız var. Virtualhost conf dosyaları içinde bulunur /etc/apache2/sites-available
(siteler etkin olan dosyaları düzenlemeyin). Varsayılan apache kurulumu virtualhost conf dosyasını kullanır 000-default.conf
.
Varsayılan olarak, apache'nin (80 numaralı bağlantı noktasındaki localhost üzerinde çalışan) varsayılan kurulum tarafından kullanılan varsayılan sanal ana dosyayı kopyalayarak yeni bir sanal ana dosya oluşturarak başlayın. Dizine geçin /etc/apache2/sites-available
ve ardından kopyalayın sudo cp 000-default.conf example.com.conf
, şimdi dosyayı şu şekilde düzenleyin sudo gedit example.com.conf
:
<VirtualHost *:80>
ServerAdmin example@localhost
DocumentRoot /home/ubuntu/example.com
</VirtualHost>
Kısalık için yukarıdaki dosyadan önemli olmayan satırları sildim. İşte DocumentRoot
web sitesi dosyaları gibi sunulmasına hangi gelen dizinin yoludurindex.html
.
Dosyaları sunmak istediğiniz dizini oluşturun, örneğin; mkdir example.com
ve dizinin sahibini ve varsayılan grubunu değiştirin; örneğin, oturum açmış olduğunuz kullanıcı adınız ubuntu
izinleri olarak değiştirin sudo chown ubuntu:www-data example.com
. Bu kullanıcıya tam erişim ubuntu
sağlar ve gruba okuma ve yürütme erişimi sağlarwww-data
.
Şimdi /etc/apache2/apache2.conf
komut vererek apache conf dosyasını düzenleyin sudo gedit apache2.conf
ve satırı bulun <Directory /var/www/>
ve kapanış etiketinin </Directory>
altına aşağıdakileri ekleyin:
<Directory /home/ubuntu/example.com>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
Şimdi olan sanal ana yapılandırma dosyaları, etkinleştirmek veya devre dışı bırakmak için iki komut vardır a2ensite
ve a2dissite
sırasıyla. Artık example.com.conf
dosyamız 80
, varsayılan yapılandırma dosyası ( 000-default.conf
) tarafından kullanılanla aynı bağlantı noktasını ( ) kullandığından , şu komutu vererek varsayılan yapılandırma dosyasını devre dışı bırakmamız gerekir.sudo a2dissite 000-default.conf
ve virtualhost conf dosyamızısudo a2ensite example.com.conf
Şimdi sunucuyu komutla yeniden başlatın veya yeniden yükleyin sudo service apache2 restart
. Şimdi apache dizinden dosyaları vermektedir example.com
az localhost
varsayılan bağlantı noktası üzerinde80
.
a2ensite
Komut temelde site özellikli dizin altında conf dosyasına sembolik bir bağlantı oluşturur
Bu yanıtta belirtildiği gibi, siteler etkin (veya * etkin) dizin içindeki dosyaları düzenlemeyin https://stackoverflow.com/a/41568701/2532763
Bağlantı noktasını değiştirmek ve farklı bağlantı noktalarındaki birden çok dizinden çalıştırmak için:
Şimdi dizini farklı bir bağlantı noktasında çalıştırmanız gerekiyorsa, sanal ana dosyayı şu şekilde düzenleyerek bağlantı noktası numarasını 80'den 8080'e değiştirin:
<VirtualHost *:8080>
ServerAdmin user@localhost
DocumentRoot /home/ubuntu/work
</VirtualHost>
ve satırın hemen altına düzenleme /etc/apache2/ports.conf
ve eklemeListen 8080
Listen 80
Şimdi example.com dizini 8080 numaralı bağlantı noktasını kullandığından, bağlantı noktası 80'de çalışan varsayılan sanal ana bilgisayar conf dosyasını etkinleştirebiliriz. sudo a2ensite 000-default.conf
Şimdi sunucuyu komutla yeniden başlatın veya yeniden yükleyin sudo service apache2 restart
. Şimdi her iki dizinleri erişilebilir localhost
velocalhost:8080