1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Tìm hiểu thêm.

Cài đặt Magento 2 trên HocVPS Script

Thảo luận trong 'Linux General' bắt đầu bởi ExpertVN, 15/9/17.

Lượt xem: 546

  1. ExpertVN
    Offline

    ExpertVN Cu Ly Trưởng Thành viên BQT

    Tham gia:
    14/9/17
    Bài gửi:
    335
    Đã được thích:
    38
    Điểm thành tích:
    28
    Magento-Banner.jpg

    Magento là một mã nguồn mở được xây dựng bằng PHP trên nền tảng Zend Framework giúp tạo lập và phát triển các website thương mại điện tử. Ra mắt ngày 31/3/2008, Magento được phát triển bởi Varien và thuộc quyền sở hữu của Magento Inc. Magento được xây dựng theo kiến trúc module đồng thời cơ sở dữ liệu dựa trên mô hình EAV (entity – attribute – value).

    Magento-Banner.jpg

    1. Tổng quát về Magento


    Hiện nay, Magento phát hành 2 phiên bản song song:

    • MagentoCE Comunity Edition – Phiên bản Magento hoàn toàn miễn phí.
    • MagentoEE Enterprise Edition – Phiên bản Magento thương mại, chuyên nghiệp, tích hợp các tính năng mạnh mẽ nhất dành cho các website thương mại điện tử lớn.

    Vượt qua giới hạn của một mã nguồn mở miễn phí, Magento có được hàng loạt những tính năng hữu ích như:

    • Quản lý sản phẩm với nhiều tùy chọn như hình ảnh, nhận xét/đánh giá sản phẩm, danh mục yêu thích…
    • Quản lý category dễ dàng với tìm kiếm và chọn lọc sản phẩm theo category.
    • Quản lý kho: dễ dàng quản lý sản phẩm còn lại trong kho, lượng nhập/xuất/tồn.
    • Quản lý khách hàng: tiện lợi và đầy đủ với tình trạng tài khoản, lịch sử giao dịch, danh mục ưu thích, địa chỉ, giỏ hàng. Ngoài ra còn có các tính năng, hình thức để liên hệ và chăm sóc khách hàng với phiếu giảm giá, khuyến mại…
    • Thanh toán: tích hợp nhiều phương thức như thẻ tín dụng, PayPal, Google Checkout, hỗ trợ các module thanh toán bên ngoài như CyberSource, ePay, eWAY và nhiều hơn thế.
    • Công nghệ tìm kiếm nhanh chóng, thân thiện. Hệ thống ngôn ngữ và đơn vị tiền tệ đa dạng, phục vụ nhiều quốc gia
    • Thống kê, phân tích và báo cáo: tích hợp với dịch vụ Google Analytics và nhiều công cụ thống kê/báo cáo khác.
    • Đồng bộ nhanh chóng dữ liệu phần mềm với một website hoàn toàn mới qua addon.

    Bên cạnh đó, Magento có một cộng đồng cả người dùng và nhà phát triển lớn, đã góp phần rất nhiều vào sự phát triển chung. Magento Marketplace là một kho ứng dụng addon lớn, bao gồm cả miễn phí và thương mại, cho phép bạn nâng cấp website thương mại điện tử với rất nhiều dịch vụ của cả bên thứ 3 và cả từ nhà phát triển hệ thống.

    2. Yêu cầu hệ thống


    Để sử dụng Magento, hệ thống bạn cần đáp ứng những yêu cầu sau:

    • Hệ điều hành: Linux x86-64(RHEL, CentOS, Ubuntu, Debian…).
    • RAM: tối thiểu 2GB RAM. Bạn có thể sử dụng SWAP nếu hệ thống nhỏ hơn 2GB RAM.
    • Webserver: Apache 2.2/2.4 hoặc Nginx 1.8 trở lên.
    • Database: MySQL 5.6 trở lên. MariaDB hoặc Percona đều tương thích với Magento do có hỗ trợ MySQL 5.6 APIs.
    • PHP: chỉ hoạt động trên PHP 5.6.5–5.6.x, 7.0.2, 7.0.4, 7.0.6–7.0.x.
    • Các PHP extensions yêu cầu: curl, gd, ImageMagick (6.3.7 trở lên), intl, mbstring, mcrypt, mhash, openssl, PDO/MySQL, SimpleXML, soap, xml, xsl, zip. Nếu sử dụng MagentoEE thì cài thêm bc-math. Nếu dùng PHP 7 thì cài thêm json và iconv. Ngoài ra, nên cài đặt thêm PHP_Xdebug 2.2.0 và PHPUnit 4.1 trở lên.
    • Composer: phiên bản ổn định mới nhất 1.4.2.
    • Các kĩ thuật cache: sử dụng PHP OPcache. Bên cạnh đó, có thể sử dụng Redis 3.0 hoặc Varnish 3.5 trở lên để page caching. Sử dụng Redis hoặc Memcached để session storage.

    Trong bài viết này, mình sẽ hướng dẫn cài đặt MagentoCE 2.1.7 trên VPS CentOS 6×64, 2GB RAM, cài đặt HocVPS Script (có sẵn Nginx 1.12.0, PHP 7.0.21 và MariaDB 10.0.31) với domain hocvps.com.

    3. Cài đặt hệ thống


    – Cập nhật hệ thống lên CentOS 6.9 (Final). Thiết lập SWAP nếu cần thiết.


    # yum -y upgrade
    # cat /etc/*-release
    CentOS release 6.9 (Final)


    – Cài đặt HocVPS Script phiên bản mới nhất với PHP 7.0 (port HocVPS Admin 2017)


    # curl -sO https://hocvps.com/install && bash install


    – Cài đặt các PHP extensions cần thiết.


    # yum install ImageMagick ImageMagick-devel
    # yum install php-intl php-soap php-xmlrpc php-xdebug php-devel php-imagick


    – Chỉnh sửa cấu hình PHP-FPM bằng cách thêm đoạn sau vào cuối /etc/php-fpm.d/www.conf nếu chưa có


    ; Set data paths to directories owned by process user
    php_value[session.save_handler] = files
    php_value[session.save_path] = /var/lib/php/session
    php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache


    – Chỉnh sửa cấu hình PHP tại /etc/php.d/00-hocvps-custom.ini


    memory_limit = 756M


    – Cài đặt PHP Composer


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


    Kiểm tra lại


    # composer -v
    ______
    / ____/___ ____ ___ ____ ____ ________ _____
    / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
    / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
    \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
    /_/
    Composer version 1.4.2 2017-05-17 08:17:52


    – Cấu hình Nginx cho domain cài đặt Magento, thay toàn bộ nội dung bằng đoạn dưới:


    # nano /etc/nginx/conf.d/hocvps.com.conf



    upstream fastcgi_backend {
    server 127.0.0.1:9000;
    }
    server {
    listen 80;
    server_name www.hocvps.com;
    rewrite ^(.*) http://hocvps.com$1 permanent;
    }
    server {
    listen 80 default_server;
    server_name hocvps.com;
    set $MAGE_ROOT /home/hocvps.com/public_html;
    root $MAGE_ROOT/pub;
    index index.php index.html index.htm;
    autoindex off;
    charset UTF-8;
    access_log /home/hocvps.com/logs/access.log;
    error_log /home/hocvps.com/logs/error.log;

    location / {
    try_files $uri $uri/ /index.php?$args;
    }
    # PHP entry point for setup application
    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";
    }
    }

    # PHP entry point for update application
    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";
    }
    }

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

    # PHP for /static
    location /static/ {
    # Uncomment the following line in production mode
    #expires max;
    # Remove signature of the static files that is used to overcome the browser cache
    location ~ ^/static/version {
    rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
    }
    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";
    }

    # PHP for /media
    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 /media/customer/ {
    deny all;
    }
    location /media/downloadable/ {
    deny all;
    }
    location /media/import/ {
    deny all;
    }

    # PHP entry point for main application
    location ~ (index|get|static|report|404|503)\.php$ {
    try_files $uri =404;
    fastcgi_pass fastcgi_backend;
    fastcgi_buffers 1024 4k;
    fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
    fastcgi_param PHP_VALUE "memory_limit=768M \n max_execution_time=600";
    fastcgi_read_timeout 600s;
    fastcgi_connect_timeout 600s;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }

    # Banned locations (only reached if the earlier PHP entry point regexes don't match)
    location ~* (\.php$|\.htaccess$|\.git) {
    deny all;
    }

    # Custom configuration
    include /home/hocvps.com/public_html/*.conf;

    location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    allow 45.77.34.137;
    deny all;
    }

    location /php_status {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
    allow 127.0.0.1;
    allow 45.77.34.137;
    deny all;
    }
    location = /favicon.ico {
    log_not_found off;
    access_log off;
    }

    location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
    }
    }
    server {
    listen 2017;
    access_log off;
    log_not_found off;
    error_log /home/hocvps.com/logs/nginx_error.log;
    root /home/hocvps.com/private_html;
    index index.php index.html index.htm;
    server_name hocvps.com;

    auth_basic "Restricted";
    auth_basic_user_file /home/hocvps.com/private_html/hocvps/.htpasswd;

    location / {
    autoindex on;
    try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_connect_timeout 1000;
    fastcgi_send_timeout 1000;
    fastcgi_read_timeout 1000;
    fastcgi_buffer_size 256k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    fastcgi_intercept_errors on;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\. {
    deny all;
    }
    }

    Chú ý: Trong trường hợp này, Magento 2 cài đặt với domain hocvps.com, thư mục website lưu tại /home/hocvps.com/public_html/ và port HocVPS Admin là 2017. Phần bôi đỏ các bạn sửa cho phù hợp hệ thống của mình nhé. Có thể copy toàn bộ rồi thay hocvps.com bằng domain của bạn.

    Nếu cài Magento trên site khác site chính HocVPS hoặc sử dụng hệ thống khác HocVPS thì bỏ phần block port HocVPS.

    Sau đó, bạn khởi động lại Nginx và PHP-FPM :


    # service nginx restart
    Stopping nginx: [ OK ]
    Starting nginx: [ OK ]
    # service php-fpm restart
    Stopping php-fpm: [ OK ]
    Starting php-fpm: [ OK ]

    4. Cài đặt Magento


    – Tải Magento 2 Community Edition phiên bản mới nhất 2.1.7. Bạn có thể tải từ Magento Tech Resources hoặc sao chép từ Magento 2 Github repository .

    Trong trường hợp này, mình tải Magento 2 từ Magento Tech Resources với file nhận được là Magento-CE-2.1.7-2017-05-30-01-54-40.tar.gz

    Lưu ý: Với Magento 2 Github repository, bạn chỉ có thể thể sử dụng dạng Developer Mode – dành cho nhà lập trình ứng dụng, không thể mở gian hàng, đặt hàng…

    Download-Magento2.1.7.png

    – Upload Magento 2 lên VPS, đặt tại thư mục website, ví dụ/home/hocvps.com/public_html. Có thể sử dụng sFTP qua Bitvise/FileZilla để upload.

    – Giải nén toàn bộ nội dung. Như vậy, thư mục Magento 2 tại /home/hocvps.com/public_html/


    # cd /home/hocvps.com/public_html
    # tar -xzvf Magento-CE-2.1.7-2017-05-30-01-54-40.tar.gz


    – Tạo database với lệnh hocvps menu 8)Tao Database.

    – Phân Quyền Webserver cho Magento 2 với lệnh hocvps menu 14) Phan Quyen Webserver.

    – Tiến hành cài đặt Magento 2 bằng dòng lệnh hoặc giao diện web. Mình sẽ hướng dẫn cài đặt bằng giao diện web. Truy cập đường dẫn domain.com/setup để cài đặt Magento 2 lần lượt từng bước:

    Nhấn chọn Agree and Setup Magento
    AgreeSetup-Magento.png

    Bước 1: Readiness Check – Kiểm tra yêu cầu hệ thống. Đảm bảo yêu cầu bạn nhấn Next
    Readiness-Check.png

    Bước 2: Add A Databse – Điền thông tin Database đã tạo
    Add-a-Database.png

    Bước 3: Web Configuration – Cấu hình Magento Website. Bạn nhập Website URL và Admin URL. Hiện tại chưa cài đặt SSL nên các bạn không chọn HTTPS
    Web-Configuration.png

    Bước 4: Customize Your Store – Cấu hình gian hàng, bao gồm múi giờ, đơn vị tiền tệ và ngôn ngữ.
    Customize-Your-Store.png

    Bước 5: Create Admin Account – Tạo lập tài khoản Admin
    Create-Admin-Account.png

    Bước 6: Install – Cấu hình hoàn tất, bạn nhấn Install Now để cài đặt
    Install.png

    Cài đặt hoàn thành, bạn lưu lại các thông tin đăng nhập cùng Enryption Key. Magento sử dụng Enryption Key để mã hóa các thông tin quan trọng như thẻ tín dụng, tài khoản đăng nhập trang quản lý, nội dung CAPTCHA…

    Install-Success.png

    – Xoá quyền ghi tại thư mục app/etc:


    chmod ugo-w /home/hocvps.com/public_html/app/etc


    – Thiết lập Magento Crontab


    # EDITOR=nano crontab -u nginx -e


    Điền đoạn dưới và lưu lại (nhớ sửa nội dung cho phù hợp hệ thống của bạn)


    * * * * * /usr/bin/php /home/hocvps.com/public_html/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /home/hocvps.com/public_html/var/log/magento.cron.log
    * * * * * /usr/bin/php /home/hocvps.com/public_html/update/cron.php >> /home/hocvps.com/public_html/var/log/update.cron.log
    * * * * * /usr/bin/php /home/hocvps.com/public_html/bin/magento setup:cron:run >> /home/hocvps.com/public_html/var/log/setup.cron.log


    Như vậy, bạn đã cài đặt thành công Magento 2 trên hệ thống HocVPS Script. Bạn có thể truy cập hệ thống và sử dụng.

    Giao diện Magento Storefront.
    Magento-Storefront.png
    Giao diện Magento Admin

    Magento-Admin.png

    Chúc các bạn thành công.

     
    Bài viết mới
  2. Đang tải...


Chia sẻ trang này