PrestaShop ve Apache ile E-Ticaret Çözümü Olarak OpenBSD

Giriş

Bu eğitim OpenBSD'yi PrestaShop ve Apache kullanarak bir e-ticaret çözümü olarak göstermektedir.

Apache gereklidir, çünkü PrestaShop OpenBSD'nin yerleşik web sunucusu httpd tarafından desteklenmeyen karmaşık URL yeniden yazma gereksinimlerine sahiptir. Bu eğitimde kendinden imzalı sertifikalar kullanılmaktadır. Lütfen üretim için doğrulanmış bir sertifika kullanın.

Hazırlık Görevleri

Geçici olarak doasşifre kullanmadan izin verilen normal bir kullanıcı oluşturun . Bu erişim kurulumdan sonra kaldırılacak.

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

OpenBSD paket deposunu ekleyin.

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

Günlük durum ve güvenlik e-postalarını adresinize yönlendirin.

echo '[email protected]' > /root/.forward

Sunucunun ana bilgisayar adını ayarlayın.

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

Sunucunuzun FQDN'sini ve IP adresini adresine ekleyin /etc/hosts. Vultr IP adresinizle
değiştirin 192.0.2.1.

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

PrestaShop ve Apache için gerekli paketleri ekleyin. İstendiğinde en son sürümleri seçin.

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

Test için kendinden imzalı bir SSL sertifikası oluşturuldu. Ortak Adı sunucunuzun FQDN'sine ayarlayın, örn. 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

PrestaShop'u İndirin ve Ayıklayın

PrestaShop'un en son sürümünün URL'sini bulun , indirin /tmpve dosyaya çıkartı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

OpenBSD (pf) Güvenlik Duvarını Yapılandırma

Güvenlik duvarını ssh , www ve https dışındaki tüm gelen trafiği engelleyecek şekilde yapılandırın .

Öğesinin yedek kopyasını oluşturun /etc/pf.conf.

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

Düzenleme /etc/pf.confolarak gösterilen.

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

Güvenlik duvarı kurallarını test edin ve etkinleştirin.

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

OpenSMTPD'yi E-posta Geçişi olarak Yapılandırma

/etc/mail/smtpd.confDosyanızı yedekleyin .

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

Düzenleme /etc/mail/smtpd.confaşağıda gösterildiği gibi.

Notlar: * Sırlar için tablo tanımı, posta geçişi için kullanıcı adı ve parolayı içerir. * Giden eylem adını ve şifresini etiketi altında yukarı bakar prestashopiçinde /etc/mail/secretse-posta sunucusu üzerinden ve röleleri e-posta.

    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://[email protected]:587 \
        tls no-verify auth <secrets>

    match from local for local action "local_mail"
    match from local for any action "outbound"

Oluşturmak /etc/mail/secrets

E-posta adresini ve şifreyi, e-posta sunucunuz için kullandığınız kimlik bilgileriyle değiştirin.

echo "prestashop [email protected]:password" > /etc/mail/secrets

Güvenceye almak için izinleri ayarlama /etc/mail/secrets

chmod 0600 /etc/secrets

Yapılandırma dosyasını hatalar için test edin ve smtpd arka plan programını yeniden başlatın.

smtpd -n
rcctl restart smtpd

PHP ve PHP-FPM Ortamını Yapılandırma

PHP-FPM işlemini UNIX etki alanı soketi yerine bir TCP soketini dinleyecek şekilde yapılandırın.

/etc/php-fpm.confDosya için aşağıdaki değişikliği yapın .

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

İçindeki PHP ortamında bazı ek değişiklikler yapın /etc/php-7.3.ini. Sürüm 7.3'ten daha yeni ise bu dosya adı biraz değişebilir. Bu değişiklikler:

  • Daha büyük dosyaların yüklenmesine izin verin.
  • Köklü ortamı devre dışı bırakın.
  • PHP'yi mail ile e-posta gönderecek şekilde yapılandırın.

    ; 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
    

    PHP eklentilerini etkinleştirin.

    cp /etc/php-7.3.sample/* /etc/php-7.3/.

PHP-FPM arka plan programını etkinleştirin ve başlatın. Sürüm daha yeni ise arka plan programı adı biraz farklı olabilir.

rcctl enable php73_fpm
rcctl start php73_fpm

MariaDB'yi Yapılandırma

MariaDB PrestaShop için veritabanı arka ucu sağlar. MariaDB, varsayılan sınıfın izin verdiğinden daha fazla açık dosyaya ihtiyaç duyduğundan, içinde özel bir sınıf oluşturun /etc/login.conf.

Dosyanın altına aşağıdaki satırları ekleyin:

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

MariaDB'yi yükleyin.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

MariaDB güvenliğini yapılandırın.

 mysql_secure_installation

PrestaShop veritabanını oluşturun. Güçlü bir şifre kullanın.

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

Apache'yi Yapılandırma

Destek olmak /etc/apache2/httpd2.conf

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

Modülleri etkinleştirmek ve devre dışı bırakmak için düğmesini /etc/apache2/httpd2.confkullanarak aşağıdaki değişiklikleri yapın #.

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 [email protected]
ServerName 192.0.2.1:80
  • /etc/apache2/httpd2.confDosyanın altına doğru birkaç değişiklik daha meydana gelir. #Belirtilen include ifadelerinden kaldırın .

  • Sanal Barındırma hatlarını en son ekleyin.

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

/etc/apache2/sitesDizini oluşturun .

mkdir /etc/apache2/sites

Oluşturmak /etc/apache2/sites/example.confaşağıdaki bilgilerle:

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  ServerAdmin [email protected]
  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 [email protected]
  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>

Aşağıdakileri ekleyerek Apache'nin proxy modülünü yapılandırı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>

Yapılandırmayı test edin, ardından Apache'yi etkinleştirin ve başlatın.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Apache'nin 80 ve 443 numaralı bağlantı noktalarını dinlediğinden emin olun.

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

PrestaShop'u yükleyin

Adresinden web sitenize göz atın http://www.example.com. PrestaShop kurulum sihirbazı başlatılır.

Yüklemeyi tamamladıktan sonra, mağaza ön ve yönetim bağlantılarını not edin ve dizini silin /var/www/htdocs/prestashop/install.

SSL'yi etkinleştirin.

  • Mağaza Parametreleri'ni tıklayın
  • Genel'i tıklayın
  • Mağazanızın tüm bölümleri için SSL'yi etkinleştirin

Yönetici parolanızı değiştirin.

  • Gelişmiş Parametreler'i tıklayın
  • Tıklama Ekibi
  • Şifreni değiştir.

Bazı Son Görevler

Mağazanızı ve veritabanını yedekleyin:

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.confDosyayı yeniden oluşturarak kullanıcı hesabınız için doas erişimini kaldırın .

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


Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun