在 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