Sıfırdan HTML Dersleri [Videolu]

Merhaba arkadaşlar, youtube kanalımda bir seriye başladım. Ve sıfırdan HTML dersleri paylaşıyorum. Html’i kullansakta ne kadar iyi bildiğimiz tartışılır, bu yüzden bilin ya da bilmeyin bu dersler mutlaka size bir şeyler katacaktır. Umarım yeni başlayanlar için faydalı, bilenler için ufuk açıcı dersler olur. Şimdiden hepinize iyi seyirler 🙂

Centos Üzerinde GoLang Kurulumu

Yavaş yavaş yeni dillere merak salarken, öğrendiğim bilgileri de makale olarak sitemde paylaşmaya karar verdim. Daha önce de bunu Angular JS için yapmıştım 🙂 GoLang’in ne olduğunu neden kullanmamız gerektiğini bir kenara bırakarak, önce Centos üzerinde nasıl kurarak ilk örneğimizi yaparız bunu göstermek istiyorum.

İlk olarak /tmp klasörüne geçiş yapalım.

cd /tmp

Daha sonra GoLang’i indirelim.

curl -LO https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz

GoLang’i /usr/local içine kuralım.

sudo tar -C /usr/local -xvzf go1.7.linux-amd64.tar.gz

Şimdi GoLang için ilgili klasörlerimizi oluşturalım.

mkdir -p ~/projects/{bin,pkg,src}

Dosyaları düzenlemek için nano kullanacağız, sunucunuzda yoksa aşağıdaki komut satırı ile kuralım;

yum install nano

Şimdi Go için Yolları Ayarlayalım. Önce /etc/profile.d/path.sh dosyasını açalım.

nano /etc/profile.d/path.sh

Bu dosya içine aşağıdaki kodları yazıp kaydedelim. Kaydetmek için Commant (CTRL) + x dedikten sonra y tuşuna basarak enter’layın.

export PATH=$PATH:/usr/local/go/bin

/root dizinindeki .bash_profile dosyasını açalım.

nano ~/.bash_profile

En alta şu kodları ekleyip kaydedelim.

export GOBIN="$HOME/projects/bin"
export GOPATH="$HOME/projects/src"

Değişiklikleri mevcut bash profilimize uygulamak için, profilleri yeniden yükleyelim.

source /etc/profile && source ~/.bash_profile

Kurulumu tamamladık. Artık örnek bir Go dosyasını /projects/src altına oluşturarak ilk “hello world” örneğimizi oluşturalım.

nano ~/projects/src/test.go

içine ilk go kodlarımızı yazıyoruz.

package main

import "fmt"

func main() {
    fmt.Printf("Merhaba Gardaş")
}

Daha sonra oluşturduğumuz dosyayı derlememiz gerekiyor.

go install $GOPATH/test.go

Ve şimdide konsol’da çalıştırıp çıktısına bakalım.

$GOBIN/test

Çıktı:

Artık GoLang hakkında daha fazla araştırma yaparak, kendiniz alıştırmalar yapmaya başlayabilirsiniz.

Hepimize kolay gelsin 🙂

Kaynak: https://www.digitalocean.com/community/tutorials/how-to-install-go-1-7-on-centos-7

PHP ile A’dan Z’ye Kadar Yazdırmak

Bazen A’dan Z’ye kadar harfleri yazdırmak gerekiyor. Bu gibi durumlarda, php’de kullanacağımız 1-2 fonksiyon mevcut. Bir for döngüsü ile nasıl yapabileceğimize bakalım.

Öncelikle bu işlem için ord() ve chr() fonksiyonlarını kullanacağız. Peki ne işe yararlar?

ord() Fonksiyonu

İçine girilen karakterin ASCII değerini döndürür. Örn;

echo ord('a'); // Çıktı: 97

chr() Fonksiyonu

Buda tam tersine ASCII değerini karaktere dönüştürür. Örn;

echo chr(97); // Çıktı: a

Şimdi asıl örneğimize geçebiliriz. İngilizce de 26 harf olduğuna göre, for döngüsünde bunu şu şekilde belirteceğiz;

$ascii_val = ord('a');
for($i = $ascii_val; $i < $ascii_val + 26; $i++) {
    echo chr($i) . ' ';
}
// Çıktı: a b c d e f g h i j k l m n o p q r s t u v w x y z

