نحن نواصل توسيع سوقنا. لقد أخبرناك مؤخرًا كيف وقد ظهر هذا الأسبوع في سوقنا Drupal.
نخبرك لماذا اخترناه وكيف تم إنشاء الصورة.
Drupal - منصة مريحة وقوية لإنشاء أي نوع من مواقع الويب: بدءًا من المواقع الصغيرة والمدونات وحتى المشاريع الاجتماعية الكبيرة، وتستخدم أيضًا كأساس لتطبيقات الويب، المكتوبة بلغة PHP وتستخدم قواعد البيانات العلائقية كمخزن للبيانات.
Drupal يتضمن الإصدار 9 جميع الميزات المُطبقة في الإصدار 8.9. ويكمن الاختلاف الرئيسي بين الإصدار 9 والإصدار 8 في أن المنصة ستستمر في تلقي التحديثات والتصحيحات الأمنية بعد نوفمبر 2021. كما يُبسّط الإصدار 9 عملية التحديث، مما يجعل الترقية من الإصدار 8 أسهل.
متطلبات الخادم
للاستخدام Drupal يوصى باستخدام ذاكرة وصول عشوائي (RAM) بسعة 2 جيجابايت ومعالج ثنائي النواة.
الملفات الأساسية Drupal سيشغل حوالي 100 ميجابايت، وستحتاج أيضًا إلى مساحة لتخزين الصور وقاعدة البيانات والقوالب والوحدات الإضافية والنسخ الاحتياطية، والتي ستعتمد على حجم موقعك.
إلى Drupal يتطلب الإصدار 9 من PHP الإصدار 7.4 أو أعلى مع حد أدنى من المتطلبات (memory_limit) لذاكرة سعة 64 ميجابايت؛ إذا تم استخدام وحدات إضافية، فمن المستحسن تثبيت 128 ميجابايت.
كخادم ويب Drupal يمكن استخدام Apache أو Nginx، وMySQL أو PostgreSQL أو SQLite كقاعدة بيانات.
سنقوم بالتركيب Drupal باستخدام Nginx و MySQL.
تركيب
لنقم بتحديث الحزم المثبتة إلى الإصدار الأحدث:
sudo dnf update -yدعونا نضيف إذنًا دائمًا لحركة المرور الواردة إلى منافذ http/80 وhttps/443:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsدعونا نطبق قواعد جدار الحماية الجديدة:
sudo systemctl reload firewalldلنقم بتثبيت Nginx:
sudo dnf install nginx -yلنبدأ ونقوم بتمكين خادم Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx بما أن المستودع الرئيسي موجود حاليًا Centos يتم استخدام إصدار PHP 7.2، فلنضف مستودع REMI باستخدام PHP 7.4 (الحد الأدنى للإصدار المطلوب). Drupal (متّى 9، XNUMX).
للقيام بذلك، قم بإضافة مستودع EPEL (المطلوب بواسطة مستودع REMI):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmدعونا نضيف مستودع REMI:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
لنقم بتفعيل الوحدة php:remi-7.4 لتثبيت php 7.4:
sudo dnf module enable php:remi-7.4 -yتثبيت php-fpm و php-cli:
sudo dnf install -y php-fpm php-cliسنقوم بتثبيت وحدات PHP المطلوبة للعمل. Drupal:
sudo dnf install -y php-mysqlnd php-date php-dom php-filter php-gd php-hash php-json php-pcre php-pdo php-session php-simplexml php-spl php-tokenizer php-xmlسنقوم أيضًا بتثبيت وحدات PHP mbstring opcache الموصى بها:
sudo dnf install -y php-mbstring php-opcacheلنقم بتثبيت خادم MySQL:
sudo dnf install mysql-server -yفلنقم بتشغيل خادم MySQL وبدء تشغيله:
sudo systemctl start mysqld
sudo systemctl enable mysqldنظرًا لأننا نقوم بإنشاء قالب لـ VDS، ويمكن أن يكون بطيئًا، فسنضيف تأخير بدء mysqld لمدة 30 ثانية، وإلا فقد تكون هناك مشاكل في بدء تشغيل الخادم أثناء التمهيد الأولي للنظام:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.serviceلنغير المجموعة والمستخدم الذي سيتم تشغيل nginx ضمنه عن طريق إجراء تغييرات على /etc/php-fpm.d/www.conf:
sudo sed -i --follow-symlinks 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sudo sed -i --follow-symlinks 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.confدعنا نغير مالك دليل جلسات PHP إلى nginx وفقًا لذلك:
sudo chown -R nginx. /var/lib/php/sessionلنقم بإزالة الأسطر التي تحتوي على التعليقات من ملف التكوين /etc/nginx/nginx.conf (حتى لا يكون هناك مشغلات مزدوجة لـ sed):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.confأضف إعدادات ضغط gzip إلى /etc/nginx/nginx.conf
sudo sed -i '/types_hash_max_size 2048;/a
gzip on;
gzip_static on;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml application/x-font-ttf;
gzip_comp_level 9;
gzip_proxied any;
gzip_min_length 1000;
gzip_disable "msie6";
gzip_vary on;
' /etc/nginx/nginx.confلنضيف إعدادات ملف الفهرس Index.php إلى /etc/nginx/nginx.conf:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.confدعونا نضيف إعدادات الخادم الافتراضي: معالجة PHP عبر مقبس php-fpm، وتعطيل سجل الملفات الثابتة، وزيادة وقت انتهاء الصلاحية، وتعطيل سجل الوصول والأخطاء لـ favicon.ico وrobots.txt، ورفض الوصول إلى .ht ملفات للجميع:
sudo sed -i '/ location / {/a
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
access_log off;
expires max;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ /.ht {
deny all;' /etc/nginx/nginx.confتثبيت wget مطلوب لتثبيت certbot:
sudo dnf install wget -yقم بتنزيل الملف القابل للتنفيذ certbot من خارج الموقع:
cd ~
wget https://dl.eff.org/certbot-autoانقل certbot إلى /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-autoودعنا نعين الحقوق كمالك للجذر:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoلنقم بتثبيت تبعيات certbot وفي هذه المرحلة نوقف عمله (الإجابات: Y، c):
certbot-autoقم بتنزيل الأرشيف الذي يحتوي على أحدث إصدار من الموقع الرسمي. Drupal 9:
cd ~
wget https://www.drupal.org/download-latest/tar.gzقم بتثبيت tar لفك ضغط الأرشيف:
sudo dnf install tar -yلنحذف الملفات الافتراضية الموجودة في الدليل /usr/share/nginx/html/:
rm -rf /usr/share/nginx/html/*لنقم بفك ضغط الملفات في دليل خادم الويب:
tar xf tar.gz -C /usr/share/nginx/html/لننقل الملفات من الدليل الفرعي إلى الدليل الجذر لخادم الويب:
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/دعونا نحذف الدليل الفرعي:
rm -rf /usr/share/nginx/html/drupal-9.0.7لنحذف الأرشيف الذي يحتوي على ملفات التثبيت:
rm -f ./tar.gzلنقم بتعيين مالك ملفات nginx:
chown -R nginx. /usr/share/nginx/htmlفي هذه المرحلة سنقوم بإيقاف تشغيل الخادم وأخذ لقطة:
shutdown -h nowبعد إطلاق VDS من اللقطة، سنقوم بإجراء الإعداد الأولي لخادم MySQL عن طريق تشغيل البرنامج النصي:
mysql_secure_installationدعونا نقوم بتمكين أداة التحقق من كلمة المرور:
Would you like to setup VALIDATE PASSWORD component? : yلنقم بتعيين كلمة المرور للمستخدم الجذر لـ MySQL:
New password:
Re-enter new password:دعونا نزيل المستخدمين المجهولين:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : yدعونا نمنع الجذر من الاتصال عن بعد:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yدعونا نحذف قاعدة بيانات الاختبار:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : yلنعد تحميل جداول الامتيازات:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y بعد ذلك، لإكمال التثبيت، يمكننا الذهاب إلى
سنرى صفحة التثبيت على هذا العنوان Drupal.
دعونا نختار اللغة التي سنستخدمها. على سبيل المثال: الروسية. انقر فوق "حفظ ومتابعة"
دعنا نختار ملف تعريف التثبيت (يتم استخدام العرض التوضيحي فقط للتعرف على النظام). في حالتنا، فليكن "قياسي".
في الصفحة التالية سنعطي اسمًا لقاعدة البيانات، على سبيل المثال “drupal”. دعنا نشير إلى اسم مستخدم قاعدة البيانات الجذر وكلمة المرور المعطاة له عند تشغيل mysql_secure_installation. انقر فوق "حفظ ومتابعة".
دعنا ننتظر حتى يكتمل تثبيت الترجمات وتحديثها (قد تستغرق العملية عدة دقائق).
سنحدد اسم الموقع، ونُعيّن البريد الإلكتروني الخاص بالموقع (الذي ستُرسل منه إشعارات الموقع)، واسم المستخدم، وكلمة المرور، والبريد الإلكتروني لحساب المسؤول. Drupalسنقوم أيضاً بتحديد البلد والمنطقة الزمنية في الإعدادات الإقليمية. ثم أكمل التثبيت بالنقر على "حفظ ومتابعة".
بعد ذلك، يمكنك الانتقال إلى لوحة التحكم باستخدام اسم المستخدم وكلمة المرور اللذين أنشأتهما كمسؤول. Drupal.
إعداد HTTPS (اختياري)
لتكوين HTTPS، يجب أن يكون لـ VDS اسم DNS صالح، حدده
/etc/nginx/nginx.confفي قسم الخادم اسم الخادم (على سبيل المثال):
server_name domainname.ru;لنعد تشغيل nginx:
service nginx restartلنبدأ تشغيل certbot:
sudo /usr/local/bin/certbot-auto --nginxأدخل بريدك الإلكتروني، وافق على شروط الخدمة (أ)، اشترك في النشرة الإخبارية (اختياري) (ن)، حدد أسماء النطاقات التي تريد إصدار شهادة لها (أدخل للجميع).
إذا سار كل شيء دون أخطاء، فسنرى رسالة حول الإصدار الناجح للشهادات وتكوين الخادم:
Congratulations! You have successfully enabled ...بعد ذلك، سيتم إعادة توجيه الاتصالات بالمنفذ 80 إلى 443 (https).
أضف إلى /etc/crontab لتحديث الشهادات تلقائيًا:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"إعداد أمان المضيف الموثوق (مستحسن)
يهدف هذا الإعداد إلى أن يكون حلاً للمشكلة المرتبطة بتحديد base_url الديناميكي، وهو مصمم لمنع هجمات رأس HTTP HOST (عندما يعتقد موقعك أنه شخص آخر).
للقيام بذلك، تحتاج إلى تحديد أسماء النطاقات الموثوقة للموقع في ملف الإعدادات.
في ملف
/usr/share/nginx/html/sites/default/settings.php دعنا نزيل التعليق أو نضيف إعدادًا يحتوي على أنماط لأسماء المواقع الفعلية، على سبيل المثال:
$settings['trusted_host_patterns'] = [
'^www.mydomain.ru$',
];
تثبيت PHP APCu (موصى به)
Drupal يدعم هذا الإصدار APCu (ذاكرة التخزين المؤقت البديلة لمستخدم PHP). يستخدم الإصداران 8 و9 تقنية APCu بشكل مكثف كذاكرة تخزين مؤقت محلية قصيرة الأجل مقارنةً بالإصدارات السابقة. حجم ذاكرة التخزين المؤقت الافتراضي (32 ميجابايت) مناسب لمعظم المواقع ولا يمكن أن يتجاوز 512 ميجابايت.
للتنشيط، قم بتثبيت وحدة PHP APCu:
dnf -y install php-pecl-apcuأعد تشغيل nginx وphp-fpm:
service nginx restart
service php-fpm restartإذا كنت تستخدم اللغة الروسية وAPCu مع حجم الذاكرة الموصى به لذاكرة التخزين المؤقت، فقد ترى تحذيرًا في لوحة التحكم بأن حجم الذاكرة المخصصة لذاكرة التخزين المؤقت يختلف عن الموصى به، ولكن في الواقع كل شيء يعمل بشكل صحيح. ومن المرجح أن يتم تصحيح التحذير غير الصحيح في التحديثات القادمة.
أو إذا كان التحذير يؤذي عينيك، يمكنك استخدامه .
نود أن نذكرك أنه يمكنك أيضًا إنشاء صورة لنا
هناك ثلاثة خيارات لكيفية المشاركة.
قم بإعداد الصورة بنفسك واحصل على 3000 روبل لرصيدك
إذا كنت مستعدًا للاندفاع فورًا إلى المعركة وإنشاء الصورة التي تفتقدها، فسنضيف لك 3000 روبل إلى رصيدك الداخلي، والتي يمكنك إنفاقها على الخوادم.
كيفية إنشاء الصورة الخاصة بك:
- قم بإنشاء حساب معنا على
- أخبر الدعم أنك ستقوم بإنشاء الصور واختبارها
- سنضيف لك 3000 روبل ونمنحك القدرة على إنشاء لقطات
- اطلب خادمًا افتراضيًا بنظام تشغيل نظيف
- قم بتثبيت البرنامج على VPS هذا وقم بتكوينه
- اكتب التعليمات أو البرنامج النصي لنشر البرنامج
- قم بإنشاء لقطة للخادم الذي تم تكوينه
- اطلب خادمًا افتراضيًا جديدًا عن طريق تحديد اللقطة التي تم إنشاؤها مسبقًا في القائمة المنسدلة "قالب الخادم".
- إذا تم إنشاء الخادم بنجاح، قم بنقل المواد المستلمة في المرحلة 6 إلى الدعم الفني
- إذا كان هناك خطأ، يمكنك التحقق من الدعم عن السبب وتكرار الإعداد
لأصحاب الأعمال: اعرض برنامجك
إذا كنت مطور برامج يتم نشره واستخدامه على VPS، فيمكننا إدراجك في السوق. هذه هي الطريقة التي يمكننا من خلالها مساعدتك في جلب عملاء جدد وحركة مرور ووعي.
أخبرنا في التعليقات ما هي الصورة التي تفتقدها؟
وسوف نقوم بإعداده بأنفسنا
المصدر: www.habr.com
