在 Ubuntu 16.04 上安裝 Magento 2

注意:我們將在新的 Ubuntu Server 16.04 LTS 上安裝 Magento 2,包括 PHP 7.0,MySQL 5.6 和 Apache 2.4

1.設定要求

  • Apache 2.2 或 2.4 與 mod_rewrite 模組(或)Nginx> = 1.8。
  • PHP 5.5 或更高版本。PHP 7.0 也受支援。
  • 必需的 PHP 模組 - PDO / MySQL,mbstring,mcrypt,mhash,SimpleXML,curl,xsl,gd,ImageMagick 6.3.7(或更高版本)或兩者,soap,intl,openssl。
  • 作曲家和 Git。

你可以使用以下命令從預設儲存庫(xenial)安裝上述所有要求。

sudo apt install apache2 git mysql-server
sudo apt install php libapache2-mod-php php-mysql php-dom php-simplexml php-gd
sudo apt install php-curl php-intl php-xsl php-mbstring php-zip php-xml php-mcrypt

我建議從主頁而不是 Ubuntu 儲存庫安裝。

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

2.設定 Magento 2

a)從 GitHub 下載

Magento2 程式碼在 Github 儲存庫下可用。使用以下命令克隆系統上的 Magento2 儲存庫。

cd /var/www/
git clone https://github.com/magento/magento2.git

b)通過 Composer 下載

如果你不想通過從 GitHub 克隆來安裝 Magento 2,那很好。你也可以通過 Composer 安裝它。

cd /var/www
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2

現在使用 composer 安裝 Magento2 所需的所有模組。等待安裝過程完成。 (如果你通過 Composer 安裝 Magento 2,則不需要此項)

cd magento2/
composer install

如果 composer 提示進行身份驗證,如下所示:

Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
- Installing magento/magento-composer-installer (0.1.6)
Downloading: 100%

- Installing braintree/braintree_php (2.39.0)
Downloading: 100%

- Installing justinrainbow/json-schema (1.6.1)
Downloading: 100%

- Installing symfony/console (v2.6.13)
Downloading: 100%

- Installing symfony/process (v2.8.4)
Downloading: 100%

- Installing symfony/finder (v2.8.4)
Downloading: 100%

- Installing seld/jsonlint (1.4.0)
Downloading: 100%

- Installing composer/composer (1.0.0-alpha10)
Downloading: 100%

- Installing magento/composer (1.0.2)
Authentication required (repo.magento.com):
Username: 
Password:

在此處登入 https://www.magentocommerce.com/ ,並使用公鑰作為使用者名稱私鑰作為密碼

StackOverflow 文件

現在設定檔案和目錄的許可權。

sudo chmod -R 755 /var/www/magento2/
sudo chmod -R 777 /var/www/magento2/{pub,var}

3.建立資料庫

現在使用管理員許可權登入到你的 mysql 伺服器,併為新的 magento2 安裝建立資料庫和使用者。

mysql -u root -p

mysql> CREATE DATABASE magento;
mysql> GRANT ALL ON magento.* TO magento@'localhost' IDENTIFIED BY 'magento';
mysql> FLUSH PRIVILEGES;
mysql> quit

4.配置 Apache VirtualHost 和 PHP

為你的 Magento 網站建立 Apache 配置檔案,如/etc/apache2/sites-available/magento2.example.com.conf,並新增以下內容。

<VirtualHost *:80>
   DocumentRoot /var/www/magento2
   ServerName magento2.example.com
   
   <Directory /var/www/magento2>
       AllowOverride all
   </Directory>
</VirtualHost>

現在使用以下命令啟用 virtualhost。

sudo a2ensite magento2.example.com

還要確保啟用 Magento 推薦的 Apache 重寫模組。

sudo a2enmod rewrite

你可能需要設定 PHP memory_limit 以避免 Magento 推薦的記憶體耗盡。

vi /etc/php.ini (find string by press / and type memory_limit)
memory_limit = 768M

完成上述所有更改後,請確保重新啟動 Apache 伺服器。

sudo systemctl restart apache2.service

5.安裝 Magento 2 應用程式

a)通過 Web 安裝程式

讓我們開始使用 Web 安裝程式安裝 Magento2。在 Web 瀏覽器上訪問 magento2 目錄,如下所示。它會將你重定向到安裝開始頁面。

http://magento2.example.com/

b)通過命令列

使用命令列安裝 Magento 2 是一個奇蹟,它將安裝時間從 10 分鐘減少到 1 分鐘。只需執行一行命令即可。

cd /var/www/magento2
php bin/magento setup:install --base-url=http://magento2.example.com/ \
--db-host=localhost --db-name=magento \
--db-user=magento --db-password=magento \
--admin-firstname=Magento --admin-lastname=User --admin-email=user@example.com \
--admin-user=admin --admin-password=admin123 --language=en_US \
--currency=USD --timezone=America/Chicago --cleanup-database --use-rewrites=1

6.安排 Magento2 Cronjobs

最後為 magento2 安裝安排背景 cronjobs。這些 cronjobs 執行一些活動,如重新編制索引,簡報,更新貨幣匯率,傳送自動電子郵件和生成站點地圖等。要安排這些作業,請編輯 crontab 檔案。 www-data 是 Apache 2 使用者,我們永遠不應該使用 root 許可權安排 Magento 2 cronjob。

crontab -u www-data -e

顯示文字編輯器。 (你可能需要先選擇文字編輯器。)

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