एंड्रॉयड

सेंटोस 7 पर ड्रुपल कैसे स्थापित करें

DigitalOcean | How to Add Custom Domain & Host your Websites on Digital Ocean Droplet Tutorial

DigitalOcean | How to Add Custom Domain & Host your Websites on Digital Ocean Droplet Tutorial

विषयसूची:

Anonim

Drupal दुनिया भर में अग्रणी ओपन सोर्स CMS प्लेटफार्मों में से एक है। यह लचीला, स्केलेबल है और इसका उपयोग विभिन्न प्रकार की वेबसाइट बनाने के लिए किया जा सकता है, जिसमें छोटे व्यक्तिगत ब्लॉग से लेकर बड़े कॉर्पोरेट, राजनीतिक और सरकारी साइट शामिल हैं।

इस ट्यूटोरियल में, हम समझाएँगे कि Drupal 8.6 को CentOS 7 पर कैसे स्थापित किया जाए।

Drupal को स्थापित करने के कई तरीके हैं। यह मार्गदर्शिका ड्रुपल-प्रोजेक्ट कहे जाने वाले ड्रुपल प्रोजेक्ट के लिए कंपोजर टेम्पलेट का उपयोग करके ड्रुपल को स्थापित करने के लिए आवश्यक चरणों को शामिल करती है।

हम एक वेब सर्वर, नवीनतम PHP 7.2 और MySQL / MariaDB डेटाबेस सर्वर के रूप में Nginx का उपयोग करेंगे।

आवश्यक शर्तें

स्थापना शुरू करने से पहले, सुनिश्चित करें कि आप निम्नलिखित आवश्यक शर्तें पूरी कर चुके हैं:

  • अपने सार्वजनिक सर्वर आईपी की ओर इशारा करते हुए एक डोमेन नाम रखें। हम example.com का उपयोग करेंगे। Nginx स्थापित करें। अपने डोमेन के लिए एक SSL प्रमाणपत्र स्थापित करें। आप इन निर्देशों का पालन करके एक निशुल्क लेट एनक्रिप्टेड एसएसएल प्रमाणपत्र स्थापित कर सकते हैं। सूडो विशेषाधिकार वाले उपयोगकर्ता के रूप में जाना जाता है।

एक MySQL डेटाबेस बनाएँ

पहला कदम एक नया डेटाबेस और उपयोगकर्ता खाता बनाना और उपयोगकर्ता को उचित अनुमति देना है।

यदि MySQL या MariaDB पहले से ही आपके सर्वर पर स्थापित है, तो आप इस चरण को छोड़ सकते हैं, यदि आप टाइप करके CentOS की डिफ़ॉल्ट रिपॉजिटरी से MariaDB 5.5 सर्वर पैकेज को स्थापित नहीं कर सकते हैं:

sudo yum install mariadb-server नए सिरे से MariaDB / MySQL इंस्टॉलेशन के लिए, अपने डेटाबेस सर्वर की सुरक्षा को बेहतर बनाने के लिए mysql_secure_installation कमांड चलाने की सिफारिश की जाती है।

निम्नलिखित कमांड टाइप करके 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';

PHP स्थापित करें

PHP संस्करण 5.4 के साथ CentOS 7 जहाज, जो पुराना है और अब समर्थित नहीं है। Drupal के लिए अनुशंसित PHP संस्करण PHP 7.2 है।

CentOS 7 पर PHP 7.2 स्थापित करने के लिए सबसे पहले हमें EPEL और रेमी रिपॉजिटरी को सक्षम करना होगा:

sudo yum install epel-release yum-utils sudo yum install sudo yum-config-manager --enable remi-php72

एक बार रिपॉजिटरी PHP 7.2 स्थापित करने के लिए सक्षम है और सभी आवश्यक PHP एक्सटेंशन निम्नलिखित कमांड चलाते हैं:

sudo yum install php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl git

हमने PHP FPM स्थापित किया है क्योंकि हम वेब सर्वर के रूप में Nginx का उपयोग करेंगे।

डिफ़ॉल्ट रूप से PHP FPM पोर्ट 9000 पर उपयोगकर्ता apache रूप में चलेगा। हम उपयोगकर्ता को nginx बदल देंगे और टीसीपी सॉकेट से यूनिक्स सॉकेट पर स्विच करेंगे। ऐसा करने के लिए /etc/php-fpm.d/www.conf फ़ाइल खोलें और पीले रंग में हाइलाइट की गई पंक्तियों को संपादित करें:

/etc/php-fpm.d/www.conf

… user = nginx… group = nginx… listen = /run/php-fpm/www.sock… listen.owner = nginx listen.group = nginx

सुनिश्चित करें कि /var/lib/php डायरेक्टरी में निम्नलिखित चाउन कमांड का उपयोग करके सही स्वामित्व है:

sudo chown -R root:nginx /var/lib/php

अंत में, PHP FPM सेवा को सक्षम और शुरू करें:

sudo systemctl enable php-fpm sudo systemctl start php-fpm

संगीतकार स्थापित करें

संगीतकार PHP के लिए एक निर्भरता प्रबंधक है। हम Drupal टेम्पलेट डाउनलोड करेंगे और संगीतकार के साथ सभी आवश्यक Drupal घटक स्थापित करेंगे।

निम्न कमांड कम्पोज़र इंस्टॉलर को कर्ल के साथ डाउनलोड करके और फ़ाइल को /usr/local/bin ले जाकर कम्पोज़र को विश्व स्तर पर स्थापित करेगा:

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

निम्नलिखित कमांड को चलाकर इंस्टॉलेशन को सत्यापित करें जो संगीतकार संस्करण को प्रिंट करेगा:

composer --version

आउटपुट कुछ इस तरह दिखना चाहिए:

Composer version 1.8.4 2019-02-11 10:52:10

Drupal स्थापित करें

अब उस संगीतकार को स्थापित कर दिया गया है, Drupal टेम्पलेट का उपयोग करके /var/www/my_drupal निर्देशिका के अंदर एक नया Drupal प्रोजेक्ट बनाएं:

sudo /usr/local/bin/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

अगला कदम Drush का उपयोग करके Drupal को स्थापित करना है। नीचे दिए गए आदेश में हम MySQL डेटाबेस और उपयोगकर्ता जानकारी को पहले खंड में बना रहे हैं:

cd /var/www/my_drupal sudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal 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. Installation complete. User name: admin User password: frxka2Db5v

अंत में, सही अनुमतियां सेट करें ताकि वेब सर्वर को साइट की फ़ाइलों और निर्देशिकाओं तक पूरी पहुंच मिल सके:

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

Nginx कॉन्फ़िगर करें

अब तक, आपके पास पहले से ही अपने सिस्टम पर एसएसएल प्रमाण पत्र के साथ Nginx होना चाहिए, यदि इस ट्यूटोरियल के लिए आवश्यक शर्तें नहीं जांचें।

हमारे नए Drupal प्रोजेक्ट के लिए एक नया सर्वर ब्लॉक बनाने के लिए हम Nginx रेसिपी का उपयोग आधिकारिक Nginx साइट से करेंगे।

अपना टेक्स्ट संपादक खोलें और निम्न फ़ाइल बनाएं:

sudo nano /etc/nginx/conf.d/example.com /etc/nginx/conf.d/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' fastcgi_split_path_info ^(.+?\.php)(# 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 को अपने Drupal डोमेन के साथ बदलना न भूलें और SSL सर्टिफ़िकेट फ़ाइलों के लिए सही रास्ता सेट करें। सभी HTTP अनुरोधों को HTTPS पर पुनर्निर्देशित किया जाएगा। इस कॉन्फ़िगरेशन में उपयोग किए गए स्निपेट्स इस गाइड में बनाए गए हैं।

Nginx सेवा को पुनरारंभ करने से पहले यह सुनिश्चित करने के लिए एक परीक्षण करें कि कोई सिंटैक्स त्रुटियां न हों:

sudo nginx -t

टाइप करके प्रभावी होने के लिए Nginx सेवा को पुनरारंभ करें:

sudo systemctl restart nginx

स्थापना का परीक्षण करें

अपना ब्राउज़र खोलें, अपना डोमेन लिखें और यह मानकर कि इंस्टालेशन सफल है, निम्नलिखित के समान स्क्रीन दिखाई देगी:

आप एक व्यवस्थापक के रूप में लॉग इन कर सकते हैं और अपनी नई Drupal स्थापना को अनुकूलित करना शुरू कर सकते हैं।

Drupal मॉड्यूल और थीम स्थापित करें

अब आपके पास अपनी Drupal परियोजना स्थापित हो गई है, आप कुछ मॉड्यूल और थीम स्थापित करना चाहते हैं। Drupal मॉड्यूल और थीम एक कस्टम कम्पोज़र रिपॉजिटरी पर होस्ट किए जाते हैं, जो ड्रुपल-प्रोजेक्ट हमारे लिए बॉक्स से बाहर कॉन्फ़िगर करता है।

मॉड्यूल या थीम को स्थापित करने के लिए, आपको केवल प्रोजेक्ट डायरेक्टरी में cd composer require drupal/module_or_theme_name और टाइप करने के लिए composer require drupal/module_or_theme_name । उदाहरण के लिए, यदि हम पाठाओ मॉड्यूल को स्थापित करना चाहते हैं, तो हमें निम्नलिखित कमांड चलाने की आवश्यकता है:

cd /var/www/my_drupal sudo -u nginx /usr/local/bin/composer require drupal/pathauto sudo -u nginx तैयार करके हम कमांड को nginx रूप में चला रहे हैं

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

जैसा कि आप संगीतकार से ऊपर आउटपुट से देख सकते हैं, हमारे लिए सभी पैकेज निर्भरता भी स्थापित करता है।

Drupal Core को अपडेट करें

अपग्रेड करने से पहले अपनी फ़ाइलों और डेटाबेस का बैकअप लेना हमेशा एक अच्छा विचार है। आप या तो बैकअप और माइग्रेट मॉड्यूल का उपयोग कर सकते हैं या मैन्युअल रूप से अपने डेटाबेस और फ़ाइलों का बैकअप ले सकते हैं।

स्थापना फ़ाइलों का बैकअप लेने के लिए, आप निम्नलिखित 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 core फ़ाइलों को जारी रख सकते हैं और अपडेट कर सकते हैं:

sudo -u nginx /usr/local/bin/composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

निष्कर्ष

बधाई हो, आपने संगीतकार का उपयोग करके ड्रुपल 8 को सफलतापूर्वक स्थापित किया है और मॉड्यूल और थीम स्थापित करना सीख लिया है। अब आप अपनी साइट को कस्टमाइज़ करना शुरू कर सकते हैं। Drupal 8 उपयोगकर्ता गाइड आपके Drupal स्थापना को प्रबंधित करने के तरीके के बारे में अधिक जानने के लिए एक अच्छी शुरुआत है। इसके अलावा, गितुब पर Drupal Composer टेम्पलेट प्रोजेक्ट पर जाना न भूलें।

सेंटोस ड्रुपल मायस्कल मरियाडब सेमी एनएमजीएक्स संगीतकार