11. Sistem Yönetimi

İçindekiler
11.1. Genel
11.2. FTP
11.3. Posta
11.4. Web
11.5. Veritabanı

11.1. Genel

  1. Bir uygulamanın veya betiğin Linux her açıldığında çalıştırılmasını nasıl sağlarım?
  2. Sistemde kayıtlı olan normal kullanıcıların listesini nasıl alabilirim?
  3. Dosya sistemi ext3 olan bir disk bölümünü her açılışta sistemime nasıl tanıtabilirim?
  4. Eski linux'umu yeni kurduğum Linux'a taşımak istiyorum. Veri kaybı olmaması için hangi yolu izlemeliyim?
  5. RedHat 7.x sürümü kullanıyorum ve inetd deamon'ı bulamadım. Servisleri nasıl ayarlayabilirim?
  6. root parolasını unuttum. Ne yapabilirim?
  7. Kullanıcıların çalıştırabileceği süreç sayısını veya benzer kısıtlamaları nasıl yapabilirim?
  8. Belli aralıklarla yapılmasını istediğim işleri nasıl otomatikleştirebilirim?
  9. Sisteme root olarak girdiğim halde /usr/sbin gibi bazı dizinlerin PATH değişkeninde yer almadığını görüyorum. Hata nedir?
  1. Bir uygulamanın veya betiğin Linux her açıldığında çalıştırılmasını nasıl sağlarım?

    Yanıtlayan: M. Umut Atasever ve Murat Koç

    Programınızı /etc/rc.local dosyasının sonuna eklerseniz sistem başlangıcında çalıştırılır.

    rc betikleri genelde /etc/rc.d/ veya /etc/init.d dizinlerinin altında bulunur ki zaten rc.d dizini de init.d dizinine bağ durumundadır. Dolayısı ile dosyanın temel olarak olması gereken yer /etc/rc.d/rc.local'dir. Fakat bazı dağıtımlarda bu ismi /etc/rc.d/boot.local biçiminde de görebilirsiniz.

    Benim asil eklemek istediğim ise rc.local veya boot.local betiklerini init işleminden sonra rc'den hemen sonra çalıştırılan betiktir. Dolayısı ile eğer ağ ile ilgili birşey yaptırmak istiyorsanız (samba'daki bir paylaşımı bağlamak örneğin) bunu ağ ayarlarının düzenlenmesinden sonra yapmanız gerekir. Bundan dolayı temelde yapmanız gereken şey için bir bash betiği yazmak bunun içine "start" ve "stop" bağımsız değişkenlerinde yapacağı işleri tanımlamak ve bunu hangi çalışma seviyesinde (runlevel) çalıştıracaksanız onunla ilgili olan dizine Sxxservis Kxxservis biçiminde bağlamanız kontrolun daha fazla elinizde olmasını sağlayacaktır. Ama nispeten basit şeyler yapacaksanız bu durumda rc.local veya boot.local dosyasını gönül rahatlığı ile kullanabilirsiniz (Sxx ve Kxx'in anlamları için /etc/init.d'de README dosyası olur, genelde ona bakabilirsiniz).

  2. Sistemde kayıtlı olan normal kullanıcıların listesini nasıl alabilirim?

    Yanıtlayan: Görkem Çetin

    Aşağıdaki komut ile kullanıcı numaraları 500'den fazla olanların kullanıcı isimlerini ekrana yazabilirsiniz:

    # awk -F: '{ if ($3>500) print $1 }' < /etc/passwd
    
  3. Dosya sistemi ext3 olan bir disk bölümünü her açılışta sistemime nasıl tanıtabilirim?

    Yanıtlayan: Alper Oğuz

    /etc/fstab dosyanızda ilgili satırda ext2    defaults yerine ext3    defaults,journal=update yazmalı ve

    # tune2fs -i 0 -c 0

    çalıştırıp açılışta fsck yapılmasını engellemelisiniz.

  4. Eski linux'umu yeni kurduğum Linux'a taşımak istiyorum. Veri kaybı olmaması için hangi yolu izlemeliyim?

    Yanıtlayan: Barış Şimşek

    Eski Linux'unuzda çalışan hizmetlere göre değişir. Ancak genel olarak konuşursak:

    Dosya haklarının ve sahiplerinin korunması için /etc/passwd, /etc/shadow ve /etc/group dosyalarını almalısınız.

    Kullanıcıların kendi kök dizinlerinde dosya varsa /home dizinini de tamamen almalısınız.

    Bu makina eğer eposta sunuculuğu yapıyordu ise /var/spool/mail (kullanıcı epostaları) dizinindeki tüm dosyaları almalısınız. Tabii ki eposta sunucu yazılımınızın ayar dosyalarını da almalısınız.

    Yetkili kullanıcının kök dizini /home altında olmayıp /root dizinidir. Bunu da almayı unutmayın.

    /etc altında değişiklik yaptığınız ayar dosyaları varsa onları da yedekleyin.

    Apache için httpd.conf ve bu dosyada belirtilen DocumentRoot dizinini, sanal web sayfası dizinlerini, .htacess ile korunan dizinlerin parola dosyalarını, varsa SSL dosyalarınızı (ssl.key, ssl.crt ...) yedekleyin.

  5. RedHat 7.x sürümü kullanıyorum ve inetd deamon'ı bulamadım. Servisleri nasıl ayarlayabilirim?

    Yanıtlayan: M. Umut Karabudak

    RH 7.x sürümünden itibaren inetd yerine xinetd'yi sürümüne dahil etti. xinetd tek dosya yapısı yerine birden çok dosyadan oluşmaktadır.

    Program ayarları için /etc/xinetd.conf dosyasına, servis ayarları için /etc/xinetd.d dizinindeki ilgili servis dosyasını düzenleyiniz.

    Daha ayrıntılı bilgi için: # man xinetd

  6. root parolasını unuttum. Ne yapabilirim?

    Soru: 5.41 sorusunun yanıtına bakın.

  7. Kullanıcıların çalıştırabileceği süreç sayısını veya benzer kısıtlamaları nasıl yapabilirim?

    Yanıtlayan: Murat Koç

    pam'in yanında ulimit özellikle bu tür şeyleri engellemek için bulunmaktadır. Daha fazla bilgiyi # man ulimit ile alabilirsiniz.

  8. Belli aralıklarla yapılmasını istediğim işleri nasıl otomatikleştirebilirim?

    Yanıtlayan: Barış Şimşek

    Bu işleri yapacak yazılımlarınızı crontab'a ekleyerek.

    Crontab'a ekleme yapmak için crontab -e komutunu verin. Bu komut ile, o an bulunduğunuz kullanıcı için periyodik iş eklersiniz. Sistem dizinlerine erişen bir betik vb. yazılımlamak için root olarak girip bu komutu vermelisiniz.

    Crontab komutu şu şekildedir:


    dakika saat aygun ay haftagun komut

    Örnekler:

    38 4 * 1,3,6 * /usr/local/sbin/update_dat
    10,15,20,25,30,35,40,45,50,55,0 * * * * /root/scripts/checkdaemon
    50 5 * 6 * /root/scripts/getbackup
    

    *, bulunduğu zaman diliminde her zaman demektir. İlk satır, her ayın her haftasının 1, 3 ve 6. günleri saat 4:38 de update_dat betiğini çalıştırır.

  9. Sisteme root olarak girdiğim halde /usr/sbin gibi bazı dizinlerin PATH değişkeninde yer almadığını görüyorum. Hata nedir?

    Yanıtlayan: Enver ALTIN

    Anladığım kadarıyla su komutu ile root oluyorsunuz. su yerine, su - (sondaki - işareti, root kullanıcısının ortam değişkenlerinin de aktarılmasını sağlıyor) ile root olursanız sorun çözülecektir.

11.2. FTP

  1. Proftpd´de parola ile bağlanan kullanıcıların ev dizinlerini / şeklinde kök dizin olarak görmelerini nasıl sağlarım?
  2. Wu-ftp: Sistemde açılan kullanıcıların Ftp erişimi ile kendi dizinlerinden başka dizinleri gormememelerini ve kendi home dizinlerinden başka bir yere gidememelerini nasıl sağlıyabilirim?
  3. Redhat 7.1 kurulu makinaya proftp kurmak istiyorum, öntanımlı olan wuftp'yi kaldırmam gerekir mi?
  4. Redhat7.2 sistemde wu-ftp kullanarak ftp için anonim erişim nasıl sağlanır. Hangi dosyaları ne şekilde yapılandırmam gerekiyor.
  5. Proftpd'de anonim girişler için IP sınırlaması nasıl yapılır?
  6. Proftpd'de bir işlem yapılmadığında bağlantının kesilmesini nasıl engeller veya bu süreyi nasıl uzatırım?
  1. Proftpd´de parola ile bağlanan kullanıcıların ev dizinlerini / şeklinde kök dizin olarak görmelerini nasıl sağlarım?

    Yanıtlayan: Alper Oğuz

    Bunun için /etc/proftpd.conf dosyasına DefaultRoot ~ seçeneğini eklemeniz gerekiyor:

  2. Wu-ftp: Sistemde açılan kullanıcıların Ftp erişimi ile kendi dizinlerinden başka dizinleri gormememelerini ve kendi home dizinlerinden başka bir yere gidememelerini nasıl sağlıyabilirim?

    Yanıtlayan: Alper Özmalkoç

    /etc/ftpaccess dosyasının sonuna aşağıdaki satırlardan birini eklerseniz olur:

    restricted-uid %500-99999

    ya da

    restricted-uid root abidin osman ahmet

    root, abidin, osman, ahmet kendi dizinleri dışına çıkamazlar.

  3. Redhat 7.1 kurulu makinaya proftp kurmak istiyorum, öntanımlı olan wuftp'yi kaldırmam gerekir mi?

    Yanıtlayan: Alper Özmalkoç

    Hayır wuftp'yi silmeniz gerekmez. RH xinetd kullanıyor. Onu hiç göremedim ama inetd'de ftp portundan sorumlu satırdaki çalıştırılacak dosyayı değistirmek, diğer ftp sunucusunun çalıştırılmasını sağlar. xinetd'de de böyle bir çalıştırılabilir dosya satırı vardır.

  4. Redhat7.2 sistemde wu-ftp kullanarak ftp için anonim erişim nasıl sağlanır. Hangi dosyaları ne şekilde yapılandırmam gerekiyor.

    Yanıtlayan: Serdar Aytekin

    Anonim ftp kullanabilmek icin anon-ftp paketinin sistemde kurulu olması gerekiyor. anon-ftp'yi rpm paketinden kurabilirsiniz. anon-ftp'yi kurduktan sonra /etc/ftpusers içerisinde de ftp ve anonymous şeklinde kulllanıcı kaydının OLMAMASINA dikkat ediniz.

    /etc/ftpusers içersinde tanımlanan kullanıcılar sisteme ftp'den giriş yapamaz!!

    Anonim Ftp için ftp ve anonymous'un o dosya içersinde olmaması gerekiyor.

  5. Proftpd'de anonim girişler için IP sınırlaması nasıl yapılır?

    Yanıtlayan: Alper Oğuz

    Proftpd'de anonim giriş için IP sınırlaması yapmaya çalışıyordum. proftpd.conf'ta anonymous bölümüne aşağıdakini ekleyince oldu. Yani belgedeki <limit ALL>'u <limit LOGIN>'e çevirdim.

    <limit LOGIN>
      order allow,deny
      allow 1.2.3.4
      denyall
    </limit>
    
  6. Proftpd'de bir işlem yapılmadığında bağlantının kesilmesini nasıl engeller veya bu süreyi nasıl uzatırım?

    Yanıtlayan: Devrim GÜNDÜZ

    TimeoutLogin         120
    TimeoutIdle          600
    TimeoutNoTransfer    900
    TimeoutStalled      3600
    

    gibi satırlar işinizi görebilir. Ayrıntılar için http://www.proftpd.org/'daki örnekler işinize yarayacaktır.

