Magento Tanımı ve Özellikleri ?
Magento’nun ayrıntılı tanımına ve özelliklerine daha önce yazmış olduğum Magento Tanımı ve Özellikleri isimli yazıdan ulaşabilirsiniz.
Magento Kurulumu
Yazımızda üzerinde “Ubuntu” işletim sistemi bulunan sanal sunucunuza “Putty” ve “WinSCP” gibi yardımcı yazılımlar aracılığı ile bağlanarak yapılan magento kurulumundan bahsedeceğiz. Bir miktar linux komut bilgisi ve Apache sunucu bilgisi gerektirmektedir.
Ubuntu 14.04.4 Üzerine Magento Kurulumu
Daha önce yazdığım bir yazıda Magento’nun cPanel aracılığı ile nası kurulumunu yapacağımızı ayrıntılı şekilde anlatmıştım. Peki cPanel’imiz yok ise Ubuntu işletim sistemi üzerine Magento 2 kurulumunu nasıl yapabiliriz. Şimdi bu duruma açıklık getirelim.
Önkoşullar
Kuruluma başlamadan önce birkaç ön koşulu karşılıyor olmamız gerekiyor.
Magento uygulamasının sağlıklı çalışabilmesi için en az 2 GB of RAM’ e sahip bir VPS’e (Sanal sunucu yada kiralık sunucu denebilir) kurulum yapmanızı öneriyorum. 2 GB RAM (sunucudaki bellek miktarı) mağaza yönetiminde yer alan tüm yazılımların sorunsuz çalışabilmesi için gerekli olan minimum bellek miktarıdır.
Sudo yetkisine sahip, root olmayan kullanıcı erişimine ihtiyaç duyacağız.
Ek olarak sunucumuzda LAMP (Linux, Apache, MySQL, and PHP) stack kurulu olması gerekiyor. Eğer bu araçlar kurulu değilse yazımızda 1. Basamak olarak bu konuyada değindim.
Tüm bu aşamaları tamamladıktan sonra Ubuntu sunucumuza bağlanarak Magento kurulumumuza devam edebiliriz.
1. Basamak LAMP (Linux, Apache, MySQL, and PHP) Kurulumu
İlk olarak sistemimiz güncelmi diye kontrol ediyoruz:
apt-get update
Güncelleme tamamlandıktan sonra LAMP bileşenlerini yüklemeye hazırız. “sudo” ile 3 paketi aşağıdaki komut aracılığı ile yüklüyoruz:
sudo apt-get install lamp-server^
MySQL root kullanıcısı için şifre belirlememiz gerekecektir. Bu şifrenin güvenli olmasına emin olmamız gerekiyor ve şifreyi bir kenara not almayı unutmuyoruz.
2. Basamak : Apache ve PHP’yi Konfigure Etmek
Magento uygulamasını sunucumuza indirip yüklemeden önce, Magento çalışırken oluşacak trafik yükünü ve hesaplama işlemlerini sunucunun kaldırabilmesi için, Apache ve PHP’nin doğru konfigure edilmesi ve bazı ek modüllerin yüklenerek aktive edilmesi gereklidir.
Apache Virtual Host
Apache’nin Magento’yu doğru yönetmeyi öğrenebilmesi için ilk olarak “virtual host” dosyasını konfigure etmeliyiz. /etc/apache2/sites-available/ altında yeni bir virtual host dosyası yaratmak için text editör kullanabiliriz. Bu örnekte “virtual host” dosyasına magento ismi verilmiş fakat siz istediğiniz bir ismi verebilirsiniz.
sudo nano /etc/apache2/sites-available/magento.conf
Magento’nun virtual host dosyasında yapılması gereken oldukça basittir. Standart HTTP portu olan 80. porttan gelen tüm trafiğin dinlenebilmesini sağlayacak olan “<VirtualHost>” tagı ile dosyaya başalıyoruz. Sonrasında “DocumentRoot” direktifini kullanarak Apache’ye sitemizin dosyalarını nerede bulacağını söylediğimiz satırı ekliyoruz.
<VirtualHost *:80>
DocumentRoot /var/www/html
</VirtualHost>
Magentomuzun sağlıklı çalışabilmesi için birkaç parametre daha eklememiz gerekiyor. Sitemizin çalıştığı klasörü gösteren “<Directory>” tagı altına Apache’nin klasör indexlemesi, çok dil desteği ve sembolik bağ ayarlarını ekliyoruz. Ayrıca .htaccess dosyalarının Apache ayarlarını değiştirebilmeye yetkili olabilmesi için bir satır daha ekliyoruz.
. . .
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
. . .
Tüm bu bileşenleri eklediğimizde “virtual host” dosyamız aşağıdaki gibi görünecektir:
<VirtualHost *:80>
DocumentRoot /var/www/html
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
</VirtualHost>
Dosyada bahsettiğimiz değişikliği tamamladıktan sonra dosyayı kaydedeip kapatıyoruz. Yeni sitemizi Apache ile etkinleştirmek için “a2ensite” komutunu kullanıyoruz:
sudo a2ensite magento.conf
Apache ile standart gelen virtual host dosyasını pasif hale getirmek herhangi bir çakışma olmaması açısından önemlidir. Apache tarafından etkinleştirilmiş bir siteyi pasif hale getirmek için “a2dissite” komutunu kullanıyoruz:
sudo a2dissite 000-default.conf
PHP Ayarları
Bu aşamada Apache’nin PHP için nekadar bellek ayırması gerektiğini belirleyeceğiz. Magento hemen hemen tüm işlemleri için PHP kullanmaktadır ve indexleme, kategorilere ayırma gibi karmaşık işlemleri yapabilmek için hatırı sayılır miktarlarda belleğe ihtiyaç duymaktadır. PHP standart olarak çalışan her site için 128MB bellek ayırmaktadır. Magento’nun bellek yetersizliği nedeniyle çökmesini engelleyebilmek için kullanılabilecek bellek miktarını artırmalıyız.
Appache’nin PHP konfigurasyon dosyasını text editörü kullanarak root yetkisi ile açıyoruz:
sudo nano /etc/php5/apache2/php.ini
PHP nin her çalışan site için bellek limitini gösteren aşağıdaki satırı buluyoruz:
memory_limit = 128M
Bu satırı değiştirerek limiti 512MB’a çıkarmış oluyoruz. Belkide sanal marketiniz ürün sayınız ve günlük aldığınız ziyaretçi sayısına bağlı olarak daha fazla belleğe ihtiyaç duyacaktır. Bazı büyük sanal marketler bu değeri 2GB yada daha üzeri bir değere ayarlaması gerekebiliyor, fakat şimdilik limitimizi 512MB olarak belirliyoruz.
memory_limit = 512M
Değişikliği tamamladıktan sonra kaydedip dosyayı kapatıyoruz. Apache’yi yeniden başlattığınızda bellek limitiniz yeni belirlemiş olduğunuz değere eşitlenmiş olacaktır.
Magento PHP ile beraber gelen birkaç PHP modülüne daha ihtiyaç duymaktadır. Ubuntu’nun standart ambarından yerel paket dizinimizi güncelleştirdikten sonra bu modülleri elde edebiliriz:
sudo apt-get update
sudo apt-get install libcurl3 php5-curl php5-gd php5-mcrypt
Bu eklentiler Magento’nun HTTP isteklerini, küçük resimleri ve veri şifreleme işlemlerini düzgün yönetebilmesi sağlayacaktır. Şimdi ihtiyacımız olan tüm paketlere sahibiz, Apache için URL yeniden yazma desteği ve PHP için şifreleme desteğini etkinleştirebilirsiniz.
sudo a2enmod rewrite
sudo php5enmod mcrypt
Tüm bu konfigurasyon ve eklenti değişikliklerini tamamlandıktan sonra Apache’yi yeniden başlatarak yeni ayarlarımızı uygulamış oluruz:
sudo service apache2 restart
3. Basamak : MySQL Veritabanı ve Kullanıcısı Oluşturma
Daha öncede bahsettiğimiz gibi Magento site verisini yçnetmek için MySQL veritabanı kullanmaktadır. MySQL veritabanımız kurulu ve konfigure edilmiş halde olduğunu varsayarak veritabanımızı ve kullanıcısını oluşturma işlemine başlıyoruz.
MySQL’e root hesabı ile giriş yaparak başlıyoruz:
mysql -u root -p
Sistem bizden MySQL yüklenirken ayarlanan MySQL root hesabının şifresini isteyecektir. Şifreyi doğru birşekilde girdikten sonra işlemlerimizi yapabileceğimiz MySQL komut ekranına ulaşmış oluyoruz.
İlk olarak Magento’nun verilerini yazabileceği bir veritabanı oluşturuyoruz. Verdiğimiz örnekte oluşturulan veritabanının ismi “magento” dur fakat siz istediğiniz ismi verebilirsiniz.
CREATE DATABASE magento;
Sonraki aşamada, oluşturduğumuz veritabanı üzerinde operasyonlar yapabilecek MySQL kullanıcı hesabını oluşturacağız. Tek fonksiyonlu veritabanlarını ve hesapları oluşturmak, izinleri ve güvenlik ihtiyaçlarını daha iyi kontrol edebilmemizi sağladığı için iyi bir fikirdir,.
Yaratacağım yeni hesaba “magento_user ” adını veriyorum ve bu hesaba atadığım şifreyi “password” olarak belirliyorum. Burada verdiğim isim ve şifre sadece örnek olarak verilmiştir ve kesinlikle güvenli seçimler değildir, siz kullanıcı adınızı ve şifrenizi farklı vermenlisiniz.
CREATE USER magento_user@localhost IDENTIFIED BY ‘password‘;
Bu aşamada, Magento için özel olarak oluşturulmuş veritabanı ve kullanıcı hesabına sahibiz. Fakat, kullanıcımızın veritabanına erişim haklarına henüz sahip değil. Kullanıcımıza veritabanına erişim haklarını vererek iki bileşeni birbirine bağlamamız gerekmekte:
GRANT ALL PRIVILEGES ON magento.* TO magento_user@localhost IDENTIFIED BY ‘password‘;
Artık kullanıcımızın oluşturduğumuz veritabanına erişim hakları var, “FLUSH PRIVILEGES” komutu ile MySQL veritabanımızın az önce değiştirdiğimiz erişim haklarından haberdar olmasını sağlıyoruz. Bu işlemi tamamladıktan sonra MySQL veritabanı komut ekranından çıkabiliriz.
FLUSH PRIVILEGES;Exit
Bu aşamada normal SSH komut ekranına dönüş yapmış oluyoruz.
4. Basamak : Magento Dosyalarının İndirilmesi ve Kurulumu
Artık Mageto kurulumunu indirip kurmaya hazırız. Magento Community Edition için en son kararlı sürümü görebilmek içinMagento’nun resmi web sitesine gitmemiz gerekiyor. Bu örnekte son versiyonu numarası 2.0 dır. Sizin için mevcut son sürüm farklı olabilir ve Magento’nun en son sürümünü kullanmanızda fayda vardır. En son sürümlerde genellikle önemli güvenlik açığı kapatılmış ve yeni özellikler eklenmiş olabilmektedir.
Gerekli araçların kurulumu
1) Git Kurulumu
Git projelerinizde kullanabileceğiniz bir versiyon kontrolüdür. Eğer şuana kadar kullanmadıysanız geliştirme iş akışında kullanmanızı tavsiye ediyorum. Git kullanımını öğrenmek için https://try.github.com/ adresine ulaşmanız yeterlidir.
Git’i kurabilmek için aşağıdaki komutu çalıştırıyoruz:
sudo apt-get install git
2) Magento 2 Kurulumu
Gerekli olan tüm hazırlıkları yaptıktan sonra Magento 2 kurulumuna geçebiliriz. Kuruluma başlamadan önce Github‘da ve Magento Connect üzerinde kişisel hesaplarımızı oluşturuyoruz. “Github” üzerinden kişisel ulaşım anahtarına (Personal access token) ve “Magento Connect” üzerinden de kimlik doğrulama anahtarlarına (Authentication tokens) ihtiyacımız olacak.
3) GitHub Üzerinden Kişisel Ulaşım Anahtarı Nerede?
GitHub üzerinden kişisel ulaşım anahtarını alabilmek için GitHub hesabımıza giriş yaptıktan sonra Ayarlar sayfası üzerinden “Personal access tokens” bağlantısına basıyoruz.
İşareti oluşturduktan sonra, güvenli biryere kaydediyoruz. Bu anahtarla Magento’yu sistemimize klonlarken ihtiyaç duyacağız.
4) Magento Connect üzerinden Kimlik Doğrulama Anahtarları Yakalamak
Şimdiki aşamamız Magento Connect üzerinden kimlik doğrulama belirteçlerini yakalama işlemidir. Bu anahtarları “Developers” altında “Secure Keys” de bulabilirsiniz.
Bir sonraki aşama da Magento’yu kurarken burda gördüğümüz “Public Key” kullanıcı adı ve “Private Key” şifre olarak kullanılacaktır.
5)Magento Kurulumuna Başlıyoruz
Magento kurulumu için artık hazırız! Proje klasörümüzde bir terminal pencerisi açıyoruz. Benim proje klasörüm ‘/var/www/html/magento2’ olarak belirlenmiştir. Magentonun ana deposunu projemizin içine kopyalıyoruz:
cd /var/www/html
git clone -b 2.0 https://github.com/magento/magento2.git magento2
Bu işlemden sonra çalıştığımız klasörü değiştiriyoruz.
cd /var/www/html/magento2
Sonrasında Composer kurulumunu çalıştırıyoruz.
composer install
“Public Key” kullanıcı adı ve “Private Key” şifre olarak kullanılacaktır.
GitHub dan aldığınız anahtarı sizden istediğinde giriş yapmalısınız
6)Tarayıcı Üzerinden Kurulum
Tarayıcımız aracılığı ile magento klasörümüze erişiyoruz. Örnek olarak https://SunucuIPAdresi/magento2/ adresi verilebilir. Karşımıza çıkan Magento sihirbazı aracılığı ile kurulumumuzu tamamlayabiliriz. Magento sihirbazının ayrıntılı açıklamasına Magento Sistemi ve cPanel’ de Kurulumu isimli yazımdan ulaşabilirsiniz.