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。