Hoe Magento 2.1 op CentOS 7 te installeren
Magento is een open source shop (e-commerce software) en content management systeem voor e-commerce websites op basis van het PHP Zend Framework. Magento past de conventies van Object Oriented Programming en MVC (Model-View-Controller) -architectuur toe en gebruikt MySQL / MariaDB als de database. De ontwikkelde software is door Varien Inc. in 2008 gestart. In de afgelopen jaren is Magento een vertrouwd platform geworden voor e-commerce software die online bedrijven over de hele wereld van dienst is.
In deze zelfstudie zal ik je door de Magento 2.1-installatie leiden. We zullen Magento 2.1 installeren met Nginx en Php7.0-fpm en MySQL als de database. Voor dit doel zal ik een CentOS 7-server gebruiken met SELinux ingeschakeld.
Stap 1 - Installeer Nginx
In deze stap zullen we Nginx installeren vanuit de epel-repository. Epel is standaard niet beschikbaar, dus we moeten de epel-repository installeren voordat Nginx wordt geïnstalleerd.
Installeer de epel-repository met deze yum-opdracht.
yum - installeer epel-release
Nu kunnen we Nginx installeren vanuit de epel-repository.
yum -y installeer nginx
Nadat de installatie is voltooid, start u Nginx en voegt u deze toe om te starten bij het opstarten.
systemctl start nginx
systemctl enable nginx
Nginx wordt gestart op poort 80, u kunt dat controleren met de opdracht netstat hieronder.
netstat -plntu
In het geval dat u het resultaat 'opdracht niet gevonden' ziet, kunt u net-tools als dit installeren.
yum -y installeer net-tools
Stap 2 - Installeren en configureren van PHP-FPM
In deze tutorial gebruiken we PHP-FPM 7 voor de Magento-installatie. Ik zal PHP 7-pakketten uit de Webtatic-repository gebruiken.
Download en voeg een nieuwe webtatic-repository toe aan het systeem.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Voer nu de onderstaande opdracht uit om PHP-FPM7 te installeren met alle pakketten en uitbreidingen die nodig zijn voor de Magento-installatie.
yum -y installeer 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
Wanneer een PHP-FPM7-installatie is voltooid, moeten we deze configureren. We zullen het php.ini-bestand en het php-fpm-configuratiebestand 'www.conf' configureren.
Bewerk php.ini met vim.
vim /etc/php.ini
Maak een commentaar op de regel cgi.fix_pathinfo 762 en wijzig de waarde in 0.
cgi.fix_pathinfo = 0
Configureer geheugenlimiet, maximale uitvoeringstijd en schakel de uitvoer van zlib-uitvoer in, zorg ervoor dat u de waarden instelt zoals hieronder weergegeven.
memory_limit = 512M
max_execution_time = 1800
zlib.output_compression = Aan
Maak een unaccment sessie pad directory en verander de directory zoals hieronder.
session.save_path = "/ var / lib / php / session"
Opslaan en afsluiten.
Bewerk vervolgens het php-fpm-configuratiebestand www.conf met vim-opdracht.
vim /etc/php-fpm.d/www.conf
PHP-FPM7 wordt uitgevoerd onder de 'nginx'-gebruiker en -groep, wijzig de waarde in' nginx 'voor de gebruikers- en groepslijnen.
gebruiker = nginx
groep = nginx
We zullen php-fpm uitvoeren onder een socketbestand, niet een serverpoort. Wijzig de waarde van de luisterlijn in het pad van het socketbestand.
listen = /var/run/php/php-fpm.sock
Het socketbestand moet eigendom zijn van de 'nginx'-gebruiker en -groep, de spreeklijnen uncommenteren en de waarden veranderen zoals hieronder getoond.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Tot slot, reageer op de PHP-FPM-omgevingsregels 366-370.
env [HOSTNAME] = $ HOSTNAME
env [PATH] = / usr / local / bin: / usr / bin: / bin
env [TMP] = / tmp
env [TMPDIR] = / tmp
env [TEMP] = / tmp
Opslaan en afsluiten.
Maak vervolgens een nieuwe map voor het sessiepad en de php sock-bestandslocatie. Wijzig vervolgens de eigenaar in de 'nginx'-gebruiker en -groep.
Maak een nieuwe map voor het sessiepad.
mkdir -p / var / lib / php / session /
chown -R nginx: nginx / var / lib / php / session /
Maak een nieuwe map voor php-fpm socket bestandslocatie.
mkdir -p / run / php /
chown -R nginx: nginx / run / php /
PHP-FPM7-configuratie is voltooid, start de daemon nu en schakel deze in om te starten bij het opstarten met de opdracht systemctl hieronder.
systemctl start php-fpm
systemctl schakel php-fpm in
Als er geen fouten zijn, kunt u de onderstaande opdracht gebruiken om te controleren of php-fpm actief is onder het socketbestand.
netstat -pl | grep php-fpm.sock
Stap 3 - Installeer MySQL 5.7 Server
Magento 2.1 vereist een actuele MySQL-versie, je kunt MySQL 5.6 of 5.7 gebruiken voor de installatie. In deze tutorial gebruiken we MySQL 5.7, die kan worden geïnstalleerd vanuit de officiële MySQL-repository. Dus we moeten eerst de nieuwe MySQL-repository toevoegen.
Download en voeg de nieuwe MySQL-repository toe voor MySQL 5.7-installatie.
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
Installeer nu MySQL 5.7 uit de MySQL-repository met de onderstaande yum-opdracht.
yum installeer mysql-community-server
Wanneer de installatie is voltooid, start u mysql en voegt u deze toe om te starten tijdens het opstarten.
systemctl start mysqld
systemctl enable mysqld
MySQL 5.7 is geïnstalleerd met een standaard root-wachtwoord, het wordt opgeslagen in het bestand mysqld.log. Gebruik de opdracht grep om het standaardwachtwoord voor MySQL 5.7 te bekijken. Voer de onderstaande opdracht uit.
grep 'tijdelijk' /var/log/mysqld.log
Nu je het huidige MySQL root-wachtwoord ziet, zou je het standaard wachtwoord moeten veranderen.
Maak verbinding met de mysql-shell met gebruikersroot en standaardwachtwoord.
mysql -u root -p
TYPE DEFAULT PASSWORD
Wijzig het standaard root-wachtwoord met de onderstaande vraag. Ik gebruik hier het nieuwe wachtwoord 'Hakase-labs123@'. Kies een veilig wachtwoord.
WIJZIG GEBRUIKER 'root'@'localhost' GEÏDENTIFICEERD DOOR 'Hakase-labs123@';
flush privileges;
Het standaard MySQL root-wachtwoord is gewijzigd. Vervolgens moeten we een nieuwe gebruiker en een nieuwe database voor Magento-installatie maken.
We zullen een nieuwe database aanmaken met de naam 'magentodb' en een nieuwe gebruiker 'magentouser' met wachtwoord 'Magento123@'. Verleen vervolgens alle rechten van de database aan de nieuwe gebruiker. Voer de onderstaande MySQL-query uit.
maak database magentodb;
maak een gebruiker aan [email protected] geïdentificeerd door 'Magento123@';
verleen alle rechten op magentodb.* aan [email protected] geïdentificeerd door 'Magento123@';
flush privileges;
De installatie en configuratie van MySQL 5.7 is voltooid en er is een database voor de Magento-installatie gemaakt.
Stap 4 Installeer en configureer Magento
In deze stap gaan we Magento installeren en configureren. Voor de webrootdirectory gebruiken we de directory '/ var / www / magento2'. We hebben PHP composer nodig voor de Magento-pakketinstallatie.
Installeer PHP Composer
We zullen Composer gebruiken voor installatie van PHP-pakketafhankelijkheid. Installeer de composer met de curl-opdracht hieronder.
krul -sS https://getcomposer.org/installer | sudo php - -install-dir = / usr / bin -filename = componist
Wanneer de installatie is voltooid, kunt u de versie van de componist controleren, zoals hieronder wordt weergegeven.
componist -v
PHP Composer is geïnstalleerd.
Download en pak Magento uit
Ga naar de map '/ var / www' en download de Magento-code met de opdracht wget.
cd / var / www /
wget https://github.com/magento/magento2/archive/2.1.zip
Installeer unzip met yum.
yum - installeer unzip
Pak de Magento-code uit en hernoem de map naar de map 'magento2'.
unzip 2.1.zip
mv magento2-2.1 magento2
Installeer PHP-afhankelijkheden
Ga naar de map magento2 en installeer alle Magento-afhankelijkheden met de opdracht composer.
cd magento2
composer install -v
Wacht tot de PHP Dependency-installatie is voltooid.
Configureer Magento Virtual Host
Ga naar de Nginx-directory en maak een nieuw virtueel hostconfiguratiebestand met de naam 'magento.conf' in de directory 'conf.d'.
cd / etc / nginx /
vim conf.d / magento.conf
Plak hieronder de virtuele hostconfiguratie.
upstream fastcgi_backend {server unix: /run/php/php-fpm.sock; } server {luister 80; servernaam magento.hakase-labs.com; stel $ MAGE_ROOT / var / www / magento2 in; stel $ MAGE_MODE-ontwikkelaar in; include /var/www/magento2/nginx.conf.sample; }
Opslaan en afsluiten.
Test nu de configuratie. Als er geen fout is, start u de Nginx-service opnieuw.
nginx -t
systemctl herstart nginx
Installeer Magento 2.1
Ga naar de map magento2 om Magento op de opdrachtregel te installeren.
cd / var / www / magento2
Voer de onderstaande opdracht uit, controleer of u de juiste configuratie hebt. De waarden die door u moeten worden gewijzigd, worden hieronder uitgelegd.
bin / magento setup: install -backend-frontname = "adminlogin"
–key=”biY8vdWx4w8KV5Q59380Fejy36l6ssUb”
db-host =”localhost”
-db-name =”magentodb”
db-user =”magentouser”
–db-wachtwoord=”Magento123@”
-Taal =”nl”
-currency =”USD”
-timezone =”America / New_York”
-gebruik-herschrijft = 1
-gebruik-beveiligde = 0
-basis-url =”http://magento.hakase-labs.com”
-basis-url-secure =”https://magento.hakase-labs.com”
-admin-user = adminuser
–admin-wachtwoord=admin123@
[Email protected]
-admin-voornaam = admin
-admin-achternaam = user
-cleanup database
Waarde wijzigen voor:
- -Backend-frontname: Magento admin loginpagina "adminlogin"
- -Toets: genereer uw eigen sleutel
- -Db-host: Databasehost localhost
- -Db-naam: databasenaam 'magentodb'
- -Db-user: database gebruiker 'magentouser'
- –db-wachtwoord: databasewachtwoord 'Magento123@'
- -Base-url: Magento URL
- -Admin-user: uw admin-gebruiker
- -Admin-wachtwoord: uw Magento admin-wachtwoord
- -Admin-email: uw e-mailadres
Als u geen fout in de opdracht ziet, ziet u de resultaten hieronder.
Magento 2.1 is geïnstalleerd. Voer de onderstaande opdracht uit om de machtiging voor de map etc te wijzigen en de eigenaar van de map magento2 te wijzigen in de gebruiker 'nginx'.
chmod 700 / var / www / magento2 / app / enz
chown -R nginx: nginx / var / www / magento2
Magento Cron configureren
Deze cronjob is nodig voor de Magento indexer. Maak een nieuwe cronjob als 'nginx'-gebruiker (omdat magento actief is onder nginx-gebruiker en -groep).
crontab -u nginx -e
Plak de onderstaande configuratie.
* * * * * / usr / bin / php / var / www / magento2 / bin / magento cron: run | grep -v "Taken uitgevoerd volgens schema" >> /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
Opslaan en afsluiten.
Stap 5 - Configureer SELinux en Firewalld
In deze tutorial laten we SELinux in de modus 'Enforcing'. Voer de onderstaande opdrachten uit om de SELinux-status te controleren.
sestatus
SELinux bevindt zich in de modus 'Handhaving'.
Installeer de SELinux managementtool 'policycoreutils-python' met onderstaande yum-opdracht.
yum -y installeer policycoreutils-python
Ga naar de map '/ var / www /'.
cd / var / www /
Voer de onderstaande opdrachten uit om de beveiligingscontext voor de Magento-bestanden en -mappen te wijzigen.
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-configuratie is voltooid. Nu moeten we firewalld configureren.
Installeer firewalld-pakket als u het nog niet op uw server hebt.
yum -y installeer firewalld
Start de firewall en voeg firewalld toe om te starten bij het opstarten.
systemctl start firewalld
systemctl enable firewalld
Open de poorten voor HTTP en HTTPS zodat we de Magento-URL vanuit een webbrowser kunnen openen.
firewall-cmd -permanent -add-service = http
firewall-cmd -permanent -add-service = https
firewall-cmd -rlaad
Bekijk de open poorten voor services met de onderstaande opdracht.
firewall-cmd -list-all
HTTP en HTTPS zijn gereed voor verbindingen.
Stap 6 - Testen
Open uw webbrowser en blader door de Magento-URL. De mijne is:
magento.hakase-labs.com
En je ziet de standaard Magento-startpagina.
Log vervolgens in op het beheerdersdashboard door de adminlogin-URL te openen.
magento.hakase-labs.com/adminlogin
Log in met je admin-gebruiker en wachtwoord.
Magento beheerdersdashboard.
Magento 2.1 is succesvol geïnstalleerd met Nginx, PHP-FPM7 en MySQL 5.7 op een CentOS 7-server.
Referentie
- http://devdocs.magento.com/guides/
- https://www.howtoforge.com/tutorial/how-to-install-magento-with-nginx-on-ubuntu/