ذكري المظهر

كيفية تثبيت دروبال على أوبونتو 18.04

تثبيت دروبال على نظام لينوكس و نظرة حول أدمين بانل -الحلقة 002-

تثبيت دروبال على نظام لينوكس و نظرة حول أدمين بانل -الحلقة 002-

جدول المحتويات:

Anonim

Drupal هي واحدة من أكثر أنظمة CMS مفتوحة المصدر شعبية في جميع أنحاء العالم. إنه مكتوب بلغة PHP ويمكن استخدامه لإنشاء أنواع مختلفة من المواقع الإلكترونية تتراوح بين المدونات الشخصية الصغيرة والمواقع التجارية والسياسية والحكومية الكبيرة.

في هذا البرنامج التعليمي ، سوف نوضح لك كيفية تثبيت Drupal 8.6 على جهاز Ubuntu 18.04. هناك طرق متعددة لتثبيت دروبال. يغطي هذا البرنامج التعليمي الخطوات اللازمة لتثبيت Drupal 8.6 باستخدام قالب مؤلف لمشروعات Drupal يُسمى drupal-project.

سنستخدم Nginx كخادم ويب ، وأحدث PHP 7.2 و MySQL / MariaDB كخادم قاعدة بيانات.

المتطلبات الأساسية

تأكد من أنك استوفيت الشروط التالية قبل المتابعة مع هذا البرنامج التعليمي:

  • لديك اسم مجال يشير إلى خادم IP العام الخاص بك. سنستخدم example.com . لديك تثبيت Nginx باتباع هذه التعليمات. لديك شهادة SSL مثبتة لنطاقك. يمكنك تثبيت شهادة Let's Encrypt SSL المجانية من خلال اتباع هذه التعليمات.

قبل ان تبدأ

قم بتحديث فهرس الحزمة وحزم النظام إلى أحدث الإصدارات:

sudo apt update && sudo apt upgrade

1. إنشاء قاعدة بيانات MySQL

sudo apt install mysql-server بالنسبة لعمليات تثبيت MySQL الجديدة ، يوصى بتشغيل الأمر mysql_secure_installation لتحسين أمان خادم MySQL الخاص بك.

الآن نحن بحاجة إلى تسجيل الدخول إلى shell MySQL وإنشاء قاعدة بيانات جديدة وحساب مستخدم ومنح المستخدم أذونات المنح المناسبة.

لتسجيل الدخول إلى shell MySQL ، اكتب الأمر التالي وأدخل كلمة المرور عند المطالبة:

mysql -u root -p

لإنشاء قاعدة بيانات باسم drupal ، قام المستخدم المسمى drupaluser ومنح الأذونات اللازمة للمستخدم بتشغيل الأوامر التالية:

CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'change-with-strong-password';

2. تثبيت PHP

PHP 7.2 وهو إصدار PHP الافتراضي في Ubuntu 18.04 معتمد بالكامل ويوصى باستخدامه لـ Drupal 8.6. نظرًا لأننا سنستخدم Nginx كخادم ويب ، فسنقوم بتثبيت PHP-FPM أيضًا.

لتثبيت جميع وحدات PHP المطلوبة ، قم بتشغيل الأمر التالي:

sudo apt install php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

ستبدأ خدمة PHP-FPM تلقائيًا بعد اكتمال عملية التثبيت ، ويمكنك التحقق من ذلك من خلال طباعة حالة الخدمة:

systemctl status php7.2-fpm

يجب أن يشير الإخراج إلى أن خدمة fpm نشطة وتعمل.

● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-05-19 19:54:13 UTC; 9h ago Docs: man:php-fpm7.2(8) Main PID: 17781 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 507) CGroup: /system.slice/php7.2-fpm.service ├─17781 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─17796 php-fpm: pool www └─17797 php-fpm: pool www

3. تثبيت الملحن

الملحن هو مدير تبعية لـ PHP وسنستخدمه لتنزيل قالب دروبال وتثبيت جميع مكونات دروبال اللازمة.

لتثبيت الملحن على مستوى العالم ، قم بتنزيل مثبّت الملحن مع حليقة وانقل الملف إلى دليل /usr/local/bin :

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

تحقق من التثبيت عن طريق طباعة إصدار الملحن:

composer --version

يجب أن يبدو الإخراج بشيء من هذا القبيل:

Composer version 1.6.5 2018-05-04 11:44:59

4. تثبيت دروبال

الآن وبعد تثبيت الملحن ، يمكننا متابعة وإنشاء مشروع دروبال جديد باستخدام قالب الملحن داخل /var/www/my_drupal directory:

sudo composer create-project drupal-composer/drupal-project:8.x-dev /var/www/my_drupal --stability dev --no-interaction

سيقوم الأمر أعلاه بتنزيل القالب وإحضار جميع حزم php المطلوبة وتشغيل بعض البرامج النصية لإعداد مشروعنا للتثبيت. قد تستغرق العملية بضع دقائق ، وإذا نجحت ، يجب أن تبدو نهاية الإخراج كما يلي:

Create a sites/default/settings.php file with chmod 0666 Create a sites/default/files directory with chmod 0777

الخطوة التالية هي تثبيت دروبال باستخدام دروش. في الأمر أدناه ، نقوم بتمرير قاعدة بيانات MySQL ومعلومات المستخدم التي تم إنشاؤها في الخطوة 1:

cd /var/www/my_drupal sudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal

سيطالبك برنامج التثبيت بالرسالة التالية ، فقط اضغط على "إدخال" للمتابعة.

You are about to DROP all tables in your 'drupal' database. Do you want to continue? (yes/no):

بمجرد اكتمال التثبيت ، سيقوم البرنامج النصي بطباعة اسم المستخدم وكلمة المرور الإدارية. يجب أن يبدو الإخراج كما يلي:

Starting Drupal installation. This takes a while. Consider using the --notify global option. Installation complete. User name: admin User password: XRkC9Q5WN9

أخيرًا ، نحتاج إلى تعيين الأذونات الصحيحة حتى يتمكن خادم الويب من الوصول الكامل إلى ملفات وأدلة الموقع. تعمل كل من Nginx و PHP كمستخدم www-data ومجموعة www-data ، لذلك نحن بحاجة إلى إصدار الأمر التالي:

sudo chown -R www-data: /var/www/my_drupal

5. تكوين Nginx

الآن ، يجب أن يكون لديك بالفعل Nginx مع شهادة SSL مثبتة على نظامك ، إن لم تكن تحقق من المتطلبات الأساسية لهذا البرنامج التعليمي.

لإنشاء كتلة خادم جديدة لمشروع دروبال الجديد ، سنستخدم وصفة Nginx من موقع Nginx الرسمي.

افتح محرر النصوص الخاص بك وقم بإنشاء الملف التالي:

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com

# Redirect HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # Redirect WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; root /var/www/my_drupal/web; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ \..*/.*\.php$ { return 403; } location ~ ^/sites/.*/private/ { return 403; } # Block access to scripts in site files directory location ~ ^/sites/+/files/.*\.php$ { deny all; } # Block access to "hidden" files and directories whose names begin with a # period. This includes directories used by version control systems such # as Subversion or Git to store control files. location ~ (^|/)\. { return 403; } location / { try_files $uri /index.php?$query_string; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } # Don't allow direct access to PHP files in the vendor directory. location ~ /vendor/.*\.php$ { deny all; return 404; } location ~ '\.php$|^/update.php' /.*)$; include fastcgi_params; # Block httpoxy attacks. See https://httpoxy.org/. fastcgi_param HTTP_PROXY ""; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param QUERY_STRING $query_string; fastcgi_intercept_errors on; fastcgi_pass unix:/run/php/php7.2-fpm.sock; # Fighting with Styles? This little gem is amazing. # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6 location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7 try_files $uri @rewrite; } # Handle private files through Drupal. Private file's path can come # with a language prefix. location ~ ^(/+)?/system/files/ { # For Drupal >= 7 try_files $uri /index.php?$query_string; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { try_files $uri @rewrite; expires max; log_not_found off; } } لا تنسَ استبدال example.com بنطاق دروبال وتعيين المسار الصحيح لملفات شهادة SSL. سيتم إعادة توجيه جميع طلبات HTTP إلى HTTPS. يتم إنشاء المقتطفات المستخدمة في هذا التكوين في هذا الدليل.

قم بتمكين كتلة الخادم عن طريق إنشاء رابط رمزي إلى الدليل الذي sites-enabled :

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

قبل إعادة تشغيل خدمة Nginx ، قم بإجراء اختبار للتأكد من عدم وجود أخطاء في بناء الجملة:

sudo nginx -t

إذا لم تكن هناك أخطاء ، فيجب أن يبدو الإخراج كما يلي:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

أخيرًا ، أعد تشغيل خدمة Nginx بكتابة:

sudo systemctl restart nginx

6. اختبار التثبيت

افتح المستعرض الخاص بك ، اكتب نطاقك وافترض أن التثبيت ناجح ، ستظهر شاشة مشابهة للشاشة التالية:

يمكنك تسجيل الدخول كمسؤول والبدء في تخصيص تثبيت دروبال الجديد.

7. تثبيت وحدات دروبال والموضوعات

الآن وبعد تثبيت مشروع Drupal ، ستحتاج إلى تثبيت بعض الوحدات النمطية والسمات. يتم استضافة وحدات Drupal والسمات الخاصة بها في مستودع الملحن المخصص ، الذي يقوم مشروع دروبال بتكوينه لنا خارج الصندوق.

لتثبيت وحدة نمطية أو سمة ، كل ما عليك القيام به هو cd إلى دليل المشروع واكتب composer require drupal/module_or_theme_name . على سبيل المثال ، إذا أردنا تثبيت وحدة Pathauto ، نحتاج إلى تشغيل الأمر التالي:

sudo -u www-data composer require drupal/pathauto cd /var/www/my_drupal sudo -u www-data composer require drupal/pathauto من خلال الدفع المسبق sudo -u www-data فإننا نقوم بتشغيل الأمر كمستخدم www-data

Using version ^1.3 for drupal/pathauto./composer.json has been updated > DrupalProject\composer\ScriptHandler::checkComposerVersion Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 3 installs, 0 updates, 0 removals - Installing drupal/token (1.5.0): Downloading (100%) - Installing drupal/ctools (3.2.0): Downloading (100%) - Installing drupal/pathauto (1.3.0): Downloading (100%) Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested. Writing lock file Generating autoload files > DrupalProject\composer\ScriptHandler::createRequiredFiles

كما ترون من الإخراج أعلاه الملحن أيضا بتثبيت جميع التبعيات الحزمة بالنسبة لنا.

8. تحديث دروبال الأساسية

قبل الترقية ، من الجيد دائمًا أخذ نسخة احتياطية من ملفاتك وقاعدة بياناتك. يمكنك إما استخدام وحدة النسخ الاحتياطي والترحيل أو النسخ الاحتياطي لقاعدة البيانات والملفات يدويًا.

لإجراء نسخ احتياطي لملفات التثبيت ، يمكنك استخدام الأمر rsync التالي ، بالطبع ، ستحتاج إلى استخدام المسار الصحيح إلى دليل التثبيت:

sudo rsync -a /var/www/my_drupal/ /var/www/my_drupal_$(date +%F)

لعمل نسخة احتياطية من قاعدة البيانات ، يمكننا إما استخدام الأمر mysqldump القياسي:

mysqldump -u root -p > /var/www/my_drupal_database_$(date +%F).sql

أو drush sql-dump :

cd /var/www/my_drupal vendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql

الآن وبعد أن أنشأنا نسخة احتياطية ، يمكننا متابعة وتحديث جميع ملفات Drupal الأساسية عن طريق تشغيل الأمر التالي:

sudo -u www-data composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

استنتاج

تهانينا ، لقد نجحت في تثبيت Drupal 8 باستخدام الملحن وتعلمت كيفية تثبيت الوحدات النمطية والسمات. يمكنك الآن البدء في تخصيص موقعك. يعد دليل مستخدم Drupal 8 مكانًا جيدًا للبدء لمعرفة المزيد حول كيفية إدارة تثبيت Drupal. يجب عليك أيضًا زيارة مشروع قالب دروبال الملحن على جيثب.

أوبونتو دروبال mysql mariadb سم إنجن إكس الملحن