Her kurulum farklı. Benim için, her biri web sitelerini barındıran bir sunucuda çok fazla kullanıcım var, sizin için muhtemelen sistemde birden fazla kullanıcı oluşturmanıza gerek kalmayacak. Ancak, bu sunucuda birden fazla web sitesi yönetiyorsanız, bu kurulum, her bir etki alanını standart bir LAMP kurulumundan daha kolay bir şekilde yönetmenize, yapılandırmanıza ve hata ayıklamanıza yardımcı olacaktır. Bunun gerçekleşmesi için izin hatalarını aşmak için Apache tarafından birkaç cihaz kullanıyorum.
İlk önce, kullandığım belge yapısı bu:
/home/[USER]/domains/[DOMAIN]/html
/home/[USER]/domains/[DOMAIN]/logs
Her kullanıcının kendilerine ait bir etki alanı klasörüyle hesabı vardır ( /etc/skel
buna her eklediğim için ekledim . Her etki alanı kendi klasöründe domains
klasörle birlikte bir html
klasör içeriyor (bunun için nedenlerim var, öncelikle etki alanları dışında web dosyalarına sahip olabilirler) (alemin diyarı) Bu yapıyı uygun gördüğünüz gibi değiştirmekten çekinmeyin, bu değişiklikleri bu yazı boyunca taşımayı unutmayın.
İkincisi, birçok PHP sitesine ev sahipliği yapıyorum, bu yüzden yapılandırmamda suPHP kullanıyorum. Varsayılan olarak, standart arşiv paketi suPHP'nin daha az güvenli bir sürümüyle sonuçlanan etkin derleme bayrağına sahip değildir. Sunucularımda kullandığım kendi suPHP paketimi yaptım, aşağıdaki kurulum talimatlarını verdim. suPHP, hangi kullanıcı PHP betiklerini çalıştırmanız gerektiğini tanımlamanıza izin verir (aşağıdakiler de dahil olmak üzere: her site için özel php.ini, vb.). SuExec for Apache'yi de etkinleştiriyorum - dahası www-data kullanıcısına (aşağılık bir kullanıcı) sahip olma ihtiyacını ortadan kaldırarak.
Öncelikle Apache'ye ve sunucunuza kurulu diğer tüm hizmetlere sahip olduğunuzdan emin olun. En azından çalıştıklarından emin ol. Bundan sonra suphp-common ve gerekli libapache2-mod-suphp modülünü kurmanızı öneririm (Daha fazla bilgi: PPA nedir ve bunları nasıl kullanırım? ). Sonra, bu kurulumlardan sonra, kullanarak suPHP ve suexec'i etkinleştirin.a2enmod
sudo a2enmod suphp
sudo a2enmod suexec
sudo a2dismod php5
sudo /etc/init.d/apache restart
Daha sonra yapılandırma dosyası gelecek. Her yeni siteyi eklediğimde yapılandırma dosyalarını otomatik olarak oluşturan çeşitli araçlar yaptım; ancak, işte kullandığım temel şablon:
<VirtualHost *:80>
ServerAdmin [EMAIL]
ServerName [DOMAIN]
ServerAlias www.[DOMAIN] [DOMAIN]
DocumentRoot /home/[USER]/domains/[DOMAIN]/html
<Directory /home/[USER]/domains/[DOMAIN]>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
</Directory>
ErrorLog /home/[USER]/domains/[DOMAIN]/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/[USER]/domains/[DOMAIN]/logs/access.log combined
SuexecUserGroup [USER] [USER]
suPHP_UserGroup [USER] [USER]
suPHP_ConfigPath /home/[USER]/etc
</VirtualHost>
Bu, o etki alanı, belge kökü ve etki alanının çalışması için diğer tüm temel gereksinimler için günlüğe kaydetmeyi ayarlar. Bu dosyaları /etc/apache2/sites-available/
tipik olarak adlandırılmış olarak yerleştiririm [USER]-[DOMAIN]
ve onları şu şekilde etkinleştirir / devre dışı bırakır a2ensite
:
sudo a2ensite [USER]-[DOMAIN]
sudo a2dissite [USER]-[DOMAIN]
Yapılandırma dosyalarında yapılan her değişiklikten sonra Apache'nin yeniden yüklenmesi gerekir.
sudo /etc/init.d/apache reload
Bence, kazanılan esneklik miktarını ayarlamak çok şey gibi görünse de, bence, kurulum süresinden çok daha ağır basıyor. Sadece bir tek kullanıcı web sunucusuna ihtiyacınız olsa da, gelecekte tek bir kullanıcı web sunucusundan başka bir şey istediyseniz, bunu yapabilmek için daha fazla işlem yapmanız (veya sadece hepsini bir kenara bırakmanız) gerekir.