كيفية تثبيت Neos CMS على FreeBSD 12
استخدام نظام مختلف؟ Neos عبارة عن منصة تطبيق محتوى مع CMS وإطار تطبيق في جوهرها. سيوضح لك هذا الدليل كيفية التثبيت
يوضح هذا البرنامج التعليمي خادم بريد إلكتروني كامل الميزات يعمل على OpenBSD باستخدام OpenSMTPD و Dovecot و Rspamd و RainLoop. OpenSMTPD هو خادم البريد الافتراضي لـ OpenBSD. اختر نسخة Vultr Compute Cloud مع الكثير من مساحة التخزين للعدد المتوقع من المستخدمين.
قم بإعداد حساب المستخدم الخاص بك لأداء المهام كجذر.
su -
usermod -G wheel <username>
echo "permit nopass keepenv :wheel" > /etc/doas.conf
exit
قم بإعداد مستودع الحزمة لـ OpenBSD.
doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit
أضف الحزم المطلوبة.
doas pkg_add opensmtpd-extras opensmtpd-filter-rspamd dovecot dovecot-pigeonhole rspamd redis
بشكل افتراضي ، يستمع OpenSMTPD فقط على المضيف المحلي. يجب تكوينه صراحة للاستماع على واجهات خارجية. يجب تكوينه لاستخدام المستخدمين الظاهريين بدلاً من مستخدمي النظام للأمان.
قم /etc/smtpd.conf
بعمل نسخة احتياطية من الملف الافتراضي وقم بإنشاء ملف جديد من البداية.
cd /etc/mail
mv smtpd.conf smtpd.conf.default
قم بإنشاء جديد smtpd.conf
كما هو موضح أدناه. استبدال example.com
المجال الخاص بك. لا يؤدي هذا التكوين الأولي إلى تنشيط مرشح rspamd أثناء اختبار OpenSMTP. سيتم تنشيط مرشح البريد العشوائي لاحقًا.
pki "mail" cert "/etc/ssl/mail.crt"
pki "mail" key "/etc/ssl/private/mail.key"
table aliases file:/etc/mail/aliases
table credentials passwd:/etc/mail/credentials
table virtuals file:/etc/mail/virtuals
filter "rspamd" proc-exec "/usr/local/libexec/smtpd/filter-rspamd"
# To accept external mail, replace with: listen on all
# listen on all tls pki "mail" hostname "mail.example.com"
listen on egress port submission tls-require pki "mail" hostname "mail.example.com" \
auth <credentials>
action "local_mail" mbox alias <aliases>
action "domain_mail" maildir "/var/vmail/example.com/%{dest.user}" \
virtual <virtuals>
action "outbound" relay
# Uncomment the following to accept external mail for domain "example.org"
# match from any for domain "example.com" action "domain_mail"
match from local for local action "local_mail"
match from local for any action "outbound"
match auth from any for any action "outbound"
يمكن لـ OpenSMTPD و Dovecot مشاركة قاعدة بيانات المصادقة. تشبه قاعدة البيانات هذه ملف كلمة مرور النظام بتنسيق ، مع حقلين إضافيين لـ Dovecot. يحدد الحقلين الخاصين الدليل الرئيسي الظاهري وموقع البريد. كلمات المرور في شكل السمكة المنتفخة. ينشئ هذا البرنامج التعليمي ثلاثة أمثلة للمستخدمين.
قم بإنشاء كلمات المرور وربطها /etc/mail/credentials
بالملف.
doas su
smtpctl encrypt example_password1 >> /etc/mail/credentials
smtpctl encrypt example_password2 >> /etc/mail/credentials
smtpctl encrypt example_password3 >> /etc/mail/credentials
exit
يبدو الإخراج مشابهًا لما يلي:
$2b$10$agmNBPvFm1zqCjbbZC3JbO4Ns2jJNZQfTS45MAnKi.IPrkKITyTa6
$2b$10$LwkcKVVnwG8hDxu2W4YKD.K0kQ2oylOmQ9SBUb0hIopBsmNxYPb4e
$2b$10$bgLW/GMZyRXKbROgRQIvRu4xbeOqOJJXlgEAKuS5sIrBvfdPvEzeq
تحرير /etc/mail/credentials
لإضافة الحقول المطلوبة. يتم تعيين كل سطر إلى حساب نظام ، vmail ، مع UID و GID لعام 2000 . استبدل example.com بنطاقك. اسم المستخدم الافتراضي هو عنوان البريد الإلكتروني الكامل.
[email protected]:$2b$10$agmNBPvFm1zqCjbbZC3JbO4Ns2jJNZQfTS45MAnKi.IPrkKITyTa6:vmail:2000:2000:/var/vmail/example.com/john::userdb_mail=maildir:/var/vmail/example.com/john
[email protected]:$2b$10$LwkcKVVnwG8hDxu2W4YKD.K0kQ2oylOmQ9SBUb0hIopBsmNxYPb4e:vmail:2000:2000:/var/vmail/example.com/adam::userdb_mail=maildir:/var/vmail/example.com/adam
[email protected]:$2b$10$bgLW/GMZyRXKbROgRQIvRu4xbeOqOJJXlgEAKuS5sIrBvfdPvEzeq:vmail:2000:2000:/var/vmail/example.com/natalie::userdb_mail=maildir:/var/vmail/example.com/natalie
/etc/mail/credentials
أذونات للقراءة فقط ل _smtpd
و _dovecot
مستخدمي النظام.قم بإنشاء دليل vmail
مستخدم النظام والمجموعة والمنزل.
عند إنشاء مستخدم نظام vmail، ستتلقى التحذير التالي: useradd: Warning: home directory '/var/vmail' doesn't exist, and -m was not specified
. هذا أمر متوقع. هذا يتجنب ازدحام الدليل بالملفات النقطية من /etc/skel
. ليست مطلوبة لأن حساب vmail لا يسمح بتسجيل الدخول.
doas chmod 0440 / etc / mail / بيانات الاعتماد doas chown smtpd: dovecot / etc / mail / بيانات الاعتماد doas useradd -c "حساب البريد الافتراضي" -d / var / vmail -s / sbin nologin -u 2000 -g = uid -L staff vmail doas mkdir / var / vmail doas vmail: vmail / var / vmail
إنشاء /etc/mail/virtuals
لتحديد عناوين البريد الإلكتروني الصالحة.
/var/vmail/example.com/<user>
.سيتم ارتداد تسليم البريد الذي تم محاولة الوصول إليه للعناوين غير المحددة في هذا الملف مع إشعار حالة التسليم.
[email protected]: [email protected] [email protected]: [email protected] [email protected]: [email protected] [email protected]: [email protected] [email protected]: vmail [email protected]: vmail [email protected]: vmail
يستخدم هذا المثال شهادة موقعة ذاتيا. استخدم شهادة موقعة صالحة إذا كان لديك واحدة. عند المطالبة بالاسم الشائع ، تأكد من أنه يطابق FQDN للخادم. يستخدم هذا المثال mail.example.com.
doas su
cd /etc/ssl
openssl genrsa -out private/mail.key 4096
openssl req -x509 -new -nodes -key private/mail.key -out mail.crt -days 3650 -sha256
chmod 0400 /etc/ssl/private/mail.key
exit
استخدم مدقق بنية تكوين OpenSMTPD. إذا لم يتم العثور على مشاكل ، أعد تشغيل البرنامج الخفي smtpd.
doas smtpd -n
doas rcctl restart smtpd
من حساب بريد خارجي ، أرسل بريدًا إلكترونيًا تجريبيًا إلى أحد المستخدمين.
/var/vmail
وتسليم البريد إلى /var/vmail/example.com/<username>/new
.1576339842.4d64757b.example.com:2,
.راجع محتويات الملف ، بما في ذلك جميع رؤوس البريد ، للتحقق من عمل تسليم البريد الإلكتروني بشكل صحيح.
Return-Path: <n0244e80da3-54b1ed125c5342fc-adam===example.org@bounce.example.org>
Delivered-To: [email protected]
Received: from spruce-goose-ba.twitter.com (spruce-goose-ba.twitter.com [199.59.150.96])
by mail.example.com (OpenSMTPD) with ESMTPS id 75b514d3 (TLSv1.2:ECDHE-RSA-AES256-GCM- SHA384:256:NO)
for <[email protected]>;
Sat, 14 Dec 2019 11:10:40 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=twitter.com;
s=dkim-201406; t=1576339839;
bh=jhKB5/w9v87GaXSuizT576ntJ/72gvLRDhsqmGQQrCE=;
h=Date:From:To:Subject:MIME-Version:Content-Type:List-Unsubscribe:
Message-ID;
b=TWn/QVUJ1VDlWiweWoanwHLABCL1nqmm0+TBzh3PjmYNm0quRMXB7QL2ykzHGME5A
DTz/JFHa0cOvQsrdhxxbjOLFKimK0nF+Ou5kI+2HzTzfVNZS0qGnTVP/tZyaIsWjjl
an5EiR6HFOHG4iClOOEOJW4oLDEZfPTefrlW+378bmHGIRUNDvVKrbXKunL9fJFAb3
JSrhWQNwbrF/aARFzw4nKfb1I7vTRSrN1eXE5JxzGwI2XAjqDIWdR5ExwUNbJH5ZPs
wQ85j8KLZEEgQkbH9CypgeUMJWsVK95FqOCCaqKMS10M7intGMb3aeiiFcB7yDHi9t
u7rVESm4eGp/g==
X-MSFBL: DM7pSZns+YDRgNEmGNre9aPjZTtc1tDlN97w5rQDBts=|eyJ1IjoibWF0dEBnb2J
sYWNrY2F0LmNvbUBpaWQjIzU0YjFlZDEyNWM1MzQyZmNiNThiMzVmNzI0NDZlMGF
mQHVzYiMjNkAyNDRAMTA4MjgwNTAxMDYzNzk1MDk3NkAwQDA4MjY5ZWI4OTI3YzR
kNTFiNTZkMjY3YzY2OGRmN2IwY2Y4M2ExZGIiLCJyIjoibWF0dEBnb2JsYWNrY2F
0LmNvbSIsImciOiJCdWxrIiwiYiI6InNtZjEtYmd4LTM0LXNyMS1CdWxrLjE4NiJ
9
Date: Sat, 14 Dec 2019 16:10:39 +0000
...
تتطلب Dovecot القدرة على الحصول على عدد أكبر من الملفات المفتوحة للقراءة والكتابة مما يسمح به الفصل الافتراضي. سيؤدي عدم القيام بذلك إلى حدوث أخطاء يصعب استكشافها وإصلاحها.
حدد فئة تسجيل الدخول لبرنامج Dovecot. في الجزء السفلي من /etc/login.conf
إضافة الأسطر التالية.
dovecot:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
إنشاء /etc/dovecot/local.conf
.
auth_mechanisms = plain
first_valid_uid = 2000
first_valid_gid = 2000
mail_location = maildir:/var/vmail/%d/%n
mail_plugin_dir = /usr/local/lib/dovecot
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve
mbox_write_locks = fcntl
mmap_disable = yes
namespace inbox {
inbox = yes
location =
mailbox Archive {
auto = subscribe
special_use = \Archive
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix =
}
passdb {
args = scheme=CRYPT username_format=%u /etc/mail/credentials
driver = passwd-file
name =
}
plugin {
imapsieve_mailbox1_before = file:/usr/local/lib/dovecot/sieve/report-spam.sieve
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_name = Junk
imapsieve_mailbox2_before = file:/usr/local/lib/dovecot/sieve/report-ham.sieve
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_name = *
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve
sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = imap sieve
service imap-login {
inet_listener imaps {
port = 0
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
inet_listener sieve_deprecated {
port = 2000
}
}
ssl_cert = </etc/ssl/mail.crt
ssl_key = </etc/ssl/private/mail.key
userdb {
args = username_format=%u /etc/mail/credentials
driver = passwd-file
name =
}
protocol imap {
mail_plugins = " imap_sieve"
}
هناك خطأ في برج الحمام حيث ssl_cert
و ssl_key
الإعدادات لا يحصل تجاوز في local.conf
ملف لذلك علينا أن تعلق بها. إذا فاتتك هذه الخطوة ، ستفشل Dovecot في البدء بشكل صحيح.
تحرير /etc/dovecot/conf.d/10-ssl.conf
كما هو موضح.
...
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
#ssl_cert = </etc/ssl/dovecotcert.pem
#ssl_key = </etc/ssl/private/dovecot.pem
...
مخطوطات غربال تدريب Rspamd على البريد المزعج و لحم الخنزير . يؤدي نقل البريد الإلكتروني إلى مجلد البريد غير الهام والخروج منه إلى تشغيل حدث لتدريب Rspamd.
توجد هذه الملفات في /usr/local/lib/dovecot/sieve
.
قم بإنشاء report-ham.sieve
الملف.
require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
if environment :matches "imap.mailbox" "*" {
set "mailbox" "${1}";
}
if string "${mailbox}" "Trash" {
stop;
}
if environment :matches "imap.user" "*" {
set "username" "${1}";
}
pipe :copy "sa-learn-ham.sh" [ "${username}" ];
قم بإنشاء report-spam.sieve
الملف.
require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
if environment :matches "imap.user" "*" {
set "username" "${1}";
}
pipe :copy "sa-learn-spam.sh" [ "${username}" ];
تجميع الملفات.
sievec report-ham.sieve
sievec report-spam.sieve
إنشاء نصين قذيفة التاليين في /usr/local/lib/dovecot/sieve
أضف ما يلي إلى sa-learn-ham.sh
#!/bin/sh
exec /usr/local/bin/rspamc -d "${1}" learn_ham
أضف ما يلي إلى sa-learn-spam.sh
#!/bin/sh
exec /usr/local/bin/rspamc -d "${1}" learn_spam
اجعل الملفات قابلة للتنفيذ.
chmod 0755 sa-learn-ham.sh
chmod 0755 sa-learn-spam.sh
تمكين وبدء Dovecot.
rcctl enable dovecot
rcctl start dovecot
تحقق من أن Dovecot بدأ بشكل صحيح.
ps ax | grep dovecot
88005 ?? I 0:00.11 /usr/local/sbin/dovecot
69640 ?? I 0:00.03 dovecot/anvil
91207 ?? I 0:00.03 dovecot/log
98178 ?? I 0:00.19 dovecot/config
34712 ?? I 0:00.06 dovecot/stats
96674 ?? I 0:00.03 dovecot/imap-login
8891 ?? S 0:00.02 dovecot/imap
تحقق من قراءة Dovecot بشكل صحيح /etc/mail/credentials
doveadm user [email protected]
field value
uid 2000
gid 2000
home /var/vmail/example.com/john
mail maildir:/var/vmail/example.com/john
تحقق من أن مستخدم البريد يمكنه تسجيل الدخول.
doveadm auth login [email protected]
Password: ********
passdb: [email protected] auth succeeded
extra fields:
[email protected]
userdb extra fields:
[email protected]
mail=maildir:/var/vmail/example.com/john
uid=2000
gid=2000
home=/var/vmail/example.com/john
auth_mech=PLAIN
هذا هو تكوين Rspamd الأساسي ، ارجع إلى الوثائق الرسمية لمزيد من التفاصيل. ينشئ هذا المثال تعريفًا لنطاقنا لتمكين توقيع DKIM.
إنشاء زوج مفاتيح عام / خاص في /etc/mail/dkim
وتعيين الأذونات الصحيحة.
doas su
mkdir /etc/mail/dkim
cd /etc/mail/dkim
openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key
chmod 0440 private.key
chown root:_rspamd private.key
أنشئ سجل DNS لـ DKIM يحتوي على المفتاح العام. راجع مزود DNS الخاص بك للحصول على تفاصيل حول كيفية إنشاء سجل DKIM. انسخ المحتويات /etc/mail/dkim/public.key
والصقها بعد p=
الجزء من سجل DKIM كما هو موضح أدناه. لاحظ أن هذا المثال ينشئ أيضًا سجل نظام التعرف على هوية المرسل (SPF).
default._domainkey.example.com. IN TXT "v=DKIM1;k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQClcuK3FV3Ug64li8iFsuJ2ykgb7FMZsujk9uG79ppPUp57vCfjzO7F+HBfx5qIwvlGxv2IJXK86FZwhpUX+HFCDUtfB2z0ZNGerWcZfNzM1w1Bru/fdMd2tCYkiHEa5RWIkLfs/Fm+neXxRZfAG2UDWmAghNbgzYv7xViwgufDIQIDAQAB"
example.com. IN TXT "v=spf1 a ip4:192.0.2.1 mx ~all"
أنشئ سجل DMARC.
_dmarc.example.com. IN TXT "v=DMARC1;p=none;pct=100;rua=mailto:[email protected]"
قم /etc/rspamd/local.d/dkim_signing.conf
بإنشاء ملف التكوين.
و selector="default";
يتم اشتقاق خط من الجزء الأول من السجل DKIM DNS ( default._domainkey....
) تم إنشاؤها أعلاه.
domain {
example.com {
path = "/etc/mail/dkim/example.com.key";
selector = "default";
}
}
تمكين وبدء Rspamd.
doas rcctl enable redis rspamd
doas rcctl start redis rspamd
قم بتغيير الأسطر أدناه /etc/mail/smtpd.conf
وأعد تشغيل OpenSMTPD لتمكين Rspamd.
...
listen on all tls pki "mail" hostname "mail.example.com" filter "rspamd"
listen on egress port submission tls-require pki "mail" hostname "mail.example.com" \
auth <credentials> filter "rspamd"
...
rcctl restart smtpd
اختبر خادم البريد باستخدام برنامج البريد الإلكتروني POP3 أو IMAP. إذا كنت لا تحتاج إلى بريد الويب ، فتوقف هنا.
عند المطالبة ، يرجى اختيار أحدث إصدار من PHP.
pkg_add php php-curl php-pdo_sqlite php-zip pecl73-mcrypt zip unzip wget curl
إحضار البريد الإلكتروني RainLoop tarball واستخراجه إلى /var/www/htdocs/
.
استخدم الإصدار القياسي الذي يتضمن أداة تحديث تلقائية.
cd /tmp
wget https://www.rainloop.net/repository/webmail/rainloop-latest.zip
unzip rainloop-latest.zip -d /var/www/htdocs/rainloop
chown -R www:www /var/www/htdocs
/etc/examples/acme-client.conf
إلى/etc
أضف الأسطر التالية في أسفل الملف:
domain webmail.example.com {
domain key "/etc/ssl/private/webmail.example.com.key"
domain full chain certificate "/etc/ssl/webmail.example.com.crt"
sign with letsencrypt
}
webmail.example.com
تحرير /etc/httpd.conf
باتباع المثال أدناه.
prefork 3
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/*" {
root "/acme"
request strip 2
}
}
قم بتشغيل تدقيق بناء الجملة httpd.
httpd -n
تمكين وبدء httpd.
rcctl enable httpd
rcctl start httpd
اطلب شهادة Let's Encrypt.
acme-client -v webmail.example.com
أضف تعريفات الخادم لـ RainLoop إلى /etc/httpd.conf
server "webmail.example.com" {
listen on egress port 80
block return 302 "https://$SERVER_NAME$REQUEST_URI"
}
server "webmail.example.com" {
listen on egress tls port 443
root "/htdocs/rainloop"
directory index "index.php"
tcp { nodelay, backlog 10 }
tls {
certificate "/etc/ssl/webmail.example.com.crt"
key "/etc/ssl/private/webmail.example.com.key"
}
hsts {
max-age 31556952
preload
}
# Value below is 25MB in bytes. 1MB = 1048576 bytes
connection max request body 26214400
location "/data*" {
block return 403
}
location "*.php*" {
fastcgi socket "/run/php-fpm.sock"
}
}
قم بتهيئة PHP للسماح بالمرفقات حتى 25 ميغا بايت. قم بإجراء التغييرات التالية في /etc/php-7.3.ini
:
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 25M
...
; 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 = 29M
قم بتمكين وحدات PHP اللازمة عن طريق نسخ ملفات التكوين الخاصة بها إلى /etc/php-7.3/
cp /etc/php-7.3.sample/* /etc/php-7.3/.
تحقق من بناء الجملة /etc/httpd.conf
httpd -n
قم بتمكين وبدء httpd و php-fpm.
rcctl reload httpd
rcctl enable php73_fpm
rcctl start php73_fpm
استعرض للوصول إلى https://webmail.example.com/?admin
.
اسم المستخدم الافتراضي هو: admin
كلمة المرور الافتراضية هي: 12345 .
استعرض للوصول إلى كل قسم من أقسام التكوين وقم بإجراء التغييرات المطلوبة. بمجرد الانتهاء من التكوين ، قم بتسجيل الدخول إلى بريد الويب علىhttps://webmail.example.com
استخدام نظام مختلف؟ Neos عبارة عن منصة تطبيق محتوى مع CMS وإطار تطبيق في جوهرها. سيوضح لك هذا الدليل كيفية التثبيت
استخدام نظام مختلف؟ osTicket هو نظام تذاكر مفتوح المصدر لدعم العملاء. تتم استضافة شفرة مصدر osTicket علنًا على Github. في هذا البرنامج التعليمي
استخدام نظام مختلف؟ مونيكا هو نظام إدارة علاقات شخصية مفتوح المصدر. فكر في الأمر على أنه CRM (أداة شائعة تستخدمها فرق المبيعات في ال
مقدمة WordPress هو نظام إدارة المحتوى المهيمن على الإنترنت. يعمل على تشغيل كل شيء من المدونات إلى مواقع الويب المعقدة ذات المحتوى الديناميكي
استخدام نظام مختلف؟ ProcessWire CMS 3.0 هو نظام إدارة محتوى بسيط ومرن وقوي ومجاني ومفتوح المصدر (CMS). ProcessWire CMS 3.
مقدمة يوضح هذا البرنامج التعليمي OpenBSD كحل للتجارة الإلكترونية باستخدام PrestaShop و Apache. مطلوب أباتشي لأن PrestaShop لديه UR معقدة
مقدمة مكدس FAMP ، الذي يمكن مقارنته بمكدس LAMP على Linux ، هو مجموعة من البرامج مفتوحة المصدر التي يتم تثبيتها معًا عادةً
تقدم هذه المقالة ملخصًا موجزًا لأنظمة تشغيل الخادم المقدمة كنماذج على Vultr. CentOS CentOS هو إصدار مفتوح المصدر من RHEL (Re
استخدام نظام مختلف؟ X-Cart هي منصة تجارة إلكترونية مفتوحة المصدر مرنة للغاية مع الكثير من الميزات والتكاملات. كود مصدر X-Cart مضيف
استخدام نظام مختلف؟ PyroCMS هو CMS مفتوح المصدر مكتوب بلغة PHP. يتم استضافة شفرة مصدر PyroCMS على GitHub. في هذا الدليل ، تمشي جيدًا عبر الكل
خارج الصندوق ، لم يتم تكوين خوادم Vultr FreeBSD لتشمل مساحة المبادلة. إذا كانت نيتك هي مثيل سحابة يمكن التخلص منها ، فربما لا تحتاج
في هذا المقال ، يوضح لك Ill كيفية تثبيت MariaDB على OpenBSD 6 وتكوينه بحيث يمكن الوصول إليه من خلال خادم ويب مختلط (Apache أو Nginx). أنت أيضا
استخدام نظام مختلف؟ مقدمة Craft CMS هو CMS مفتوح المصدر مكتوب بلغة PHP. تتم استضافة رمز مصدر Craft CMS على GitHub. هذا الدليل سيظهر لك
عند ترقية نسخة VPS على Vultr ، يتم تغيير حجم نظام ملفات Linux تلقائيًا. عند تشغيل FreeBSD مع نظام ملفات ZFS المتقدم ، هناك بعض القلق اليدوي
استخدام نظام مختلف؟ TextPattern CMS 4.6.2 هو نظام إدارة محتوى بسيط ومرن ومجاني ومفتوح المصدر (CMS) يتيح لمصممي الويب
استخدام نظام مختلف؟ يمكن لـ ESpeak إنشاء ملفات صوتية من تحويل النص إلى كلام (TTS). يمكن أن تكون هذه مفيدة لعدة أسباب ، مثل إنشاء تورين الخاصة بك
pfSense هي أداة مثالية لمسؤولي النظام الذين يتطلعون إلى إضافة مجموعة واسعة من الميزات إلى شبكتهم. وهي في الأساس مصدر مفتوح
إذا كنت تقوم بتشغيل المحلل الخاص بك ، أو ترغب في استخدام واحد من موفر تابع لجهة خارجية ، فقد تجد أن DHCP يتم استبدال ملف /etc/resolv.conf الخاص بك
استخدام نظام مختلف؟ مقدمة Akaunting هو برنامج محاسبة مجاني مفتوح المصدر وعبر الإنترنت مصمم للشركات الصغيرة والمستقلين. أنا
استخدام نظام مختلف؟ Anchor CMS هو محرك مدونة نظام إدارة المحتوى (CMS) بسيط للغاية وخفيف الوزن للغاية ومفتوح المصدر
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد