نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
با توجه به جذابیت OpenBSD برای امنیت ، این امر تنها منطقی است که وب سایت وردپرس خود را با آن برقرار کنید ، به خصوص به دلیل اینکه وردپرس و PHP تمایل به تغییر اهداف اسکریپت های اسکریپت دارند. از آنجا که httpD OpenBSD به طور عمده برای ارائه صفحات استاتیک طراحی شده است ، عملیات POST برای فرآیندهای fastcgi و slowcgi محفوظ است. این باعث می شود که یک بازیگر سرکش بتواند فرآیند سرور را خراب کند و به سرور شما دسترسی پیدا کند. عملیات POST به فرآیند fastcgi وصل می شوند و از یک مترجم خارجی استفاده می کنند. در این مقاله نه تنها راه اندازی سایت وردپرس شما بلکه برخی از تکنیک های اساسی تعمیر و نگهداری و چگونگی تهیه نسخه پشتیبان و بازیابی سایت و بانک اطلاعاتی آن مورد بحث قرار خواهد گرفت. هر جا example.com
که دامنه را مشاهده کردید ، لطفاً آن را با دامنه خود جایگزین کنید.
اگر قبلاً این کار را نکرده اید ، باید یک /etc/doas.conf
پرونده ایجاد کنید. دستور doas جایگزینی آسان OpenBSD برای sudo است. برای راحتی ، من گزینه nopass را اضافه کرده ام تا در هنگام استفاده از doas مجبور نخواهید شد رمز عبور خود را دوباره تایپ کنید. اگر ترجیح می دهید این را نداشته باشید ، به راحتی پوپو را کنار بگذارید.
su -
echo "permit nopass keepenv :wheel" > /etc/doas.conf
بسته به نحوه بسته بندی OpenBSD برای استقرار ، بعضی اوقات مدیر بسته ممکن است از مخزن تنظیم نشده برخوردار باشد. برای پیکربندی مخزن رسمی OpenBSD ، باید /etc/installurl
پرونده را ایجاد کنیم .
doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit
حال ما باید PHP و برخی از ماژول های اضافی را که WordPress به آنها نیاز دارد اضافه کنیم تا بتواند مواردی مانند تصاویر و رمزگذاری را مدیریت کند. در صورت درخواست ، جدیدترین بسته PHP را نصب کنید. یک کار شما باید انجام دهید کپی کردن فایلهای ini ماژول از فهرست نمونه به اصلی. این کار برای فعال کردن ماژولهای PHP اضافی باید انجام شود.
doas pkg_add -r mariadb-client mariadb-server php php-curl php-mysqli php-zip pecl73-mcrypt pecl73-imagick wget
doas cp /etc/php-7.3.sample/* /etc/php-7.3/.
در دنیای امروز ، وب سایت ها باید از طریق SSL یا چهره هایی که توسط موتورهای جستجوگر خراب می شوند ، ارائه شوند. خوشبختانه ، OpenBSD یک اپلیکیشن عالی به نام acme-client دارد. مشتری Acme به طور خودکار یک کلید خصوصی جدید تولید کرده و یک گواهی کاملا معتبر جدید را درخواست می کند. مشتری acme به داشتن سرور وب بستگی دارد ، بنابراین ما نیاز به تعریف سریع پیش فرض سرور داریم.
با ویرایشگر مورد علاقه خود ایجاد کنید /etc/httpd.conf
. بعداً تعریف های دیگر سرور را به پرونده اضافه می کنیم. در حال حاضر این کافی خواهد بود به طوری که Acme-client به درستی کار کند.
prefork 5
types { include "/usr/share/misc/mime.types" }
server "default" {
listen on egress port 80
root "/htdocs"
directory index "index.html"
location "/.well-known/acme-challenge/*" {
request strip 2
root "/acme"
}
}
همچنین با استفاده از ویرایشگر مورد علاقه خود ، ایجاد کنید /etc/acme-client.conf
.
authority letsencrypt {
api url "https://acme-v02.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-privkey.pem"
}
authority letsencrypt-staging {
api url "https://acme-staging-v02.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-staging-privkey.pem"
}
domain example.com {
alternative names { www.example.com }
domain key "/etc/ssl/private/example.com.key"
domain full chain certificate "/etc/ssl/example.com.crt"
sign with letsencrypt
}
حال باید httpd را فعال و شروع کنیم. پس از انجام این کار ، می توانیم Acme-Client را اجرا کنیم و منتظر بمانیم تا گواهینامه جدید و جدید خود را بدست آوریم. بعد از انجام این کار ، یک کار cron اضافه می کنیم تا به طور خودکار هر 7 روز یکبار درخواست جدید شود ، بنابراین لازم نیست نگران انقضا باشیم.
doas rcctl enable httpd
doas rcctl start httpd
doas acme-client -v example.com
اکنون ما کار cron را ایجاد می کنیم. این خط را در زیر آخرین ورودی اضافه کنید. در این حالت ، ما به Acme-klient می گوییم هر ساعت شنبه 1:00 صبح گواهینامه جدید را درخواست کند.
doas crontab -e
0 1 * * 6 acme-client -F example.com && rcctl reload httpd
اکنون زمان راه اندازی httpd برای وردپرس فرا رسیده است. به جای اینکه تعریف وب سایت خود را مستقیماً در /etc/httpd.conf
آن قرار دهیم ، ما قصد داریم آن را در پرونده جداگانه ای بنامیم /etc/httpd.conf.example.com
و آن را در پرونده اصلی پیکربندی قرار دهیم. به طور کلی این کار خوب است که این دو را جدا کنید ، تعاریف گسترده سایت را در پرونده اصلی پیکربندی و تنظیمات خاص دامنه خود در حالت متفاوت حفظ کنید.
خط زیر را به قسمت زیر /etc/httpd.conf
پرونده خود اضافه کنید:
include "/etc/httpd.conf.example.com"
اکنون با استفاده از ویرایشگر مورد علاقه خود ، ایجاد کنید /etc/httpd.conf.example.com
. برای راحتی ، ما قصد داریم پرونده های جداگانه ای برای دامنه شما ایجاد کنیم. این باعث می شود در تلاش باشید تا مشکلات احتمالی سایت خود را کم کنید.
server "example.com" {
listen on egress port 80
alias "www.example.com"
# Automatically redirect to SSL
block return 302 "https://$SERVER_NAME$REQUEST_URI"
log {
access "access-example.com"
error "error-example.com"
}
}
server "example.com" {
listen on egress tls port 443
alias "www.example.com"
root "/htdocs/wordpress"
directory index "index.php"
log {
access "access-example.com"
error "error-example.com"
}
tcp { nodelay, backlog 10 }
tls {
certificate "/etc/ssl/example.com.crt"
key "/etc/ssl/private/example.com.key"
}
hsts {
# max-age value is the number of seconds in 1 year
max-age 31556952
preload
subdomains
}
location "/.well-known/acme-challenge/*" {
root "/acme"
request strip 2
}
location "/posts/*" {
fastcgi {
param SCRIPT_FILENAME \
"/htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/page/*" {
fastcgi {
param SCRIPT_FILENAME \
"/htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/feed/*" {
fastcgi {
param SCRIPT_FILENAME \
"/htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/comments/feed/*" {
fastcgi {
param SCRIPT_FILENAME \
"htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/wp-json/*" {
fastcgi {
param SCRIPT_FILENAME \
"htdocs/wordpress/index.php"
socket "/run/php-fpm.sock"
}
}
location "/wp-login.php*" {
authenticate "WordPress" with "/htdocs/htpasswd"
fastcgi socket "/run/php-fpm.sock"
}
location "*.php*" {
fastcgi socket "/run/php-fpm.sock"
}
}
برای امنیت بیشتر ، ما می خواهیم هنگام ورود به سایت مدیریت وردپرس ، اعلان اضافی را برای نام کاربری و رمزعبور پیاده سازی کنیم. از آنجا که بچه های اسکریپت دوست دارند به طور مکرر ورود به WordPress را امتحان کرده و از آن سوء استفاده کنند ، ما یک سطح اضافی در سطح سرور وب ایجاد می کنیم. معمولاً قبل از اینکه وردپرس خطای 401 غیرمجاز را وارد کند ، حدود 5 حدس می زنند.
doas su
cd /var/www/htdocs
doas htpasswd htpasswd <user>
doas chown www:www htpasswd
doas chmod 0640 htpasswd
doas rcctl reload httpd
ما باید تغییر در php ایجاد کنیم تا نصب وردپرس شما بتواند ایمیل ارسال کند. وردپرس و برخی افزونه ها به قابلیت ارسال ایمیل به شما در مورد ارتقاء ، هشدارها و تغییرات اعتماد دارند. عدم امکان ارسال ایمیل می تواند برخی از ویژگی های وردپرس را خراب کند. از آنجایی که httpd در محیط chroote اجرا می شود ، ما باید به php بگوییم که چگونه ایمیل ارسال کنیم. علاوه بر این ، ما باید برخی از ترفندهای عملکردی را برای php-fpm انجام دهیم.
به دنبال sendmail_path
خط بگردید /etc/php-7.3.ini
و تغییر زیر را ایجاد کنید:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; sendmail_path =
sendmail_path = /bin/femail -t -i
خطوط زیر را جستجو کنید /etc/php-fpm.conf
و آنها را به شرح زیر تغییر دهید:
pm.start_servers = 5
pm.min_spare_servers = 1
pm.max_spare_servers = 6
مرحله بعدی فعال سازی و شروع php-fpm است.
doas rcctl enable php73_fpm
doas rcctl start php73_fpm
MariaDB یک چنگال جایگزین MySQL است. ما باید پیکربندی اولیه و کارهای آماده سازی پایگاه داده را برای وردپرس انجام دهیم.
قبل از اینکه بتوانیم از MariaDB به طور مؤثر استفاده کنیم ، باید به Daemon mysql اجازه دهیم تا از منابع بیشتری نسبت به پیش فرض استفاده کند. به منظور انجام این کار ، /etc/login.conf
با افزودن این مطلب در پایین ، تغییرات زیر را ایجاد کنید.
mysqld:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
ما باید در پرونده پیکربندی MariaDB تغییراتی ایجاد کنیم /etc/my.cnf
. با برقراری ارتباط مشتری و سرور mysql از طریق سوکت دامنه یونیکس به جای TCP ، می توان میزان حافظه سرور شما را پایین نگه داشت. لازم نیست همه تغییرات پیشنهادی را در زیر انجام دهید. دو مورد مهم برای تغییر socket
خط و تفسیر bind-address
خط است. این سوکت را به داخل /var/www
محیط chroot منتقل می کند تا وردپرس بتواند به پایگاه داده وصل شود. با اظهار نظر در مورد bind-address
خط ، مانع گوش دادن MariaDB به درگاه TCP می شویم.
[client-server]
socket=/var/www/var/run/mysql/mysql.sock
#port=3306
# This will be passed to all MariaDB clients
[client]
#password=my_password
# The MariaDB server
[mysqld]
# To listen to all IPv4 network addresses, use "bind-address = 0.0.0.0"
#bind-address=127.0.0.1
# Directory where you want to put your data
#data=/var/mysql
# This is the prefix name to be used for all log, error and replication files
#log-basename=mysqld
# Logging
#log-bin=/var/mysql/mariadb-bin
#max_binlog_size=100M
#binlog_format=row
#expire_logs_days = 7
#general-log
#slow_query_log
query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 16M
حال باید دودویی نصب MariaDB را اجرا کنیم و MariaDB را فعال و شروع کنیم. در این روش یک رمزعبور اصلی تنظیم می شود و به صورت اختیاری پایگاه داده تست را رها می کند. ایده خوبی است که در مرحله نصب ایمن از همه پیشنهادات پیروی کنید.
doas mysql_install_db
doas rcctl enable mysqld
doas rcctl start mysqld
doas mysql_secure_installation
کاربر پایگاه داده وردپرس و کاربر پایگاه داده را ایجاد کنید. به یاد داشته باشید <wp_user>
که انتخاب نام کاربری پایگاه داده و <password>
رمز عبور پیچیده ای را انتخاب کنید.
mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT
وردپرس مدتی است که پورت رسمی OpenBSD را در اختیار ندارد ، زیرا تقریباً خارج از جعبه کار می کند. پوشه نصب وردپرس را بارگیری ، استخراج و انتقال دهید.
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xvfz latest.tar.gz
doas mv wordpress /var/www/htdocs/.
doas chown -R www:www /var/www/htdocs/wordpress
doas chmod 0755 /var/www/htdocs/wordpress
cd /var/www/htdocs/wordpress/
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
ما باید کپی /etc/resolv.conf
و /etc/hosts
دایرکتوری را که می خواهیم ایجاد کنیم ، کپی کنیم /var/www/etc
. این امر به گونه ای است که وردپرس می تواند با موفقیت به بازار برسد. برای بارگیری افزونه ها و مضامین از طریق سایت مدیر وردپرس به این امر نیاز خواهید داشت. همچنین مهم است که پلاگین Jet Pack به درستی کار کند.
doas mkdir /var/www/etc
doas cp /etc/hosts /var/www/etc/.
doas cp /etc/resolv.conf /var/www/etc/.
از اینجا ، با استفاده از https از طریق URL که در تعریف سرور وب مشخص کرده اید ، به وب سایت وردپرس خود مرور کنید. اگر همه چیز درست کار می کند ، باید جادوگر نصب وردپرس را ببینید. وقتی به گزینه مشخص کردن سرور بانک اطلاعاتی رسیدید ، باید از آن استفاده کنیدlocalhost:/var/run/mysql/mysql.sock
پس از نصب وردپرس ، زمان آن رسیده که پیوندهای ثابت را تنظیم کنید تا آنها دوستانه تر به نظر برسند. از صفحه مدیریت وردپرس به بروید Settings -> Permalinks
. بر روی Custom Structure کلیک کنید و تایپ کنید /posts/%postname%
. پس از ایجاد این تغییر ، روی دکمه Save Changes کلیک کنید. شما اکنون پیوندهای بسیار زیبایی دارید. به عنوان مثال ، یک لینک ثابت به صورت زیر خواهد بود:https://example.com/posts/example-blog-post
از اینجا ، شما باید یک وب سایت اصلی آماده برای رفتن داشته باشید. مطمئن شوید که افزونه هایی مانند Jet Pack و WP-Super Cache را نصب می کنید. افزونه WP-Super Cache با پنهان کردن صفحات وب و از بین بردن جستجوی ثابت پایگاه داده ، به وب سایت شما سرعت می بخشد و JetPack به شما آمار بسیار خوبی برای مشاهده می دهد.
ناگفته نماند که تهیه نسخه پشتیبان از وب سایت و پایگاه داده خود بسیار مهم است. خوشبختانه ، این یک کار نسبتاً آسان است. پشتیبان گیری از هر دو در فهرست خانه خود و سپس می توانید آنها را از طریق scp به مکان دیگری کپی کنید. همچنین می توانید از طریق کنترل پنل Vultr عکس فوری بسازید. ایده خوبی است برای انجام هر دو.
cd /var/www/htdocs
tar cvfz wordpress.tgz wordpress/
cp wordpress.tgz /home/user
mysqldump -u root -p wordpress > wordpress.sql && gzip wordpress.sql
اگر پایگاه داده شما خراب شد و بازیابی لازم است ، موارد زیر را انجام دهید:
gunzip wordpress.sql.gz
mysql -u root -p wordpress
DROP USER '<user>'@'localhost';
DROP DATABASE wordpress;
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
EXIT
mysql -u root -p wordpress < wordpress.sql
اگر تغییری در پرونده اسکریپت WordPress ایجاد کرده اید که چیزی را خراب کرده است ، همیشه می توانید وردپرس را از طریق کنترل پنل مدیریت مجددا نصب کنید. به دنبال Updates
بخش باشید و بر روی لینک کلیک کنید. به دنبال دکمه ای با برچسب باشید Re-install Now
. این حداقل باعث خراب شدن آن می شود اما بیشتر پیکربندی شما باید دست نخورده باقی بماند.
اگر بانک اطلاعاتی شما در وضعیت خوبی است ، اما شما به طور تصادفی یک فایل را ویرایش کرده اید و موارد را شکست داده اید تا جایی که حتی نمی توانید به کنسول سرور وردپرس راه پیدا کنید ، سپس موارد زیر را انجام دهید:
rm /var/www/htdocs/wordpress
cp /home/user/wordpress.tgz /tmp
tar xvfz wordpress.tgz
mv wordpress /var/www/htdocs/.
chown -R www:www /var/www/htdocs/wordpress
cd /var/www/htdocs/wordpress
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.
NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o
TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من
Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th
با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB
ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.
رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد