Arkasokak Logo





Forum Arkasokak > HAYATIN İÇİNDEN > İnternet Teknoloji Tasarım » Bilgisayarınıza Web Server Kurulumu
Bilgisayarınıza Web Server Kurulumu Web serverımız üzerinde çalıştıracağımız programlar: Apache Mysql Server Php Ftp Web Server olarak çalıştıracağımız serverın üzerine ...

Cevap
  #1  
Eski 30-11-2005, 06:43 PM
GeCe kullanıcısının avatarı
Asil Üye
 
Konum: yaLova&iStanbuL
Mesaj: 808
GeCe kullanıcısına ICQ aracılığı ile mesaj yolla GeCe kullanıcısına AIM aracılığı ile mesaj yolla GeCe kullanıcısına MSN aracılığı ile mesaj yolla GeCe kullanıcısına Yahoo aracılığı ile mesaj yolla
Bilgisayarınıza Web Server Kurulumu

Bilgisayarınıza Web Server Kurulumu

Web serverımız üzerinde çalıştıracağımız programlar:

Apache
Mysql Server
Php
Ftp

Web Server olarak çalıştıracağımız serverın üzerine freebsd işletim sistemin kurulumun yapılmış olduğunu ve sistemin güncellendiğini varsayıyoruz.

Bsd içerisinde hayatımızı kolaylaştıran ports sistemi ile kurulum işlemlerini anlatacağım.Kurulumlar hiçbir hata ile karşılaşmamanız durumda internet hızınız ile alakalı olarak çok kısa sürede bitecektir.


Kurulum öncesi birkaç değişiklik:

Sistem performansı için bazı değişiklikler yapmamız kurulumları daha da hızlandıracaktır.Bunların başında make.conf dosyasının güncellenmesi. Sistem kurulduğu anda make.conf /etc/default/ dizini altındadır.Make.conf u /etc dizini altına kopyalarak bazı değişiklikler yapabiliriz.

#cp /etc/default/make.conf /etc

Make.conf dosyası içindeki MASTER_SITE_BACKUP bölümlerini değiştirmemiz dosyaları çekerken bize en yakın yansıdan almamızı sağlayacaktır.Dosyanın ilk hali ve değişiklik yapıldıkdan sonraki ilgili bölümdeki hali aşağıda ki gibidir.

#more /etc/make.conf

# Port master sites.
#
# If you want your port fetches to go somewhere else than the default
# (specified below) in case the distfile/patchfile was not found,
# uncomment this and change it to a location nearest you. (Don't
# remove the "/${DIST_SUBDIR}/" part.)
#
#MASTER_SITE_BACKUP?= \
# ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
#
# If you want your port fetches to check the above site first (before
# the MASTER_SITES specified in the port Makefiles), uncomment the
# line below. You can also change the right side to point to wherever
# you want.
#
#MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}

Değişikliği yaptıkdan sonra:

#more /etc/make.conf
# Port master sites.
#
# If you want your port fetches to go somewhere else than the default
# (specified below) in case the distfile/patchfile was not found,
# uncomment this and change it to a location nearest you. (Don't
# remove the "/${DIST_SUBDIR}/" part.)
#
MASTER_SITE_BACKUP?= \
ftp://ftp.tr.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
#
# If you want your port fetches to check the above site first (before
# the MASTER_SITES specified in the port Makefiles), uncomment the
# line below. You can also change the right side to point to wherever
# you want.
#
MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}

Make.conf dosyası içinde birde PKG_REGISTER bölümünü aktif hale getirmemiz yüklü olan paketleri gördüğünde sistemin durmasını engelleyecektir.

Make.conf dosyası içindeki "FORCE_PKG_REGISTER= YES " bölümünün önündeki diezi kaldırmanız yeterlidir.

Apache SSL Desteği ile kurulması

Sistem üzerinde ssl desteğine ihtiyac duymaya bilirsiniz.Onun içinde bir alt dizindeki apache13 dizinine girip aşağıdaki komutları vermeniz yeterlidir.

