1 Ağustos 2010 Pazar

cPanel'den DirectAdmin'e site taşıma


mkdir /cpanelyedek
cd /
nano yedekal


#!/bin/bash
for i in $(ls /var/cpanel/users);
do /scripts/pkgacct $i /cpanelyedek;
done


Bu kodu sorunsuca çalıştırmak için cron kullanabilirsiniz.

Ben tembellik yaptım.

crontab -e yazıp dosyanın çalışma zamanını server saatinden 3 dk sonrasına aldım


40 10 31 * * /yedekal >/dev/null 2>&1


Yani saat 10:40 ve ayin 31'inde çalışacak

Bu işlem sonrası yedek aldığım dosyaları yeni servere çekmem gerekiyor.

Yeni server'a login olup aşağıdaki şekilde devam ediyorum.


nano scpconnect.exp

#Kaynak: http://bash.cyberciti.biz/security/expect-ssh-login-script/

#Aşağısını yapıştırın

#!/usr/bin/expect -f

set password [lrange $argv 0 0]
set timeout -1
# now connect to remote UNIX box (ipaddr) with given script to execute
spawn scp root@host:/cpanelyedek/* /data/tasimaislemleri
match_max 100000
# Look for passwod prompt
expect "*?assword:*"
# Send password aka $password
send -- "$password\r"
# send blank line (\r) to make sure we get back to gui
send -- "\r"
expect eof
#----------------------------------------------------
./scpconnect.exp password &

Dediğiniz zaman taşıma işlemi başlayacaktır.

Sonrası için;

http://www.directadmin.com/forum/showthread.php?p=184375#post184375

31 Temmuz 2010 Cumartesi

Iframe virüsü ve temizlenmesi

Hayatımızın bir parçası olan bilinçsiz kullanıcılar yüzünden illaki hepimizin başına böylesi acı dolu olaylar geliyor. Ama ne yapalım birgün bizde o bilinçsiz kullanıcı olacağız...

Windows için Find And Replace programı oldukça mükkemmel ve iş görüzü.

Linux içinse araştırmalarım sonucu bulduğum şu komutlar çok güzel.




Burda virüs bulaşan dosyaları buluyoruz.

find ./ -type f -name \*.* -exec grep -El "" {} \;

Burda da temizliyoruz.

find ./ -type f -name \*.* -exec sed -r 's@@\t@g' -i {} \;


js bulan

find ./mezunarama/ -type f -name \*.* -exec grep -El "document.write\(.+type=\"text/javascript\" src=\"http:\/\/.+:8080\/.+>.+" {} \;


Temizleyen


find ./mezunarama/ -type f -name \*.js -exec sed -r 's@document.write\(.+type=\"text/javascript\" src=\"http:\/\/.+:8080\/.+>.+@\t@g' -i {} \;


Son olarak şurayı okuyun.
http://www.fatihhayrioglu.com/iframe-virusu-ve-saldirgan-site-damgalamasindan-kurtulmanin-yolu/

Şimdiden kolay gelsin.

30 Temmuz 2010 Cuma

Server 2008 Standart Edition r2 uzerinde web platform ile php_mssql kurulum hatasi

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files (x86)\PHP\ext\php_mssql.dll' - The specified module could not be found.

Bu hata hayatınızı karartabilir.
Sorulara öneriler şöyle;

1-Php.ini dosyasında extension ların yolunun kontrolu
2-Sql server client kurulup kurulmadığı
3-Bunu kullanma performansı iyi değil sqlserv kullan
4-Path leri kontrol edin

Peki sorun gördüğümüzde nasıl çözmeliyiz ?

1-Öncelikle windows değişkenlerini kontrol edip PHP kurulum ayarlarının doğru yere bakıp bakmadığını tespit edin. (PHPRC,Path,PHP_PEAR_PHP_BIN vs..)
2-Sonra konsoldan PHP nin kurulu olduğu dizine gidip "php -v" yazın. Burda çıkan hatalar gerçekten sorununuz olduğunu gösteriyor demektir. İşte bu noktada MSVCR71.DLL dll'i hata veriyorsa php_mssql in çalışmama sebebi budur.
Netten indirmeden elinizin altından bir yerden bu dosyayı bulup PHP nin kurulu olduğu dizine atın. Gerekirse sunucuyu yeniden başlatın. Veee mutlu son....
Çıkan diğer hatalarda aynı şekilde DLL eksikliğinden kaynaklanıyor onları bulup PHP dizinine atarsanız sorun kalmaz.

2 Temmuz 2010 Cuma

Projeleri svn ile tek yerden yönetmek

Projelerde olmazsa olmaz olan svn kullanımını iyi yönetebilmek için şöyle bir yol izlenebilir.

Öncelikle ;
Pecl kütüphanesinden svn paketini kurun. Server da bir yere svnyonetimi seklinde bir klasor atip içine index.php dosyası atın. Dosyanın içinde aşağıdaki kodlar olsun.




svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'user');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'passs');
svn_auth_set_parameter(PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS, true);
$u = svn_update('/home/user/app/');

echo $u;

--
Bunları öğrenmem zaman aldı ama eğer şöyle bir hata alıyorsanız yukardaki kodlar hayatınızı kurtaracaktır.

Error validating server certificate for 'https://site.com:8443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: site.com
- Valid: from Jun 28 15:03:03 2010 GMT until Jun 28 15:03:03 2011 GMT
- Issuer: Istanbul, Istanbul, TR, site, site
- Fingerprint:
(R)eject, accept (t)emporarily or accept (p)ermanently?

Hiç bir sertifika ıvır zıvırla uğraşmadan direk kullanabilirsiniz. Ayrıca başka kullanıcılara ait, svn içeren projelerede burdaki dosya (index.php) ile ulaşabilirsiniz. Yalnız svn kullanıcı adı ve şifresini bilmeniz gerekiyor.

Son olarak svnyonetimi isimli klasöre .htaccess ile şifre ve IP koruması koyarsanız daha güvenli olur.

Tecrübelerim sonucunda cPanel veya benzeri sistemler kurulu makinelerde system,shell_exec ve benzeri komutlar ile bu işi yapmanın biraz sıkıntılı olduğunu düşünüyorum :)

Web projesini webe çıkartıp yolunu ayarlamak public_html -> public

MVC çatısı altında geliştirdiğiniz projeleri webe attığınızda aynı haliyle klasör yapısını hiç bozmadan kullanmak için ;

Windows üzerinde IIS de path i elle veriyorsunuz.

Linux üzerinde ise sırasıyla apache config ayarları ile oynamadan aşağıdaki komutları çalıştırmanız yeterli;

Projemizin /home/user/application altında olduğunu varsayıyorum. application altında public klasörü var.



rm -rf /home/user/public_html
ln -s /home/user/application/public public_html


public_html'i klasör olmaktan çkartıp kısayol haline getirdik. Hiçbir ayarı değiştirmeden bu işten sıyrılmış olduk...

12 Nisan 2010 Pazartesi

Ali Haydar Efendinin Resimleri






1 Nisan da dünyaya gelen oğlumuz Ali Haydar'ın birkaç resmini burdan paylaşmak istedim...

Mâşaallah

24 Ocak 2010 Pazar

Değişim Başlıyor Windows'tan Ubuntu ya doğru

Değişim Başlıyor Windows'tan Ubuntu ya doğru

Güncel link: http://docs.google.com/View?id=dgndh2qr_110frfzpqhn

( bu resim güzel ama sözler fazla olmuş…)

Uzun zamandan beri linux sürümlerini vmware olarak windows üzerinde kullanıyorum. Ama nedense direk linuxa geçmeyi yapmıyordum belkide bunun çocukluktan kalma korkularla alakası vardır ( iki kere diski uçurdum tamamiyle benim dikkatsizliğim ve hatam yüzünden) sonunda bir karar aldım, artık direkt linux kullanmalıydım. Ama ya server 2003/2008 sql server onlar ne olacaktı ? İşte bu noktada windows'ta kullandığım sanallaştırmanın linux da ne kadar kaliteli olacağını düşünmeye başladım. Tecrübesi olan insanlara danıştım. http://friendfeed.com/volkanaltan/ac5bde9d/arkadaslar-masaustu-bilgisayarma-ubuntu-64

Kararım ubuntu(64) üzerine virtualbox kurup diğer sistemleri sanal kullanmak oldu. Şimdi size aşama aşama yeni bir ubuntu kurularken yaptıklarımı yazacağım. Eğer sizinde öneri ve görüşleriniz olursa memnuniyetle dökümanı güncellerim.

0. Kitabı masaüstüne koy ! http://www.thegeekstuff.com/linux-101-hacks-free-ebook/

1. Cd den kurulum için zaten iso yu yazdırıyorsunuz ama usb den kurulum yapacaksanız http://sourceforge.net/projects/unetbootin/ bu araç işinize yarayabilir.

2. Kurulum ve güncelleştirme sonrası havalı bir görünüm için Sag tıkla -> change desktop backround -> Visual Effects | Extra seçin eğer gerekirse eklenti yükler sonrasında sistem hazır.

3. Rahatça film izlemek müzik dinlemek için bütün codec ve gerekli aletleri ve daha fazlasını yüklemek içinse hiç uğraşmanıza gerek yok. http://ubuntu-tweak.com/ sitesine girip bu uygulamayı indirin. Üzerine çift tıklayınca kuruluyor. Applications-> System Tools-> Ubuntu Tweak | tıklayın Ardından listeleri güncelleyin ve multimedia ile ilgili olan herşeyi kurun J bütün codec leri tek tıkla indirip hazır hale getiricek. Ubuntu tweak hayat kurtaran bir uygulama.

4. Kısa yol tuşlarını ayarlamak hızlı çalışmak için çok önemli. Terminali her defasından yerinden çağırmak yerine, system -> Preferences -> Keyboard Shortcuts | Desktop a gelin burda “Run a terminal” in karşısında disabled yazıyor. Ordayken atamak istediğiniz kısa yola tıklayın. Benim tercihim “F2” oldu.

5. Ubuntu da root password aktif olarak gelmiyor ctrl+f2 ye basıp terminali açınca :~$ sudo passwd root yazıp şifremizi iki kere giriyoruz. Başka zaman hızlıca root olmak için “su –“ yazmak yeterli . şifrenizi yazınca root oldunuz…

6. Virtualbox I kurmak için komut: apt-get install virtualbox-ose yeterli

7. Şimdi Apache/MySQL /PHP kurulumunu yapmakda sıra. Bunun için geliştirilmiş tek komut var. sudo tasksel install lamp-server burda ayrıntılı bilgi : https://help.ubuntu.com/community/ApacheMySQLPHP

8. Wine kurulumu

9. /etc/sysctl.conf ile Hard disk hızı ayrlama Link

10. Ubuntu Mac yapmak ve temaları yönetmek vs.. http://ubuntuguide.net/3-steps-to-make-ubuntu-910karmic-looks-like-mac-os-x

11. vmware kurulumu. Ciddi hatalar aldım. Ama bu arkadaş sağolsun... http://radu.cotescu.com/2009/10/30/how-to-install-vmware-server-2-0-x-on-ubuntu-9-10-karmic-koala/

12. ntfs disk bölümü için otomatik mount sorunu ve yazma izni verilmemesi.http://www.ubuntugeek.com/widows-ntfs-partitions-readwrite-support-made-easy-in-ubuntu-feisty.html http://ubuntuguide.net/auto-mount-ntfs-driver-in-ubuntu

13. stardict sözlük babylone yerine http://www.basrikahveci.com/stardict-ubuntuda-babylon-sozluklerini-kullanmak/

14. 10 things to do after installing Ubuntu 9.10 http://www.detector-pro.com/2009/11/10-things-to-do-after-installing-ubuntu.html

15. Disk yönetimi / otomatik mount Disk mount edilmişse unmount et. df -h ile görüyorsan mount edilmiş demektir. Gözükmüyorsa "fdisk -l" ile bölümleri gör ona göre mount et. Otomatik mount için: "sudo nano /etc/fstab" alt satıra /dev/sda5 /media/bolum2 ntfs-3g rw,auto,user,utf8 0 0 yazarsan işlem tamam.Tabi burda ilgili yerleri kednine göre düzenle.

16. Ekran görüntüsü ve saat kurma... Applications -> Ubuntu Software Center -> Screenlets aratın kurun...

Şimdilik aklıma gelen adımlar bunlar. Benim veya sizin aklınıza gelen birşey olursa buraya ilave edebiliriz. ( nede olsa google dökümanı)


15 Ocak 2010 Cuma

Zend Framework icinde FCKeditor kullanmak

Burda Zend Framework ile geliştirilen bir projede en basit haliyle FCKeditor un kullanımını anlatacağım. Basit bir örnek olacak siz istediğiniz gibi geliştirebilirsiniz....

FCKeditor un son halini buradan indirin : http://ckeditor.com/download

proje içerisinde public/scripts/library/fckeditor içerisine dosyaları atın.

Controller içerisinde inite aşağıdaki atamayı yapın

public function init() {
$this->view->assign('fckeditorPath','http://'.getenv ( 'HTTP_HOST' ) . APPLICATION_ROOT.'/scripts/library/fckeditor/');
}

view de ise şu şekilde kullanıma hazır ;

window.onload = function()
{
if(document.getElementById('description')) {
var oFCKeditor = new FCKeditor('description') ;
oFCKeditor.BasePath = "fckeditorPath?>" ;
oFCKeditor.Height = 450;
oFCKeditor.Width = 700;
oFCKeditor.ReplaceTextarea() ;
}
}


config.php dosyasına ( public\scripts\library\fckeditor\editor\filemanager\connectors\php\config.php )
Aşağıdaki satırları ekleyin.

require_once 'Zend/Auth.php';
$isAuth = Zend_Auth::getInstance ()->hasIdentity ();

if( !isset($isAuth) || $isAuth == false ) {
return false;
}

Böylece sisteme login olan kişi sadece dosya yükleyebilecek. Yoksa fck nin yolunu bilen herkes bu işlemi yapabilirdi.

Ayrıca şu kodlarda yolları ayarlamada işinizi görecektir.


defined ( 'APPLICATION_ROOT' )
|| define ( 'APPLICATION_ROOT', substr ( $_SERVER ['PHP_SELF'], 0, strpos ( $_SERVER ['PHP_SELF'], '/scripts/library/fckeditor/editor/filemanager/connectors/php/connector.php' ) ) );

// Path to user files relative to the document root.
$Config['UserFilesPath'] = APPLICATION_ROOT. '/uploads/' ;

// Fill the following value it you prefer to specify the absolute path for the
// user files directory. Useful if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
$Config['UserFilesAbsolutePath'] = $_SERVER ['DOCUMENT_ROOT'] .'/'. APPLICATION_ROOT. '/uploads/';


Not: Yukardaki kodların tam düzgün çalışması için sessionun kaydediliği yerin varsayılan yer olması gerekiyor. Bu durumda

Zend_Session::start ( array ('save_path' => APPLICATION_PATH . '/../tmp/session' ) );


Gibi bir kod çalıştırırsanız aynısını fckeditor deki configdede yapmalısınız.
Varsayılan ;


Zend_Session::start();