Magento 是一个领先的企业级电子商务平台,基于开源技术构建,将强大的功能与灵活性和用户友好的界面相结合。
凭借引人入胜的购物体验、灵活的模块化架构以及企业级可扩展性和性能等功能,Magento 是大多数在线商家的首选平台。
这是该系列的第一篇文章如何在 CentOS 7 上安装和配置 Magento 2。在本教程中,我们将引导您完成在 CentOS 7 计算机上安装 Magento 2 的步骤。
先决条件#
作为学习本教程的先决条件,您将需要:
- CentOS 7服务器,根据Magento 2官方系统要求你至少需要2G RAM。如果您使用的服务器 RAM 小于 2GB,您应该创建一个交换文件
.
- 以用户帐户身份登录须藤权限
.
- 指向您的公共服务器IP的域名。在本教程中,我们将使用
example.com
.
- 安装并配置了 Nginx、MySQL 和 PHP 7.1。如果您还没有,请参阅我们的CentOS 7 上的 LEMP 指南
.
- 有效的 SSL 证书。如果您没有,您可以按照以下步骤创建免费的 Let's Encrypt SSL 证书在 CentOS 7 上使用 Let's Encrypt 保护 Nginx
.
Magento 访问密钥对#
我们需要生成访问密钥来验证对 Magento 2 代码存储库以及第三方扩展和主题的访问。
如果您没有 Magento Marketplace 帐户,您可以创建一个here。创建帐户后,请检查这些说明关于如何生成一组新的访问密钥。
创建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 magento@localhost 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 选项php.ini
文件与sed
:
sudo sed -i "s/memory_limit = .*/memory_limit = 756M/" /etc/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php.ini
sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php.d/10-opcache.ini
安装作曲家#
Composer 是 PHP 的依赖管理器,用于安装、更新和管理库。
To 安装作曲家在全球范围内,下载 Composer 安装程序curl
and 移动文件
to the /usr/local/bin
目录:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
创建新的系统用户#
创建一个新的用户和组,它将运行我们的 Magento 安装,为简单起见,我们将命名我们的用户magento
:
sudo useradd -m -U -r -d /opt/magento magento
Add the nginx
magento 组的用户并改变/opt/magento
目录权限这样 Nginx 就可以访问我们的 Magento 安装:
sudo usermod -a -G magento nginx
sudo chmod 750 /opt/magento
接下来,我们需要配置 PHP 并为我们的 FPM 创建一个池magento
user.
打开你的文本编辑器并创建以下文件:
/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 administrator:
-
John
Doe
作为名字和姓氏。
-
john@example.com
作为电子邮件。
-
john
作为用户名和j0hnP4ssvv0rD
作为密码。
- 数据库名称
magento
, 用户名magento
, 密码P4ssvv0rD
,并且数据库服务器与 Web 服务器位于同一主机上。
-
en_US
,美国英语作为默认语言。
-
USD
美元作为默认货币。
-
America/Chicago
作为时区。
Change到 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="john@example.com" \
--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
user:
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
如果您关注我们的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。您还生成了免费的 Let's encrypt SSL 证书并将 Nginx 设置为 SSL 终止代理。