OpenBSD به عنوان یک راه حل تجارت الکترونیکی با PrestaShop و Apache

معرفی

این آموزش 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.
جایگزین 192.0.2.1با آدرس Vultr IP خود را.

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 را بارگیری و استخراج کنید

نشانی اینترنتی جدیدترین نسخه 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

فایروال 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

فایل پیکربندی برای خطاها را انجام دهید و Daemon smtpd را مجدداً راه اندازی کنید.

smtpd -n
rcctl restart smtpd

محیط PHP و PHP-FPM را پیکربندی کنید

فرایند PHP-FPM را تنظیم کنید تا به جای سوکت دامنه یونیکس ، به سوکت TCP گوش دهید.

تغییر زیر را برای /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 ارسال شود.

    ; 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 را فعال کرده و شروع کنید. اگر نسخه جدیدتر باشد ممکن است نام 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قسمت پایین پرونده رخ می دهد. حذف #از شامل بیانیه نشان داد.

  • آخرین خطوط میزبانی مجازی را اضافه کنید.

    # 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 را برای همه قسمتهای فروشگاه خود فعال کنید

رمزعبور اداری خود را تغییر دهید.

  • بر روی Advanced Parameters کلیک کنید
  • روی تیم کلیک کنید
  • رمزعبور خود را تغییر دهید.

برخی از وظایف نهایی

از فروشگاه و بانک اطلاعاتی خود نسخه پشتیبان تهیه کنید:

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

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

از rezv.conf از DHCP در FreeBSD 10 محافظت کنید

از rezv.conf از DHCP در FreeBSD 10 محافظت کنید

اگر رأی دهنده خود را اجرا می کنید ، یا مایل به استفاده از یک ارائه دهنده شخص ثالث هستید ، ممکن است متوجه شوید که پرونده /etc/resolv.conf شما توسط DHCP رونویسی می شود

نحوه نصب X-Cart 5 در FreeBSD 12

نحوه نصب X-Cart 5 در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ X-Cart یک پلتفرم تجارت الکترونیک با منبع آزاد بسیار انعطاف پذیر است که دارای چندین ویژگی و ادغام است. کد منبع X-Cart میزبان است

WordPress را در OpenBSD 6.2 نصب کنید

WordPress را در OpenBSD 6.2 نصب کنید

مقدمه WordPress سیستم مدیریت محتوای غالب در اینترنت است. این قدرت همه چیز را از بلاگ ها گرفته تا وب سایت های پیچیده و دارای محتوای پویا انجام می دهد

نحوه نصب Anchor CMS در FreeBSD 11 FAMP VPS

نحوه نصب Anchor CMS در FreeBSD 11 FAMP VPS

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

نحوه نصب Tiny Tiny RSS Reader در FreeBSD 11 FAMP VPS

نحوه نصب Tiny Tiny RSS Reader در FreeBSD 11 FAMP VPS

با استفاده از یک سیستم متفاوت؟ Tiny Tiny RSS Reader خواننده و جمع کننده منبع خبری وب مبتنی بر منبع آزاد (RSS / Atom) رایگان و منبع باز است که به منظور پخش

نحوه نصب WonderCMS در FreeBSD 12

نحوه نصب WonderCMS در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ WonderCMS یک فایل CMS با منبع آزاد ، سریع و کوچک است که به زبان PHP نوشته شده است. کد منبع WonderCMS در Github میزبانی شده است. این راهنما است

نحوه نصب Pagekit 1.0 CMS در FreeBSD 11 FAMP VPS

نحوه نصب Pagekit 1.0 CMS در FreeBSD 11 FAMP VPS

با استفاده از یک سیستم متفاوت؟ Pagekit 1.0 CMS یک سیستم زیبا و مدولار زیبا ، مدولار ، قابل تمدید و سبک ، آزاد و منبع باز منبع آزاد (CMS) با

نحوه فعال سازی TLS 1.3 در Apache در FreeBSD 12

