PrBSShop और Apache के साथ एक ई-कॉमर्स समाधान के रूप में OpenBSD

परिचय

यह ट्यूटोरियल OpenBSD को PrestaShop और Apache का उपयोग करके ई-कॉमर्स समाधान के रूप में प्रदर्शित करता है।

Apache की आवश्यकता है क्योंकि PrestaShop की जटिल URL पुनर्लेखन आवश्यकताएं हैं जो OpenBSD के अंतर्निहित वेब सर्वर, httpd द्वारा समर्थित नहीं हैं। यह ट्यूटोरियल स्व-हस्ताक्षरित प्रमाणपत्रों का उपयोग करता है। कृपया उत्पादन के लिए एक सत्यापित प्रमाण पत्र का उपयोग करें।

तैयारी के कार्य

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। अपने Vultr आईपी पते के साथ
बदलें 192.0.2.1

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

परीक्षण के लिए एक स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र बनाया गया। अपने सर्वर के 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 निकालें

PrestaShop के नवीनतम संस्करण के लिए URL ढूंढें , डाउनलोड करें /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

OpenBSD (pf) फ़ायरवॉल कॉन्फ़िगर करें

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 को ईमेल रिले के रूप में कॉन्फ़िगर करें

अपनी /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 डेमॉन को पुनरारंभ करें।

smtpd -n
rcctl restart smtpd

PHP और PHP-FPM पर्यावरण को कॉन्फ़िगर करें

एक UNIX डोमेन सॉकेट के बजाय एक टीसीपी सॉकेट पर सुनने के लिए PHP-FPM प्रक्रिया को कॉन्फ़िगर करें।

/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

में PHP वातावरण में कुछ अतिरिक्त परिवर्तन करें /etc/php-7.3.ini। यदि संस्करण 7.3 से नया है तो यह फ़ाइल नाम थोड़ा बदल सकता है। यह परिवर्तन:

  • बड़ी फ़ाइलों को अपलोड करने की अनुमति दें।
  • विकृत वातावरण को अक्षम करें।
  • Sendmail के माध्यम से ईमेल भेजने के लिए PHP को कॉन्फ़िगर करें।

    ; 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/।

PHP-FPM डेमॉन को सक्षम और शुरू करें। यदि संस्करण नया है तो डेमन नाम थोड़ा अलग हो सकता है।

rcctl enable php73_fpm
rcctl start php73_fpm

मारियाडीबी को कॉन्फ़िगर करना

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

अपाचे को कॉन्फ़िगर करना

बैक अप लें /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फ़ाइल के नीचे की ओर होने वाले कई और परिवर्तन । #शामिल किए गए कथनों से निकालें ।

  • वर्चुअल होस्टिंग लाइनों को अंतिम में जोड़ें।

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

निम्नलिखित में जोड़कर अपाचे के प्रॉक्सी मॉड्यूल को कॉन्फ़िगर करें /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

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.confफ़ाइल को पुनः बनाकर अपने उपयोगकर्ता खाते के लिए doas पहुँच निकालें ।

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


Leave a Comment

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