11.3. Posta

  1. Sendmail ve Qmail'de kuyrukta bekleyen postaları nasıl görebilirim?
  2. Qmail smtp bağlantılarında bir süre bekliyor. Ne yapabilirim?
  3. Qmail'de gelen bir postanın bir kopyasının başka bir hesaba da gitmesini nasıl sağlarım?
  4. Qmail'de gelen ve giden tüm postaların kopyalarının bir hesaba gönderilmesini nasıl sağlarım?
  5. SMTP, POP3 nedir? Her birine tek bir yazılım bakmıyor mu?
  6. Kullanıcılarım "550 relaying denied" hatası alıyor. Sebebi nedir?
  7. Eposta sunucumun relay'e izin verip vermediğini nasıl sınayabilirim?
  8. Qmail'de belli bir alan adından ya da belli bir adresten gelen postaları engelleyebilir miyim?
  9. TTNET'den linux altında mail gönderemiyorum.
  10. Amavis Nedir?
  11. Pine'da POP hesabımı nasıl kullanabilirim?
  1. Sendmail ve Qmail'de kuyrukta bekleyen postaları nasıl görebilirim?

    Yanıtlayan: Alper Oğuz

    mailq

  2. Qmail smtp bağlantılarında bir süre bekliyor. Ne yapabilirim?

    Yanıtlayan: Serhat Selahattin Umar

    Özellikle Qmail bir güvenlik duvarı arkasında ve güvenlik duvarı tarafından ident paketleri engellenmiş ise bu bekleme problemi oluşabiliyor.

    tcpserver ile qmail-smtpd öntanımlı şekilde çalıştırıldığında karşı makinaya ident lookup yapıyor ve bu genelde smtp bağlantılarında bir süre beklemeye yol açıyor, bunu engellemek için:

    /var/qmail/supervise/qmail-smtpd/rundosyasında tcpserver ile ilgili olan satıra -R seçeneğini eklemeniz gerekiyor, öntanımlı olarak -r yani ident lookup etkin oluyor. Bunu -R ile değiştirerek ident lookup yapmamasını sağlayabilirsiniz.

  3. Qmail'de gelen bir postanın bir kopyasının başka bir hesaba da gitmesini nasıl sağlarım?

    Yanıtlayan: Devrim Sipahi

    .qmail dosyası içine, &isim@example.com veya aynı alan adı altında ise, &isim yazmanız yeterlidir.

  4. Qmail'de gelen ve giden tüm postaların kopyalarının bir hesaba gönderilmesini nasıl sağlarım?

    Yanıtlayan: M. Umut Atasever

    Qmail kaynak kodlarında, extra.h dosyasında aşağıdaki değişiklikleri yapıp qmail'i tekrar derlemeniz gerekiyor. Gelen ve giden tüm postaların bir kopyası log kullanıcısına gidecektir.

    #define QUEUE_EXTRA "Tlog/0"
    #define QUEUE_EXTRALEN 5
    
  5. SMTP, POP3 nedir? Her birine tek bir yazılım bakmıyor mu?

    Yanıtlayan: Enver ALTIN

    Öncelikle posta hizmeti vereceğiniz makinanın DNS kayıtlarının doğru olarak yapılmış olması gerekmektedir. Posta sunucularındaki kavramları açıklayacak olursak:

    SMTP sunucusu (sendmail, qmail, postfix)

    MTA (Mail Transfer Agent - Eposta Aktarım Aracısı) olarak adlandırılır ve SMTP protokolü kullanır, temel olarak 2 işlemi yerine getirir:

    1. Yerel kullanıcılar tarafından hazırlanmış metinlerin iletilmesi.

    2. Eposta alınması ve ilgili kullanıcıya ait eposta havuzuna yerleştirilmesi.

    POP3 sunucusu

    Kullanıcıların, POP3 protokolü ile kendilerine ait eposta havuzu içerisindeki epostaları almalarını sağlar. Genellikle inetd/xinetd tarafından, herhangi bir kullanıcı, TCP port 110'a bağlandığı anda otomatik olarak çalıştırılır.

    Bu nedenle, posta gönderirken SMTP protokolünü, posta alırken POP3 protokolünü kullanıyoruz. Birbirinden bağımsız ve küçük parçalardan oluşan bu tasarımın çeşitli avantajları var:

    • Daha az bellek, işlemci ve disk alanı kullanımı
    • Daha yüksek performans
    • Ölçeklenebilirlik
    • Standartlara uyumluluk

    SMTP sunucusu olarak kullanılan sistemde kabuk sahibi bir kullanıcı için durum yine benzer. Kullanıcı, kendisine ait eposta havuzundaki iletilere bir MUA (Mail User Agent - Eposta Kullanıcı Aracısı -> Eposta İstemcisi) kullanarak (pine, mutt, kmail vb.) erişebilir ve yönetebilir; fetchmail adlı yazılımı kullanarak bir başka sunucu üzerinde bulunan iletilerini POP3 protokolü ile yerel sistemde kendisine ait eposta havuzuna aktarabilir, bu yolla bir eposta istemcisi kullanarak bunları da yönetebilir.

    Kullanıcı bir posta göndermek istediğinde ileti metni yereldeki sendmail uygulamasına teslim edilir ve iletinin alıcıya ulaştırılması artık Sendmail'in işidir. Sendmail, alıcı adresin @ işaretinin sağ tarafındakı alan adına bakar, DNS ile bu adresin MX (Mail Exchanger - Eposta Alıcı ve Gönderici) kaydını bulur ve bu adresteki SMTP sunucusuna bağlanır, iletiyi teslim eder. Alıcı SMTP sunucu, ileti metnini ilgili kullanıcıya ait eposta havuzu içerisine ekler ve iletim işlemi tamamlanır.

    Modern SMTP sunucuları (sendmail, qmail, postfix, Microsoft Exchange) gönderilen iletiler uzerinde çeşitli denetimler yapılmasına ve posta gönderme işleminin her aşamasının izlenebilmesine olanak sağlayabilmek için birçok "ince ayar" içerirler ve bu noktada işler biraz kafa karıştırıcı hale gelir (spam denetimi, gönderilecek iletilerin alan adlarının sınırlanması, gönderen kullanıcıların sınırlanması, ileti içeriğinin filtrelenmesi vb).

  6. Kullanıcılarım "550 relaying denied" hatası alıyor. Sebebi nedir?

    Yanıtlayan: Barış Şimşek

    Yeni sendmail'ler geçerli ayar olarak kendi üzerinden eposta göndermeyi her yere yasaklar. Birilerinin sizin posta sunucunuz üzerinden eposta göndermesini istiyorsanız o kişinin IP'sine yetki vermeniz gerekir. Bu dosya sendmail.cf içerisinde

    Kaccess hash -o /etc/mail/access

    şeklinde bir satırda belirtilen dosyadır. Benim posta sunucumda bu dosya /etc/mail/access'dir. Bu dosyaya relay (gönderme yetkisi) vermek istediğiniz IP'yi ekliyorsunuz. Şu şekilde:

    192.168.0.123 RELAY

    Bunu yaptıktan sonra aşağıdaki komut ile erişim veri tabanınızı güncelleyin:

    # makemap hash /etc/mail/access < /etc/mail/access
    
  7. Eposta sunucumun relay'e izin verip vermediğini nasıl sınayabilirim?

    Yanıtlayan: Nilgün Belma Bugüner

    Posta sunucunuzun hizmet verdiği makineden telnet relay-test.mail-abuse.org şeklinde, relay-test.mail-abuse.org'a bir telnet bağlantısı yaparsanız, sunucunuz relay ile ilgili sınamadan geçirilir ve sınama sonuçlarını görebilirsiniz. Sonuç olumsuz bile olsa, bu işlem sunucunuzun karalistelere alınması gibi bir sonuç doğurmayacaktır. Bu bakımdan relay ayarları düzgün yapılmamış bir sunucuyla karalistelere girmemek için bu sınamayı sunucunuzu hizmete alır almaz yapmanız yararınıza olacaktır.

  8. Qmail'de belli bir alan adından ya da belli bir adresten gelen postaları engelleyebilir miyim?

    Yanıtlayan: Muhammed Soyer, Özgür Özaslan

    /var/qmail/control/badmailfrom dosyasına (yoksa oluşturun) xxx.dom şeklinde engellemek istediğiniz alan adlarını ya da eposta adreslerini altalta yazarak bunu yapabilirsiniz.

  9. TTNET'den linux altında mail gönderemiyorum.

    Yanıtlayan: Mehmet Kızılsakal

    TTNET smtp'de kimlik kanıtlaması gerektiriyor. Yani eposta yollamak için kullanıcı adı ve parola istiyor. SMTP kimlik kanıtlamasını destekleyen bir eposta istemcisi işinizi görür. Örneğin: Sylpheed (http://sylpheed/good-day.net/) ya da KDE ile gelen KMail kullanılabilir.

  10. Amavis Nedir?

    Yanıtlayan: Barış Şimşek

    Amavis, mail sunucu yazılımınız (Sendmail, QMail, Postfix, Exim ...) ile tümleşik çalışan ve virüs tarayıcıları kullanabilen bir MTA (Mail Transfer Agent - Eposta Aktarım Aracısı) dır. Mcafee, Antivir, Sophos, AVP gibi pek çok popüler tarayıcıyı aynı epostayı taramak için kullanabiliyor.

  11. Pine'da POP hesabımı nasıl kullanabilirim?

    Yanıtlayan: Doruk FİŞEK

    .pinerc dosyanızda inbox-path satırını bularak aşağıdaki hale getirin:

    inbox-path={mail.alanadi.com/POP3}inbox

    Ya da konsolda komut satırından

    $ pine -f {mail.alanadi.com/pop3}

    komutunu verin.

