Trang chủ / Code / Cài đặt Magento 2 trên VPS Unbuntu 14.04
cài đặt magento 2

Cài đặt Magento 2 trên VPS Unbuntu 14.04

Magento 2 đã chính thức ra mắt hôm 17 tháng 11 năm 2015 vừa qua mang theo nhiều cải tiến về tốc độ, giao diện và được thêm rất nhiều chức năng mới. Cấu trúc code của Magento 2 cũng trực quan hơn và dễ hiểu hơn. Nếu bạn đang muốn trải nghiệm Magento 2 mà chưa biết cài đặt như thế nào thì bài viết này là dành cho bạn. Mình sẽ cài đặt Magento 2 trên một VPS mới tinh chạy NGINX webserver, MariaDB Database, PHP. Bắt đầu thôi nào!

Cấu hình yêu cầu để chạy Magento 2

Theo như Magento Inc đưa ra thì để cài đặt thành công Magento 2 bạn phải đáp ứng các yêu cầu sau:

  • Apache 2.2+ hoặc NGINX 1.8+
  • PHP 5.5+ (PHP 5.4 không hỗ trợ)
  • MySQL 5.6+ hoặc MariaDB 10.0+

Như vậy thôi, nếu bạn cài đặt Magento 2 trên một VPS mới tinh thì không cần quan tâm đến yêu cầu trên vì mình sẽ cài đặt trong bài này.

Đăng nhập vào VPS của bạn thông qua SSH, sử dụng Putty hoặc ZOC Terminal

(Nếu bạn đăng nhập bằng user root thì các câu lệnh không cần gõ sudo còn nếu đăng nhập bằng user khác root thì gần gõ sudo trước mỗi câu lệnh, cái này chắc các bạn đều biết cả rồi)

Update và cài đặt các thành phần cần thiết cho hệ thống:

sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install software-properties-common curl nano

Cài đặt MariaDB 10.0

Mặc định khi cài đặt MariaDB trên Unbuntu sẽ chỉ là bản 5.5 mà Magento 2 yêu cầu phải có MariaDB 10.0. Do đó để cài đặt MariaDB phiên bản mới nhất, bạn chạy các lệnh sau:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/10.0/ubuntu trusty main'
sudo apt-get update
sudo apt-get install -y mariadb-server

Khi cài đặt MariaDB xong, bạn cần chạy lệnh sau để bảo mật cho MariaDB và thiết lập các cài đặt cần thiết

mysql_secure_installation

Tiếp tục chúng ta sẽ tạo database mới để sử dụng cho việc cài đặt Magento 2, sử dụng lệnh sau để đăng nhập vào MariDB, mặc định sau khi cài đặt sẽ không có mật khẩu

mysql -u root -p

Chạy lần lượt các lệnh sau để tạo database mới

CREATE DATABASE magento;
GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'abcdxyz';
FLUSH PRIVILEGES;
exit;

Trong phần trên chúng ta đã tạo ra một database gồm có:

  • Tên database: magento
  • Tên user: magento
  • host: localhost
  • password: abcdxyz

Cài đặt PHP, Composer và các module cần thiết

Chúng ta sẽ cài đặt PHP 5.6, phiên bản mới nhất hiện nay:

sudo add-apt-repository -y ppa:ondrej/php5-5.6
sudo apt-get update
sudo apt-get -y install php5-fpm php5-cli php5-gd php5-imagick php5-mysqlnd php5-mcrypt php-pear php5-curl php5-intl php5-gd php5-xsl

Để có thể cài đặt Magento 2, bạn cần cài đặt Composer, đây là một trình quản lý độc lập cho một dự án PHP. Nó sẽ giúp bạn có được tất cả các module cần thiết để cài đặt Magento 2. Để cài đặt Composer, bạn chạy lệnh sau:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Cài đặt Magento 2

Đầu tiên, bạn càn tạo thư mục mà sẽ lưu mã nguồn Magento, bạn có thể để ở đâu cũng được, mình để ở thư mục root

mkdir -p ~/magento2/{code,logs};

Lệnh trên sẽ tạo một thư mục là magento2 trong thư mục root và tạo thêm 2 thư mục con là thư mục codelogs bên trong thư mục magento2. Thư mục code chính là thư mục sẽ lưu source code của Magento 2

Tiếp tục, khởi tạo composer để cài đặt Magento 2

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition code

Sau đó nó sẽ yêu cầu  tài khoản của bạn tại trang magento.com. Nếu bạn chưa có tài khoản thì phải đăng ký một cái ở trang magento.com.

Lưu ý: Tài khoản ở đây không phải là tên đăng nhập và mật khẩu mà bạn hãy vào magento.com và chọn My Account và chọn Secure Keys bên dưới mục Developer ở bên trái.

cài đặt magento 2 trên localhost

Bạn nhìn trong hình, phần Public key chính là username  còn Private Key chính là mật khẩu. Bạn nhập hai thông tin đó vào khi Composer hỏi. Lưu ý nếu chưa có 2 cái trên khi mới lập tài khoản thì bạn chọn Generate new để tạo nhé.

