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 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 google aracılığı ile Ubuntu sunucu üzerinde LAMP kurulumu şeklinde arayarak kurulumla ilgili makalelere ulaşabilirsiniz. Bu konuyla ilgili bir yazı üzerinde çalışıyorum en kısa zamanda tamamlayarak sizlerle paylaşacağım.
Tüm bu aşamaları tamamladıktan sonra Ubuntu sunucumuza bağlanarak Magento kurulumumuza devam edebiliriz.
1. 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
2. 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.
3. 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ı 1.9.0.1 dir. 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. Fakat Magento 2 versiyonunda kurulum mantığı tamamen değişmiştir. “Ubuntu 14.04.4 Üzerine Magento 2 Kurulumu” isimli yazım bu konuda size rehber olacaktır.
“wget” komutunu kullanarak Magento dosyalarını homa klasörümüze indiriyoruz.
cd ~
wget https://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz
Sıkıştırılmış magento dosyalarını “tar” komutu aracılığı ile çıkartıyoruz:
tar xzvf magento-1.9.0.1.tar.gz
Artık home klasörümüzde “magento” isminde bir klasörümüz mevcut. Sitemizi yayınlayabilmemiz için oluşan “magento” klasörümüzü Apache’nin kök dizinine taşıyoruz. “.htaccess” gibi gizli dosyalarıda transfer edebilmek için “rsync” komutunu kullanıyoruz. Transfer tamamlandığında home klasörümüzde oluşturduğumuz “magento” klasörünü silebiliriz.
sudo rsync -avP ~/magento/. /var/www/html/rm -rf ~/magento*
“rsync” komutu ile klasör içindeki tüm içeriği güvenli bir biçimde “/var/www/html/” klasörü altına taşıyabileceğiz. Şimdi Apache kullanıcıları ve grupları için dosya ve klasörlere yetkilendirme yapmamız yapmalıyız:
sudo chown -R www-data:www-data /var/www/html/
Bu değişiklik Apache’ye Magento dosyaları üzerinde değişiklik yapabilmesine olanak sağlayacaktır. Bu aşamada Magento’nun browser arayüzünü kullanarak kurulumumuzu sonlandırabiliriz.
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.