11.4. Web

  1. Apache httpd.conf dosyasını en iyi başarım ile kullanabilmem için ayarları ayrıntılı anlatan bir belge var mı?
  2. Apache'de sitelerimin bant genişliklerini sınırlayabilir miyim?
  3. Apache log'larımda /winnt/system32/cmd.exe istekleri görünüyor.
  4. Apache'de dizinlere parola ile erişimi nasıl sağlarım?
  5. Webmail uygulaması önerebilir misiniz?
  6. Webmail uygulamalarını karşılaştırır mısınız?
  7. Squid'de bazı sitelerin önbelleğe girmesini istemiyorum. Bunu yapabilir miyim?
  8. Iptables ile Squid'in portuna yönlendirme
  9. Squid'de ICP sorgularını yasaklamam ne gibi etkiler yaratır? ICP nedir?
  10. Sistemde Squirrelmail 1.2.8 ve httpd 2.0 çalışıyor. Kullanıcılarımdan biri, az önce, 600K'lık bir ek dosyasını gönderememiş.
  1. Apache httpd.conf dosyasını en iyi başarım ile kullanabilmem için ayarları ayrıntılı anlatan bir belge var mı?

    Yanıtlayan: Nilgün B. Bugüner

    https://httpd.apache.org/docs/2.4/tr/

  2. Apache'de sitelerimin bant genişliklerini sınırlayabilir miyim?

    Yanıtlayan: Alper Oğuz

    Bunun için mod_bandwith modülünü kullanabilirsiniz.

  3. Apache log'larımda /winnt/system32/cmd.exe istekleri görünüyor.

    Yanıtlayan: Alper Oğuz

    Log'da görünen IP adresindeki Microsoft IIS sunucusuna Nimda, Code Red gibi bir virüs bulaşmış ve sizin sunucunuza da bulaşmaya çalışıyor.

    MS-IIS kullanmadığınızdan sizde hiçbir sorun yaratmaz, önemsemeyebilirsiniz. Ancak IP sahibini tanıyorsanız bu konuda uyarabilirsiniz.

  4. Apache'de dizinlere parola ile erişimi nasıl sağlarım?

    Apache Web Sunucusunda Sanal Adresleme ve Dizin Erişiminin Kısıtlanması NASIL belgesinin Dizin Erişimini Kısıtlama bölümüne bakınız.

  5. Webmail uygulaması önerebilir misiniz?

    Postacı, Basilix, Nocc, Instant Web Mail.

  6. Webmail uygulamalarını karşılaştırır mısınız?

    Yanıtlayan: Burak Dayıoğlu

    PHP ile geliştirilmiş olan Postacı ve Basilix'in çok yüksek paralel erişimde darboğaz yaşaması kaçınılmaz görünüyor. Zira her ikisi de yorumlanan bir dil ile geliştirilmişlerdir. Yine de başarım sorunu yaşayıp yaşamayacağınız tümüyle kaç paralel bağlantıya hizmet vereceğiniz ile ilgilidir. 750,000 kişinin ne kadarının herhangi bir anda hizmet almasını bekliyorsunuz? Kullanıcıların çoğu/tümü yerel mi uzak mı? (HTTP-Keepalive kullanılmasa oluyor mu?)

    Başarımı arttırmak üzere Zend Compiler ve özellikle Zend Accelerator'e bakabilirsiniz. PHP performansını birkaç kat arttırdığı söyleniyor.

    CRM çözümünüzü, mevcut kullanıcı yönetim düzeneğinizle kolayca bütünleştiremiyorsunuz. LDAP temelli olanlar ile bir dereceye kadar sorunlar çözülebilse de kesin çözüm sağlamaktan genelde çok uzak kalıyorlar. Özellikle özel uygulamalarınız ile bütünleştirmek kabus olabiliyor.

    Benim kişisel tercihim Basilix'ten yana oldu; kodu daha temiz ve daha verimli çalışıyor.

  7. Squid'de bazı sitelerin önbelleğe girmesini istemiyorum. Bunu yapabilir miyim?

    Yanıtlayan: Ahmet Derviş

    squid.conf içerisinde no_cache diye bir etiket var. Oraya bakabilirsiniz. Bu bölümde örnek bir tanım da olması lazım. Aşağıdaki gibi birşey de kullanabilirsiniz:

    acl NoCache url_regex http://www.nocachesite.com
    no_cache deny NoCache
  8. Iptables ile Squid'in portuna yönlendirme

    Yanıtlayan: Alper Oğuz

    Squid'i kurarken configure betiğini --enable-linux-netfilter seçeneği ile çalıştırmak gerekiyor.

  9. Squid'de ICP sorgularını yasaklamam ne gibi etkiler yaratır? ICP nedir?

    Yanıtlayan: Ahmet Derviş

    Eğer önbellekleme (cache) hiyerarşileri kullanmıyorsanız bir sorun yaratmaz.

    ICP: Inter-Cache Communication Protocol. Yani önbellekler arası sorgulamalarda kullanılıyor. Eğer Squid'i başka önbellekleme sunucuları ile etkileşimli çalıştırıyorsanız, bunu ICP (Squid'e özgü Cache Digest'de var) ile yapabilirsiniz.

    Önbellekleme sunucusu istenen nesneyi kendinde bulamazsa, önceden tanımladığınız bir önbellekleme sunucusunda nesnenin olup olmadığını ICP ile öğrenir. Aynı şekilde başka bir önbellekleme sunucusu da sunucunuza bu sorguyu yapabilir.

  10. Sistemde Squirrelmail 1.2.8 ve httpd 2.0 çalışıyor. Kullanıcılarımdan biri, az önce, 600K'lık bir ek dosyasını gönderememiş.

    /etc/httpd/conf.d/php.conf dosyasının içinde,

    LimitRequestBody 524288

    gibi bir satır olabilir. Buradaki değeri arttırarak sorununuzu çözebilirsiniz.

11.5. Veritabanı

  1. RDBMS nedir? Hangi veritabanları RDBMS destekliyor?
  2. InterBase/Firebird kurdum ama çalıştıramadım. /opt/interbase/bin/ibmgr -start diye hata veriyor.
  3. MySQL'de tarih alanı YYYYMMDD(amerikan) olarak gösteriliyor.
  4. Mysql root parolamı unuttum. Ne yapabilirim?
  5. PHP ile MySQL'e bağlanmaya çalıştığımda "Fatal error: Call to undefined function: mysql_connect()" diye hata alıyorum. Ne yapmalıyım?
  6. Mysql'in sıralamada Türkçe karakterleri sıralaması nasıl sağlanır?
  7. Mysql'i tekrar derlemeden Türkçe karakterleri sıralamasını nasıl sağlarım?
  8. Mysql'i güncellerken hangi dizinlerin yedeğini almalıyım?
  9. Slackware 9.0 kurulu sistem de install_mysql_db dedikten sonra test veritabanları normal kuruluyor ancak safe_mysqld & dedikten sonra mysql ended deyip uygulamayı sonlandırıyor.
  1. RDBMS nedir? Hangi veritabanları RDBMS destekliyor?

    Yanıtlayan: Enver ALTIN

    RDBMS: Relational Database Management System - İlişkisel Veritabanı Yönetim Sistemi

    Veritabanı içerisindeki nesnelerin birbirleri ile ilişkilerini yazılımlanabilir biçimde düzenleyerek arşivlemeyi amaçlayan veritabanı tasarımıdır.

    Farklı tablolar içerisindeki alanların birbirleri ile olan ilişkilerini tutarak bir tablodan herhangi bir kayıt silindiğinde ya da değiştirildiğinde diğer tabloların da bu durumdan çeşitli biçimlerde etkilenmesini saglamak bu yolla mümkündür.

    RDBMS destekleyen bazı SQL sunucular:

  2. InterBase/Firebird kurdum ama çalıştıramadım. /opt/interbase/bin/ibmgr -start diye hata veriyor.

    Yanıtlayan: M. Umut Karabudak

    InterBase 6.0 Open ve Firebird çalıştırılabilir paketleri, RedHat 6.2 dağıtımı üzerinde ncurses-4.x ile derlendiğinden; daha yeni dağıtımlarda bulunması gereken /lib/libncurses.so.4 dosyasını bulamıyor. Dağıtımınızda /lib/libncurses.so.5.2 gibi bir dosya varsa,

    # ln -sf /lib/libncurses.so.5.2 /lib/libncurses.so.4
    

    biçiminde sembolik bağ oluşturarak sorunu çözebilirsiniz.

  3. MySQL'de tarih alanı YYYYMMDD(amerikan) olarak gösteriliyor.

    Yanıtlayan: Mesut TUNGA

    $sql = mysql_query("Select DATE_FORMAT(tarih, '%d-%m-%Y')
                        as trtarih from table") or die (mysql_error());
    $r = mysql_fetch_array($sql);
    echo $r[trtarih];
    
  4. Mysql root parolamı unuttum. Ne yapabilirim?

    MySQL'i durdurduktan sonra --skip-grant-tables seçeneği ile tekrar başlatın. Yeni parola atamak için

    # mysqladmin -u root password 'yeni_parolanız'
    

    komutunu kullanın. Yeni parolanızın etkin olması için

    # mysqladmin flush-privileges

    komutunu çalıştırın. Daha ayrıntılı bilgi için Mysql kılavuzunda A.4.2 How to Reset a Forgotten Password kısmına bakınız.

  5. PHP ile MySQL'e bağlanmaya çalıştığımda "Fatal error: Call to undefined function: mysql_connect()" diye hata alıyorum. Ne yapmalıyım?

    PHP kurulumunuzda MySQL desteği yok. Eğer PHP'yi siz derleyip kurduysanız --with-mysql bağımsız değişkenini kullanarak tekrar derleyin.

    Hazır gelen RPM'leri kullanıyorsanız muhtemelen dağıtımınızın CD'sinde modphp_mysqlxxxxxxxx.rpm dosyası vardır. Bunu kurun.

  6. Mysql'in sıralamada Türkçe karakterleri sıralaması nasıl sağlanır?

    Yanıtlayan: Doruk Fişek

    Mysql'i derlemeden önce configure betiğini çalıştırırken --with-charset=latin5 seçeneğini kullanırsanız sıralamalar Türkçe harflere göre yapılır.

  7. Mysql'i tekrar derlemeden Türkçe karakterleri sıralamasını nasıl sağlarım?

    Yanıtlayan: Can Uğur Ayfer

    Mysql'in başlangıç betiğindeki (genelde /etc/rc.d/init.d/mysql) start bölümünde safe_mysqld şeklinde Mysql'i başlatan komut vardır. Buna aşağıdaki iki seöeneği eklemeniz gerekli:

    --character-sets-dir=/usr/share/mysql/charsets (veya /usr/local/mysql/share/charsets) --default-character-set=latin5

  8. Mysql'i güncellerken hangi dizinlerin yedeğini almalıyım?

    Yanıtlayan: Doruk Fişek

    Tüm veritabanlarını ve kullanıcı ayarlarını almak için eski kurulumunuzdan Mysql'in kurulu olduğu dizinin altındaki sadece data/ ya da var/ isimli dizini almanız yeterli olacaktır.

    Doğrudan yeni kurulumda ilgili dizine koyduğunuzda otomatik çalışacaktır.

  9. Slackware 9.0 kurulu sistem de install_mysql_db dedikten sonra test veritabanları normal kuruluyor ancak safe_mysqld & dedikten sonra mysql ended deyip uygulamayı sonlandırıyor.

    Yanıtlayan: Murat Gezer

    /var/lib/mysql dizini idi galiba. Sorun çıkaran kullanıcı adının ve grubunun  root.root oluşu. Bu dizinin iyeliğini mysql.mysql şeklinde değiştirin, derdiniz bitecektir.