#cd /usr/port/www/apache13
#make install

Ssl desteği ile kuracaksanız apache nin modssl ile entegre olduğu dizinine geçiyoruz ve artık çok sık kullanacağımız komutumuzu veriyoruz.

#cd /usr/ports/www/apache13-modssl
#make install clean


Eğer apache i ssl desteği vermeden kurmuşsak yapmamız gereken sadece httpd.conf dosyasının sonuna gerekli virtualhost tanımlarının girilmesidir.

Portdan kurmuş olduğunuz apache nin configurasyon dosyaları /usr/local/etc/apache altında data dosyaları ise /usr/local/ww/data altında bulunmaktadır.

Configurasyon dizinine gecerek httpd.conf üzerinde bazı değişiklikler yapmamız gerekecektir.

#vi + /usr/local/etc/apache/httpd.conf


ServerName sizin_domaininiz.com
ServerAlias http://www.sizin_domaininiz.com/
DocumentRoot /usr/local/www/sizin_domaininiz_ana_dizini
ErrorLog /usr/local/logs/sizin_domaininiz-error_log
CustomLog /usr/local/logs/sizin_domaininiz-access_log common
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]


Gerekli tanımları yaptıkdan sonra kaydedip çıkıyoruz ve apache i çalıştırmadan önce yazım hataları olup olmadığını kontrol için test edelim.

#apachectl configtest
Syntax OK
Sorun yok artık çalıştırabiliriz.
#apachectl start
/usr/local/sbin/apachectl start: httpd started

Apache yi çalıştırdığınızda logs dosyasının olmadığı ile ilgili hata alabilirsiniz.Bu durumda

#mkdir /usr/local/logs

Komutu ile gerekli dizini oluşturunuz.






Ssl desteği ile kurmuş olduğumuz Apache için conf ayarları aşağıdaki gibi olmalıdır.

Portdan kurmuş olduğunuz apache nin configurasyon dosyaları /usr/local/etc/apache altında data dosyaları ise /usr/local/ww/data altında bulunmaktadır.

Configurasyon dizinine gecerek httpd.conf üzerinde bazı değişiklikler yapmamız gerekecektir.
#cd /usr/local/etc/apache
#vi httpd.conf

Httpd.conf dosyası içinde "SSL Engine Switch:" kısmında varsa eğer ssl sertifikanız ile ilgili dosyaların yerini göstermeniz gerekecektir.

Önemli olan bölümler aşağıda sıralanmıştır.Bu tanımlamalar httpd.conf dosyasının en sonunda olan;
" " parametleri arasında yer almaktadır.Her ip için teker teker bunları tanımlamanız gerekmektedir.Eğer server üzerinde tek bir domain için ssl tanımlaması yapacaksanız ip vermenize gerek yok.default olarak kalabilir.

ServerName sizin_domaininiz.com
ServerAlias http://www.sizin_domaininiz.com/
DocumentRoot /usr/local/www/sizin_domaininiz_ana_dizini
ErrorLog /usr/local/logs/sizin_domaininiz-error_log
CustomLog /usr/local/logs/sizin_domaininiz-access_log common
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

SSLEngine on
SSLCertificateFile /etc/ssl/your_domain.crt
SSLCertificateKeyFile /etc/ssl/ your_domain.key

Yukarda anlattıklarımız ssl üzerinde çalışması içindi.Şimdide server üzerinde 80 portu üzerinden hizmet verecek bir domain tanımlasını yapalım.



Onun içinde gerekli örnek tanımlama aşağıdaki gibidir.

Ssl ile tanımlamış olduğumuz 443 portu üzerinden çalışacak olan VirtualHost tanımlamasının üzerinde 80 portundan çalışacak olan VirtualHost için şablonların bulunduğu yere kendi domaininiz için aşağıdaki örnekte görüldüğü gibi VirtualHost tanımlamalarımızı girebiliriz.


ServerName sizin_domaininiz.com
ServerAlias http://www.sizin_domaininiz.com/
DocumentRoot /usr/local/www/sizin_domaininiz_ana_dizini
ErrorLog /usr/local/logs/sizin_domaininiz-error_log
CustomLog /usr/local/logs/sizin_domaininiz-access_log common
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]



Gerekli tanımlamaları girdikden sonra httpd.conf dosyamızı kaydedip çıkıyoruz.
Şimdi apache nin çalışıp çalışmadığını kontrol etme zamanı.

Apachectl komutu ile hangi paremetleri kullanabileceğimizi görmek için komutu yalın olarak verelim.

#apachectl
usage: /usr/local/sbin/apachectl (start|stop|restart|fullstatus|status|graceful|con figtest|help)

start - start httpd
startssl - start httpd with SSL enabled
stop - stop httpd
restart - restart httpd if running by sending a SIGHUP or start if
not running
fullstatus - dump a full status screen; requires lynx and mod_status enabled
status - dump a short status screen; requires lynx and mod_status enabled
graceful - do a graceful restart by sending a SIGUSR1 or start if not running
configtest - do a configuration syntax test
help - this screen

Çalıştırmadan önce yazım hataları olup olmadığını kontrol edelim.
#apachectl configtest
Syntax OK

Yazım hatası yapmamışız. Çalıştırabiliriz.
#apachectl startssl
/usr/local/sbin/apachectl startssl: httpd started

Apache ssl desteği ile çalışmaya başlamıştır.


Apache kurulumunu yaptıktan sonra sistem üzerinde kullanacağımız bazı özellikler olacaktır.Bunlardan ihtiyacınız olan birkaç tanesini örnekler ile açıklamaya çalışacağım.

Dizine cgi çalıştırma hakkı vermek:

Httpd.conf dosyasına virtualhost eklediğiniz bölümün sonuna aşağıdaki satırları eklemeniz o dizinde cgi çalıştırılması için yeterlidir.


Options ExecCGI


Bu satırları ekledikden sonra Apache yi yeniden çalıştırmayı unutmayınız.

Özel Alanlara Erişim

Siteniz içinde kullanıcı_adı/şifre ile girilmesini istediğiniz alanlarda olabilir.Bunu Apache ile birlikte gelen .htaccess uygulaması ile yapacağız.

Websiteninin içinde ki gizli klasörü ve alt klasörlere erişilmeye çalışıldığında şifre sorması için yapılması gerekenleri adım adım anlatmaya çalışacağım.

httpd.conf dosyası içinde gizli klasörüne erişimi şifreli yapmak için aşağıdaki satırları eklememiz gereklidir.


AllowOverride AuthConfig


Httpd.conf dosyasında herhangi bir değişiklik yaptıktan sonra değişikliğin etkin olması için Apache yi yeniden başlatmayı unutmayın.

Gizli dizinin bulunduğu dizine giderek bu klasör içinde ".htaccess" dosyasını oluşturmamız gerekmektedir.Bu dosyanın içine aşağıdaki satırları eklemeniz gerekmektedir.

AuthName "Ozel bolge !!!"
AuthType Basic
AuthUserFile /usr/local/www/data/sizin_site/gizli/.htpasswd
require valid-user

şimdi kullanıcı adlarının ve şifrelerin tutulduğu .htpasswd dosyasını oluşturalım.
#htpasswd -c /usr/local/www/data/sizin_site/.htpasswd user1

Bu komut ile user1 kullanıcısını .htpasswd dosyası içinde tanımlayarak bu dizine erişmesine izin vermiş oluyoruz. -c parametresi ile .htpasswd dosyasını ilk defa oluşturduğumuz zaman kullanacağız. .htpasswd dosyamız varsa ve bir kullanıcı daha eklemek istiyorsak aşağıdaki komut yeterlidir.

#htpasswd /usr/local/www/data/sizin_site/.htpasswd user2

Mysql Server Kurulumu

Bu dokümanı hazırladığım sırada mysql-server ın 5.0 versiyonu da çıkmıştı fakat sitede production ortamlarda önerilen versiyon 4.0.20 olduğu için kurulumu o şekilde yapacağız.

#cd /usr/ports/databases/mysql40-server

Dizin içinde ki Makefile dosyasını kontrol ederek kuracağımız programın versiyonunu görebilmemiz mümkündür.

# more Makefile
# New ports collection makefile for: MySQL-server
# Date created: Sun Mar 3 1235 CET 2002
# Whom: Alex Dupre
#
# $FreeBSD: ports/databases/mysql40-server/Makefile,v 1.185 2004/05/18 10:59 ale Exp $
#

PORTNAME?= mysql
PORTVERSION= 4.0.20
PORTREVISION?= 0
CATEGORIES= databases

Görüldüğü üzere kuracağımız versiyon mysql in kendi sitesinde duyurduğu production versiyon ile aynı.Sistemdeki ports dosyalarını sürekli güncel tuttuğunuzda teknolojinin gerisinde kalmayacaksınız.

Kuracağımız mysql-server ın dizinine girdikten sonra kurulması için gerekli komutu verebiliriz.
#make install clean
Install success full.

#/usr/local/etc/rc.d/mysql-server.sh start

Komutu ile mysql serverımızı da çalıştırabiliriz.

Mysqlserver ımızda kurdukdan sonra ilk yapılması gereken şey mysql root şifresinin değiştirilmesidir.Asla mysql şifrenizi boş bırakmayın.Mysql root şifresini iki şekilde değiştire bilirsiniz.

Sistemi ilk kurduğunuzda mysqladmin programı yardımı ile şifre ataması yapabiliriz.
#mysqladmin -u root password yenisifre

Bu komutu bir sefer verdikden sonra tekrar çalıştıramazsınız. Mysql root şifresini tekrar değiştirmek için mysql veritabanına bağlandıkdan sonra aşağıdaki komutları vererek değiştirebilirsiniz.

#mysql -u root -p

mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
mysql> FLUSH PRIVILEGES;


Php Kurulumu

Webserverımız üzerinde php desteğinine vermek için php nin sitesinden stable olan versiyonunu öğrenip kurabiliriz.Dökümanı hazırladığım sıralarda 4.3.7 versiyonu stable durumda idi.

#cd /usr/ports/lang/php4
#make install clean

Kurulum bittikden sonra Apache için gerekli olan tanımları httpd.conf dosyasına eklemiş ve bunun ile ilgili bilgiyi ekranınıza yazmış olacaktır.

FTP hizmeti

Kurmuş olduğumuz web servera hizmet verebilmesi için hemen hemen tüm servisleri yüklemiş durumdayız.Müşterilerimizin web sitelerinin de kullanabilecekleri tüm servisler hazır durumda.Fakat müşterilerimizin dosya transferi yapmaları için birde ftp server programına ihtiyacımız vardır.Bunun için sistem üzerinde bir çok alternatif programlar kurup deneye bilirsiniz.Bu dökümanda anlatacağım sistem ise freebsd nin default ftp hizmetini devreye almak için yapılması gerekenler.

Ftp hesabı açacağımız kullanıcıları sistem kullanıcısı olarak tanımlayacağız.Fakat sistem kullanıcısı olarak tanımladığımız kullanıcıların ftp haricinde başka hakları olmaması için kısıtlamalar yapmamız gerekmektedir.

Bunun için ilk olarak ftp kullanıcılarına vereceğimiz shell i sistemde kullanılabilir duruma getirmemiz gerekmektedir.

shells dosyasını açıp sonuna "/usr/bin/false " satırını ekleyerek sisteme false shell ininde kullanılacağı nı belirtmemiz gerekmektedir.

Bunu tek bir komutda yapabiliriz.
#echo "/usr/bin/false/" >>/etc/shells

