Magento 2 是 Linux 發行版上可用的強大開源電子商務平台 Magento 的繼任者。 本教程將提供在 Ubuntu 18.04 上使用 Nginx 安裝 Magento 2 的步驟。 該軟件是用PHP編寫的,數據庫使用Mysql或MariaDB,這意味著可以使用LEMP進行配置。
Magento 2 是 Magento 的最新升級,它提供了一些改進,例如
- 前端和後端,一個用於管理,一個用於商店的客戶
- 靈活性和全力支持
- 網站速度和集成插件…
Magento 2的數據庫圖與Magento 1不同,部分錶從Magento 1改名或更改為Magento 2
- core_website – store_website(結構改變)
- core_store – 存儲(結構不變)
- core_translate – 翻譯
- core_url_rewrite – url_rewrite
- core_store_group – store_group(結構不變)
- core_email_template – email_template
- admin_role – authorization_role(結構改變)
- admin_rule – authorization_rule(結構已更改)
- sales_flat_order – sales_order
- sales_flat_order_address – sales_order_address
- sales_flat_order_grid – sales_order_grid
- sales_flat_order_item – sales_order_item
- sales_flat_order_payment – sales_order_payment
- sales_flat_order_status_history – sales_order_status_history
- coupon_aggregated_order – salesrule_coupon_aggregated_order
Magento 似乎實際上並不完全兼容 php 7.2 這是 Ubuntu 18.04 上的默認安裝。 有一個 GitHub 上的 magento 社區 他們嘗試在 Magento 中實現對 php-7.2 的支持。
你可以在下面不同的 php 版本實際上兼容 magento 2。你可以在上面看到其他要求 magento的官方網站
1) 安裝先決條件
在我們的教程中,我們將在 Ubuntu 18.04 上安裝帶有 Nginx 的 Magento 2,我們將使用 MySQL 數據庫。 這意味著您的服務器上需要有一個正在運行的 LEMP 服務器。 Magento 需要一些您需要安裝的 PHP 擴展
- 數學
- 類型
- curl
- 判斷
- gd、ImageMagick 6.3.7(或更高版本)或兩者
- 國際
- 字符串
- 加密
- 散列
- openssl
- PDO/MySQL
- 簡單XML
- 肥皂
- 聲壓級
- 庫文件
- xsl
- 壓縮
- json
- 圖標
您需要擁有 Ubuntu 18.04 中已經存在的 software-properties-common 包和 ondrej/php 我們將添加的存儲庫
# add-apt-repository ppa:ondrej/php -y
現在安裝帶有依賴項的 php 7.1
# apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
autoconf automake autopoint autotools-dev binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-7 debhelper dh-autoreconf
dh-php dh-strip-nondeterminism dpkg-dev fakeroot g++ g++-7 gcc gcc-7
...
...
請注意,如果您不安裝所有這些 php 依賴項,您將在我們教程的後續步驟中被阻止。
然後編輯文件的行 /etc/php/7.1/fpm/php.ini
有類似下面的東西,並確保使價值觀適應你的
# vim /etc/php/7.1/fpm/php.ini
file_uploads = On
upload_max_filesize = 150M
memory_limit = 256M
cgi.fix_pathinfo=0
date.timezone = Cameroon/Douala
重啟 php 7.1-fpm
# systemctl restart php7.1-fpm
2) 創建 Magento 2 數據庫
現在我們應該連接到 MySQL 數據庫以便為 Magento 創建數據庫
# mysql -u root -p
Enter password:
然後創建magento數據庫,用戶並授予權限
mysql> CREATE DATABASE magentodb;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE USER 'magento'@'localhost' IDENTIFIED BY 'magentodb-password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON magentodb.* TO 'magento'@'localhost' IDENTIFIED BY 'magentodb-password';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
3) 下載並配置 Magento 2
本教程將展示安裝 Magento 2.2.5 這實際上是可用的最新發布版本。 我們將直接從 Magento 的官方 GitHub 存儲庫
# wget https://github.com/magento/magento2/archive/2.2.5.tar.gz
--2018-07-13 08:24:37-- https://github.com/magento/magento2/archive/2.2.5.tar.gz
Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113
Connecting to github.com (github.com)|192.30.253.112|:443... connected.
HTTP request sent, awaiting response... 302 Found
...
...
現在解壓
# tar xvf 2.2.5.tar.gz
然後將其移動到你的nginx服務器的根文件夾中
# mv magento2-2.2.5/ /var/www/html/magento
確保使用 chmod 命令更新權限,使用 chown 命令更新所有權,如下所示:
# chown -R www-data:www-data /var/www/html/ && chmod -R 755 /var/www/html/
如果您計劃開發 Magento 擴展,您還可能需要 composer。 如果您想為 Magento 2 代碼庫做出貢獻,您也將需要它。
# apt install composer -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
jsonlint php-cli-prompt php-composer-ca-bundle
....
....
然後檢查
# composer -V
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Composer 1.6.3 2018-01-31 16:28:17
現在我們可以使用 composer 安裝 magento 組件了。 僅當您已安裝所有 php 要求時,才能執行此操作
# cd /var/www/html/magento/ && composer install -v
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Dependency resolution completed in 0.001 seconds
Analyzed 177 packages to resolve dependencies
Analyzed 482 rules to resolve dependencies
Package operations: 117 installs, 0 updates, 0 removals
Installs: magento/magento-composer-installer:0.1.13, braintree/braintree_php:3.28.0, colinmollenhour/cache-backend-file:1.4, colinmollenhour/cache-bac
kend-redis:1.10.4, colinmollenhour/credis:1.8.2
...
...
4)為magento配置nginx
現在我們將為 Magento 配置 Nginx。 檢查 Nginx 將連接到的 PHP 套接字的位置。 所以列出目錄的內容 /var/run/php/
# ls /var/run/php/
php7.1-fpm.pid php7.1-fpm.sock
現在編輯配置文件
# vim /etc/nginx/sites-available/magento
upstream fastcgi_backend {
server unix:/var/run/php/php7.1-fpm.sock;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.mywebstore.com;
set $MAGE_ROOT /var/www/html/magento;
set $MAGE_MODE developer;
include /var/www/html/magento/nginx.conf.sample;
}
您可以通過創建如下符號鏈接來保存配置、退出和激活虛擬主機
# ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
為了避免使用默認虛擬主機的一些錯誤,請確保編輯nginx默認配置的服務器塊 /etc/nginx/sites-available/default
為了刪除 default_server 提及如下
#vim /etc/nginx/sites-available/default
server {
listen 80;
listen [::]:80;
# your others line below
}
如果你不這樣做,你會得到類似下面的錯誤
[emerg] 2369#2369: a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/magento:22
顯示兩個虛擬主機已被視為要使用的默認虛擬主機。 檢查配置
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
現在重啟nginx服務器
# systemctl restart nginx
4) 完成 magento 嚮導網絡安裝
現在您可以啟動 Web 瀏覽器以繼續安裝 Magento https://www.yourwebstore.com 然後同意
檢查php環境
如果您的環境是正確的,您將擁有全部綠色
現在使用 mysql 命令行使用先前使用的信息配置已經創建的數據庫
配置網絡訪問。 確保保留 magento admin 地址。 你可以看看高級選項
現在選擇您的商店將使用的貨幣、語言和時區
您可以看到顯示將要安裝的模塊的高級選項
配置 admin 帳戶
現在可以開始安裝了
現在您可以看到配置的摘要。 出於安全原因,不要忘記此頁面上的重要提及
現在您將看到登錄頁面。 Enter 你的 admin 之前創建的參數
您可以看到您的 magento 網上商店的儀表板主頁。 隨意瀏覽 magento2 提供的每個功能
您可以打開您的網店主頁。 這是客戶端的頁面
在此過程中您可能會遇到一些錯誤,我們將涵蓋可能發生的錯誤。
5) 修復一些可能的錯誤
在此過程中,您可能會遇到一些會導致 Magento 2 安裝停止的問題。因此我們列出了一些可以應用的修復錯誤
php FastCGI 被拒絕
由於 Magento 2 的默認 nginx 配置文件無法工作,您可能會拒絕權限。 通過檢查你的nginx日誌,你可以看到下面的錯誤
要解決它,請編輯 /var/www/html/magento/nginx.conf.sample
/setup location block 通過添加如下特定行
# vim /var/www/html/magento/nginx.conf.sample
location ~* ^/setup($|/) {
root $MAGE_ROOT;
location ~ ^/setup/index.php {
### The only line to add is the one below:
fastcgi_split_path_info ^(.+?.php)(/.*)$;
###################
## Don't change anything else in the file
然後重啟nginx。 你可以按照一個 Magento Github 上關於該問題的線程 如果你是你無法在 nginx 上運行 Web 安裝程序
一個或多個索引器無效。 確保您的 Magento cron 作業正在運行
在訪問 admin 面板第一次,您可能會收到有關無效索引和無法正常工作的 magento cron 作業的消息,如下所示
在這裡,您需要重新索引 Magento 2 中所有可用的索引。為此,請轉到項目根目錄
# cd /var/www/html/magento
並執行 magento CLI
# php bin/magento indexer:reindex
Design Config Grid index has been rebuilt successfully in 00:00:00
Customer Grid index has been rebuilt successfully in 00:00:00
Category Products index has been rebuilt successfully in 00:00:00
Product Categories index has been rebuilt successfully in 00:00:00
Catalog Rule Product index has been rebuilt successfully in 00:00:00
Product EAV index has been rebuilt successfully in 00:00:00
Stock index has been rebuilt successfully in 00:00:00
Product Price index has been rebuilt successfully in 00:00:00
Catalog Product Rule index has been rebuilt successfully in 00:00:00
Catalog Search index has been rebuilt successfully in 00:00:00
現在要為 Magento 2 設置和運行 cron,請使用命令
# php bin/magento cron:run
Ran jobs by schedule.
緩存類型無效
您可以面對失效的緩存類型。 消息將出現在頂部
一種或多種緩存類型無效:頁面緩存。 請轉到緩存管理並刷新緩存類型。
塊緩存失效的原因可能來自產品更新、目錄價格規則更改以及第 3 方擴展。 一些正在運行的 cronjobs 也會導致塊緩存失效。 消息中指示了分辨率,請轉到 系統 > 緩存管理
您將看到所有緩存類型。 現在點擊 刷新 Magento 緩存
另請閱讀:
- 如何在 Ubuntu 18.04 上安裝 LAMP 堆棧
- 如何在 Ubuntu 18.04 上使用 LAMP 安裝 PhpMyAdmin
在 Ubuntu 18.04 上運行 Magento 2 需要不同的步驟。 php-7.2 的支持似乎還沒有準備好,但 magento 社區正在為此而努力。 您可以強制嘗試使用 php-7.2 調整 Magento 2,但是,當官方支持準備就緒時,您的補丁將不再有效。