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

Bir Vultr Bulut Sunucusuna pfSense Kurulumu

Bir Vultr Bulut Sunucusuna pfSense Kurulumu

pfSense, ağlarına geniş bir özellik yelpazesi eklemek isteyen sistem yöneticileri için ideal bir araçtır. Öncelikle açık kaynaklı

FreeBSD 12 Üzerinde LimeSurvey CE Kurulumu

FreeBSD 12 Üzerinde LimeSurvey CE Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? LimeSurvey PHP ile yazılmış açık kaynaklı bir anket yazılımıdır. LimeSurvey kaynak kodu GitHubda barındırılıyor. Bu kılavuz size

FreeBSDde Nginx Ters Proxy ve Golang Kurulumu

FreeBSDde Nginx Ters Proxy ve Golang Kurulumu

Gereksinimler UNIX hakkında temel bilgiler. Nginx yüklü FreeBSD x64. Araçları Yükleme FreeBSD ile birlikte gönderilmeyen birkaç programa ihtiyacınız olacaktır. Ru

FreeBSD 12 Üzerinde Automad CMS Kurulumu

FreeBSD 12 Üzerinde Automad CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Automad, PHPde yazılmış açık kaynaklı bir dosya tabanlı içerik yönetim sistemidir (CMS) ve şablon motorudur. Automad kaynak kodu i

FreeBSD 12 Üzerinde X-Cart 5 Kurulumu

FreeBSD 12 Üzerinde X-Cart 5 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? X-Cart, tonlarca özellik ve entegrasyona sahip son derece esnek bir açık kaynaklı e-ticaret platformudur. X-Cart kaynak kodu aceleci

WordPressi OpenBSD 6.2ye yükleme

WordPressi OpenBSD 6.2ye yükleme

Giriş WordPress, internet üzerindeki baskın içerik yönetim sistemidir. Bloglardan dinamik içeriğe sahip karmaşık web sitelerine kadar her şeyi güçlendirir

FreeBSD 11 Üzerinde Murmur Kurun ve Yapılandırın (Mumble Sunucusu)

FreeBSD 11 Üzerinde Murmur Kurun ve Yapılandırın (Mumble Sunucusu)

Murmur, Mumble sesli iletişim protokolü için resmi sunucu yazılımıdır. Bu resmi uygulama istikrarlı ve etkilidir. Bu kılavuz

FreeBSD 12.0 Üzerinde Nginx, MySQL ve PHP (FEMP) Yığını Nasıl Yüklenir

FreeBSD 12.0 Üzerinde Nginx, MySQL ve PHP (FEMP) Yığını Nasıl Yüklenir

Linuxtaki bir LEMP yığını ile karşılaştırılabilir bir FEMP yığını, bir FreeBSyi etkinleştirmek için genellikle birlikte yüklenen bir açık kaynaklı yazılım koleksiyonudur

PF Güvenlik Duvarı ile FreeBSD Güvenliği

PF Güvenlik Duvarı ile FreeBSD Güvenliği

Bu eğitici, FreeBSD sunucunuzu OpenBSD PF güvenlik duvarını kullanarak nasıl koruyacağınızı gösterecektir. Dağıtılmış temiz bir FreeBSD kurulumunuz olduğunu varsayacağız b

FreeBSD 11 Üzerinde Kaşe Nasıl Kurulur

FreeBSD 11 Üzerinde Kaşe Nasıl Kurulur

Farklı Bir Sistem mi Kullanıyorsunuz? Cachet PHP ile yazılmış açık kaynaklı bir durum sayfası sistemidir. Cachet için kaynak kodu GitHubda barındırılıyor. Bu kılavuzda,

FreeBSD 12ye WonderCMS Kurulumu

FreeBSD 12ye WonderCMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? WonderCMS, PHPde yazılmış açık kaynaklı, hızlı ve küçük bir düz dosya CMSdir. WonderCMS kaynak kodu Githubda barındırılmaktadır. Bu kılavuz

FreeBSD 12de Apachede TLS 1.3ü Etkinleştirme

FreeBSD 12de Apachede TLS 1.3ü Etkinleştirme

Farklı Bir Sistem mi Kullanıyorsunuz? TLS 1.3, 2018de RFC 8446da önerilen bir standart olarak yayınlanan Taşıma Katmanı Güvenliği (TLS) protokolünün bir sürümüdür

FreeBSD 11 üzerine Nginx ile Vernik 5i yükleyin

FreeBSD 11 üzerine Nginx ile Vernik 5i yükleyin

Vernik, bir web sunucusundan içerik depolayan açık kaynaklı bir önbellek sunucusudur. Apache veya Nginx gibi bir web sunucusunun önüne kurulur. Cachin

FreeBSD 12 Dolibarr Kurulumu

FreeBSD 12 Dolibarr Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Dolibarr, işletmeler için açık kaynaklı bir kurumsal kaynak planlaması (ERP) ve müşteri ilişkileri yönetimi (CRM). Dolibarr

ProcessWire CMS 3.0 FreeBSD 11 FAMP VPS Kurulumu

ProcessWire CMS 3.0 FreeBSD 11 FAMP VPS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? ProcessWire CMS 3.0 basit, esnek ve güçlü, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS). ProcessWire CMS 3.

FreeBSD 11 Üzerinde Matomo Analytics Kurulumu

FreeBSD 11 Üzerinde Matomo Analytics Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Matomo (eski adıyla Piwik), Google Analyticse açık bir alternatif olan açık kaynaklı bir analiz platformudur. Matomo kaynağı o barındırılıyor o

FreeBSD 12de Nginxte TLS 1.3ü Etkinleştirme

FreeBSD 12de Nginxte TLS 1.3ü Etkinleştirme

Farklı Bir Sistem mi Kullanıyorsunuz? TLS 1.3, 2018de RFC 8446da önerilen bir standart olarak yayınlanan Taşıma Katmanı Güvenliği (TLS) protokolünün bir sürümüdür

OpenSMTPD, Dovecot, Rspamd ve RainLoop Kullanan OpenBSD E-Posta Sunucusu

OpenSMTPD, Dovecot, Rspamd ve RainLoop Kullanan OpenBSD E-Posta Sunucusu

Giriş Bu eğitici, OpenSMTPD, Dovecot, Rspamd ve RainLoop kullanarak OpenBSD üzerinde çalışan tam özellikli bir e-posta sunucusunu gösterir. OpenSMTPD th

FreeBSD 12 Mailtrain Haber Bülteni Uygulaması Nasıl Kurulur

FreeBSD 12 Mailtrain Haber Bülteni Uygulaması Nasıl Kurulur

Farklı Bir Sistem mi Kullanıyorsunuz? Mailtrain, Node.js ve MySQL / MariaDB üzerine kurulmuş açık kaynaklı, kendi kendine barındırılan bir bülten uygulamasıdır. Mailtrains kaynağı GitHubda. Thi

OpenBSD 6da Ghost Professional Yayıncılık Platformunu Kurma

OpenBSD 6da Ghost Professional Yayıncılık Platformunu Kurma

Ghost, WordPresse rakip olan en yeni ve en büyük başlangıç. Tema geliştirme hızlı ve kolaydır, çünkü Ghost geliştiricileri

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

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?