如何在CentOS 7上安装Magento 2.1

Magento是基于PHP Zend Framework的电子商务网站的开源商店(电子商务软件)和内容管理系统。 Magento应用面向对象编程和MVC(Model-View-Controller)架构的约定,并使用MySQL / MariaDB作为数据库。 开发的软件已于2008年由Varien Inc.开始。在过去的几年中,Magento已成为电子商务软件的可靠平台,为世界各地的在线企业提供支持。

在本教程中,我将引导您通过Magento 2.1安装。 我们将安装Magento 2.1与Nginx和Php7.0-fpm和MySQL作为数据库。 为此,我将使用启用了SELinux的CentOS 7服务器。

第1步 - 安装Nginx

在这一步中,我们将从epel-repository安装Nginx。 Epel默认情况下不可用,因此我们需要在安装Nginx之前安装epel-repository。

使用此yum命令安装epel-repository。

yum -y install epel-release

现在我们可以从epel-repository安装Nginx。

yum -y install nginx

安装完成后,启动Nginx并将其添加到启动时间。

systemctl start nginx
systemctl enable nginx

Nginx在80端口启动,您可以使用下面的netstat命令检查。

netstat -plntu

如果您看到结果'命令未找到',您可以像这样安装net-tools。

yum -y install net-tools

第2步 - 安装和配置PHP-FPM

在本教程中,我们将使用PHP-FPM 7进行Magento安装。 我将使用Webtatic存储库中的PHP 7软件包。

下载并添加一个新的webtatic存储库到系统。

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

现在运行下面的命令来安装PHP-FPM7,并安装Magento所需的所有软件包和扩展。

yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-mbstring php70w-zip php70w-soap

当PHP-FPM7安装完成后,我们需要进行配置。 我们将配置php.ini文件和php-fpm配置的“www.conf”文件。

用vim编辑php.ini

vim /etc/php.ini

取消注释cgi.fix_pathinfo行762并将值更改为0。

cgi.fix_pathinfo=0

配置内存限制,最大执行时间并启用zlib输出压缩,请确保按如下所示设置值。

memory_limit = 512M
max_execution_time = 1800
zlib.output_compression = On

取消注释会话路径目录并更改目录如下。

session.save_path = "/var/lib/php/session"

保存并退出。

接下来,使用vim命令编辑php-fpm配置文件www.conf。

vim /etc/php-fpm.d/www.conf

PHP-FPM7将在“nginx”用户和组下运行,将用户和组行的值更改为“nginx”。

user = nginx
group = nginx

我们将在套接字文件下运行php-fpm,而不是服务器端口。 将listen行的值更改为套接字文件的路径。

listen = /var/run/php/php-fpm.sock

套接字文件需要由“nginx”用户和组拥有,取消注释听取行并更改值,如下所示。

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

最后,取消注释PHP-FPM环境线366-370。

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

保存并退出。

接下来,为会话路径和php sock文件位置创建一个新目录。 然后将所有者更改为“nginx”用户和组。

创建会话路径的新目录。

mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/

为php-fpm套接字文件位置创建新目录。

mkdir -p /run/php/
chown -R nginx:nginx /run/php/

PHP-FPM7配置完成后,立即启动守护程序,并使用下面的systemctl命令启动它。

systemctl start php-fpm
systemctl enable php-fpm

当没有错误时,可以使用下面的命令检查php-fpm是否在套接字文件下运行。

netstat -pl | grep php-fpm.sock

第3步 - 安装MySQL 5.7服务器

Magento 2.1需要当前的MySQL版本,您可以使用MySQL 5.6或5.7进行安装。 在本教程中,我们将使用可从官方MySQL存储库安装的MySQL 5.7。 所以我们需要先添加新的MySQL存储库。

下载并添加用于MySQL 5.7安装的新MySQL存储库。

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

现在使用下面的yum命令从MySQL库安装MySQL 5.7。

yum install mysql-community-server

安装完成后,启动mysql并将其添加到启动时启动。

systemctl start mysqld
systemctl enable mysqld

MySQL 5.7已经安装了默认的root密码,它存储在mysqld.log文件中。 使用grep命令查看MySQL 5.7的默认密码。 运行下面的命令。

grep 'temporary' /var/log/mysqld.log

现在看到当前的MySQL root密码,你应该更改默认的密码。

使用用户root和默认密码连接到mysql shell。

mysql -u root -p
TYPE DEFAULT PASSWORD

使用以下查询更改默认的root密码。 我将在这里使用新密码“Hakase-labs123 @”。 请选择一个安全的密码。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Hakase-labs123@';
flush privileges;

默认的MySQL根密码已更改。 接下来,我们需要为Magento安装创建一个新的用户和一个新的数据库。

我们将使用密码“Magento123 @”创建一个名为“magentodb”的新数据库和一个新的用户“magentouser”。 然后将新数据库的所有权限授予新用户。 运行下面的mysql查询。

create database magentodb;
create user magentouser@localhost identified by 'Magento123@';
grant all privileges on magentodb.* to magentouser@localhost identified by 'Magento123@';
flush privileges;

完成MySQL 5.7安装和配置,并创建了Magento安装的数据库。

第4步安装和配置Magento

在这一步中,我们将开始安装和配置Magento。 对于Web根目录,我们将使用'/ var / www / magento2'目录。 我们需要PHPComposer的Magento软件包安装。

安装PHP Composer

我们将使用Composer进行PHP包依赖安装。 使用curl命令安装Composer者。

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

安装完成后,您可以查看Composer者版本,如下所示。

composer -v

PHP Composer已安装。

下载并提取Magento

转到'/ var / www'目录,并使用wget命令下载Magento代码。

cd /var/www/
wget https://github.com/magento/magento2/archive/2.1.zip

用yum安装解压缩。

yum -y install unzip

提取Magento代码并将目录重命名为“magento2”目录。

unzip 2.1.zip
mv magento2-2.1 magento2

安装PHP依赖关系

转到magento2目录,并使用composer命令安装所有Magento依赖项。

cd magento2
composer install -v

等待PHP依赖安装完成。

配置Magento虚拟主机

转到Nginx目录,并在'conf.d'目录中创建一个名为'magento.conf'的新虚拟主机配置文件。

cd /etc/nginx/
vim conf.d/magento.conf

在下面粘贴虚拟主机配置。

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

server {

        listen 80;
        server_name magento.hakase-labs.com;
        set $MAGE_ROOT /var/www/magento2;
        set $MAGE_MODE developer;
        include /var/www/magento2/nginx.conf.sample;
}

保存并退出。

现在测试配置。 当没有错误时,重新启动Nginx服务。

nginx -t
systemctl restart nginx

安装Magento 2.1

转到magento2目录,在命令行上安装Magento。

cd /var/www/magento2

运行下面的命令,确保你有正确的配置。 您需要更改的值如下所述。

bin/magento setup:install --backend-frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
--db-name="magentodb" \
--db-user="magentouser" \
--db-password="Magento123@" \
--language="en_US" \
--currency="USD" \
--timezone="America/New_York" \
--use-rewrites=1 \
--use-secure=0 \
--base-url="http://magento.hakase-labs.com" \
--base-url-secure="https://magento.hakase-labs.com" \
--admin-user=adminuser \
--admin-password=admin123@ \
--admin-email=admin@newmagento.com \
--admin-firstname=admin \
--admin-lastname=user \
--cleanup-database

更改值:

  • --backend-frontname:Magento管理登录页面“adminlogin”
  • --key:生成你自己的密钥
  • --db-host:数据库主机localhost
  • --db-name:数据库名'magentodb'
  • --db-user:数据库用户'magentouser'
  • --db-password:数据库密码'Magento123 @'
  • --base-url:Magento URL
  • --admin-user:您的管理员用户
  • --admin-password:您的Magento管理员密码
  • --admin-email:您的电子邮件地址

当命令没有错误时,您将看到下面的结果。

安装了Magento 2.1。 运行以下命令更改etc目录的权限,并将magento2目录的所有者更改为“nginx”用户。

chmod 700 /var/www/magento2/app/etc
chown -R nginx:nginx /var/www/magento2

配置Magento Cron

Magento索引器需要这个cronjob。 创建一个新的cronjob为“nginx”用户(因为magento在nginx用户和组下运行)。

crontab -u nginx -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

保存并退出。

第5步 - 配置SELinux和Firewalld

在本教程中,我们将把SELinux保留在“Enforcing”模式。 运行以下命令检查SELinux状态。

sestatus

SELinux处于“强制”模式。

使用下面的yum命令安装SELinux管理工具“policycoreutils-python”。

yum -y install policycoreutils-python

转到'/ var / www /'目录。

cd /var/www/

运行以下命令更改Magento文件和目录的安全上下文。

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/app/etc(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/var(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/media(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/static(/.*)?'
restorecon -Rv '/var/www/magento2/'

SELinux配置完成。 现在我们需要配置firewalld。

如果您的服务器上没有安装firewalld软件包。

yum -y install firewalld

启动防火墙并添加防火墙以在引导时启动。

systemctl start firewalld
systemctl enable firewalld

打开HTTP和HTTPS的端口,以便我们可以从Web浏览器访问Magento URL。

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

使用下面的命令查看开放端口的服务。

firewall-cmd --list-all

HTTP和HTTPS可以进行连接。

第6步 - 测试

打开Web浏览器,然后浏览Magento URL。 我的是:

magento.hakase-labs.com

您将看到默认的Magento主页。

接下来,打开adminlogin URL登录管理员信息中心。

magento.hakase-labs.com/adminlogin

使用您的管理员用户和密码登录。

Magento管理仪表板。

Magento 2.1已经在CentOS 7服务器上成功安装了Nginx,PHP-FPM7和MySQL 5.7。

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