OpenBSD เป็นโซลูชันอีคอมเมิร์ซด้วย PrestaShop และ Apache

บทนำ

บทแนะนำนี้แสดงให้เห็นถึง OpenBSD เป็นโซลูชั่นอีคอมเมิร์ซโดยใช้ PrestaShop และ Apache

ต้องการ Apache เนื่องจาก PrestaShop มีข้อกำหนดการเขียน URL ที่ซับซ้อนซึ่งไม่ได้รับการสนับสนุนจากเว็บเซิร์ฟเวอร์ในตัวของ http: //d OpenBSD บทช่วยสอนนี้ใช้ใบรับรองที่ลงนามเอง กรุณาใช้ใบรับรองการตรวจสอบสำหรับการผลิต

เตรียมงาน

สร้างผู้ใช้ปกติที่ได้รับอนุญาตให้ใช้ชั่วคราวdoasโดยไม่มีรหัสผ่าน การเข้าถึงนี้จะถูกลบออกหลังจากตั้งค่า

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

เพิ่มที่เก็บแพคเกจ OpenBSD

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

เพิ่ม FQDN และ IP ของเซิร์ฟเวอร์ของ /etc/hostsคุณ
แทนที่192.0.2.1ด้วยที่อยู่ IP Vultr ของคุณ

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

เพิ่มแพ็คเกจที่จำเป็นสำหรับ PrestaShop และ Apache เลือกเวอร์ชันล่าสุดเมื่อได้รับแจ้ง

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

สร้างใบรับรอง SSL ที่ลงชื่อด้วยตนเองเพื่อทำการทดสอบ ตั้งชื่อสามัญเป็น FQDN ของเซิร์ฟเวอร์ของคุณเช่น 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

ค้นหา URL สำหรับPrestaShop เวอร์ชันล่าสุดดาวน์โหลด/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

กำหนดค่าไฟร์วอลล์ (pf) ของ OpenBSD

กำหนดค่าไฟร์วอลล์เพื่อป้องกันการจราจรขาเข้าทั้งหมดยกเว้นSSH , wwwและhttps

/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

กำหนดค่า OpenSMTPD เป็น Email Relay

สำรอง/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 daemon

smtpd -n
rcctl restart smtpd

กำหนดค่าสภาพแวดล้อม PHP และ PHP-FPM

กำหนดค่ากระบวนการ PHP-FPM เพื่อฟังบนซ็อกเก็ต TCP แทนซ็อกเก็ตโดเมน UNIX

ทำการเปลี่ยนแปลงต่อไปนี้ด้านล่างสำหรับ/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ทำการเปลี่ยนแปลงบางอย่างเพิ่มเติมกับสภาพแวดล้อมใน PHP ชื่อไฟล์นี้อาจเปลี่ยนแปลงเล็กน้อยหากเวอร์ชั่นใหม่กว่า 7.3 การเปลี่ยนแปลงเหล่านี้:

  • อนุญาตให้อัปโหลดไฟล์ขนาดใหญ่
  • ปิดใช้งานสภาพแวดล้อมที่ chrooted
  • กำหนดค่า PHP เพื่อส่งอีเมลผ่าน 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
    

    เปิดใช้งานปลั๊กอิน PHP

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

เปิดใช้งานและเริ่ม daemon PHP-FPM ชื่อ daemon อาจแตกต่างกันเล็กน้อยหากเป็นรุ่นที่ใหม่กว่า

rcctl enable php73_fpm
rcctl start php73_fpm

การกำหนดค่า MariaDB

MariaDB จัดเตรียมแบ็กเอนด์ฐานข้อมูลสำหรับ PrestaShop เพราะ MariaDB /etc/login.confต้องการเปิดไฟล์มากกว่าระดับเริ่มต้นจะช่วยให้สร้างชั้นพิเศษ

ที่ด้านล่างของไฟล์เพิ่มบรรทัดต่อไปนี้:

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

ติดตั้ง MariaDB

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

กำหนดค่าความปลอดภัย MariaDB

 mysql_secure_installation

สร้างฐานข้อมูล PrestaShop ใช้รหัสผ่านที่คาดเดายาก

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

การกำหนดค่า Apache

สำรองข้อมูล /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เกิดขึ้นที่ด้านล่างของไฟล์ ลบออก#จากคำสั่ง include ที่ระบุ

  • เพิ่มบรรทัดการโฮสต์เสมือนล่าสุด

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

กำหนดค่าโมดูลพร็อกซีของ Apache โดยเพิ่มรายการต่อไปนี้ /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>

ทดสอบการกำหนดค่าจากนั้นเปิดใช้งานและเริ่ม Apache

apachectl configtest
rcctl enable apache2
rcctl start apache2

ตรวจสอบให้แน่ใจว่า Apache กำลังฟังบนพอร์ต 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

ติดตั้ง PrestaShop

http://www.example.comเรียกดูเว็บไซต์ของคุณ วิซาร์ดการติดตั้ง PrestaShop จะเปิดขึ้น

/var/www/htdocs/prestashop/installเมื่อคุณเสร็จสิ้นการติดตั้งจะทราบของหน้าร้านและการเชื่อมโยงการบริหารและการลบไดเรกทอรี

เปิดใช้งาน SSL

  • คลิกพารามิเตอร์ร้านค้า
  • คลิกทั่วไป
  • เปิดใช้งาน SSL สำหรับทุกส่วนของร้านค้าของคุณ

เปลี่ยนรหัสผ่านการบริหารของคุณ

  • คลิกพารามิเตอร์ขั้นสูง
  • คลิกทีม
  • เปลี่ยนรหัสผ่านของคุณ.

งานสุดท้ายบางอย่าง

สำรองข้อมูลร้านค้าและฐานข้อมูลของคุณ:

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 สำหรับบัญชีผู้ใช้ของคุณโดยสร้างdoas.confไฟล์ใหม่

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

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true