Apache ve PHP’nin versiyon bilgilerini gizleme
Apache ve PHP’nin versiyon bilgilerini headerdan gizleme ihtiyacı duydum. Dursun diye buraya da koyayım bari.
Apache’nin versiyon bilgilerini saklamak için :
/etc/httpd/conf/httpd.conf dosyasında ( ya da sizin conf dosyasınız nerede ise ) aşağıdaki parametreleri ayarlayın.
ServerSignature Off ServerTokens ProductOnly
Siz aşağıdaki tablodan yararlanıp isterseniz başka değer verebilirsiniz.
ServerToken | Görüntülenecek Bilgi |
ProductOnly | Server: Apache |
Major | Server: Apache/2 |
Minor | Server: Apache/2.0 |
Minimal | Server: Apache/2.0.55 |
OS | Server: Apache/2.0.55 (Redhat) |
Full(veya boş) | Server: Apache/2.0.64 (Unix) mod_ssl/2.0.64 OpenSSL/0.9.8e-fips-rhel5 |
Parametreleri ayarlamadan önce :
root@localhost:~# curl -I http://www.kursaddara.com HTTP/1.1 200 OK Date: Mon, 16 Apr 2012 06:45:50 GMT Server: Apache/2.0.64 (Unix) mod_ssl/2.0.64 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 X-Powered-By: PHP/5.2.9 Connection: close Content-Type: text/html
Parametreleri ayarladıktan sonra :
root@localhost:~# curl -I http://www.kursaddara.com HTTP/1.1 200 OK Date: Mon, 16 Apr 2012 06:47:56 GMT Server: Apache X-Powered-By: PHP/5.2.9 Connection: close Content-Type: text/html
Gördüğünüz gibi Apache bilgileri gizlendi.
Şimdi PHP versiyon bilgilerini gizleyelim.
/etc/php.ini dosyasında ( sizin config dosyanız nerede ise ) aşağıdaki parametreleri ayarlayın.
expose_php Off
Parametreleri ayarladıktan sonra :
root@localhost:~# curl -I http://www.kursaddara.com HTTP/1.1 200 OK Date: Mon, 16 Apr 2012 06:48:47 GMT Server: Apache Connection: close Content-Type: text/html
Gördüğünüz gibi PHP versiyon bilgisi gitti.
Bu parametreleri değiştirdikten sonra apache’yi restart etmeniz gerekmektedir.
Posted in Apache, Linux, PHP on April 16th, 2012 by Kürşad DARA | | 0 Comments
ERROR 1598 (HY000) at line 16: Binary logging not possible. Message: Transaction level ‘READ-UNCOMMITTED’ in InnoDB is not safe for binlog mode ‘STATEMENT’ hatası
Replikasyon kullandığınız bir mySQL veritabanında aşağıdaki hatayı alıyorsanız :
ERROR 1598 (HY000) at line 16: Binary logging not possible. Message: Transaction level 'READ-UNCOMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
mysql> show variables like "binlog_format%"; +---------------+-----------+ | Variable_name | Value | +---------------+-----------+ | binlog_format | STATEMENT | +---------------+-----------+ 1 row in set (0.00 sec) mysql> SET GLOBAL binlog_format="MIXED"; Query OK, 0 rows affected (0.00 sec)
kalıcı olarak bu ayarın durması içinde my.cnf dosyasına
binlog_format = "MIXED"
ekleyin ki sonrasında mySQL i restart ettiğinizde tekrar bu ayarlarla ugraşmayın.
Detaylı bilgi için : http://dev.mysql.com/doc/refman/5.1/en/binary-log-setting.html
Posted in Genel, Linux, MySQL on April 13th, 2012 by Kürşad DARA | | 0 Comments
Got fatal error 1236 from master when reading data from binary log: ‘Could not find first log file name in binary log index file’ hatası
mysql slave sunucu da show slave status dediğinizde aşağıdaki hatayı alıyorsanız :
Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: ‘Could not find first log file name in binary log index file’
Öncelikle slave sunucu da
stop slave;
sonrasında master sunucu da
mysql> flush logs; mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000005 | 106 | | | +------------------+----------+--------------+------------------+
Buradan log file ismini ve position alıp daha sonra
slave sunucu da
mysql> CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000005′, MASTER_LOG_POS=106; mysql> start slave;
bu kadar.
Posted in Linux, MySQL on April 13th, 2012 by Kürşad DARA | | 0 Comments
vi/vim editörde yorum satırlarının rengini değiştirmek için
Anlık olarak değiştirmek istiyorsanız : yazdıktan sonra aşağıdaki komutu girip entere basarsanız yorumların renkleri koyu gri olacaktır. İstediğiniz rengi verebilirsiniz.
highlight Comment ctermfg=darkgray
Eğer kalıcı olarak bu değişikliği yapmak istiyorsanız /etc/vim/vimrc dosyasının içine bu satırları eklemeniz yeterli olacaktır.
Posted in Linux on March 26th, 2012 by Kürşad DARA | | 0 Comments
Insert sorgularında duplicate hatasının ignore edilmesi.
mysql> insert ignore into veritabani1.table1 select * from veritabani2.table2 where x=226; Query OK, 87571 rows affected (4 min 58.31 sec) Records: 111439 Duplicates: 23868 Warnings: 0
Posted in Linux, MySQL on March 21st, 2012 by Kürşad DARA | | 0 Comments
ERROR 1010 (HY000): Error dropping database (can’t rmdir ‘.\\’, errno: 17) hatası
mySQL üstünde bir veritabanını silmek istediğinizde bu hatayı alabilirsiniz.
Birkaç sebebi olabilir.
1. Veritabanının data dosyalarının olduğu dizinde gizli bir dosya olabilir.
2. Veritabanının data dosyalarının olduğu dizinde mySQL’in data dosyaları dışında başka dosyalar olabilir.
3. Veritabanının data dosyalarının olduğu dizinin hakları ile ilgili sorun olabilir.
vs. vs.
mysql> drop database test; ERROR 1010 (HY000): Error dropping database (can't rmdir '.\test\', errno: 17)
Yukardaki durumlardan birisi varsa onu çözüp sonra
mysql> drop database test; Query OK, 0 rows affected (0.01 sec)
silebilirsiniz.
Posted in Genel, Linux, MySQL on February 29th, 2012 by Kürşad DARA | | 0 Comments
“kernel: udev: renamed network interface eth0 to eth1” hatası
Vmware üstünde bir makine klonlayıp eth0’dan IP adresini değiştirdiğimde makine açıldığında eth0 ı aktif etmediğini yerine eth1 olarak aktif ettiğini görürseniz benim gibi, IP değiştirirken MAC adresini değiştirmemişsinizdir ve aşağıdaki gibi bir hata almışsınızdır.
Feb 24 00:38:41 mongodbs2 kernel: udev: renamed network interface eth0 to eth1
ve
[root@mongodbs2 ~]# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:55 errors:0 dropped:0 overruns:0 frame:0 TX packets:55 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5340 (5.2 KiB) TX bytes:5340 (5.2 KiB)
eth0 ın aktif olmadığını göreceksiniz.
[root@mongodbs2 ~]# ifconfig eth0 up
yazdığınızda ise
Device eth0 does not seem to be present, delaying initialization.
şeklinde bir hata alacaksınız.
[root@mongodbs2 ~]# ifconfig eth1 up
yazıp yolunuza devam edebilirsiniz. Ama kafaya takıp illa eth0 istiyorum derseniz bir ufak değişiklik yapmanız gerekecek.
[root@mongodbs2 ~]# cat /etc/udev/rules.d/70-persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x8086:0x100f (e1000) (custom name provided by external tool) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:aa:00:be", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Burada diğer makinenin MAC adresi tanımlı kaldığı için sistem otomatik olarak eth1 e yeni MAC adresini verecek ve eth1 i aktif edecektir.
Buradan eth0 için MAC adresini doğru MAC adresi ile değiştirirseniz makineyi kapatıp açtığınızda ya da
[root@mongodbs2 ~]# ifconfig eth0 up
komutunu verdiğinizde sisteminiz eth0 üstünden çalışacaktır.
Tavsiyem makineyi kapatıp açmanız.
Posted in Linux on February 24th, 2012 by Kürşad DARA | | 0 Comments
mongoDB data dosyalarının purge edilmesi
mongoDB data dizinine baktığınızda
-rw------- 1 root root 64M 2012-02-21 12:04 xxx.0 -rw------- 1 root root 128M 2012-02-21 12:02 xxx.1 -rw------- 1 root root 256M 2012-02-21 12:02 xxx.2 -rw------- 1 root root 512M 2012-02-21 12:04 xxx.3 -rw------- 1 root root 1.0G 2012-02-21 12:03 xxx.4 -rw------- 1 root root 2.0G 2012-02-21 12:04 xxx.5 -rw------- 1 root root 2.0G 2012-02-21 12:03 xxx.6
şeklinde uzayıp giden dosyalar göreceksiniz.
Bu dosyalar belli zaman sonra artacaktır.
Bunun nedeni şu:
mongoDB belirli büyüklükte (Örn 2GB) data dosyaları tutuyor. Bu alanı kullansanızda kullanmasanız da bu alanı ayırıyor. Siz veritabanı üstünde delete ve insertler yaptığınızda mongoDB’ni bu alanlardaki dataları delete etse bile hala bu alanı ayırmaya devam ediyor.
Bu yüzden belirli aralıklarla bu alanları free etmeniz gerekiyor.
Bunun içinde db.repairDatabase() komutunu çalıştırıp bu alanları free edebilirsiniz.
Komutu;
PRIMARY> use xxx switched to db xxx PRIMARY> db.repairDatabase(); { "ok" : 1 }
şeklinde çalıştırabilirsiniz.
Not : Burada xxx fazlasıyla yer kaplayan veritabanının ismi.
Bu işlem sırasında bu veritabanınızı lock edeceği için production makinesinde yapacaksınız kullanılmadığı bir zamanda yapmanız mantıklı olur.
Yoksa;
Tue Feb 14 15:00:54 [conn78277] warning: ClientCursor::yield can't unlock b/c of recursive lock ns: xxx.xxx top: { opid: 212476020, active: true, lockType: "write", waitingForLock: false, secs_running: 1, op: "query", ns: "xxx", query: { repair Database: 1.0 }, client: "xxx.xxx.xxx.xxx:38186", desc: "conn", threadId: "0x7f736eacc700", connectionId: 78277, msg: "index: (3/3) btree-middle", numYields: 0 }
şeklinde bir hata göreceksiniz log dosyasında.
Bu işlemler başarılı bir şekilde bittikten sonra gözle görülür şekilde disk kullanımından tasarruf etmiş olacaksınız.
Posted in Linux, MongoDB on February 21st, 2012 by Kürşad DARA | | 0 Comments
Anlık mongodb istatistikleri
Anlık olarak mongodb nin istatistiklerini görmek isterseniz:
root@mongodbs1:~# mongostat -h xxx.xxx.xxx.xxx connected to: xxx.xxx.xxx.xxx insert query update delete getmore command flushes mapped vsize res faults locked % idx miss % qr|qw ar|aw netIn netOut conn set repl time 0 0 0 0 1 2 0 14.2g 29.2g 2.86g 0 0 0 0|0 1|0 239b 1k 5 myset M 12:14:35 0 0 0 0 0 2 0 14.2g 29.2g 2.86g 0 0 0 0|0 1|0 192b 1k 5 myset M 12:14:36 0 0 0 0 1 2 0 14.2g 29.2g 2.86g 0 0 0 0|0 1|0 239b 1k 5 myset M 12:14:37 0 0 0 0 0 2 0 14.2g 29.2g 2.86g 0 0 0 0|0 1|0 192b 1k 5 myset M 12:14:38 0 0 0 0 1 2 0 14.2g 29.2g 2.86g 0 0 0 0|0 1|0 239b 1k 5 myset M 12:14:39 0 0 0 0 0 2 0 14.2g 29.2g 2.86g 0 0 0 0|0 1|0 192b 1k 5 myset M 12:14:40 0 0 0 0 1 2 0 14.2g 29.2g 2.86g 0 0 0 0|0 1|0 239b 1k 5 myset M 12:14:41 0 0 0 0 0 2 0 14.2g 29.2g 2.86g 0 0 0 0|0 1|0 192b 1k 5 myset M 12:14:42 0 0 0 0 0 2 0 14.2g 29.2g 2.86g 0 0 0 0|0 1|0 192b 1k 5 myset M 12:14:43 0 0 0 0 1 2 1 14.2g 29.2g 2.86g 0 0 0 0|0 1|0 239b 1k 5 myset M 12:14:44
Posted in Linux, MongoDB on February 17th, 2012 by Kürşad DARA | | 0 Comments
ERROR 126 (HY000): Incorrect key file for table ‘/mnt/mysql-tmp/#sql_1a76_2.MYI’; try to repair it hatası
mySQL de bir query çalıştırdığınızda;
ERROR 126 (HY000): Incorrect key file for table '/mnt/mysql-tmp/#sql_1a76_2.MYI'; try to repair it
hatasını alıyorsanız bunun birkaç sebebi olabilir.
1. mySQL’in temp tabloları oluşturduğu dizini RAM üzerinde oluşturacak şekilde ayırdıysanız ve örneğin 2GB alan verdiyseniz ve gönderdiğiniz querynin oluşturduğu temp tablosu 2GB’tan büyük ise bu hatayı alırsınız. Bunun çözümü ya RAM’de temp tablo için ayırdığınız alanı artıracaksınız ya da querynizi optimize edeceksiniz.
/dev/ram1 2.0G 0 2.0G 0% /mnt/mysql-tmp
kursad:/mnt/mysql-tmp # ls -la /mnt/mysql-tmp/ total 2.0G drwxrwxrwt 2 root root 80 Feb 16 11:01 . drwxr-xr-x 9 root root 4.0K Feb 15 14:16 .. -rw-rw---- 1 mysql mysql 2.0G Feb 16 11:01 #sql_1a76_0.MYD -rw-rw---- 1 mysql mysql 1.0K Feb 16 11:01 #sql_1a76_0.MYI
2. İlgili tablo bozuk olabilir. Repair edip sorunu çözebilirsiniz.
Posted in Linux, MySQL on February 16th, 2012 by Kürşad DARA | | 0 Comments
« Previous Page — Next Page »