ОпенБСД као решење за е-трговину са ПрестаСхоп-ом и Апацхе-ом

Увод

Овај водич демонстрира ОпенБСД као решење за е-трговину користећи ПрестаСхоп и Апацхе.

Апацхе је неопходан јер ПрестаСхоп има сложене захтеве за преписивање УРЛ-а које не подржава ОпенБСД-ов уграђени веб сервер, хттпд. Овај водич користи самопотписане сертификате. За производњу користите проверени сертификат.

Задаци за припрему

Привремено креирајте редовног корисника коме је дозвољено коришћење doasбез лозинке. Овај приступ ће бити уклоњен након подешавања.

user add -c "Example User" -m -G wheel -L staff auser
passwd auser
echo 'permit nopass keepenv :wheel' > /etc/doas.conf

Додајте спремиште ОпенБСД пакета.

echo 'https://cdn.openbsd.org/pub/OpenBSD' > /etc/installurl

Проследите дневне статусне и безбедносне е-поруке на своју адресу.

echo 'hostmaster@example.com' > /root/.forward

Подесите име хоста сервера.

echo 'www.example.com' > /etc/myname
hostname www.example.com

Додајте ФКДН и ИП адресу вашег сервера у /etc/hosts.
Замените 192.0.2.1својом Вултр ИП адресом.

127.0.0.1    localhost
::1          localhost
192.0.2.1    www.example.com

Додајте потребне пакете за ПрестаСхоп и Апацхе. Изаберите најновије верзије када се то од вас затражи.

doas su
pkg_add apache-httpd php php-curl php-gd php-intl php-pdo_mysql php-zip mariadb-client mariadb-server wget unzip

Направио самопотписани ССЛ сертификат за тестирање. Подесите Цоммон Наме на ФКДН вашег сервера, нпр. ввв.екампле.цом.

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

Преузмите и распакујте ПрестаСхоп

Пронађите УРЛ за најновију верзију ПрестаСхоп-а , преузмите /tmpи распакујте је /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

Конфигуришите ОпенБСД (пф) заштитни зид

Конфигуришите заштитни зид да блокира сав улазни саобраћај осим ссх , ввв и хттпс .

Направите резервну копију /etc/pf.conf.

cp /etc/pf.conf /etc/pf.conf.bak

Уредите /etc/pf.confкао што је приказано.

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

Тестирајте и активирајте правила заштитног зида.

doas pfctl -nf /etc/pf.conf
doas pfctl -f /etc/pf.conf

Конфигуришите ОпенСМТПД као релеј е-поште

Направите резервну копију ваше /etc/mail/smtpd.confдатотеке.

cp /etc/mail/smtpd.conf /etc/mail/smtpd.conf.bak

Уредите /etc/mail/smtpd.confкао што је приказано испод.

Напомене: * Дефиниција табеле за тајне садржи корисничко име и лозинку за релеј поште. * Спољњег акција диже корисничко име и лозинку под ознаком prestashopу /etc/mail/secretsи преноси на Е-преко сервера е-поште.

    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"

Креирај /etc/mail/secrets

Замените адресу е-поште и лозинку са акредитивима које користите за свој сервер е-поште.

echo "prestashop user@example.com:password" > /etc/mail/secrets

Подесите дозволе за безбедност /etc/mail/secrets

chmod 0600 /etc/secrets

Потражите конфигурациону датотеку за грешке и поново покрените смтпд демон.

smtpd -n
rcctl restart smtpd

Конфигуришите ПХП и ПХП-ФПМ окружење

Конфигуришите ПХП-ФПМ процес да слуша на ТЦП утичници уместо на УНИКС доменској утичници.

Направите следећу промену у наставку за /etc/php-fpm.confдатотеку.

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

Направите неке додатне измене у ПХП окружењу у /etc/php-7.3.ini. Ово име датотеке може се мало променити ако је верзија новија од 7.3. Ове промене:

  • Дозволите отпремање већих датотека.
  • Онемогућите цхроот окружење.
  • Конфигуришите ПХП за слање е-поште путем сендмаила.

    ; 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
    

    Омогућите ПХП додатке.

    цп /етц/пхп-7.3.сампле/* /етц/пхп-7.3/.

Омогућите и покрените ПХП-ФПМ демон. Име демона може бити мало другачије ако је верзија новија.

rcctl enable php73_fpm
rcctl start php73_fpm

Конфигурисање МариаДБ-а

МариаДБ обезбеђује позадину базе података за ПрестаСхоп. Пошто је МариаДБ-у потребно више отворених датотека него што подразумевана класа дозвољава, креирајте посебну класу у /etc/login.conf.

На дну датотеке додајте следеће редове:

mysqld:\
      :openfiles-cur=1024:\
      :openfiles-max=2048:\
      :tc=daemon:

Инсталирајте МариаДБ.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

Конфигуришите МариаДБ безбедност.

 mysql_secure_installation

Креирајте ПрестаСхоп базу података. Користите јаку лозинку.

mysql -u root
CREATE DATABASE prestashop;
GRANT ALL PRIVILEGES ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password123';
FLUSH PRIVILEGES;
EXIT

Конфигурисање Апацхе-а

Направи резервну копију /etc/apache2/httpd2.conf

cp /etc/apache2/httpd2.conf /etc/apache2/httpd2.conf.bak

Направите следеће промене у /etc/apache2/httpd2.conf, користећи #да бисте омогућили и онемогућили модуле.

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
  • Још неколико промена /etc/apache2/httpd2.confдолази до дна датотеке. Уклоните #из наведених изјава за укључивање.

  • Додајте линије виртуелног хостинга последње.

    # Server-pool management (MPM specific)
    Include /etc/apache2/extra/httpd-mpm.conf
    ...
    # Virtual Hosts
    IncludeOptional /etc/apache2/sites/*.conf
    

Креирајте /etc/apache2/sitesдиректоријум.

mkdir /etc/apache2/sites

Креирајте /etc/apache2/sites/example.confса следећим информацијама:

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

Конфигуришите Апацхе-ов проки модул додавањем следећег у /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>

Тестирајте конфигурацију, а затим омогућите и покрените Апацхе.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Уверите се да Апацхе слуша на портовима 80 и 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

Инсталирајте ПрестаСхоп

Идите на своју веб локацију на http://www.example.com. Покренут ће се чаробњак за инсталацију ПрестаСхоп-а.

Када завршите инсталацију, обратите пажњу на предњи део продавнице и административне везе и избришите директоријум /var/www/htdocs/prestashop/install.

Омогући ССЛ.

  • Кликните на Схоп Параметерс
  • Кликните на Генерал
  • Омогућите ССЛ за све делове ваше продавнице

Промените своју административну лозинку.

  • Кликните на Напредни параметри
  • Кликните на Тим
  • Промените своју лозинку.

Неки завршни задаци

Направите резервну копију ваше продавнице и њене базе података:

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*

Уклоните доас приступ за свој кориснички налог тако што ћете поново креирати doas.confдатотеку.

echo 'permit keepenv :wheel' > /etc/doas.conf

Остави коментар

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више