Installera Prestashop

Förutsättning: Vi ska installera en webb-butik på en egen server. Det blir Prestashop på en Centos-server med Nginx som webbserver.

VI börjar med att installera nginx och det måste du göra som användaren root:

#yum install nginx

För att det ska fungera måste vi också installera php då sidorna i Prestashop är skrivna i php. Lägg märke till att i Centos heter php.fpm. Men i Ubuntu kallas den för php5-fpm. Den kan vara förvirrande ibland att hitta rätt om man väljer mellan olika distributioner. Men ofta går det bra att googla sig fram till vad paketen heter. Det går också bra att använda pakethanteraren för att få reda på vad paketet kan heta.

#yum install php-fpm

Sen måste vi också ha en databas. Vi väljer Mariadb. Kör gärna mysqlsecure-installation och kör allt som föreslås, och hoppa inte över lösenord till root-användaren

yum install mariadb Sen behöver vi installera en del plugins till php, men det får vi ta framöver.

Vi gör en databasanvändare som ska tillåtas köra databasen i Prestashop. Logga in i mariadb (mysql) som root (alltså root-användaren i mariadb och inte rootanvändaren i Centos):

mysql -u root -p

 create database prestashop;

create user prestauser@localhost identified by 'somepassword';

grant all privileges on prestashop.* to prestauser@localhost;

flush privileges;

exit;

Det är dags att ladda ned Prestashop. Jag hämtar den från följande adress: https://www.prestashop.com/en/download Du behöver registrera dig för att få hem filen. När du fått hem den packar du upp den i root-mappen för webbservern, vanligtvis i /var/www/ men det finns ju många ställen att lägga filerna i.

#unzip prestashop.16.1.4.zip -d /var/www/

 Sen måste rättigheterna justeras. Många rekommenderar att ha en särskild användare som kör Nginx. Det direktivet ska också in i konfigurationsfilen nginx.conf fast det ofta redan finns där i Centos- och också Fedoradistributioner.

chown -R nginx:nginx /var/www/prestashop

Och sen justerar vi rättigheterna med följande kommando:

chmod -R 755 /var/www/prestashop

Sen behöver vi göra två kataloger som ska innehålla konfigurationsfilerna för själva Prestashop.

#mkdir /etc/nginx/sites-enabled && mkdir /etc/nginx/sites-available

Ett tips är att efter varje ändring av konfigurationsfilerna i Nginx kontrollera att direktiven är godkända. Det gör du genom följande kommando:

#nginx -t

Kommandot spottar ut om filerna är okej eller inte.

Vi har ännu inte ändrat i några filer tillhörande Nginx, bara lagt till ett par kataloger. Innan vi gör en ändring i en konfigurationsfil ska vi ALLTID FÖRST göra en backupp-fil. Exempelvis så här:

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

Men ofta finns det det backupp-filer, i alla fall i Centos 7. De heter default på slutet.

Nginx är kinkig och blir något galet är det guld värt att ha en fungerande fil att gå tillbaka till. Det går också att vara ännu noggrannare genom att göra flera versioner av filerna och vid något fel inte behöva backa tillbaka till ursprungsfilen utan till den senast fungerande filen.

Nu ska vi skriva in att sites-enabled ska läsas in av Nginx. Det direktivet skriver vi in i nginx.conf så att det kommer att se ut så här:

Och sen ska det finnas något i sites-enabled. Men det som finns där ska finnas i sites-available och LÄNKAS till sites-enabled. Jag kallar konfigurationsfilen för Prestashop för ppshop och lägger den alltså i sites-available. Den ser i alla fall ut så här till att börja med.

Ändringen som behöver göras är att skriva root /var/www/prestashop; i stället för root /usr/share/nginx/html;

Nginx behöver laddas eller startas om när en ändring gjorts. Jag brukar ladda om så här:

#nginx -s reload

Då provar vi och resultatet blev det här, vilket inte är ovanligt:

Okej! Vi försöker reda ut det. Vi tittar i den php-fil som har hand om rättigheter och finns i /etc/php-fpm.d/www.conf

 

 Här har vi ett fel. Det är inte apache-användaren som ska ha rättigheter utan nginx. Så ändra här till nginx. Glöm inte att starta om php-fpm för att ändringarna ska börja gälla.

#systemctl restart php-fpm.service

 

Men icke. Då kontrollerar vi om det finns någon socket att lyssna till på port 9000. Men icke.

Okej. Vi måste se till så php kan lyssna till en socket och vi lägger den till att börja med på localhost och port 9000. Glöm inte att starta om både nginx och php-fpm. Nedanstående sätter vi sist i konfigurationsfilen som finns i sites-available.

 

Och nu kan vi se att det finns en socket som lyssnar om något händer vid port 9000.

 Nu fungerar det. Och nu får vi också upp installationsskriptet som ni kan se i på nästa bild. Så här ser det ut när vi går till http://localhost/install/index.php

 

 Nu tror jag att vi behöver en paus innan vi fortsätter.

Fortsättning följer på nästa sida som du kommer till om du klickar nere till höger

Föregående sida: Snapshot på LVM Nästa sida: Kör Prestashops installationsskript