Chuyển đến thư mục lưu mã nguồn Magento

cd ~/magento2/code

Bạn cần chuẩn bị sẵn các thông tin sau để cài đặt Magento 2

base_url='http://magento2.com'
db_password='12345678'
db_host='localhost'
db_name='magento'
db_user='magento'
admin_firstname='Họ'
admin_lastname='Tên'
admin_email='you@email.com'
admin_user='admin'
admin_password='12345678'
language='vi_VN'
currency='VND'
timezone='Asia/Ho_Chi_Minh'

Các thông tin trên chỉ là chuẩn bị thôi, bạn hãy chỉnh lại theo yêu cầu của bạn như tên miền, mật khẩu admin, ngôn ngữ, đơn vị tiền tệ, múi giờ, database,…

Bây giờ, bạn duyệt tới thư mục bin của Magento để có thể sử dụng câu lệnh của Magento 2 CLI và cấp quyền thực thi cho nó, thay cái /var/www/magento bằng đường dẫn tới thư mục chứa Magento của bạn, để nguyên chữ bin(quan trọng)

cd /var/www/magento/bin

chmod +x magento

Sau khi chuẩn bị xong, cú pháp lệnh sau để cài đặt Magento 2 như sau

magento setup:install --base-url=$base_url \
--db-host=$db_host --db-name=$db_name --db-user=$db_name --db-password=$db_password \
--admin-firstname=$admin_firstname --admin-lastname=$admin_lastname --admin-email=$admin_email \
--admin-user=$admin_user --admin-password=$admin_password --language=$language \
--currency=$currency --timezone=$timezone --use-rewrites=1

Thay các biến $db_host, $db_password,.. bằng các  giá trị mà bạn chuẩn bị bên trên, các giá trị bên phải dấu “=” ấy nhé, không phải bên nguyên đoạn chuẩn bị trên vào đâu, ví dụ

magento setup:install --base-url=http://magento2.com \
--db-host=localhost --db-name=magento --db-user=magento --db-password=12345678 \
--admin-firstname=Steve --admin-lastname=Dien --admin-email=contact@crazytut.com \
--admin-user=admin --admin-password=12345678 --language=vi_VN \
--currency=VND --timezone=Asia/Ho_Chi_Minh --use-rewrites=1

Sau đó copy vào SSH, enter 1 cái, chỉ khoảng 2 phút là xong
Chạy xong sẽ có thông báo bạn đã cài đặt Magento 2 thành công

[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1pqiag

Cấu hình PHP-FPM

Bạn dùng phần mềm quản lý file như WinSCP mở thư mục /etc/php5/fpm/pool.d sau đó tạo một file mới tên là your-username.conf. Thay your-username bằng username bạn thích.

Sau đó copy đoạn code sau bỏ vào

[your_username]
user = your_username
group = your_username
listen = /var/run/php5-fpm-your_username.sock
listen.owner = your_username
listen.group = your_username
listen.mode = 0666
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
pm.max_requests = 200
chdir = /

Đừng quên thay your_username bằng username bạn thích.

Restart PHP-FPM để áp dụng các thay đổi

sudo service php5-fpm restart

Cài đặt và cấu hình NGINX

Mặc định, phiên bản NGINX của Unbuntu là 1.4, quá cũ, bạn cần chạy lệnh sau để cài bản mới nhất

sudo add-apt-repository -y ppa:nginx/stable
sudo apt-get update
sudo apt-get -y install nginx

Tiếp tục, tạo file cấu hình domain cho NGINX

sudo nano /etc/nginx/sites-available/magento2.com

Copy đoạn sau bỏ vào

upstream fastcgi_backend {
  server   unix:/var/run/php5-fpm-your_username.sock;
}

server {
    server_name your-domain.com;
    listen 80;
    set $MAGE_ROOT /root/magento2/code;
    set $MAGE_MODE developer;

    access_log /root/magento2/logs/access.log;
    error_log /root/magento2/logs/error.log;

    include /root/magento2/code/nginx.conf.sample;        
}

Nhớ tháy your_usernamw bằng username bạn đã chọn lúc trước và your-domain.com bằng domain của bạn.

Kích hoạt file cấu hình domain vừa tạo

sudo ln -s /etc/nginx/sites-available/myMagentoSite.com /etc/nginx/sites-enabled/magento2.com

Test NGINX và khởi động NGINX

sudo nginx -t
sudo service nginx restart

Xong rồi đó, bạn đã  cài đặt thành công Magento 2 trên VPS Unbuntu 14.04. Bạn cần tìm hiểu thêm thông tin về Magento2 hãy truy cập trang web chính thức của Magento 2.

Mình có viết một cái theme cho Magento 2, cũng khá đẹp, bạn muốn dùng thì inbox mình nhé, mình share cho

Có khó khăn gì comment bên dưới cho mình biết nhé hoặc gửi inbox cho mình qua Facebook: Steve Diện

Nếu bạn thấy có ích, hãy subcribe blog của tôi để nhận thêm nhiều tút hay qua email nữa nhé!