iis 7.5 de http/https geçisinde session sorunu
iis 7.x de http ‘ den https ‘ e geçişte atadığınız sessionlar gelen ön ayarlar da düşer. Http den https ‘ e geçerken sessionlarınızın düşmesini istemiyorsanız aşağıdaki adımları uygulayın.
iis 7.x de http ‘ den https ‘ e geçişte atadığınız sessionlar gelen ön ayarlar da düşer. Http den https ‘ e geçerken sessionlarınızın düşmesini istemiyorsanız aşağıdaki adımları uygulayın.
Windows 2008 den önceki sunucu işletim sistemlerinde interface ‘ e eklediğiniz ilk ipden internete çıkardı. Windows 2008 de bunu makinedeki en küçük ipden internete çıkacak şekilde değiştirdiler. Detay için http://support.microsoft.com/kb/2386184/ adresini inceleye bilirsiniz.
Çözüm olarak ip adresini eklerken, ip adresini kaynak ipisi olarak kullanma şeklinde işaretlemektir.
Kaynak ipisi olarak bu ipadresini kullanma bayrağı ile eklemek için
Netsh int ipv4 add address skipassource=true
Örnek olarak
netsh int ipv4 add address "Local Area Connection" 1.1.1.1 255.255.255.0 skipassource=true
İşaretli ipileri görmek için
Netsh int ipv4 show ipaddresses level=verbose
(24)Too many open files: apr_socket_accept: hatasının çözümü
apache2 servis daemon acıyoruz;
debian tabanlı linux ler için
nano /etc/init.d/apache2
redhat tabanlı linuxler için
nano /etc/init.d/httpd
sayfanın en üstüne
ulimit -n 65535
yazıp kaydediyoruz. Apache yi restart ettiğiniz zaman apache servisiniz normale dönecektir.
debian tabanlı linux ler için
/etc/init.d/apache2 restart
redhat tabanlı linuxler için
/etc/init.d/httpd restart
php dosylarındaki mysql server ip adresini değiştirmek için kullanmıştım.
import fileinput, string, sys,os
Maindir = "/var/vhost"
OldIP = "123123"
NewIP = "345345"
LogFilePath = "test.log"
def replacemachine(fileName):
##################################################################
file = open(fileName, "r") #Opens the file in read-mode
text = file.read() #Reads the file and assigns the value to a variable
file.close() #Closes the file (read session)
file = open(fileName, "w") #Opens the file again, this time in write-mode
file.write(text.replace(OldIP, NewIP)) #replaces all instances of our keyword
# and writes the whole output when done, wiping over the old contents of the file
file.close() #Closes the file (write session)
logactions(fileName)
##################################################################
def listdir(ParentPath):
for f in os.listdir(ParentPath):
if os.path.isfile(os.path.join(ParentPath,f)):
if f.rfind(".php") > 0:
print("file being replaced:",os.path.join(ParentPath,f))
replacemachine(os.path.join(ParentPath,f))
print("file replaced:",os.path.join(ParentPath,f))
else:
#print("directory:",f)
listdir(os.path.join(ParentPath,f))
def logactions(FileName):
LogStr = FileName + " replace edildi\n"
LogFile = open(LogFilePath,"a")
LogFile.write(LogStr)
if __name__ == "__main__":
listdir(Maindir)
PHP 5 ile gelen SOAP extension yerine NuSOAP ile webservis oluşturmanın getirdiği en büyük kolaylık, NuSOAP’ın kendisinin wsdl dosyasını otomatik oluşturması.
Bir Webservis en basit şekilde şu şekilde oluşturulabilir;
include('nusoap.php'); // soap kütüphanesini include ettik
$server = new soap_server();
$server->service->charencoding = 'UTF-8'; // türkçe karakterlerde sorun yasamamak icin karakter seti utf-8 yapıyoruz
$server->configureWSDL('Servis','urn:Servis');
// basit bir fonksiyon yazarsak
function SoapDeneme(){
return array('ilk soap servisim');
}
// yazilan fonksiyonu servise register ediyoruz
$server->register("SoapDeneme",array(),array('return' => 'xsd:string'),'urn:Servis','urn:Servis#SoapDeneme','rpc','encoded');
// servisin gelen datayi islemesi icin servisi baslatiyoruz
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
exit;
tabiki yukarıdaki benzeri bir servis hiçbir işinize yaramayacaktır; kendi objeleriniz kendi veri tiplerinizi tanımlamanız gerekecektir.
Kendi veri tipinizi (objenizi) tanımlamak için aşağıdaki addComplexType methodunu kullanmanız gerekiyor.
$server->wsdl->addComplexType('KendiTipim','complexType','struct','all','',
array(
'TipStr' => array('name' => 'TipStr','type' => 'xsd:string'),
'TipDbl' => array('name' => 'TipDbl','type' => 'xsd:double')
));
şeklinde kendi veri tipinizi tanımladıktan sonra bu veritipini bir methoddan döndürmek için ilk önce fonksiyonu aşağıdakine benzer bir şekle getirmeniz gerekiyor;
function SoapDeneme(){
return array('TipStr' => 'methoddan donen string','TipDbl' => (double) 1.10);
}
ardından register ettiğiniz methodu aşağıdaki gibi güncellemek gerekir;
$server->register("SoapDeneme",array(),array('return' => 'tns:KendiTipim'),'urn:Servis','urn:Servis#SoapDeneme','rpc','encoded');
Yukarıdan anlaşılacağı gibi register methodunun 3. parametresi methodun cevap olarak döndüreceği tipi belirliyor.
Kodlanacak serviste tabiki sadece veri döndüren fonksiyonlar değil, veri alan ve bu verilere göre işlem yapan fonksiyonlar da olacaktır; serviste clienttan veri almak için register methodunun ikinci parametresi kullanılır. aşağıdaki fonksiyon client tan ismini alıp Merhaba [Isim] şeklinde cevap döndürür.
function SoapDeneme2($isim){
return array('Merhaba '.$isim);
}
$server->register("SoapDeneme2",array('isim' => 'xsd:string'),array('return' => 'xsd:string'),'urn:Servis','urn:Servis#SoapDeneme2','rpc','encoded');
Diyelim ki netscalerinizin sata diski bozuldu yeni bir disk taktınız. Taktığınız sistemin netscalerın anlayacağı şekle çevirmek çevirmek için
netscaler ‘ a login olun
Login olduktan sonra shell ‘ e düşün
> shell
Copyright (c) 1992-2008 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
/flash/.recovery klasörüne giriyoruz
[email protected] cd /flash/.recovery
/flash/.recovery klasörüne içine bakalım
[email protected] /flash/.recovery# ls -la
total 66572
drwxrwxrwx 5 root wheel 512 Jun 4 2007 .
drwxr-xr-x 6 root wheel 512 Nov 18 20:33 ..
drwxrwxrwx 2 root wheel 512 May 1 2007 Xad2
drwxrwxrwx 2 root wheel 512 May 1 2007 Xflash
drwxrwxrwx 2 root wheel 512 May 1 2007 boot
-rw-rw-rw- 1 root wheel 68088012 May 1 2007 hd.recovery.tgz
-rw-rw-rw- 1 root wheel 4380 May 1 2007 rc.flash
-rw-rw-rw- 1 root wheel 3055 May 1 2007 rc.manufacture
-rw-rw-rw- 1 root wheel 6143 May 1 2007 rc.recovery
-rw-r--r-- 1 root wheel 1122 Nov 18 20:31 recovery.log
Manufacturing ad2 for 1200210 started at Mon Jun 4 17:05:32 GMT 2007
rc.recovery dosyasını çalışıtıyoruz.
[email protected] /flash/.recovery# sh rc.recovery
Recovery requested for disk ad2, system 940030
Attention! Attempt to 'recover' mounted disk ad2!
Please unmount the disk manually and then type 'exit'!
Filesystem Size Used Avail Capacity Mounted on
/dev/md0c 155M 145M 6.3M 96% /
devfs 1.0K 1.0K 0B 100% /dev
procfs 4.0K 4.0K 0B 100% /proc
/dev/ad0s1a 226M 192M 16M 92% /flash
/dev/ad2s1e 66G 749M 60G 1% /var
Unmount ad2>
ad2 diskini seçtiğimizde taktığımız diske formatlayıp eksik dosyaları atacaktır.
Recovery ad2 for 1200210 started at Mon Jun 4 17:05:32 GMT 2007
1+0 records in
1+0 records out
512 bytes transferred in 0.000106 secs (4825806 bytes/sec)
fdisk: WARNING line 2: number of cylinders (9964) may be out-of-range
(must be within 1-1024 for normal BIOS operation, unless the entire disk
is dedicated to FreeBSD)
New filesystems have been created
Using /flash/.recovery/hd.recovery.tgz for ad2s1e data recovery
/dev/ad2s1e 66G 68M 61G 0% /var
/dev/ad2s1a 1004M 126M 798M 14% /mnt
Recovery ad2 for 940030 started at Fri Nov 18 10:30:10 PST 2011
1+0 records in
1+0 records out
512 bytes transferred in 0.000431 secs (1187768 bytes/sec)
fdisk: WARNING line 2: number of cylinders (9964) may be out-of-range
(must be within 1-1024 for normal BIOS operation, unless the entire disk
is dedicated to FreeBSD)
New filesystems have been created
Using /flash/.recovery/hd.recovery.tgz for ad2s1e data recovery
/dev/ad2s1e 66G 69M 61G 0% /var
/dev/ad2s1a 1004M 128M 796M 14% /mnt
İlk önce issimizden ssl i .pfx olarak export ediyoruz. http://www.slproweb.com/products/Win32OpenSSL.html adresinden makinemize open ssl kuruyoruz.
Sertifikasiz bir şekilde .pem formatına dönüştürüyoruz.
openssl.exe pkcs12 -in publicAndprivate.pfx -nocerts -out privateKey.pem
sertifikayı alıyoru
openssl.exe pkcs12 -in publicAndprivate.pfx -clcerts -nokeys -out publicCert.pem
.pem dosyasını rsa ‘ ya çeviriyoruz ve şifreden kuruluyor.
openssl.exe rsa -in privateKey.pem -out private.pem
Linux de crontab ‘ ın servisi cronda iş varmı kontrolunu 1 dakika aralıkla yapmaktadır. Diyelim ki 1 dakikadan daha kısa sürede cron çalıştırmak istiyorsak bunu 2 tane yolu mevcuttur.
1. yol sleep ile crondaki işlemi uyutmak
*/1 * * * * /home/script
*/1 * * * * sleep 20 && /home/script
*/1 * * * * sleep 40 && /home/script
2. yol bash script yazmak.
#!/bin/bash
while true
do /home/script
sleep 20
done