Bu kod 97‘den başlayacak. $i değerini 97‘ye eşitledik. Ve koşul olarak $ideğeri (97 + 26 = 123) değerine gelene kadar $i‘yi 1 artırıyoruz. Yani sırasıyla, 97,98,99,100.. şeklinde giderek for içinde de ASCII değerlerine göre karakterleri döndürerek yazdırma işlemini yapıyoruz.

Diğer alternatif

range() fonksiyonu ile de bu işlemi yapabilirsiniz;

foreach(range('a', 'z') as $c){
    echo $c . ' ';
}

Centos Sunucu üzerinde Apache, PHP, Mysql ve phpMyAdmin Kurulumu ve Cloudflare Ayarları

Merhaba arkadaşlar, ben sunucu için digitalocean’ı kullanıyorum. Bu yüzden videoda digitalocean’dan ilk olarak centos sunucu alarak başlıyorum. Daha sonra sunucuma ssh ile bağlanıyorum ve aşağıdaki adımlar ile gerekli pakelerimi kuruyorum…

Apache Kurulumu

İlk olarak root olarak bağlanmadıysanız;

sudo su

diyerek root olun sunucuda. Şimdi apache kurulumu için şu satırı yazın;

yum install httpd

Gelen mesajlara y deyip enter’layın. Bu hepsi için geçerlidir 🙂

Kurulum tamamlanınca apache’yi başlatalım;

systemctl start httpd.service

Birde son olarak şu ayarı yapalım;

systemctl enable httpd.service

Not: Eğer vultr’ye kuruyorsanız 80 portunu açın.

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save

Artık IP adresinizi girip test apache sayfasını görebilirsiniz 🙂

http://SUNUCU_IP_ADRESİNİZ

PHP Kurulumu

Sunucuya php kurmak çok basit. Şu satırı çalıştırın;

yum install php php-mysql

Kurulum bittikten sonra apache’yi yeniden başlatalım;

systemctl restart httpd.service

Eğer herhangi bir php modülü yüklemek isterseniz önce modülleri şu satırı çalıştırıp arayın;

yum search php-

Örneğin php-fpm modülünü yükleyeceksiniz. Şu şekilde yükleyebilirsiniz;

yum install php-fpm

Şimdi artık php’yi kurduğumuza göre, dosyalarımızı hangi klasöre atacağımızı görelim;

/var/www/html

Bu klasöre atıyoruz dosyaları. Hemen bir tane test index.php oluşturalım. Ama ondan önce nano kurulumu yapalım. Nano dosyaları konsol üzerinden editlemek için kullandığımız bir araç. Şu satırı çalıştıralım;

yum install nano

Kurulumu yaptıktan sonra önce ilgili klasöre şu satırla girelim;

cd /var/www/html

Ve bir index.php oluşturalım;

touch index.php

Şimdi onu düzenlemek için açalım;

nano index.php

Ekrana boş sayfa gelecek bu sayfa içine şu kodu yazalım;

<?php phpinfo(); ?>

Ve ctrl + x yapalım y deyip enter’layalım kaydedilmiş olacak. Şimdi tekrar ip adresinize girdiğinizde php info’yu görebilirsiniz..

MySQL Kurulumu

Sıra geldi mysql’i kurmaya.. Mysql’i önce indirmemiz gerek. Şu adrese girin;
https://dev.mysql.com/downloads/repo/yum/
Buradan son sürümü bulun. Örn: mysql57-community-release-el7-11.noarch.rpm

Şimdi bunu sunucumuza şu şekilde indirelim;

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

doğrulamak içi şu işlemi yapalım;

md5sum mysql57-community-release-el7-11.noarch.rpm

Dönen md5 değerini sitedeki ile karşılaştırabilirsiniz.
Şimdi paketi yükleyelim;

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

Ve şimdide mysql server’ı kuralım;

yum install mysql-server

Kurulum bittikten sonra mysql’i başlatalım;

systemctl start mysqld

başladığını kontrol etmek için şu satırı çalıştırıp emin olabilirsiniz;

systemctl status mysqld

Şimdi geçici olarak mysql için bir şifre oluşturdu. Bunu bulalım;

grep 'temporary password' /var/log/mysqld.log

