وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش نصب دروپال روی CentOS 7

0 2
زمان لازم برای مطالعه: 6 دقیقه



دروپال یکی از پیشروترین پلتفرم های CMS منبع باز در سراسر جهان است. انعطاف پذیر، مقیاس پذیر است و می تواند برای ساخت انواع مختلف وب سایت ها از وبلاگ های شخصی کوچک گرفته تا سایت های بزرگ شرکتی، سیاسی و دولتی استفاده شود.

در این آموزش روش نصب دروپال 8.6 را توضیح خواهیم داد CentOS 7.

راه های مختلفی برای نصب دروپال وجود دارد. این راهنما مراحل لازم برای نصب دروپال با استفاده از یک قالب آهنگساز برای پروژه های دروپال به نام دروپال-پروژه را پوشش می دهد.

ما از Nginx به عنوان وب سرور، آخرین نسخه PHP 7.2 و MySQL/MariaDB به عنوان سرور پایگاه داده استفاده خواهیم کرد.

پیش نیازها

قبل از شروع نصب، مطمئن شوید که پیش نیازهای زیر را برآورده کرده اید:

  • نام دامنه ای داشته باشید که به IP سرور عمومی شما اشاره دارد. استفاده خواهیم کرد example.com.
  • Nginx را نصب کنید.
  • یک گواهی SSL برای دامنه خود نصب کنید. با دنبال کردن این دستورالعمل‌ها می‌توانید یک گواهی رایگان Let’s Encrypt SSL را نصب کنید.
  • به عنوان یک کاربر با امتیازات sudo وارد سیستم شده‌اید.

یک پایگاه داده MySQL ایجاد کنید

اولین قدم ایجاد یک پایگاه داده و حساب کاربری جدید و دادن مجوزهای مناسب به کاربر است.

اگر MySQL یا MariaDB قبلاً روی سرور شما نصب شده است، می توانید این مرحله را رد کنید، در غیر این صورت می توانید بسته سرور MariaDB 5.5 را از CentOSمخازن پیش فرض با تایپ کردن:

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 را نصب کنید

CentOS 7 با PHP نسخه 5.4 عرضه می شود که قدیمی است و دیگر پشتیبانی نمی شود. نسخه PHP پیشنهادی برای دروپال PHP 7.2 است.

برای نصب PHP 7.2 روی CentOS 7 ابتدا باید مخازن EPEL و Remi را فعال کنیم:

sudo yum install epel-release yum-utilssudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpmsudo 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 به عنوان کاربر اجرا می شود apache در پورت 9000. ما کاربر را به تغییر می دهیم nginx و از سوکت TCP به سوکت یونیکس سوئیچ کنید. برای انجام این کار، را باز کنید /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 دایرکتوری با استفاده از دستور chown زیر مالکیت صحیح را دارد:

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

در نهایت، سرویس PHP FPM را فعال و راه اندازی کنید:

sudo systemctl enable php-fpmsudo systemctl start php-fpm

Composer را نصب کنید

Composer یک مدیر وابستگی برای PHP است. ما قالب دروپال را دانلود می کنیم و تمام اجزای لازم دروپال را با آهنگساز نصب می کنیم.

پیشنهاد می‌کنیم بخوانید:  روش استخراج (از حالت فشرده) کردن فایل Tar Gz

دستور زیر با دانلود نصب کننده Composer به صورت سراسری composer را نصب می کند curl
و انتقال فایل به /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

دروپال را نصب کنید

اکنون که آهنگساز نصب شده است، یک پروژه دروپال جدید با استفاده از آن ایجاد کنید قالب دروپال
داخل /var/www/my_drupal فهرست راهنما:

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

دستور بالا قالب را دانلود می کند، تمام بسته های php مورد نیاز را واکشی می کند و اسکریپت های لازم برای آماده سازی پروژه برای نصب را اجرا می کند. را process ممکن است چند دقیقه طول بکشد و در صورت موفقیت آمیز بودن پایان خروجی به این صورت خواهد بود:

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

مرحله بعدی نصب دروپال با استفاده از Drush است. در دستور زیر، پایگاه داده MySQL و اطلاعات کاربری که در بخش اول ایجاد کردیم را ارسال می کنیم:

