MySQL COALESCE
Coalesce fonksiyonu, değeri boş olan bir alanın değerinin boş değilde fonksiyonda parametre olarak verilen değeri döndürmesini sağlar.
Örneğin user diye bir tablomuz olsun ve bu tablonun alanlarıda ad, soyad, tel, sifre olsun.Ancak bütün kullanıcıların tel numarası olmasın.
Select ad,soyad,COALESCE(‘Telefonu Yok’,tel),sifre From user;
diye bir sorgu yaptığımızda tel numarası olmayan kullanıcılar için ‘Telefonu Yok’ ibaresi çıkar.
XAMPP Virtual Host Ayarları – Windows
Xampp paketi ile kendi bilgisayarımda php-mysql uygularımı çalıştırırken artık localhost yazmaktan gına geldi.Bunun üzerine küçük bir araştırma yaptım ve sanal domainler olusturarak istersem projemin domain adıyla bile kendi bilgisarımda sanal domain adları yaratabildiğimi gördüm.
Şimdi gelelim bu işin nasıl yapıldığına.
1.Bilgisayarınızda xampp ı kurduğunuz dizinde
X:\\apache\conf\extra\httpd-vhosts.conf
dosyasını herhangi bir text editörü ile açıyoruz.
2.Açtığımız httpd-vhosts.conf dosyasında
# You may use the command line option ‘-S’ to verify your virtual host
# configuration.
satırlarından sonra biir satır boşluk bırakıp başlıyoruz yazmaya.
<Directory X:/vhosts>
Order Deny,Allow
Allow from all
</Directory>
3.Yukarıdaki satırları yazdıktan sonra httpd-vhosts.conf dosyamızın en sonuna geliyor ve başlıyoruz yeniden yazmaya.
<VirtualHost 127.0.0.2:80>
DocumentRoot “H:/vhosts/hayatgarip.com”
ServerName hayatgarip.com
</VirtualHost>
httpd-vhosts.conf dosyasıyla işimiz bitti.Kaydedip kapatabiliriz.
4.Şimdi sıra geldi Windows u ayarlamaya.Bunun için ilk önce klasör ayarlarında gizli dosya ve klasörler i göster le birlikte korunan sistem dosyalarına da göster diyoruz.
5.Yukarıdaki işlemi tamamladıktan sonra c:/windows/system32/drivers/etc klasörünün içine giriyoruz.
6.Bu dizinde host dosyasını görüyor olmalıyız.Dosyanın üzerine sağ tıklayıp salt okunur özelliğini kaldırmalıyız.
7.Dosyayı acıp en sonuna temiz bir satır açıp
127.0.0.2 hayatgarip.com
yazıp dosyamızı kaydedip çıkıyoruz.
8.Kaydettikten sonra dosyamızı yeniden salt okunur hale getiriyoruz.Güvenlik için.
9.XAMPP kontrol panelinde Apache serverı yeniden başlatıyoruz.
10.Hepsi bu kadar.Artık kendi bilgisayarınızda herhangi bir browser ı açıp adres satırına
http://127.0.0.2 veya http://hayatgarip.com yazdınız yeterli.
Windows7 32 bit 4gb Sorunu
Windows 7 nin 32 bit versiyonunda bilgisayarımda 4 gb ram takılı olmasına rağmen sistem özellikleri sayfasında 3 gb ulaşılabilir ram olduğunu görüyorum.
İnternette yaptığım araştırmalar sonucu bunun 32 bit işletim sisteminden kaynaklandığını ve ancak 64 bit işletim sistemi yüklersem 4 gb ram kullanabileceğimi gördüm.
Ayrıca bazı forumlarda ve bloglarla 3 gb ram gözükme sorununu registry de yapılacak bi değişiklikle düzeltilebileceği yazılmış.Bunun sadece bir göz boyama tekniği olduğunu söylemeden geçemeyeceğim.Sisteminiz yine 3 gb çalışacak ama siz bi sorun yokmuş gibi sistem özellikleri penceresinde 4 gb ram göreceksiniz.
MySql’de root kullanıcısına şifre koyma veya değiştirme
Xampp veya diğer hazır kurulum paketleri ile yapılan Mysql yüklemelerinde root kullanıcısının şifresi default olarak boş geliyor.Bunun oluşturduğu güvenlik açıklarını gidermek için root kullanıcısına şifre koyulmalıdır.İşlem sırası aşağıdaki gibidir.
1-Komut satırı ile ilk önce mysql’in yüklendiği klasöre geliyoruz ve bin klasörünün içine giriyoruz.
2- mysql – u root – p
diyoruz.Bize şifre soracak ancak şifremiz olmadığı için enter diyoruz ve mysql komut satırı açılıyor.
3-use mysql diyerdatabase olarak mysql e geçiyoruz.kullanıcı tablolarımızın olduğu database burası.
4-update user set password=PASSWORD(“NEWPASSWORD”) where User=’root’; diyerek yeni şifremizi giriyoruz.
5-flush privileges; diyerekte kullanıcı izinlerimizi ayarladıktan sonra komut satırımızı kapatabiliriz.
Hepsi bu kadar.
PHP & MySQL Resim Yükleme ve Yeniden Boyutlandırma
PHP ile MySQL kullanarak oluşturduğum, resimleri dosyaya yazarken resimlerin isimlerini veritabanına kaydeden bi script.Script ‘de ayrıca resimler yeniden boyutlandırılıp küçük halleride hem dosyaya hemde veritabanına yazılmakta.
İlk önce bilgisayarımızdan resimleri alacağımız formu oluşturuyoruz.Sayfanın adı gonder.php ‘ dir.
gonder.php
<form action=”resim_isle.php” enctype=”multipart/form-data” method=”post”>Yeni Resim Ekle
<input name=”kull_dosya” type=”file” />
<input type=”submit” value=”Gönder” />
</form>
Formumuzu oluşturduktan sonra sıra geldi asıl işlemi gerçekleştiren resim_isle.php sayfamıza;
resim_isle.php
$resim_kaynagi = $_FILES[“kull_dosya”][“tmp_name”];
$resim_ismi = $_FILES[“kull_dosya”][“name”];
$resim_turu = $_FILES[“kull_dosya”][“type”];
$resim_boyutu = $_FILES[“kull_dosya”][“size”];
//resim ismini değiştiriyoruz çünkü aynı isimle başka bir dosya yüklenebilir.Bu durumda eski dosyamızı kaybederiz.
$resim_uzantisi = substr($resim_ismi, -4);
$rasgeleisim = substr(md5(uniqid(rand())), 0, 12);
$resim_yeniismi = $rasgeleisim.$resim_uzantisi ;
//gonderdiğimiz dosyanın bilgilerini ekrana yazıyoruz
echo “Gönderdiğiniz Resmin Adı: : “.$resim_ismi.””;
echo “Gönderdiğiniz Resmin Yeni Adı : “.$resim_yeniismi.””;
echo “Gönderdiğiniz Resmin Boyutu : “.$resim_boyutu.””;
//dosyayı daha once sunucuda manuel olarak olusturduğumuz gonderilen_resimler adlı klasöre gönderiyoruz.
$dosya_hedef = “gonderilen_resimler”;
$dosya_yukle = move_uploaded_file($resim_kaynagi, $dosya_hedef.’/’.$resim_yeniismi);
//Yüklediğimiz resmin küçük halini oluşturoruz.
$kucuk_resim = imagecreatefromjpeg($dosya_hedef.’/’.$resim_yeniismi);
$boyut = getimagesize($dosya_hedef.’/’.$resim_yeniismi);
$resimorani=112/$boyut[0];
$yeniyukseklik = $resimorani*$boyut[1];
$yeniresim = imagecreatetruecolor(“112”,$yeniyukseklik);
imagecopyresampled($yeniresim, $kucuk_resim, 0, 0, 0, 0, “112”, $yeniyukseklik, $boyut[0], $boyut[1]);
$hedefdosya = $dosya_hedef.”/”.$rasgeleisim.”_kucuk”.$resim_uzantisi;
imagejpeg($yeniresim,$hedefdosya,100);
$dosya_yukle2 = move_uploaded_file($resim_kaynagi, $hedefdosya);
$kucuk_yeniisim = $rasgeleisim.”_kucuk”.$resim_uzantisi ;
//dosyanın yüklenip yüklenmediğini kontrol ediyoruz.
echo ”<pre> ”;
if ($dosya_yukle){
echo “Dosya yüklendi…”;
echo “<img src='”.$dosya_hedef.”/”.$kucuk_yeniisim.”‘><br>”;
}
else{
echo “Dosya Kaydedilemedi. Tekrar Deneyiniz…
“;
}
$ekleme_tarihi = date(“Y-m-d H:i:s”);
//Klasöre kaydettiğimiz dosyanın ismini ve tarih bilgisini veritabanına ekliyoruz.
mysql_select_db($db, $resim_sql);
$veri_ekle = “insert into resimler (r_adi, r_adi_minik, ekleme_tarihi) values (‘$resim_yeniismi’,’$kucuk_yeniisim’, ‘$ekleme_tarihi’)”;
if (mysql_query(“$veri_ekle”)){
echo “Resim Bilgisi Veri Tabanına BaÅŸarıyla Kaydedildi”;
}
else
{
echo mysql_error();
}
?>
Evet gönderme işlemini tamamladık.Şimdi MySql tablomuzu oluşralım.
resimler databasenin sql ‘i;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ “resimler” /*!40100 DEFAULT CHARACTER SET utf8 */;
USE “resimler”;
#
# Table structure for table ‘resimler’
#
CREATE TABLE /*!32312 IF NOT EXISTS*/ “resimler” (
“no” int(11) NOT NULL AUTO_INCREMENT,
“r_adi” varchar(50) COLLATE utf8_unicode_ci NOT NULL,
“r_adi_minik” varchar(50) COLLATE utf8_unicode_ci NOT NULL,
“ekleme_tarihi” datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
PRIMARY KEY (“no”)
) AUTO_INCREMENT=10;
mysql’e kullanıcı ekleme ve kullanıcı izinleri
– mysql’e root ile bağlanılır.
$ mysql -u root -p
mysql>
– daha sonra bir veritabanı oluşturulur
mysql> create database denemedb;
– ve kullanıcı oluşturma ve veritabanıyla ilişkilendirme işlemi aynı anda gerçekleştirilir.
(bu örnekte kullanıcının ilgili veritabanı üzerindeki erişimi “tam”dır. Bazı durumlarda sadece okuma, sadece yazma gibi haklar tanımlanabilir)
mysql> grant all on denemedb.* to usrname@localhost identified by ‘password’;
mysql> flush privileges;
– sadece okuma hakları vermek istiyorsanız.
mysql> grant select on denemedb.* to usrname@localhost identified by ‘password’;
mysql> flush privileges;
– kullanıcı mevcutsa;
mysql> grant all on denemedb.* to username@localhost;
mysql> flush privileges;
Ubuntu’ ya LastFm yükleme
Ubuntu ‘ da LastFm dinleyebilmek için LastFm’in .deb paketini yuklemek gerekmektedir.Buradan LastFm in .deb paketleri ile ilerlemelerini görebilir ve yükleme için geken komutları alabiliriz.
İlk önce Ubuntu’ da GPG keyi guncellemeliyiz:
Konsol u açarak;
wget -q http://apt.last.fm/last.fm.repo.gpg -O- | sudo apt-key add-
Sonra
apt-get update, and apt-get install lastfm
komutlarıyla LasfFm i yuklemiş oluruz.
Ubuntu’da Apache Access Log Dosyası
Ubuntu’ da apache web serverın hata ve erişim logları default olarak ;
/var/log/apache2
dizininde bulunmaktadır.
Open SSH
ssh serverı başlatmak için;
$ sudo /etc/init.d/ssh start
ssh serverı durdurmak için;
$ sudo /etc/init.d/ssh stop
ssh serverı yeniden başlatmak için;
$ sudo /etc/init.d/ssh restart
Ubuntu Apache2 Web Server
Apache HTTP Server is a free software/open source web server for Unix-like systems, Microsoft Windows, Novell NetWare and other platforms. Apache is notable for playing a key role in the initial growth of the World Wide Web,and continues to be the most popular web server in use, serving as the de facto reference platform against which other web serversare designed and judged.
Apache features configurable error messages, DBMS-based authentication databases, and content negotiation. It is also supported by several graphical user interfaces (GUIs) which permit easier, more intuitive configuration of the server.
Install apache2 in Ubuntu server
sudo apt-get install apache2 apache2-common apache2-mpm-prefork apache2-utils ssl-cert
This will complete the installation of apache2 web server and now you need to know where the configuration files and document root for your apache web server.
By default all your configuration files are located at /etc/apache2
Default document root for apache2 is /var/www.If you want to change the default document root you need to edit the /etc/apache2/sites-available/default file and look for this line “DocumentRoot /var/www/” here you can change whereever you want to change.For example if you want to change /home/wwww the above line looks like this “DocumentRoot/home/www/”.
The main configuration file located at /etc/apache2/apche2.conf.
Bydefault Apache2 to Listen on port 80. If this is not desired, please edit /etc/apache2/ports.conf and /etc/apache2/sites-available as desired.after changing you need restart apache server.
For example if you want to change your apache webserver port to 78 you need to edit /etc/apache2/ports.conf
sudo gedit /etc/apache2/ports.conf
Look for the following line
Listen 80
Replace with the following line
Listen 78
Save the edited file
sudo /etc/init.d/apache2 restart
Installing php and cgi support for apache2 in Ubuntu
you need to have universe source list in your sources.list file
sudo apt-get install libapache2-mod-php4 php4-cli php4-common php4-cgi
Next we edit /etc/apache2/apache2.conf file and check the index files are correct
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
If you want to enable some Apache modules (SSL, rewrite, suexec, and include)
sudo a2enmod ssl
sudo a2enmod rewrite
sudo a2enmod suexec
sudo a2enmod include
Restart Apache to make sure all is well.
sudo /etc/init.d/apache2 restart
Test your apache Server
You can access you apache using http://yourserverip/apache2-default/ it should appear the following screen
Test apache with PHP
To test if php4 installed correctly
sudo gedit /var/www/test.php
Insert the following line into the new file
Save this file
Now access this page http://yourserverip/test.php you should see the following screen
my last default and ports.conf files are like;
default
ServerAdmin webmaster@localhost
DocumentRoot /home/gurhan/www/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ “/usr/share/doc/”
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
———————————————————————————————————————————————————————————–
ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
#/etc/apache2/sites-enabled/000-default
NameVirtualHost 192.168.1.10:78
Listen 78
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443