GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Magento 2.1 auf CentOS 7

Magento ist ein Open-Source-Shop (E-Commerce-Software) und Content-Management-System für E-Commerce-Websites auf Basis des PHP Zend Framework. Magento wendet die Konventionen der objektorientierten Programmierung und der MVC-Architektur (Model-View-Controller) an und verwendet MySQL/MariaDB als Datenbank. Die entwickelte Software wurde 2008 von Varien Inc. gestartet. In den vergangenen Jahren hat sich Magento zu einer vertrauenswürdigen Plattform für E-Commerce-Software entwickelt, die Online-Unternehmen auf der ganzen Welt antreibt.

In diesem Tutorial werde ich Sie durch die Installation von Magento 2.1 führen. Wir werden Magento 2.1 mit Nginx und Php7.0-fpm und MySQL als Datenbank installieren. Zu diesem Zweck werde ich einen CentOS 7-Server mit aktiviertem SELinux verwenden.

Schritt 1 – Nginx installieren

In diesem Schritt installieren wir Nginx aus dem Epel-Repository. Epel ist standardmäßig nicht verfügbar, daher müssen wir das Epel-Repository installieren, bevor wir Nginx installieren.

Installieren Sie das Epel-Repository mit diesem yum-Befehl.

yum -y install epel-release

Jetzt können wir Nginx aus dem Epel-Repository installieren.

yum -y install nginx

Nachdem die Installation abgeschlossen ist, starten Sie Nginx und fügen Sie es hinzu, um es beim Booten zu starten.

systemctl start nginx
systemctl enable nginx

Nginx wird auf Port 80 gestartet, Sie können dies mit dem netstat-Befehl unten überprüfen.

netstat -plntu

Falls Sie das Ergebnis 'Befehl nicht gefunden' sehen, können Sie Net-Tools wie dieses installieren.

yum -y install net-tools

Schritt 2 – PHP-FPM installieren und konfigurieren

In diesem Tutorial verwenden wir PHP-FPM 7 für die Magento-Installation. Ich werde PHP 7-Pakete aus dem Webtatic-Repository verwenden.

Laden Sie ein neues webtatic-Repository herunter und fügen Sie es dem System hinzu.

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

Führen Sie nun den folgenden Befehl aus, um PHP-FPM7 mit allen Paketen und Erweiterungen zu installieren, die für die Magento-Installation benötigt werden.

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

Wenn eine PHP-FPM7-Installation abgeschlossen ist, müssen wir sie konfigurieren. Wir werden die php.ini-Datei und die php-fpm-Konfigurationsdatei 'www.conf' konfigurieren.

Bearbeiten Sie php.ini mit vim.

vim /etc/php.ini

Entkommentieren Sie die cgi.fix_pathinfo-Zeile 762 und ändern Sie den Wert auf 0.

cgi.fix_pathinfo=0

Konfigurieren Sie das Speicherlimit, die maximale Ausführungszeit und aktivieren Sie die zlib-Ausgabekomprimierung. Stellen Sie sicher, dass Sie die Werte wie unten gezeigt einstellen.

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

Kommentieren Sie das Sitzungspfadverzeichnis aus und ändern Sie das Verzeichnis wie folgt.

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

Speichern und beenden.

Bearbeiten Sie als Nächstes die php-fpm-Konfigurationsdatei www.conf mit dem Befehl vim.

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

PHP-FPM7 wird unter dem Benutzer und der Gruppe „nginx“ ausgeführt. Ändern Sie den Wert für die Benutzer- und Gruppenzeilen in „nginx“.

user = nginx
group = nginx

Wir werden php-fpm unter einer Socket-Datei ausführen, nicht unter einem Serverport. Ändern Sie den Wert der listen-Zeile in den Pfad der Socket-Datei.

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

Die Socket-Datei muss dem Benutzer und der Gruppe „nginx“ gehören, kommentieren Sie die listen-Zeilen aus und ändern Sie die Werte wie unten gezeigt.

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

Entkommentieren Sie abschließend die PHP-FPM-Umgebungszeilen 366-370.

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

Speichern und beenden.

Erstellen Sie als Nächstes ein neues Verzeichnis für den Sitzungspfad und den Speicherort der PHP-Sockendatei. Ändern Sie dann den Eigentümer in den Benutzer und die Gruppe „nginx“.

Erstellen Sie ein neues Verzeichnis für den Sitzungspfad.

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

Erstellen Sie ein neues Verzeichnis für den Speicherort der php-fpm-Socket-Datei.

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

Die PHP-FPM7-Konfiguration ist abgeschlossen, starten Sie jetzt den Daemon und aktivieren Sie ihn mit dem folgenden systemctl-Befehl, damit er beim Booten startet.

systemctl start php-fpm
systemctl enable php-fpm

Wenn keine Fehler vorhanden sind, können Sie den folgenden Befehl verwenden, um zu überprüfen, ob php-fpm unter der Socket-Datei ausgeführt wird.

netstat -pl | grep php-fpm.sock

Schritt 3 – MySQL 5.7 Server installieren

Magento 2.1 setzt eine aktuelle MySQL-Version voraus, für die Installation können Sie MySQL 5.6 oder 5.7 verwenden. In diesem Tutorial verwenden wir MySQL 5.7, das aus dem offiziellen MySQL-Repository installiert werden kann. Also müssen wir zuerst das neue MySQL-Repository hinzufügen.

Laden Sie das neue MySQL-Repository für die Installation von MySQL 5.7 herunter und fügen Sie es hinzu.

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

Installieren Sie nun MySQL 5.7 aus dem MySQL-Repository mit dem folgenden Befehl yum.

yum install mysql-community-server

Wenn die Installation abgeschlossen ist, starten Sie mysql und fügen Sie es hinzu, um beim Booten zu starten.

systemctl start mysqld
systemctl enable mysqld

MySQL 5.7 wurde mit einem Standard-Root-Passwort installiert, das in der Datei mysqld.log gespeichert ist. Verwenden Sie den Befehl grep, um das Standardkennwort für MySQL 5.7 anzuzeigen. Führen Sie den folgenden Befehl aus.

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

Jetzt sehen Sie das aktuelle MySQL-Root-Passwort, Sie sollten das Standardpasswort ändern.

Verbinden Sie sich mit dem Benutzer root und dem Standardpasswort mit der MySQL-Shell.

mysql -u root -p
TYPE DEFAULT PASSWORD

Ändern Sie das Standard-Root-Passwort mit der folgenden Abfrage. Ich werde hier das neue Passwort „[email protected]“ verwenden. Bitte wählen Sie ein sicheres Passwort.

ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]';
flush privileges;

Das standardmäßige MySQL-Root-Passwort wurde geändert. Als nächstes müssen wir einen neuen Benutzer und eine neue Datenbank für die Magento-Installation erstellen.

Wir erstellen eine neue Datenbank mit dem Namen „magentodb“ und einen neuen Benutzer „magentouser“ mit dem Passwort „[email protected]“. Gewähren Sie dann dem neuen Benutzer alle Rechte der Datenbank. Führen Sie die Mysql-Abfrage unten aus.

create database magentodb;
create user [email protected] identified by '[email protected]';
grant all privileges on magentodb.* to [email protected] identified by '[email protected]';
flush privileges;

Die Installation und Konfiguration von MySQL 5.7 ist abgeschlossen und eine Datenbank für die Magento-Installation wurde erstellt.

Schritt 4 Magento installieren und konfigurieren

In diesem Schritt beginnen wir mit der Installation und Konfiguration von Magento. Für das Web-Root-Verzeichnis verwenden wir das Verzeichnis ‚/var/www/magento2‘. Wir benötigen PHP Composer für die Installation des Magento-Pakets.

Installieren Sie PHP Composer

Wir werden Composer für die Installation von PHP-Paketabhängigkeiten verwenden. Installieren Sie Composer mit dem folgenden Curl-Befehl.

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

Wenn die Installation abgeschlossen ist, können Sie die Composer-Version wie unten gezeigt überprüfen.

composer -v

PHP Composer wurde installiert.

Magento herunterladen und extrahieren

Gehen Sie in das Verzeichnis ‚/var/www‘ und laden Sie den Magento-Code mit dem Befehl wget herunter.

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

Unzip installieren mit yum.

yum -y install unzip

Extrahieren Sie den Magento-Code und benennen Sie das Verzeichnis in das Verzeichnis „magento2“ um.

unzip 2.1.zip
mv magento2-2.1 magento2

Installieren Sie PHP-Abhängigkeiten

Wechseln Sie in das Verzeichnis magento2 und installieren Sie alle Magento-Abhängigkeiten mit dem Composer-Befehl.

cd magento2
composer install -v

Warten Sie, bis die Installation der PHP-Abhängigkeit abgeschlossen ist.

Konfigurieren Sie den virtuellen Magento-Host

Wechseln Sie in das Nginx-Verzeichnis und erstellen Sie eine neue virtuelle Host-Konfigurationsdatei mit dem Namen „magento.conf“ im Verzeichnis „conf.d“.

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

Fügen Sie die Konfiguration des virtuellen Hosts unten ein.

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;
}

Speichern und beenden.

Testen Sie nun die Konfiguration. Wenn kein Fehler auftritt, starten Sie den Nginx-Dienst neu.

nginx -t
systemctl restart nginx

Installieren Sie Magento 2.1

Wechseln Sie in das Verzeichnis magento2, um Magento über die Befehlszeile zu installieren.

cd /var/www/magento2

Führen Sie den folgenden Befehl aus und stellen Sie sicher, dass Sie die richtige Konfiguration haben. Die Werte, die von Ihnen geändert werden müssen, werden unten erklärt.

bin/magento setup:install --backend-frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
--db-name="magentodb" \
--db-user="magentouser" \
--db-password="[email protected]" \
--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 \
[email protected] \
[email protected] \
--admin-firstname=admin \
--admin-lastname=user \
--cleanup-database

Wert ändern für:

  • --backend-frontname:Magento-Admin-Anmeldeseite „adminlogin“
  • --key:eigenen Schlüssel generieren
  • --db-host:Datenbankhost localhost
  • --db-name:Datenbankname ‚magentodb‘
  • --db-user:Datenbankbenutzer „magentouser“
  • --db-password:Datenbankpasswort „[email protected]“
  • --base-url:Magento-URL
  • --admin-user:Ihr Admin-Benutzer
  • --admin-password:Ihr Magento-Admin-Passwort
  • --admin-email:Ihre E-Mail-Adresse

Wenn Sie keinen Fehler im Befehl haben, werden die Ergebnisse unten angezeigt.

Magento 2.1 ist installiert. Führen Sie den folgenden Befehl aus, um die Berechtigung für das etc-Verzeichnis zu ändern und den Besitzer des magento2-Verzeichnisses auf den Benutzer „nginx“ zu ändern.

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

Magento Cron konfigurieren

Dieser Cronjob wird für den Magento Indexer benötigt. Erstellen Sie einen neuen Cronjob als 'nginx'-Benutzer (weil Magento unter nginx-Benutzer und -Gruppe läuft).

crontab -u nginx -e

Fügen Sie die Konfiguration unten ein.

* * * * * /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

Speichern und beenden.

Schritt 5 – Konfigurieren Sie SELinux und Firewalld

In diesem Tutorial belassen wir SELinux im Modus „Enforcing“. Führen Sie die folgenden Befehle aus, um den SELinux-Status zu überprüfen.

sestatus

SELinux befindet sich im 'Enforcing'-Modus.

Installieren Sie das SELinux-Verwaltungstool „policycoreutils-python“ mit dem folgenden Befehl yum.

yum -y install policycoreutils-python

Wechseln Sie in das Verzeichnis „/var/www/“.

cd /var/www/

Führen Sie die folgenden Befehle aus, um den Sicherheitskontext für die Magento-Dateien und -Verzeichnisse zu ändern.

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/'

Die SELinux-Konfiguration ist abgeschlossen. Jetzt müssen wir firewalld konfigurieren.

Installieren Sie das Firewalld-Paket, wenn Sie es noch nicht auf Ihrem Server haben.

yum -y install firewalld

Starten Sie die Firewall und fügen Sie firewalld hinzu, um beim Booten zu starten.

systemctl start firewalld
systemctl enable firewalld

Öffnen Sie die Ports für HTTP und HTTPS, damit wir über einen Webbrowser auf die Magento-URL zugreifen können.

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

Zeigen Sie die offenen Ports für Dienste mit dem folgenden Befehl an.

firewall-cmd --list-all

HTTP und HTTPS sind bereit für Verbindungen.

Schritt 6 – Testen

Öffnen Sie Ihren Webbrowser und durchsuchen Sie die Magento-URL. Meine ist:

magento.hakase-labs.com

Und Sie sehen die Standard-Startseite von Magento.

Melden Sie sich als Nächstes beim Admin-Dashboard an, indem Sie die Admin-Login-URL öffnen.

magento.hakase-labs.com/adminlogin

Melden Sie sich mit Ihrem Admin-Benutzer und Passwort an.

Magento-Admin-Dashboard.

Magento 2.1 wurde erfolgreich mit Nginx, PHP-FPM7 und MySQL 5.7 auf einem CentOS 7-Server installiert.


Cent OS
  1. So installieren und konfigurieren Sie Nginx unter CentOS 7

  2. So installieren Sie Nginx unter CentOS 7

  3. So installieren Sie R unter CentOS 7

  4. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7

  5. So installieren Sie Nginx unter CentOS 8

So installieren Sie Nginx unter CentOS 6

So installieren Sie Magento auf CentOS 7

So installieren Sie Magento auf CentOS 8

So installieren Sie Nginx unter CentOS 7

Wie installiere ich Nginx unter CentOS 7?

So installieren Sie Nginx unter CentOS 8