So installieren Sie Thelia 2.3 unter CentOS 7
Verwenden Sie ein anderes System? Thelia ist ein Open-Source-Tool zum Erstellen von E-Business-Websites und zum Verwalten von Online-Inhalten, die in PHP geschrieben wurden. Thelia Quellcode i
TextPattern CMS 4.6.2 ist ein einfaches, flexibles, kostenloses und Open-Source-Content-Management-System (CMS), mit dem Webdesigner schöne Websites ohne Programmierung in PHP entwerfen können. TextPattern CMS bietet eine leicht zu erlernende XML-ähnliche Tag-basierte Vorlagensprache, mit der Webdesigner schnell, schlank, reaktionsschnell und sicher CMS-basierte Websites und Blogs strukturieren und erstellen können.
In diesem Tutorial installieren wir TextPattern CMS auf einem Fedora 26 LAMP VPS unter Verwendung des Apache-Webservers, PHP 7.1 und einer MariaDB-Datenbank.
Wir werden zunächst einen neuen sudo
Benutzer hinzufügen .
Melden Sie sich zunächst wie folgt bei Ihrem Server an root
:
ssh root@YOUR_VULTR_IP_ADDRESS
Fügen Sie einen neuen Benutzer mit dem Namen user1
(oder Ihren bevorzugten Benutzernamen) hinzu:
useradd user1
Legen Sie als Nächstes das Kennwort für den user1
Benutzer fest:
passwd user1
Wenn Sie dazu aufgefordert werden, geben Sie ein sicheres und einprägsames Passwort ein.
Überprüfen Sie nun die /etc/sudoers
Datei, um sicherzustellen, dass die sudoers
Gruppe aktiviert ist:
visudo
Suchen Sie nach einem Abschnitt wie diesem:
%wheel ALL=(ALL) ALL
Stellen Sie sicher, dass es nicht kommentiert ist. Diese Zeile zeigt an, dass Benutzer, die Mitglieder der wheel
Gruppe sind, den sudo
Befehl verwenden können, um root
Berechtigungen zu erhalten.
Nachdem Sie die Datei bearbeitet haben, können Sie sie speichern und beenden, indem Sie sie drücken Esc
und dann eingeben :wq
, um die Datei zu "schreiben" und "zu beenden".
Als nächstes müssen wir user1
der wheel
Gruppe hinzufügen :
usermod -aG wheel user1
Wir können die user1
Gruppenmitgliedschaft überprüfen und überprüfen, ob der usermod
Befehl mit dem groups
Befehl funktioniert hat :
groups user1
Verwenden Sie nun den su
Befehl, um zum neuen sudo-Benutzerkonto zu wechseln user1
:
su - user1
Die Eingabeaufforderung wird aktualisiert, um anzuzeigen, dass Sie jetzt im user1
Konto angemeldet sind . Sie können dies mit dem folgenden whoami
Befehl überprüfen :
whoami
Starten Sie den sshd
Dienst neu, damit Sie sich ssh
mit dem neuen Sudo-Benutzerkonto anmelden können, das Sie gerade erstellt haben:
sudo systemctl restart sshd
Beenden Sie das user1
Konto:
exit
Beenden Sie das root
Konto (wodurch Ihre ssh
Sitzung getrennt wird).
exit
Sie können jetzt ssh
von Ihrem lokalen Host aus mit dem neuen Sudo-Benutzerkonto ohne Rootberechtigung in die Serverinstanz zugreifen user1
:
ssh user1@YOUR_VULTR_IP_ADDRESS
Wenn Sie sudo ausführen möchten, ohne jedes Mal ein Kennwort eingeben zu müssen, öffnen Sie die /etc/sudoers
Datei erneut mit visudo
:
sudo visudo
Bearbeiten Sie den Abschnitt für die wheel
Gruppe so, dass er folgendermaßen aussieht:
%wheel ALL=(ALL) NOPASSWD: ALL
Bitte beachten Sie: Das Deaktivieren der Kennwortanforderung für den sudo-Benutzer wird nicht empfohlen, ist jedoch hier enthalten, da dies die Serverkonfiguration wesentlich komfortabler und weniger frustrierend machen kann, insbesondere bei längeren Systemverwaltungssitzungen! Wenn Sie über die Auswirkungen auf die Sicherheit besorgt sind, können Sie die Konfigurationsänderung nach Abschluss Ihrer Verwaltungsaufgaben jederzeit auf das Original zurücksetzen.
Wenn Sie sich über das root
Benutzerkonto aus beim sudo
Benutzerkonto anmelden möchten , können Sie einen der folgenden Befehle verwenden:
sudo -i
sudo su -
Sie können das root
Konto jederzeit verlassen und zu Ihrem sudo
Benutzerkonto zurückkehren, indem Sie einfach Folgendes eingeben:
exit
Bevor Sie Pakete auf der Fedora-Serverinstanz installieren, aktualisieren wir zunächst das System.
Stellen Sie sicher, dass Sie mit einem Nicht-Root-Sudo-Benutzer am Server angemeldet sind, und führen Sie den folgenden Befehl aus:
sudo dnf -y update
Installieren Sie den Apache-Webserver:
sudo dnf -y install httpd
Verwenden Sie den systemctl
Befehl, um Apache zu starten und zu aktivieren, damit es beim Booten automatisch ausgeführt wird.
sudo systemctl enable httpd
sudo systemctl start httpd
Überprüfen Sie Ihre Apache-Konfigurationsdatei, um sicherzustellen, dass die DocumentRoot
Anweisung auf das richtige Verzeichnis verweist.
sudo vi /etc/httpd/conf/httpd.conf
Die DocumentRoot
Konfigurationsoption sollte folgendermaßen aussehen:
DocumentRoot "/var/www/html"
Stellen wir nun sicher, dass das mod_rewrite
Apache-Modul geladen ist. Wir können dies tun, indem wir die Konfigurationsdatei der Apache-Basismodule nach dem Begriff " mod_rewrite
" durchsuchen .
Öffne die Datei:
sudo vi /etc/httpd/conf.modules.d/00-base.conf
Suchen Sie nach dem Begriff mod_rewrite
.
Wenn das mod_rewrite
Apache-Modul geladen ist, sollten Sie eine Konfigurationszeile finden, die folgendermaßen aussieht:
LoadModule rewrite_module modules/mod_rewrite.so
Wenn die obige Zeile mit einem Semikolon beginnt, müssen Sie das Semikolon entfernen, um die Zeile zu kommentieren und das Modul zu laden. Dies gilt natürlich auch für alle anderen erforderlichen Apache-Module.
Wir müssen jetzt die Standardkonfigurationsdatei von Apache bearbeiten, mod_rewrite
damit sie mit TextPattern CMS ordnungsgemäß funktioniert.
Öffne die Datei:
sudo vi /etc/httpd/conf/httpd.conf
Suchen Sie dann den Abschnitt, der mit beginnt, <Directory "/var/www/html">
und wechseln Sie AllowOverride none
zu AllowOverride All
. Das Endergebnis (mit allen entfernten Kommentaren) sieht ungefähr so aus:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Speichern und schließen Sie nun die Apache-Konfigurationsdatei.
Wir werden Apache am Ende dieses Tutorials neu starten, aber ein regelmäßiger Neustart von Apache während der Installation und Konfiguration ist sicherlich eine gute Angewohnheit. Lassen Sie es uns jetzt tun.
sudo systemctl restart httpd
Wir müssen jetzt die Standardeinstellungen HTTP
und HTTPS
Ports öffnen, da diese firewalld
standardmäßig blockiert werden .
Öffnen Sie die Firewall-Ports:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
Laden Sie die Firewall neu, um die Änderungen zu übernehmen.
sudo firewall-cmd --reload
success
Nach jedem erfolgreichen Firewall-Konfigurationsbefehl wird das Wort in Ihrem Terminal angezeigt.
Wir können schnell überprüfen, ob der Apache- HTTP
Port geöffnet ist, indem wir die IP-Adresse oder Domäne der Serverinstanz in einem Browser aufrufen:
http://YOUR_VULTR_IP_ADDRESS/
Wenn alles richtig eingerichtet ist, wird die Standard-Apache-Webseite in Ihrem Browser angezeigt.
SELinux steht für "Security Enhanced Linux". Es ist eine Sicherheitsverbesserung für Linux, die Benutzern und Administratoren eine feinere Zugriffskontrolle ermöglicht. In Fedora 26 ist es standardmäßig aktiviert, aber für die Serversicherheit ist es definitiv nicht unbedingt erforderlich, da viele Linux-Serverdistributionen nicht installiert oder standardmäßig aktiviert sind.
Um später Probleme mit der Dateiberechtigung mit TextPattern CMS zu vermeiden, werden wir SELinux vorerst deaktivieren. Öffnen Sie also die SELinux-Konfigurationsdatei mit Ihrem bevorzugten Terminal-Editor:
sudo vi /etc/selinux/config
Wechseln Sie SELINUX=enforcing
zu SELINUX=disabled
und speichern Sie die Datei.
Um die Konfigurationsänderung zu übernehmen, erfordert SELinux einen Neustart des Servers. Sie können den Server entweder über die Vultr-Systemsteuerung neu starten oder einfach den shutdown
Befehl verwenden, um den Server sauber herunterzufahren und neu zu starten:
sudo shutdown -r now
Wenn der Server neu gestartet wird, wird Ihre SSH-Sitzung getrennt und Sie sehen möglicherweise eine Meldung, die Sie über eine 'broken pipe'
informiert oder Sie informiert 'Connection closed by remote host'
. Dies ist kein Grund zur Sorge. Warten Sie einfach etwa 20 Sekunden und dann wieder SSH (mit Ihrem eigenen Benutzernamen und Ihrer eigenen Domain):
ssh user1@YOUR_DOMAIN
Oder (mit Ihrem eigenen Benutzernamen und Ihrer IP-Adresse):
ssh user1@YOUR_VULTR_IP_ADDRESS
Sobald Sie sich wieder angemeldet haben, sollten Sie den Status von SELinux mit dem sestatus
Befehl überprüfen , um sicherzustellen, dass es ordnungsgemäß deaktiviert ist:
sudo sestatus
Sie sehen eine Nachricht mit der Aufschrift SELinux status: disabled
. Wenn Sie eine Meldung SELinux status: enabled
(oder etwas Ähnliches) sehen, müssen Sie die obigen Schritte wiederholen und sicherstellen, dass Sie Ihren Server ordnungsgemäß neu starten.
Wir können jetzt PHP 7.1 zusammen mit allen erforderlichen PHP-Modulen installieren, die für TextPattern CMS erforderlich sind.
sudo dnf -y install php php-mysqlnd php-mbstring php-gd php-common php-pdo php-xml
Fedora 26 verwendet standardmäßig den MariaDB-Datenbankserver, einen erweiterten, vollständig Open Source-Drop-In-Ersatz für den MySQL-Server.
Installieren Sie den MariaDB-Datenbankserver:
sudo dnf -y install mariadb-server
Starten Sie den MariaDB-Server und aktivieren Sie ihn, damit er beim Booten automatisch ausgeführt wird.
sudo systemctl enable mariadb
sudo systemctl start mariadb
Sichern Sie Ihre MariaDB-Serverinstallation:
sudo mysql_secure_installation
Das root
Passwort wird wahrscheinlich leer sein. Drücken Sie einfach die Eingabetaste, wenn Sie zur Eingabe des root
Passworts aufgefordert werden .
Wenn Sie aufgefordert werden, einen MariaDB / MySQL- root
Benutzer zu erstellen , wählen Sie "Y" (für "Ja") und geben Sie ein sicheres root
Kennwort ein. Beantworten Sie einfach alle anderen Ja / Nein-Fragen mit "Y", da die Standardvorschläge die sichersten Optionen sind.
Melden Sie sich als MariaDB- root
Benutzer bei der MariaDB-Shell an, indem Sie den folgenden Befehl ausführen .
sudo mysql -u root -p
Um auf die MariaDB-Eingabeaufforderung zuzugreifen, geben Sie einfach das MariaDB- root
Kennwort ein, wenn Sie dazu aufgefordert werden.
Führen Sie die folgenden Abfragen aus, um eine MariaDB-Datenbank und einen Datenbankbenutzer für TextPattern CMS zu erstellen.
CREATE DATABASE textpattern_db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'textpattern_user'@'localhost' IDENTIFIED BY 'UltraSecurePassword';
GRANT ALL PRIVILEGES ON textpattern_db.* TO 'textpattern_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Wenn Sie möchten, können Sie den Datenbanknamen textpattern_db
und den Benutzernamen textpattern_user
durch einen anderen Namen ersetzen . Stellen Sie außerdem sicher, dass Sie " UltraSecurePassword
" durch ein tatsächlich sicheres Kennwort ersetzen .
Ändern Sie Ihr aktuelles Arbeitsverzeichnis in das Standard-Webverzeichnis.
cd /var/www/html/
Wenn Sie eine Fehlermeldung erhalten, die so etwas wie besagt, 'No such file or directory'
versuchen Sie den folgenden Befehl:
cd /var/www/ ; sudo mkdir html ; cd html
Ihr aktuelles Arbeitsverzeichnis sollte jetzt sein : /var/www/html/
. Sie können dies mit dem pwd
Befehl (Arbeitsverzeichnis drucken) überprüfen :
pwd
Verwenden Sie jetzt wget
, um das TextPattern CMS-Installationspaket herunterzuladen.
sudo wget https://textpattern.com/file_download/75/textpattern-4.6.2.zip
Bitte beachten Sie: Die obige URL des TextPattern CMS-Pakets war zum Zeitpunkt des Schreibens korrekt. Sie sollten jedoch auf jeden Fall auf der Download-Seite von TextPattern CMS nach der neuesten Version suchen .
Listen Sie das aktuelle Verzeichnis auf, um zu überprüfen, ob Sie die Datei erfolgreich heruntergeladen haben.
ls -la
Schnell installieren, unzip
damit wir die Datei entpacken können.
sudo dnf -y install unzip
Dekomprimieren Sie jetzt das Zip-Archiv.
sudo unzip textpattern-4.6.2.zip
Verschieben Sie alle Installationsdateien in das Webstammverzeichnis:
sudo mv textpattern-4.6.2/* /var/www/html
Ändern Sie den Besitz der Webdateien, um Berechtigungsprobleme zu vermeiden.
sudo chown -R apache:apache *
Lassen Sie uns Apache erneut starten.
sudo systemctl restart httpd
Jetzt sind wir bereit, mit dem letzten Schritt fortzufahren.
Es ist Zeit, die IP-Adresse Ihrer Serverinstanz in Ihrem Browser aufzurufen. Wenn Sie Ihre Vultr-DNS-Einstellungen bereits konfiguriert haben (und genügend Zeit für die Weitergabe haben), können Sie stattdessen einfach Ihre Domain besuchen.
Geben Sie Ihre IP-Adresse für die Vultr-Instanz in die Adressleiste Ihres Browsers ein, um auf die Installationsseite von TextPattern CMS zuzugreifen, gefolgt von /textpattern/setup/
:
http://YOUR_VULTR_IP_ADDRESS/textpattern/setup/
Die meisten Installationsoptionen sind selbsterklärend, aber hier sind einige Hinweise, die Ihnen weiterhelfen sollen:
Wählen Sie Ihre Sprache und klicken Sie auf die Submit
Schaltfläche.
Geben Sie die zuvor erstellten Datenbankdetails ein:
MySQL user name: textpattern_user
MySQL password: UltraSecurePassword
MySQL server: localhost
MySQL database: textpattern_db
Geben Sie Ihre Site-Domain ein, wenn diese konfiguriert ist. Andernfalls geben Sie stattdessen einfach Ihre IP-Adresse ein und klicken Sie auf die Next
Schaltfläche.
Site URL: YOUR_VULTR_IP_ADDRESS
Auf einer Seite wird bestätigt, dass Ihre Datenbankverbindung hergestellt ist. Wenn stattdessen eine Fehlermeldung angezeigt wird, kehren Sie zu Schritt 2 zurück und überprüfen Sie Ihre Datenbankeinstellungen.
Kehren Sie nun zu Ihrem Serverinstanzterminal zurück und erstellen Sie eine config.php
Datei im /textpattern/
Verzeichnis.
sudo vi textpattern/config.php
Kopieren Sie den Text auf der Installationsseite in die config.php
Datei und speichern und beenden Sie die Datei. Der Inhalt der Konfigurationsdatei sieht ungefähr so aus:
<?php
$txpcfg['db'] = 'textpattern_db';
$txpcfg['user'] = 'textpattern_user';
$txpcfg['pass'] = 'UltraSecurePassword';
$txpcfg['host'] = 'localhost';
$txpcfg['table_prefix'] = '';
$txpcfg['txpath'] = '/var/www/html/textpattern';
$txpcfg['dbcharset'] = 'utf8mb4';
?>
Kehren Sie anschließend in Ihrem Browser zur Installationsseite zurück und klicken Sie auf die I did it!
Schaltfläche.
Geben Sie nun Ihre Anmeldedaten wie folgt ein:
Your full name: <your full name>
Your email address: <your email address>
Choose a login name: <a memorable login name>
Choose a password: <a secure password>
Wählen Sie dann ein Admin-Site-Thema aus oder lassen Sie einfach das Standardthema ausgewählt.
Klicken Sie auf die Next
Schaltfläche, um die Installation abzuschließen.
Wenn alles reibungslos gelaufen ist, wird eine Bestätigungsseite mit der Aufschrift angezeigt That went well!
.
Aus Sicherheitsgründen sollten Sie zum Terminal zurückkehren und das /setup/
Verzeichnis aus dem /textpattern/
Verzeichnis löschen :
sudo rm -rf ./textpattern/setup/
Um auf die Admin-Site zuzugreifen, klicken Sie einfach auf die Log in now
Schaltfläche " " und geben Sie Ihren Benutzernamen und Ihr Passwort ein. Wenn Sie nicht zur Administrator-Anmeldeseite weitergeleitet werden, können Sie die Adresse manuell eingeben:
http://YOUR_VULTR_IP_ADDRESS/textpattern/index.php
Jetzt können Sie mit dem Hinzufügen Ihrer Inhalte und dem Konfigurieren des Erscheinungsbilds Ihrer Website beginnen! Weitere Informationen zum Erstellen und Konfigurieren Ihrer Site finden Sie in der hervorragenden TextPattern CMS-Dokumentation .
Ich hoffe, Ihnen hat dieses Tutorial gefallen und viel Glück beim Erstellen Ihrer neuen TextPattern CMS-basierten Website!
Verwenden Sie ein anderes System? Thelia ist ein Open-Source-Tool zum Erstellen von E-Business-Websites und zum Verwalten von Online-Inhalten, die in PHP geschrieben wurden. Thelia Quellcode i
Verwenden Sie ein anderes System? Fuel CMS ist ein CodeIgniter-basiertes Content-Management-System. Der Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie t
Verwenden Sie ein anderes System? DotCMS ist ein Open-Source-Content-Management-System für Unternehmen, das in Java geschrieben wurde. Es enthält fast alle erforderlichen Funktionen
Verwenden Sie ein anderes System? WonderCMS ist ein Open Source, schnelles und kleines Flatfile-CMS, das in PHP geschrieben wurde. WonderCMS-Quellcode wird auf Github gehostet. Dieser Leitfaden wird
Verwenden Sie ein anderes System? Redaxscript 3.2 CMS ist ein modernes und ultraleichtes, kostenloses und Open-Source-Content-Management-System (CMS) mit Rocket-Fas
Verwenden Sie ein anderes System? 1.0 Oktober CMS ist ein einfaches und zuverlässiges, kostenloses und Open Source Content Management System (CMS), das auf dem Laravel-Framework basiert
Verwenden Sie ein anderes System? Subrion 4.1 CMS ist ein leistungsstarkes und flexibles Open-Source-Content-Management-System (CMS), das einen intuitiven und klaren Inhalt bietet
Verwenden Sie ein anderes System? ImpressPages CMS 5.0 ist ein einfaches und effektives, kostenloses und Open Source, benutzerfreundliches, MVC-basiertes Content Management System (CMS).
Verwenden Sie ein anderes System? Einführung BoltWire ist ein kostenloses und leichtes Content-Management-System, das in PHP geschrieben wurde. Im Vergleich zu den meisten anderen Content Managern
Verwenden Sie ein anderes System? Fuel CMS ist ein CodeIgniter-basiertes Content-Management-System. Der Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie t
Bolt ist ein Open-Source-CMS, das in PHP geschrieben wurde. Der Quellcode von Bolts wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie Sie Bolt CMS auf einem neuen CentOS 7 Vult installieren
Verwenden Sie ein anderes System? Redaxscript 3.2 CMS ist ein modernes und ultraleichtes, kostenloses und Open-Source-Content-Management-System (CMS) mit Rocket-Fas
Verwenden Sie ein anderes System? Couch CMS ist ein einfaches und flexibles, kostenloses und Open-Source-Content-Management-System (CMS), mit dem Webdesigner entwerfen können
Verwenden Sie ein anderes System? Anchor CMS ist eine supereinfache und extrem leichte, kostenlose und Open-Source-Blog-Engine für das Content Management System (CMS)
Verwenden Sie ein anderes System? BigTree CMS 4.2 ist ein schnelles und leichtes, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen mit umfangreichen Funktionen
Raneto ist eine kostenlose Open-Source-Wissensdatenbank, die auf Node.js basiert und einfach einzurichten und zu verwenden sowie einfach zu verwalten ist. Kategorien und Seiten ar
Verwenden Sie ein anderes System? Omeka Classic 2.4 CMS ist eine kostenlose Open-Source-Plattform für digitales Publizieren und Content Management System (CMS) für den Austausch von Digita
Verwenden Sie ein anderes System? Craft CMS ist ein in PHP geschriebenes Open Source CMS. Craft CMS-Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie Sie installieren
Verwenden Sie ein anderes System? Einführung Automad ist ein Open Source File-basiertes Content Management System (CMS) und eine in PHP geschriebene Template Engine. Automa
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.
Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+
Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.
Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren
13 Tools zur kommerziellen Datenextraktion von Big Data
Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true
Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.
Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1
KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.