Default ftp hizmeti aktif hale getirmek için bir çok yol vardır.Bunlardan en güvenilir ve stable olanı ftpyi direk çalıştırmaktır.Bunun için aşağıdaki komutu vermeniz yeterlidir.

#/usr/libexec/ftpd -D

Her açılışta ftp nin çalışması için /etc/rc.local dosyasını oluşturup yukardaki komutu bu dosyanın içine yazmanız yeterlidir.
#echo "/usr/libexec/ftpd -D " >/etc/rc.local


ftp nin çalışıp çalışmadığını test etmek için aşağıdaki komutu verebilirsiniz.Sizden username isteyen ekran geliyorsa ftp hizmetini de serverınız üzerinde verebilirsiniz.

bash-2.05b# ftp 0 21
Connected to 0.
220 your_server_name FTP server (Version 6.00LS) ready.
Name (0ser):
Tebrikler.

ftp kullanıcılarının sadece kendi dizinlerinde dolaşmaları ve diğer kullanıcıların dizinlerine geçmelerini engellemek için bir grup oluşturup ftp kullanımı için oluşturduğumuz tüm kullanıcıları bu grup üye yapmak zorundayız. Bunun içinde ftpchroot dosyasına oluşturmuş olduğumuz grup u eklememiz gerekmektedir.

Eğer sisteminizde bu dosya yoksa siz oluşturabilirsiniz.
#vi /etc/ftpchroot
root
sshd
@ftp

Burada ftp kullanıcılarının ftp grubuna üye olacakları göz önüne alınmıştır.
Artık bir ftp kullanıcı oluşturup test edebiliriz.

#pw useradd user1 -s /usr/bin/false -g ftp -d /usr/local/www/data/user1 -m

Not:eğer kullanıcının dizini önceden oluşturduysanız komutun sonundaki "-m" parametresini kullanmaya bilirsiniz.Fakat unutmayınki daha önce oluşturmuş olduğunuz dizinin ownerı olarak user1 kullanıcısını atamazsanız kullanıcı dizine dosya aktaramaz.Dizin üzerinde kullanıcıya tam yetki vermek için

#chown -R user1:ftp /usr/local/www/data/user1
Komutunu vermeniz yeterlidir.

Oluşturmuş olduğunuz yeni kullanıcının şifresini değiştirerek ftp ile erişmesine izin verebilirsiniz.

# passwd user1
Changing local password for user1.
New password:
Retype new password:
passwd: updating the database...
passwd: done
#


Sistem üzerinde gerek kurulum yaparken gerekse programları çalıştırırken kimi zaman hatalar alabilir kimi zaman iste ekrana hiçbir hata basmamasına rağmen program çalışmaya bilir.Hatanın nerde olduğunu tesbit etmek için bize log dosyaları yardımcı olacaktır.Yukarda anlatmaya çalıştığım konular ile ilgili olarak aşağıdaki log dosyalarını kontrol etmeniz her zaman için yararınızadır.

Freebsd sistemi üzerinde loglar siz farklı yerleri göstermediğiniz takdirde /var/log dizini altında olacaktır.Sadece apache logları fazla yer kapladığı için dökümanda /usr/local/logs dizini altına atılması için ayarlar yapılmıştır.

Sistem içinde genel olarak messages ve apache için httpd-error.log dosyalarını sorunları çözmeniz için gerekli yardımları yapacaklardır.
imza
ĢěĆę®


mükemmeL deqiLim ama FarkLıyımm ßi oqLum oLana kadaR €n iyiSi ßenim

ßiLgiyi aLip Su$mak oLmaz..! ßi te$eKküR + rep ( cokmu sizce ) teRaziye tıkLayıı veR gaRı
Alıntı Yaparak Cevapla
Cevap

Konu Araçları
Görünüm Modları



Saat 09:54 AM.


Copyright ©2005 - 2008 Arkasokak.Net
Tasarım: NoDRaC
Bize Ulaşın - En Üst
Powered by vBulletin
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0