cd /var/www/my_drupalsudo 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) [yes]:

پس از اتمام نصب، اسکریپت نام کاربری و رمز عبور اداری را چاپ می کند. خروجی باید چیزی شبیه به شکل زیر باشد:

[notice] Starting Drupal installation. This takes a while.
[success] Installation complete.  User name: admin  User password: frxka2Db5v

در نهایت، مجوزهای صحیح را تنظیم کنید تا وب سرور بتواند به فایل ها و فهرست های سایت دسترسی کامل داشته باشد:

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

Nginx را پیکربندی کنید

در حال حاضر، شما باید Nginx با گواهی SSL را روی سیستم خود نصب کرده باشید، در غیر این صورت، پیش نیازهای این آموزش را بررسی کنید.

برای ایجاد یک بلوک سرور جدید برای پروژه جدید دروپال ما از 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)(|/.*)$;
        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-fpm/www.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 ~ ^(/[a-z\-]+)?/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 هدایت می‌شوند. قطعه های مورد استفاده در این پیکربندی در این راهنما ایجاد شده اند.

قبل از راه اندازی مجدد سرویس Nginx یک آزمایش انجام دهید تا مطمئن شوید که هیچ خطای نحوی وجود ندارد:

sudo nginx -t

برای اعمال تغییرات، سرویس Nginx را با تایپ کردن مجدد راه اندازی کنید:

sudo systemctl restart nginx

نصب را تست کنید

مرورگر خود را باز کنید، دامنه خود را تایپ کنید و با فرض موفقیت آمیز بودن نصب، صفحه ای شبیه به زیر ظاهر می شود:

پیشنهاد می‌کنیم بخوانید:  chmod 777 به چه معناست
نصب دروپال

می توانید به عنوان یک ادمین وارد شوید و شروع به سفارشی سازی نصب جدید دروپال خود کنید.

ماژول ها و تم های دروپال را نصب کنید

اکنون که پروژه دروپال خود را نصب کرده اید، می خواهید چند ماژول و تم را نصب کنید. ماژول‌ها و تم‌های دروپال روی یک مخزن آهنگساز سفارشی میزبانی می‌شوند که دروپال-پروژه آن را خارج از جعبه برای ما پیکربندی می‌کند.

برای نصب یک ماژول یا یک تم، تنها کاری که باید انجام دهید این است cd به دایرکتوری پروژه و تایپ کنید composer require drupal/module_or_theme_name. به عنوان مثال، اگر بخواهیم آن را نصب کنیم پاتائوتو
ماژول باید دستور زیر را اجرا کنیم:

cd /var/www/my_drupalsudo -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

همانطور که از خروجی بالا می بینید، composer نیز تمام وابستگی های بسته را برای ما نصب می کند.

دروپال کور را به روز کنید

قبل از ارتقا، همیشه ایده خوبی است که از فایل ها و پایگاه داده خود یک نسخه پشتیبان تهیه کنید. شما می توانید از پشتیبان گیری و مهاجرت
ماژول یا به صورت دستی از پایگاه داده و فایل های خود نسخه پشتیبان تهیه کنید.

برای پشتیبان‌گیری از فایل‌های نصب می‌توانید از دستور 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_drupalvendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql

اکنون که یک نسخه پشتیبان ایجاد کردیم، می‌توانیم با اجرای دستور زیر تمام فایل‌های هسته دروپال را ادامه داده و به‌روزرسانی کنیم:

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

نتیجه

تبریک می گوییم، شما با موفقیت دروپال 8 را با استفاده از composer نصب کردید و روش نصب ماژول ها و تم ها را یاد گرفتید. اکنون می توانید سفارشی سازی سایت خود را شروع کنید. را راهنمای کاربر دروپال 8
نقطه شروع خوبی برای کسب اطلاعات بیشتر در مورد روش مدیریت نصب دروپال است. همچنین بازدید از آهنگساز دروپال
پروژه قالب در Github.

اگر سوالی دارید، در زیر نظر دهید.

آهنگساز centos drupal mysql mariadb cms nginx
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-27 18:37:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید