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 '[email protected]' > /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://[email protected]: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 [email protected]: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 [email protected]
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 [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>

กำหนดค่าโมดูลพร็อกซีของ 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


Leave a Comment

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

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน