Prezantimi
Detyrat përgatitore
Shkarkoni dhe ekstraktoni PrestaShop
Konfiguro firewall-in e OpenBSD (pf).
Konfiguro OpenSMTPD si një rele të postës elektronike
Konfiguro mjedisin PHP dhe PHP-FPM
Konfigurimi i MariaDB
Konfigurimi i Apache
Instaloni PrestaShop
Disa detyra përfundimtare
Prezantimi
Ky tutorial demonstron OpenBSD si një zgjidhje e-commerce duke përdorur PrestaShop dhe Apache.
Apache kërkohet sepse PrestaShop ka kërkesa komplekse për rishkrimin e URL-ve që nuk mbështeten nga serveri i integruar i uebit i OpenBSD, httpd. Ky udhëzues përdor certifikata të vetë-nënshkruara. Ju lutemi përdorni një certifikatë të verifikuar për prodhimin.
Detyrat përgatitore
Krijo përkohësisht një përdorues të rregullt që lejohet të përdoret doaspa fjalëkalim. Kjo qasje do të hiqet pas konfigurimit.
user add -c "Example User" -m -G wheel -L staff auser
passwd auser
echo 'permit nopass keepenv :wheel' > /etc/doas.conf
Shtoni depon e paketave OpenBSD.
echo 'https://cdn.openbsd.org/pub/OpenBSD' > /etc/installurl
Përcillni statusin ditor dhe emailet e sigurisë në adresën tuaj.
echo 'hostmaster@example.com' > /root/.forward
Vendosni emrin e hostit të serverit.
echo 'www.example.com' > /etc/myname
hostname www.example.com
Shtoni FQDN dhe adresën IP të serverit tuaj në /etc/hosts.
Zëvendësojeni 192.0.2.1me adresën tuaj IP të Vultr.
127.0.0.1 localhost
::1 localhost
192.0.2.1 www.example.com
Shtoni paketat e kërkuara për PrestaShop dhe Apache. Zgjidhni versionet më të fundit kur ju kërkohet.
doas su
pkg_add apache-httpd php php-curl php-gd php-intl php-pdo_mysql php-zip mariadb-client mariadb-server wget unzip
Krijoi një certifikatë SSL të vetë-nënshkruar për testim. Vendosni Emrin e Përbashkët në FQDN të serverit tuaj, p.sh. www.example.com.
openssl req -x509 -new -nodes -newkey rsa:4096 -keyout /etc/ssl/private/example.com.key -out /etc/ssl/example.com.crt -days 3650 -sha256
chmod 0600 /etc/ssl/private/example.com.key
Shkarkoni dhe ekstraktoni PrestaShop
Gjeni URL-në për versionin më të fundit të PrestaShop , shkarkoni në /tmpdhe ekstraktoni në /var/www/htdocs/prestashop.
cd /tmp
wget <https://download.prestashop.com/download/releases/prestashop_1.7.6.4.zip>
unzip prestashop_1.7.6.4.zip -d /var/www/htdocs/prestashop
chown -R www:www /var/www/htdocs/prestashop
Konfiguro murin e zjarrit për të bllokuar të gjithë trafikun në hyrje, përveç ssh , www dhe https .
Bëni një kopje rezervë të /etc/pf.conf.
cp /etc/pf.conf /etc/pf.conf.bak
Redakto /etc/pf.confsiç tregohet.
set skip on lo
block in
pass out
pass in on egress inet proto tcp to port {ssh, www, https} \
flags S/SA keep state
Testoni dhe aktivizoni rregullat e murit të zjarrit.
doas pfctl -nf /etc/pf.conf
doas pfctl -f /etc/pf.conf
Bëni kopje rezervë të /etc/mail/smtpd.confskedarit tuaj .
cp /etc/mail/smtpd.conf /etc/mail/smtpd.conf.bak
Redaktoni /etc/mail/smtpd.confsiç tregohet më poshtë.
Shënime: * Përkufizimi i tabelës për sekretet përmban emrin e përdoruesit dhe fjalëkalimin për transmetimin e postës. * Veprimi jashtë duket deri emrin e përdoruesit dhe fjalëkalimin nën etiketën prestashopnë /etc/mail/secretsdhe relays email përmes serverit tuaj të postës elektronike.
table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets
listen on lo0
action "local_mail" mbox alias <aliases>
action "outbound" relay host smtp+tls://prestashop@mail.example.com:587 \
tls no-verify auth <secrets>
match from local for local action "local_mail"
match from local for any action "outbound"
Krijo /etc/mail/secrets
Zëvendësoni adresën e emailit dhe fjalëkalimin me kredencialet që përdorni për serverin tuaj të postës elektronike.
echo "prestashop user@example.com:password" > /etc/mail/secrets
Vendosni lejet për të siguruar /etc/mail/secrets
chmod 0600 /etc/secrets
Gjeni skedarin e konfigurimit për gabime dhe rinisni demonin smtpd.
smtpd -n
rcctl restart smtpd
Konfiguro procesin PHP-FPM për të dëgjuar në një fole TCP në vend të një fole domeni UNIX.
Bëni ndryshimin e mëposhtëm për /etc/php-fpm.confskedarin.
...
; If using a TCP port, never expose this to a public network.
;listen = /var/www/run/php-fpm.sock
listen = 127.0.0.1:9000
Bëni disa ndryshime shtesë në mjedisin PHP në /etc/php-7.3.ini. Ky emër skedari mund të ndryshojë pak nëse versioni është më i ri se 7.3. Këto ndryshime:
- Lejo që skedarët më të mëdhenj të ngarkohen.
- Çaktivizoni mjedisin chrooted.
Konfiguro PHP për të dërguar email përmes sendmail.
; Default Value: not set
;chroot = /var/www
...
; Maximum allowed size for uploaded files.
; <http://php.net/upload-max-filesize>
upload_max_filesize = 6M
...
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; <http://php.net/sendmail-path>
;sendmail_path =
sendmail_path = /usr/sbin/sendmail -t -i
...
; Whether to allow the treatment of URLs (like <http://> or <ftp://)> as files.
; <http://php.net/allow-url-fopen>
allow_url_fopen = On
...
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; <http://php.net/post-max-size>
post_max_size = 12M
Aktivizo shtojcat PHP.
cp /etc/php-7.3.sample/* /etc/php-7.3/.
Aktivizo dhe nis demonin PHP-FPM. Emri i demonit mund të jetë paksa i ndryshëm nëse versioni është më i ri.
rcctl enable php73_fpm
rcctl start php73_fpm
Konfigurimi i MariaDB
MariaDB ofron bazën e bazës së të dhënave për PrestaShop. Për shkak se MariaDB ka nevojë për më shumë skedarë të hapur sesa lejon klasa e paracaktuar, krijoni një klasë të veçantë në /etc/login.conf.
Në fund të skedarit, shtoni rreshtat e mëposhtëm:
mysqld:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
Instaloni MariaDB.
doas su
mysql_install_db
rcctl enable mysqld
rcctl start mysqld
Konfiguro sigurinë MariaDB.
mysql_secure_installation
Krijo bazën e të dhënave PrestaShop. Përdorni një fjalëkalim të fortë.
mysql -u root
CREATE DATABASE prestashop;
GRANT ALL PRIVILEGES ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password123';
FLUSH PRIVILEGES;
EXIT
Konfigurimi i Apache
Rezervo /etc/apache2/httpd2.conf
cp /etc/apache2/httpd2.conf /etc/apache2/httpd2.conf.bak
Bëni ndryshimet e mëposhtme në /etc/apache2/httpd2.conf, duke përdorur #për të aktivizuar dhe çaktivizuar modulet.
Listen 443
...
LoadModule mpm_event_module /usr/local/lib/apache2/mod_mpm_event.so
#LoadModule mpm_prefork_module /usr/local/lib/apache2/mod_mpm_prefork.so
LoadModule proxy_module /usr/local/lib/apache2/mod_proxy.so
LoadModule proxy_fcgi_module /usr/local/lib/apache2/mod_proxy_fcgi.so
LoadModule ssl_module /usr/local/lib/apache2/mod_ssl.so
LoadModule rewrite_module /usr/local/lib/apache2/mod_rewrite.so
...
ServerAdmin webmaster@example.com
ServerName 192.0.2.1:80
Disa ndryshime të tjera /etc/apache2/httpd2.confndodhin drejt fundit të skedarit. Hiqeni #nga deklaratat e përfshira të treguara.
Shtoni së fundi linjat Virtual Hosting.
# Server-pool management (MPM specific)
Include /etc/apache2/extra/httpd-mpm.conf
...
# Virtual Hosts
IncludeOptional /etc/apache2/sites/*.conf
Krijo /etc/apache2/sitesdrejtorinë.
mkdir /etc/apache2/sites
Krijo /etc/apache2/sites/example.confme informacionin e mëposhtëm:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
DocumentRoot "/var/www/htdocs/prestashop"
<Directory "/var/www/htdocs/prestashop">
Options -Indexes +Multiviews +FollowSymLinks
AllowOverride All
<Limit GET POST OPTIONS>
</Limit>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
DocumentRoot "/var/www/htdocs/prestashop"
<Directory "/var/www/htdocs/prestashop">
Options -Indexes +Multiviews +FollowSymLinks
AllowOverride All
<Limit GET POST OPTIONS>
</Limit>
Require all granted
</Directory>
SSLEngine On
SSLCertificateFile "/etc/ssl/example.com.crt"
SSLCertificateKeyFile "/etc/ssl/private/example.com.key"
SSLCipherSuite HIGH:!aNULL
</VirtualHost>
Konfiguro modulin e përfaqësuesit të Apache duke shtuar sa vijon në /etc/apache2/sites/example.conf
<IfModule proxy_module>
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</IfModule>
Testoni konfigurimin, më pas aktivizoni dhe nisni Apache.
apachectl configtest
rcctl enable apache2
rcctl start apache2
Sigurohuni që Apache po dëgjon në portat 80 dhe 443.
netstat -ln -finet
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 *.443 *.* LISTEN
tcp 0 0 127.0.0.1.25 *.* LISTEN
tcp 0 0 *.22 *.* LISTEN
tcp 0 0 *.80 *.* LISTEN
tcp 0 0 127.0.0.1.3306 *.* LISTEN
tcp 0 0 127.0.0.1.9000 *.* LISTEN
Instaloni PrestaShop
Shfletoni në faqen tuaj të internetit në http://www.example.com. Magjistari i instalimit të PrestaShop do të hapet.
Pasi të përfundoni instalimin, mbani parasysh lidhjet e para të dyqanit dhe ato administrative dhe fshini direktorinë /var/www/htdocs/prestashop/install.
Aktivizo SSL.
- Klikoni " Shop Parametrat".
- Klikoni Përgjithshme
- Aktivizo SSL për të gjitha pjesët e dyqanit tuaj
Ndryshoni fjalëkalimin tuaj administrativ.
- Klikoni Parametrat e avancuar
- Kliko Team
- Ndryshoni fjalëkalimin tuaj.
Disa detyra përfundimtare
Bëni kopje rezervë të dyqanit tuaj dhe bazës së të dhënave të tij:
cd /var/www/htdocs
doas tar cvfz /home/auser/prestashop.tar.gz prestashop/
doas mysqldump -u prestashop -p prestashop | gzip -4 > /home/auser/prestashop.sql.tar.gz
doas chown auser:auser /home/auser/prestashop*
Hiqni aksesin doas për llogarinë tuaj të përdoruesit duke rikrijuar doas.confskedarin.
echo 'permit keepenv :wheel' > /etc/doas.conf