在CentOS 7上安装Magento 2

Magento是基于开放源代码技术构建的领先企业级电子商务平台,结合了强大的功能,灵活性和用户友好的界面。

Magento具有吸引购物的经验,灵活的模块化体系结构以及企业级可伸缩性和性能等功能,是大多数在线商家的首选平台。

这是如何在CentOS 7上安装和配置Magento 2系列的第一篇文章。 在本教程中,我们将引导您完成在CentOS 7计算机上安装Magento 2的步骤。

先决条件

作为遵循本教程的前提条件,您将需要:

  • CentOS 7服务器,根据官方的Magento 2系统要求,您至少需要2G的RAM。 如果您使用的服务器内存少于2GB,则应创建一个交换文件。
  • 以具有sudo特权的用户帐户登录。
  • 指向您的公共服务器IP的域名。 在本教程中,我们将使用 example.com
  • 安装并配置了Nginx,MySQL和PHP 7.1。 如果您还没有,请参阅我们的CentOS 7 LEMP指南。
  • 有效的SSL证书。 如果您没有,则可以通过在CentOS 7上使用Secure Nginx和Let’s Encrypt来创建免费的Lets’s Encrypt SSL证书。

Magento访问密钥对#

我们需要生成访问密钥,以验证对Magento 2代码存储库以及第三方扩展和主题的访问。

如果您没有Magento Marketplace帐户,则可以在此处创建一个。 创建帐户后,请查看这些说明,了解如何生成一组新的访问密钥。

创建MySQL数据库

Magento 2与MySQL 5.6和5.7,MariaDB 10.x和Percona 5.7兼容。 如果您的服务器上未安装MySQL或MariaDB,则可以查看本指南。

登录到MySQL Shell:

mysql -u root -p

并运行以下命令来创建新的数据库和用户,并通过新创建的数据库向该用户授予特权:

CREATE DATABASE magento;GRANT ALL ON magento.* TO [email protected] IDENTIFIED BY 'P4ssvv0rD';

安装PHP扩展#

我们假设您已经使用我们的指南启用了PHP 7.1 Remi存储库。

使用以下命令安装所有必需的PHP扩展:

sudo yum install php-mysql php-opcache php-xml php-mcrypt php-gd php-soap php-redis php-bcmath php-intl php-mbstring php-json php-iconv php-fpm php-zip

安装完成后,通过编辑 php.ini 与文件 sed

sudo sed -i "s/memory_limit = .*/memory_limit = 756M/" /etc/php.inisudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php.inisudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php.inisudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php.inisudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php.inisudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php.d/10-opcache.ini

安装Composer#

Composer是PHP的依赖项管理器,用于安装,更新和管理库。

要在全球范围内安装composer,请通过以下方式下载Composer安装程序: curl 并将文件移到 /usr/local/bin 目录:

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

创建一个新的系统用户

创建一个新用户和组,将运行我们的Magento安装,为简单起见,我们将命名用户 magento

sudo useradd -m -U -r -d /opt/magento magento

添加 nginx 用户到 magento 分组并更改 /opt/magento 目录权限,以便Nginx可以访问我们的Magento安装:

sudo usermod -a -G magento nginxsudo chmod 750 /opt/magento

配置PHP FPM#

接下来,我们需要配置PHP并为我们的FPM创建一个FPM池。 magento 用户。

打开您的文本编辑器并创建以下文件:

/etc/php-fpm.d/magento.conf

[magento]
user = magento
group = nginx
listen.owner = magento
listen.group = nginx
listen = /run/php-fpm/magento.sock
pm = ondemand
pm.max_children =  50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /

保存文件并重新启动PHP FPM服务以使更改生效:

sudo systemctl restart php-fpm

安装Magento#

有几种安装Magento的方法。 避免从Github存储库安装Magento,因为该版本用于开发而不是用于生产安装。 在本教程中,我们将使用composer从其存储库中安装Magento。

切换到用户 magento

sudo su - magento

通过将magento文件下载到 /opt/magento/public_html 目录:

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html

在创建项目期间,作曲家会要求您输入访问密钥,从您的Magento市场帐户复制密钥并将其存储在 auth.json 文件,因此稍后在更新安装时,您无需再次添加相同的密钥。

    Authentication required (repo.magento.com):
      Username: e758ec1745d190520ca246e4e832e12c
      Password:
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn]

创建项目后,我们就可以开始安装了。 我们可以使用命令行或使用Web安装向导来安装Magento。 在本教程中,我们将使用命令行安装Magento。

我们将使用以下选项来安装我们的Magento商店:

  • 基本和基本安全URL设置为 https://example.com,请使用您的域进行更改。
  • Magento管理员:
    • John Doe 作为名字和姓氏。
    • [email protected] 作为电子邮件。
    • john 作为用户名和 j0hnP4ssvv0rD 作为密码。
  • 数据库名称 magento, 用户名 magento,密码 P4ssvv0rD,并且数据库服务器与Web服务器位于同一主机上。
  • en_US,美国英语为默认语言。
  • USD 美元作为默认货币。
  • America/Chicago 作为时区。

您可以在此处找到所有安装选项。

更改为Magento ~/public_html 目录:

cd ~/public_html

运行以下命令以开始安装:

php bin/magento setup:install --base-url=https://example.com/ 
                        --base-url-secure=https://example.com/ 
                        --admin-firstname="John" 
                        --admin-lastname="Doe" 
                        --admin-email="[email protected]" 
                        --admin-user="john" 
                        --admin-password="j0hnP4ssvv0rD" 
                        --db-name="magento" 
                        --db-host="localhost" 
                        --db-user="magento" 
                        --currency=USD 
                        --timezone=America/Chicago 
                        --use-rewrites=1 
                        --db-password="P4ssvv0rD"

别忘了更改密码(j0hnP4ssvv0rD)到更安全的地方。

如果安装成功,将显示一条消息,其中包含Magento管理控制台的URI。

[Progress: 485 / 485]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1csalp
Nothing to import.

创建Magento crontab#

Magento使用cron作业来安排诸如重新索引,通知,站点地图,电子邮件等任务。

要创建Magento crontab,请运行以下命令: magento 用户:

php ~/public_html/bin/magento cron:install

我们可以通过运行以下命令来验证crontab是否已安装:

crontab -l
#~ MAGENTO START adc062915d7b30804a2b340095af072d
* * * * * /usr/bin/php /opt/magento/public_html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /opt/magento/public_html/var/log/magento.cron.log
* * * * * /usr/bin/php /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log
* * * * * /usr/bin/php /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log
#~ MAGENTO END adc062915d7b30804a2b340095af072d

配置Nginx

如果您遵循我们在CentOS 7上的LEMP指南,则您应该已经在计算机上安装了Nginx。 现在,我们只需要为Magento安装创建一个新的服务器块。 我们将包括magento随附的默认Nginx配置:

/etc/nginx/conf.d/example.com.conf

upstream fastcgi_backend {
  server   unix:/run/php-fpm/magento.sock;
}

server {
    listen 80;
    server_name example.com www.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    set $MAGE_ROOT /opt/magento/public_html;
    set $MAGE_MODE developer; # or production

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    include /opt/magento/public_html/nginx.conf.sample;
}

重新加载Nginx服务以使更改生效:

sudo systemctl reload nginx

最后,您应该可以在以下位置登录到Magento安装 https://example.com/admin_1csalp 使用您在运行Magento安装程序时指定的管理员用户。

结论#

在本教程中,您在Centos 7服务器上安装了Magento 2。 您还生成了一个免费的“让我们加密SSL证书”,并将Nginx设置为SSL终止代理。

magento电子商务中心

这篇文章是如何在CentOS 7系列上安装和配置Magento 2的一部分。本系列的其他文章:

•在CentOS 7上安装Magento 2 2018年3月15日•在Magentto 2上配置在CentOS 7上使用Varnish 2018年3月27日

Sidebar