Bu size geçici şifreyi döndürür kopyalayın onu. Mysql ayarlarını yapılandırmaya başlayalım;

mysql_secure_installation

Sizden şifreyi isteyecek yapıştırıp enter deyin, sonra yine aynı şeyi yapıp yeni şifreyi belirleyin.
Mysql’e test bağlantısı yapıp sorunsuz olduğunu kontrol edelim;

mysql -u root -p

Şifreyi girdikten sonra mysql> diyorsa tamamdır bu iş. exit; deyip çıkın.

phpMyAdmin Kurulumu

Öncelikle şu satırı çalıştırın;

yum install epel-release

Ve sonra şu satırı

yum install phpmyadmin

Şimdi phpmyadmin’in ayarlarını yapacağız. Erişimi sadece sizin ip adresinizle kısıtlamak için;

nano /etc/httpd/conf.d/phpMyAdmin.conf

Eğer şöyle bir hata alıyorsanız: nano: command not found o zaman nano’yu aşağıdaki satır ile kurup tekrar deneyin.

yum install nano

Dosyayı düzenlemek için açtığınızda 127.0.0.1 ip’si gördüğünüz yerleri sizin kendi ip’niz ile değiştirin. IP’nizi google’a what is my ip address diye aratarak bulabilirsiniz.
Ctrl + x yapıp y tuşuna basıp enter’layarak dosyayı kaydedin.

Son olarak Apache’yi yeniden başlatıyoruz.

systemctl restart httpd.service

Artık sunucunun ip adresinin sonuna /phpmyadmin yazıp panele ulaşabilirsiniz.

http://SUNUCU_İP_ADRESİ/phpmyadmin

Mysql’de belirlediğiniz kullanıcı adı ve şifreyle giriş yapın. Kullanıcı adı her zaman root’tur.

Eğer IP kısıtlaması olmadan her ip’ye izin vermek istiyorsanız o zaman yine aynı dosyada şunu ekleyin;

<RequireAny>
   # Require ip 88.253.4.68
   # Require ip ::1
   Require all granted
</RequireAny> 

Ve yine apache’yi yeniden başlatıp test edin.

.htaccess Ayarı

Son olarak .htaccess kullanmak için ufak bir ayar yapacağız.
Şu komut satırın çalıştırın;

nano /etc/httpd/conf/httpd.conf

Açılan dosyada AllowOverride değerini All yapacağız.


. . .
 # 
 # AllowOverride controls what directives may be placed in .htaccess files.
 # It can be "All", "None", or any combination of the keywords:
 # Options FileInfo AuthConfig Limit
 #
 AllowOverride All
. . .

Ve son olarak apache’yi yeniden başlatıyoruz.

systemctl restart httpd.service

Evet, artık gerekli şeyleri kurduktan sonra cloudflare ile domaini bağlamak var.

Yazma İzinleri

Eğer her şeyi doğru kurup yazma izniyle ilgili problem alıyorsanız, şu komutu çalıştırıp çözebilirsiniz.

chcon -R -t httpd_sys_rw_content_t /var/www

Cloudflare Ayarları

Cloudflare.com’a girip kayıt olun. Daha sonra sağ üstten add site diyerek sitenin adresini yazıp start scan butonuna basıp 40 saniye bekleyin. İşlem tamamlandıktan sonra gelen yerde 2 tane A recordu girmeniz gerek bunlar aşağıdaki gibi;

A —- siteadi.com —- sunucu ip adresi
A —- www —- sunucu ip adresi

Bunları girip next deyince ödeme kısmı gelir, free deyip sonraki adıma geçin. O adımda size 2 tane nameserver verecek. Bunları alıp domaini aldığınız siteye girin, domaini düzenleye tıklayıp ns’leri bu 2 ns ile değiştirin.

http://intodns.com/siteadi.com buradan kontrol edin, değiştiğinde cloudflare üzerinden verify yapın o kısım yeşil olunca cloudflare ayarlarıda tamam demektir. Artık domain adını yazarak sunucunuza bağlanabilirsiniz 🙂

AngularJS Notlarım – 3

Önceki konularda sizlere ng-app direktifini göstermiştim. Bu şekilde anonim bir kullanım oluyor. Burada biz kendi modülümüzü oluşturmalıyız.

Neden modül oluşturuyoruz?

Controller, servisler, filterler, direktifler ve diğer şeyler için modülü kullanıyoruz. Yani aslında modüle tanımlıyoruz bunları.

Şimdi bir örnekle daha iyi anlayalım. Normalde ng-app dememiz yeterliydi. Ancak şimdi buna bir isim vereceğiz.

<div ng-app="modul">
    <div ng-controller="test">
       {{ merhaba_dunya }}
    </div>
</div>

Şimdi angular’da ilk olarak modülümüzü oluşturalım.

var modul = angular.module('modul', []);

Evet modül’e bir controller tanımlayalım. Normalde şöyle kontrol oluşturuyorduk;

var test = function($scope){
    $scope.merhaba_dunya = "hello world!";
}

Ancak modüle tanımlarken biraz daha farklı. Yani şöyle;

modul.controller('test', ['$scope', function($scope){
    $scope.merhaba_dunya = "hello world!";
}]);

Filtre Kullanımı

Başka bir örnek yapalım. Bu seferde bir filtre oluşturalım. Henüz bunu göstermedim ama bir merhaba demekten zarar gelmez 🙂 Örneğin;

module.filter('degistir', function(){
   return function(name){
      return name.replace('world', 'dünya');
   }
});

Kullanırken ise şöyle kullanacağız;

{{ merhaba_dunya | degistir }}

Bude bizde hello dünya! çıktısını verecektir.

PHP ile Gmail RSS Servisinden Okunmamış Postaları Çekmek

Gmail hesabınızda oluşturduğunuz label’lara ait ya da gelen, spam gibi kısımlara ait okunmamış mesajlarınızı kendi siteniz üzerinden görmek isterseniz gmail’in rss servisini kullanabilirsiniz.

Örneğin okunmamış mesajlar için;
https://mail.google.com/mail/feed/atom/

ya da spam mesajlar için;
https://mail.google.com/mail/feed/atom/spam

ya da kendi oluşturduğunuz “işler” adında bir labeliniz için;
https://mail.google.com/mail/feed/atom/işler

Bu adreslere girdiğinizde eğer şuan bir gmail hesabınızda oturum açtıysanız onunla ilgili detayları göreceksiniz. Ancak PHP‘de cURL kullanarak herhangi bir başka hesapta anlık oturum açıp postalarımızı görebiliriz. Bunun için öncelikle bize bir cURL fonksiyonu gerekecek. Daha önce cURL hakkında bilgisi olmayanlar şuradan curl derslerime bir gözatabilir.

Şimdi gelelim bize lazım olan cURL fonksiyonuna. Ben sizler için bir tane hazırladım ve 3 parametre alıyor. Bunlar gmail kullanıcı adı, şifresi ve varsa label adı.

function gmailFeed($username, $password, $label = ''){
    $url = "https://mail.google.com/mail/feed/atom/" . $label; 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_ENCODING, "");
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}

Kullanımına gelecek olursak;

<?php

require 'gmail.function.php'; // fonksiyon dosyamız

// kullanıcı adı ve şifre tanımı
$gmail_username = '[email protected]';
$gmail_password = 'xxxx';

// gelen kutusu okunmamış postaları çekelim
$feeds = gmailFeed($gmail_username, $gmail_password);
$feeds = new SimpleXMLElement($feeds);
print_r($feeds);

// spam kutusu okunmamış postaları çekelim
$feeds = gmailFeed($gmail_username, $gmail_password, 'spam');
$feeds = new SimpleXMLElement($feeds);
print_r($feeds);

// örnek olarak oluşturduğumuz bir x labeline ait okunmamış mesajları çekelim
$feeds = gmailFeed($gmail_username, $gmail_password, 'x');
$feeds = new SimpleXMLElement($feeds);
print_r($feeds);

?>

Örnek yazdırma işlemi;

<ul>
   <?php foreach ( $feeds->entry as $feed ): ?>
      <li>
         <strong>title; ?></strong><br />
         <?php echo $feed->author->name; ?> (<?php echo $feed->author->email;?>)<br />
         <span style="color: #777">
            <?php echo $feed->summary; ?>..
         </span>
      </li>
   <?php endforeach; ?>
</ul>

İşte hepsi bu kadar 🙂