Windows Server Arayüz Giderse Geri Getirme
Windows bir sunucunuz var ve ayarları ile oynarken ( Genellikle server ayarları ile oynamanızı tavisye etmem. Fakat en iyi tecrübe şeklidir 🙂 ) yeniden başlatma isteği gelir ve ne olduğunu okumadan EVET’e basarsanız neler mi olabilir. Birçok şey olabilir. Gün içerisinde yaşadığım bir olayı sizlerle paylaşmak istiyorum.
Kenarda köşede kalmış sadece bazı işlemleri yapmak için kullandığım bir Windows sunucu vardı. RDP ( Remote Desktop Protocol | Uzak Masa Üstü Bağlantısı ) olarak kullanıyordum. Üzerinde test için IIS ( Internet Information Services ) kuruluydu. Windows özelliklerinden IIS’i kaldırırken çok fazla dikkat etmeden kaldır sihirbazını kullanarak kaldırığımda sistem benden yeniden başlatma istedi. Ne mi oldu ? Aşağıdaki gibi birşey oldu.
Okumaya devam et “Windows Server Arayüz Giderse Geri Getirme”
PHP CodeIgniter İle İmage Cache Yapımı
Hemen hemen herkesin ihtiyacıdır diye düşünüyorum. İmage Cache. Genellikle bir tane PROXY URL oluşturup dosyaya ait cache hali varsa onu çekeriz yoksa cache’leyip cache halini çekeriz. Fakat bu durum sistemde dosyalarınızın gelmesini yavaşlatabilir.
Hali hazırsa orjinal dosyalarınızın bulunduğu bir klasör altında image dosyalarınız var ise aşağıdaki paylaşmış olduğum örnekteki gibi bir yöntem ile dosyaların boyutlandırılmasını orantılı bir şekilde yapabilirsiniz.
Bir önceki yazımda “get_dir_contents” fonksiyonunu paylaşmıştım. Bir dizin altındaki tüm dosyaları getirmek için kullanıyoruz.
$list = get_dir_contents( '/var/www/html/cron/orj_images' ); // hangi boyutlarda oluşturacağımızı belirtiyoruz. $arr[] = array( 32, 32 ); $arr[] = array( 50, 50 ); $arr[] = array( 64, 64 ); $arr[] = array( 70, 70 ); $arr[] = array( 80, 80 ); $arr[] = array( 90, 90 ); $arr[] = array( 100, 100 ); $arr[] = array( 120, 120 ); $arr[] = array( 150, 150 ); $arr[] = array( 160, 200 ); $arr[] = array( 200, 200 ); $arr[] = array( 300, 300 ); $arr[] = array( 200, 256 ); $arr[] = array( 256, 256 ); $arr[] = array( 500, 500 ); $arr[] = array( 512, 512 ); $arr[] = array( 640, 640 ); $arr[] = array( 1024, 1024 ); $i = 0; // listemizde döngüye girip image_lib kütüphanesi ile işlemleri başlatıyoruz. foreach( $list as $key => $value ) { if( !file_exists( $value ) ) continue; if( is_dir( $value ) ) continue; $this->load->library( 'image_lib' ); // her bir dosya için boyutlandırma dizisine göre ayrı ayrı işlem yaptırıyoruz. foreach ( $arr as $k => $v ) { $ext = pathinfo( $value ); $new_file = $ext[ 'dirname' ].'/'.$ext[ 'filename' ].'-'.$v[ 0 ].'x'.$v[ 1 ].'.'.$ext[ 'extension' ]; $old_file = str_replace( '/var/www/html/cron/orj_images', '/var/www/html/cron/chache_images', $new_file ); if( file_exists( $old_file ) ) continue; // kaynak dosyamnız $value değişkenindedir. $config = array( 'image_library' => 'gd2', 'source_image' => $value, 'new_image' => $old_file, 'maintain_ratio' => TRUE, 'create_thumb' => TRUE, 'thumb_marker' => '', 'width' => $v[ 0 ], 'height' => $v[ 1 ] ); $this->image_lib->initialize( $config ); $this->image_lib->resize(); $this->image_lib->clear(); echo $old_file."\n"; } }
Yeni dosya ekleme işlemlerinde upload sırasında bu boyutlar otomatik olarak cachleniyor. Sistemde orjinal dosya direkt olarak kullanılmıyor.
Bu kod parçasını CRON üzerinden bağladığımız için dosyaları mümkün olduğunda güncel kalmasını sağlıyoruz.
Not : “Yapı Codeigniter framework’ü üzerinden örneklendirilmiştir. Sisteminize uygulamadan önce test etmenizi tavsiye ederim.”
Centos 7 Üzerinde Vesta Panel PHP 7 Upgrade Etme
Projelerimizin FTP / HOST hesaplarını daha rahat yönebilmek amacıyla VESTA Panel kullanmaktayız. Vesta gayet hoş, basit, hafif ve çok fazla uğraştırmadan sunucu üzerine kurulum yapıp kullanabilirsiniz.
Vesta Panel kurulumu için — > https://vestacp.com/install/
İhtiyaçlarınıza göre vesta seçeneklerini seçerek kurulumu Console üzerinden yapabilirsiniz.
Şuanda Vesta kurulumu yapıldığında PHP sürümü 5.6 olarak gelmekte. Bu sürümün desteği bittiği için ve birçok hazır framework sitelerde hata göstermektedir ( WordPress, opencart vs. ) . Yakında bunu düzeltirler sanırım. PHP 7 versiyonu daha sağlıklı, hızlı ve stabil çalışmasından dolayı genel sistemlerimizi de güncellemekteyiz.
Güncelleme işlemi yaparken aşağıdaki adımları sırayla uygulayabilirsiniz.
- wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
- wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
- rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm
- yum install yum-utils
- yum-config-manager –enable remi-php72
- yum-config-manager –disable remi-php56
- yum-config-manager –disable remi-php70
- yum-config-manager –disable remi-php71
- yum update -y
- php -v
Yukarıdaki işlemleri CLI / Console üzerinden yapmanız gerekir.
Hatasız update ler dilerim. 🙂
Linux WGET ile Dosya Çekme
Sistem yedeklemelerinde olduğum NAS ( Network Area Stroage ) mevcuttur. Sistem tarafında, hosting, sunucu gibi yazılım işleri ile koşturan hemen hemen herkes NAS kullanmaktadır. Farklı yedekleme sistemleri de mevcuttur fakat NAS güzeldir. 🙂
NAS üzerinde dosyaları çekmek istediğimize problemler yaşıyorduk. Çünkü bazı klasörlerin içerisinde dosya sayıları fazla olduğu için açılmıyor veya kullanmış olduğumuz FTP programları hataya düşüyordu.
Yapılması gereken ise dosyaları belirli aralıklarla çekip local tarafa aktarmaktı. İnternet üzerinde araştırmalar yaparken stackoverflow’da bulduğum yöntem bizi kurtardı. Biz dosya halinde değil KLASÖR halinde çekmek istediğimizden yöntem hızı gibi yetişti.
Detaya girmeden komutu paylaşacağım. Komut;
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
Linux üzerinde hangi dizindeyseniz wget komutu oraya çeker. Kullanım yukarıdaki gibidir.
–cut-dirs=5 –> bu her seferinde 5 işlem yap diyebilmek için. Böylece listeleme ile uğraşmadığından FTP programları gibi patlamıyoruz.
Kaynak yazıya buradan ulaşabilirsiniz..
Ara ara dediğim gibi başka canlar yanmasın.. 🙂
PHP SSH2 Kütüphanesi
PHP ile linux server tarafında başka bir linux server a bağlanıp işlem yapmanız gerekiyor ise SSH2 eklentisi tam olarak size göre. Birçok servisimizde ve projemizde kullanmış olduğumuz SSH2 eklentisine ufak bir kütüphane yazdım.
SSH2 kütüphanesini kullanabilmek için kullanmış olduğunuz Linux dağıtımına göre kütüphaneyi kurmanız gerekiyor. Centos 7 için kullanmış olduğum kaynak : https://www.adveyer.com/blog/centos-7-ssh2-php-extension-kurulumu/ Okumaya devam et “PHP SSH2 Kütüphanesi”
Centos 7 Güncelleme Sırasında İstenmeyen Güncellemeler
Konu başlığı biraz yanlış olmuş olabilir. Şöyle anlatayım; Sanallaştırma ile Linux dağıtımlarından Centos 7 kullanıyoruz. Sunucuya güncelleme geldiği için güncelleyelim dedik fakat öncesinde vmware üzerinden snapshot aldığımız iyi olmuş. Çünkü centos üzerinde freeradius 3.0.4 kullanıyorduk. Repo olarak yüklenmışti. Güncelleme sonrası tabi freeradius da güncellendi. Ne mi oldu ? Neler olmadı ki.. Özelleştirilmiş freeradiusumuz patladı. Patladığı gibi adamlar o kadar güzel değişiklikler yapmışlar ki anlatamam. Sizinde anlayacağınız gibi dağıldık. Neyse ki yedeğimize yani snapshot yedeğimize güvenip hemen geri döndük. Okumaya devam et “Centos 7 Güncelleme Sırasında İstenmeyen Güncellemeler”
Windows ile Web Yedeklemesi Yapmak ve FTP
Bir önceki yazımda Centos Linux MYSQL ve Web Dosyaları Yedekleme işlemlerinden örnek vermiştim. Bu yazımda ise Windows bir sunucu üzerinde web dosyalarımızı nasıl yedekleriz ve FTP olarak farklı bir yedekleme alanına taşımayı örnekleyeceğim. Bu sefer MYSQL yok fakat siz yaparsınız bence 🙂
Yedekleme için önce Windows daki Winrar uygulamasını kullanıp dosyalarımızı sıkıştırıyoruz. Sonrasında ise NCFTP eklentisiyle beraber dosyalarımızı FTP alanımıza taşıyoruz. Windows daki FTP de problem yaşadığım için NCFTP kullanıyorum. Siz farklı FTP çözümleri de kullanabilirsiniz.
@echo off set path="C:\Program Files\WinRAR\";%path% # rar.exe yi çalıştırıp yedekleme yapacağımız dosyalarımızı sıkıştırıyoruz. rar.exe a -r C:\BACKUP\YEDEK-%DATE%.rar C:\wwwroot # İsterseniz sıkıştırma sırasında istenmeyen dosya uzantılarını belirtebilirsiniz. # rar.exe a -r -x*.jpg -x*.jpeg -x*.pdf -x*.png -x*.log -x*.rar -x*.ttf -x*.otf -x*.dat C:\BACKUP\YEDEK-%DATE%.rar C:\wwwroot # NcFTP programı ile birlikte dosyalarımızı FTP yedekleme alanımıza yüklüyoruz.. ncftpput -C -u FTP_KULLANICI_ADI -p FTP_KULLANICI_SIFRESI FTP_ADRESI C:\BACKUP\YEDEK-%DATE%.rar /FTP_DOSYA_YOLU/YEDEK-%DATE%.rar # Yedek dosyasını siliyoruz.. Bu isteğe bağlıdır. İsterseniz silmeyebilirsiniz. DEL /F /S /Q /AA C:\BACKUP\YEDEK-%DATE%.rar
Yukarıdaki kod parçasını Windows üzerinde .bat olarak kaydetmeniz gerekir. İsterseniz daha farklı yöntemler kullanıp yedekleme yaptırabilirsiniz. Örnek olarak C#.NET biliyorsanız küçük bir .exe ile de bu işi çözümleyebilirsiniz. Tabi bir de bu küçük kod parçalarını sürekli olarak çalıştırmanız gerekli. Bazı geliştiriciler gördüm her gün kendileri çift tık yapıp yedek almasını bekleyenler var. Fakat önerim Windows Zamanlanmış Görevleri ( Task Scheduler ) kullanmanız daha sağlıklı olacaktır.
Sıkıştırma yaparken neden istenmeyen dosyaları alalım gibi bir düşünce oluşuyorsa kafanız da şöyle bir örnek verebilirim.
Bir projemizde canlı sistem üzerinde geliştirme yaparken yazılım tarafının yedeklerini manuel olarak almak yerine şöyle bir yol izledik. Her gün .jpg, .jpeg, .pdf, .png, .log vs. dosyalarını yedeklemek yerine ( yedekleme diskininin kapasitesini çok fazla kullanıyordu ) bu dosyalar haricindeki dosyaları yedekledik. Bunu isterseniz günlükten saatliğe çekebilirsiniz.
Sonrasında her hafta sonu da haftalık tam yedek yani bütün dosyaları sıkıştırıp yedekleme işlemi yaptık. Böylece günlük yedeklerin boyutları ile haftalık yedeklerin boyutları birbirinden farklı oldu. Yedekleme diskimiz ne çok fazla tuttu nede zaman kaybı yaşadık.
.htaccess İle Karakter Boyutuna Göre Yönlendirme
PHP kullanıyorsanız ve freamework yapılarına aşına iseniz URL gizleme, SEO URL vb. yapılarda .htaccess can kurtarıcıdır. Aynı zamanda .htaccess ile üst düzey olmasa da güvenlik işlemlerinizi sağlayabilirsiniz.
Bu yazıda .htaccess ile URL / karakter uzunluğuna göre yönlendirme nasıl yapılır örnekleyeceğim. Okumaya devam et “.htaccess İle Karakter Boyutuna Göre Yönlendirme”
CloudFlare’dan Gelen IP leri Görmek
Güvenlik amaçlı olarak DNS proxy serverlar kullanılmaktadır. Populer olanlardan bir tanesi ise CloudFlare.
CloudFlare veya benzer bir sistem kullanıyorsanız PROXY sebebi ile gelen IP leri göremeyebilirsiniz. Kullanılan sistem ile sizin sunucunuz arasındaki PROXY IP lerini görürsünüz. Gerçek kullanıcı / ziyaretçi IP lerini göremeyebilirsiniz. Kullanıcı IP ( her ne kadar gerçek orası tartışılır 🙂 ) bilgisini PHP üzerinden header / server bilgisi ile aşağıda paylaştığım kod parçacığı ile alabilirsiniz. Okumaya devam et “CloudFlare’dan Gelen IP leri Görmek”