نحوه فعال سازی TLS 1.3 در Apache در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ TLS 1.3 نسخه ای از پروتکل Transport Layer Security (TLS) است که در سال 2018 به عنوان یک استاندارد پیشنهادی در RFC 8446 منتشر شد

iRedMail را در FreeBSD 10 تنظیم کنید

iRedMail را در FreeBSD 10 تنظیم کنید

در این آموزش نحوه نصب گروهی iRedMail بر روی نصب جدید FreeBSD به شما نشان داده می شود. شما باید از سرورهایی با حداقل یک گیگابایت o استفاده کنید

نحوه نصب Dolibarr در FreeBSD 12

نحوه نصب Dolibarr در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ Dolibarr یک برنامه ریزی منبع باز شرکت (ERP) و مدیریت ارتباط با مشتری (CRM) برای مشاغل است. دلیبار

نحوه نصب Paste 2.1 در FreeBSD 11 FAMP VPS

نحوه نصب Paste 2.1 در FreeBSD 11 FAMP VPS

با استفاده از یک سیستم متفاوت؟ Paste 2.1 یک برنامه pastebin ساده و انعطاف پذیر ، رایگان و منبع باز برای ذخیره کد ، متن و موارد دیگر است. این ابتکار عمل بود

Swap File را در FreeBSD 10 ایجاد کنید

Swap File را در FreeBSD 10 ایجاد کنید

خارج از جعبه ، سرورهای Vultr FreeBSD به گونه ای تنظیم نشده اند که فضای swap را در خود جای دهند. اگر قصد شما برای یک نمونه ابر یکبار مصرف است ، احتمالاً شما اصلاً نیکوکار نیستید

MariaDB را در OpenBSD 6 پیکربندی کنید

MariaDB را در OpenBSD 6 پیکربندی کنید

در این مقاله ، Ill به شما نشان می دهد که چگونه MariaDB را در OpenBSD 6 نصب کنید و پیکربندی کنید تا در دسترس یک وب سرور قرار گرفته (Apache یا Nginx) باشد. شما als

نحوه نصب پشته Apache ، MySQL و PHP (FAMP) در FreeBSD 12.0

نحوه نصب پشته Apache ، MySQL و PHP (FAMP) در FreeBSD 12.0

مقدمه یک پشته FAMP ، که قابل مقایسه با یک پشته LAMP در لینوکس است ، مجموعه ای از نرم افزارهای منبع باز است که به طور معمول در کنار هم نصب می شود.

نحوه نصب DokuWiki در FreeBSD 12

نحوه نصب DokuWiki در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ DokuWiki یک برنامه ویکی منبع باز است که به زبان پی اچ پی نوشته شده است و به پایگاه داده نیاز ندارد. این داده ها را در پرونده های متنی ذخیره می کند. DokuWik

راه اندازی بستر نشر حرفه ای Ghost در OpenBSD 6

راه اندازی بستر نشر حرفه ای Ghost در OpenBSD 6

Ghost جدیدترین و بزرگترین راهپیمایی وردپرس برای رقیب است. توسعه موضوع سریع و آسان برای یادگیری است زیرا توسعه دهندگان Ghost تصمیم گرفتند از هر دو استفاده کنند

نحوه نصب آلبوم عکس Lychee 3.1 در یک FAMP VPS FreeBSD 11

نحوه نصب آلبوم عکس Lychee 3.1 در یک FAMP VPS FreeBSD 11

با استفاده از یک سیستم متفاوت؟ Lychee 3.1 Photo Album ابزاری ساده و انعطاف پذیر ، رایگان و منبع باز منبع آزاد است که روی یک سرور VPS اجرا می شود. نصب می کند

تغییر اندازه استخر ZFS Storage در FreeBSD / TrueOS

تغییر اندازه استخر ZFS Storage در FreeBSD / TrueOS

هنگام به روزرسانی نمونه VPS در Vultr ، یک سیستم پرونده لینوکس به صورت خودکار تغییر اندازه می یابد. هنگام اجرای FreeBSD با سیستم پرونده پیشرفته ZFS ، برخی از کتابچه های راهنمای کاربر را نگران می کنید

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد