Cài đặt Magento 2 thông qua composer

Trong bài viết trước tôi đã giới thiệu các bạn Mangento là gì rồi, nếu bạn chưa biết thì có thể xem Magento là gì và Tại sao phải sử dụng magento vì vậy trong bài viết này tôi sẽ hướng dẫn các bạn cách cài đặt nó trên môi trường Linux mà cụ thể là hệ điều hành Centos 7.x bạn có thể áp dụng cho Windows hoặc bất kỳ bản phân phối Linux nào

Chuẩn bị

Để cài đặt Magento 2 chúng ta có 2 cách cài, cách thứ nhất là vào trang chủ nó tải về sau đó upload lên VPS và cách còn lại là cài đặt thông qua composer trong bài viết này tôi sẽ sử dụng cách này.

Tôi sẽ giả sử bạn đã có sẵn LAMP hoặc LEMP nếu chưa có thì bạn có thể xem Hướng dẫn cài đặt LEMP trên CentOS, sau khi cài dặt xong LEMP bạn cũng cần phải cài đặt composer, bạn có thể dễ dàng cài đặt thông qua dòng lệnh bên dưới.

[code lang=text] curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/bin/composer

[/code]

Cài đặt

Trước tiên bạn cần vào trang GITHUB để tải mã nguồn về, hoặc bạn có thể làm theo lệnh dưới đây

[code lang=text] cd /usr/share/nginx/html/
git clone https://github.com/magento/magento2.git

[/code]

ở trên tôi giả sử thư mục root web của chúng ta là /usr/share/nginx/html/, kế đến tôi dùng git để clone nó về. Sau đó bạn di chuyển vào thư mục magento2 chạy lệnh composer sau.

[code lang=text] cd magento2
git checkout 2.1
composer install –no-dev

[/code]

ở trên tôi thêm tham số no-dev có nghĩa là không cài đặt các module cho môi trường dev, nếu bạn đang muốn dev thì có thể bỏ tham số đó, còn muốn hiểu composer là gì có thể xem bài viết này, bạn nên thấy kết quả như hình bên dưới

trong lúc chờ đợi nó cài đặt các module thì bạn cấu hình thêm vhost trong nginx như sau

Mở tập tin cấu hình Nginx thêm vào đoạn mã code dưới đây vào tập tin /etc/nginx/vhost/magento2.conf

[code lang=text] server {
listen 80;
## Ex. yourdomain.com
server_name gsviec-magento.dev;

## Define project root
set $MAGE_ROOT /usr/share/nginx/html/magento2;

## Magento mode production or developer
set $MAGE_MODE developer;

root $MAGE_ROOT/pub;

index index.php;
autoindex off;
charset off;

location /setup {
root $MAGE_ROOT;
location ~ ^/setup/index.php {
fastcgi_pass fastcgi_backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

location ~ ^/setup/(?!pub/). {
deny all;
}

location ~ ^/setup/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}

location /update {
root $MAGE_ROOT;

location ~ ^/update/index.php {
fastcgi_split_path_info ^(/update/index.php)(/.+)$;
fastcgi_pass fastcgi_backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}

# deny everything but index.php
location ~ ^/update/(?!pub/). {
deny all;
}

location ~ ^/update/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}

location / {
try_files $uri $uri/ /index.php?$args;
}

location /pub {
location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
deny all;
}
alias $MAGE_ROOT/pub;
add_header X-Frame-Options "SAMEORIGIN";
}

location /static/ {
if ($MAGE_MODE = "production") {
expires max;
}
location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
add_header Cache-Control "public";
add_header X-Frame-Options "SAMEORIGIN";
expires +1y;

if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
}
location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
add_header Cache-Control "no-store";
add_header X-Frame-Options "SAMEORIGIN";
expires off;

if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
}
if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
add_header X-Frame-Options "SAMEORIGIN";
}

location /media/ {
try_files $uri $uri/ /get.php?$args;

location ~ ^/media/theme_customization/.*\.xml {
deny all;
}

location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
add_header Cache-Control "public";
add_header X-Frame-Options "SAMEORIGIN";
expires +1y;
try_files $uri $uri/ /get.php?$args;
}
location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
add_header Cache-Control "no-store";
add_header X-Frame-Options "SAMEORIGIN";
expires off;
try_files $uri $uri/ /get.php?$args;
}
add_header X-Frame-Options "SAMEORIGIN";
}

location ~ cron\.php {
deny all;
}

location ~ (index|get|static|report|404|503)\.php$ {
try_files $uri =404;
fastcgi_pass fastcgi_backend;

fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_param PHP_VALUE "memory_limit=1024M \n max_execution_time=18000";
fastcgi_read_timeout 600s;
fastcgi_connect_timeout 600s;
fastcgi_param MAGE_MODE $MAGE_MODE;

fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

[/code]

nếu bạn chưa biết VHOST là gì thì có thể coi bài viết này ở mục Cấu hình Block(Vhost) Nginx ở trên tôi đặt domain là gsviec-magento.dev bạn có thể thây đổi nó lại thành domain mà bạn đã mua.

kế đến bạn cần thềm quyền đọc và ghi cho webservice của bạn, và tôi giả sử bạn cài đặt LEMP theo hướng dẫn của tôi thì mặc định user của web server là apache do đó bạn chỉ cần chạy lệnh dưới đây

[code lang=text] chown apache:apache -R /usr/share/nginx/html/magento2

[/code]

nếu nó không chạy thì bạn có thể chơi luôn 777 thần thánh, cái này mình bảo đảm là nó chạy:)

[code lang=text] chmod 777 -R /usr/share/nginx/html/magento2

[/code]

tôi giả sử mọi thứ đều làm việc tốt thì khi bạn truy cập vào đường dẫn http:///trong trường hợp của tôi là http://gsviec-magento.dev/setup thì bạn nên thấy kết quả như hình bên dưới

sau đó bạn nhấn “Argeen and Setup Magento”, sẽ có hình giống bên dưới bạn nhấn tiếp nút

nó có nhiệm vụ kiểm tra coi thử server bạn có đáp ứng đầy đủ yêu cầu cài đặt Magento không nếu có lỗi nó sẽ báo bạn và chỉ cách khắc phục, nếu mọi thứ OK thì bạn nên thấy cái hình bên dưới

sau đó bạn nhấn nút Next nhập vào các tham số như tên Database bạn đã tạo trước đó, nếu chưa có thì bạn tạo nó, trong trường hợp của tôi là magaento, và các tham số khác như username và password mysql

sau đó bạn sẽ đến cái hình kế tiếp,

ở hình này nó thông báo cho bạn đường dẫn admin bạn có thể thây đổi tên đường dẫn cho dễ nhớ trong trường hợp của tôi là wp_admin123

như hình trên bạn cần phải tạo user để quản trị website của bạn trong trường hợp này tôi tạo là username admin, sau bước này bạn sẽ thấy cái hình

công việc còn lại là click “Install Now” sau đó chờ đợi khoảng 2-3 phút gì đó là nó cài đặt xong

chúc mừng bạn đã cài đặt xong Magento 2, bạn có thể đăng nhập vào trang quản trị thông qua link hình ở trên hoặc xem trang chủ nó như thế nào.

Kết luận

Trên đây tôi đã hướng dẫn bạn cài dặt Magento 2 thông qua composer và git nếu bạn nào có cách nào cài đặt nhanh hơn hãy chia sẽ với chúng tôi

Với cách cài đặt này mỗi lần bạn muốn cập nhật Magento chỉ việc chạy lệnh composer update, cách này khá phù hợp cho các bạn muốn học Magento nhưng nó cũng OK nếu bạn dùng cho trang production

Leave a Reply

Your email address will not be published. Required fields are marked *