ما همچنان به گسترش بازار خود ادامه می دهیم. ما اخیراً به شما گفتیم که چگونه و این هفته در بازار ما ظاهر شد Drupal.
ما به شما می گوییم که چرا او را انتخاب کردیم و این تصویر چگونه ایجاد شد.
Drupal - یک پلت فرم مناسب و قدرتمند برای ایجاد هر نوع وب سایت: از میکروسایت ها و وبلاگ ها تا پروژه های اجتماعی بزرگ، همچنین به عنوان پایه ای برای برنامه های کاربردی وب، نوشته شده در PHP و استفاده از پایگاه داده های رابطه ای به عنوان ذخیره سازی داده ها استفاده می شود.
Drupal نسخه ۹ شامل تمام ویژگیهای پیادهسازی شده در نسخه ۸.۹ است. تفاوت کلیدی بین نسخه ۹ و نسخه ۸ این است که این پلتفرم پس از نوامبر ۲۰۲۱ همچنان بهروزرسانیها و وصلههای امنیتی را دریافت خواهد کرد. نسخه ۹ همچنین فرآیند بهروزرسانی را سادهتر کرده و ارتقا از نسخه ۸ را آسانتر میکند.
نیازمندی های سرور
برای استفاده Drupal توصیه میشود از ۲ گیگابایت رم و ۲ هسته پردازنده استفاده کنید.
فایلهای اصلی Drupal حدود ۱۰۰ مگابایت فضا اشغال میکند، همچنین به فضایی برای ذخیره تصاویر، پایگاه داده، قالبها، ماژولهای اضافی و پشتیبانگیری نیاز خواهید داشت که به اندازه سایت شما بستگی دارد.
برای 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 نسخه ۷.۲ استفاده شده است، بیایید مخزن REMI را با PHP نسخه ۷.۴ (حداقل نسخه برای) اضافه کنیم. Drupal 9).
برای انجام این کار، مخزن 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 -yphp-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ما همچنین ماژول های opcache mbstring توصیه شده PHP را نصب خواهیم کرد:
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بیایید با ایجاد تغییرات در /etc/php-fpm.d/www.conf، گروه و کاربری را که nginx تحت آن اجرا می شود، تغییر دهیم:
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.confwget مورد نیاز برای نصب 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.
بیایید زبان مورد استفاده را انتخاب کنیم. به عنوان مثال: روسی. روی «ذخیره و ادامه» کلیک کنید
بیایید یک نمایه نصب را انتخاب کنیم (نمونه نمایشی صرفاً برای آشنایی با سیستم استفاده می شود). در مورد ما، بگذارید "استاندارد" باشد.
در صفحه بعد نامی به پایگاه داده می دهیم، به عنوان مثال "دروپال". اجازه دهید نام کاربری ریشه پایگاه داده و رمز عبوری که هنگام اجرای 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ایمیل خود را وارد کنید، با شرایط خدمات موافقت کنید (A)، مشترک خبرنامه (اختیاری) (N)، نام دامنه هایی را که می خواهید برای آنها گواهی صادر کنید (برای همه وارد کنید) انتخاب کنید.
اگر همه چیز بدون خطا پیش رفت، پیامی در مورد صدور موفقیت آمیز گواهینامه ها و پیکربندی سرور خواهیم دید:
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"راه اندازی امنیت میزبان معتمد (توصیه می شود)
این تنظیم به عنوان راه حلی برای مشکل مرتبط با تعیین پایگاه_url پویا طراحی شده است و برای جلوگیری از حملات HTTP HOST Header (زمانی که سایت شما فکر می کند شخص دیگری است) طراحی شده است.
برای این کار باید نام دامنه های مورد اعتماد سایت را در فایل تنظیمات مشخص کنید.
در پرونده
/usr/share/nginx/html/sites/default/settings.php بیایید از کامنت برداریم یا تنظیماتی با الگوهای نام واقعی سایت اضافه کنیم، به عنوان مثال:
$settings['trusted_host_patterns'] = [
'^www.mydomain.ru$',
];
نصب PHP APCu (توصیه می شود)
Drupal از APCu (حافظه پنهان جایگزین PHP برای کاربران) پشتیبانی میکند. نسخههای ۸ و ۹ از APCu به عنوان یک حافظه پنهان محلی کوتاهمدت، با شدت بیشتری نسبت به نسخههای قبلی استفاده میکنند. اندازه پیشفرض حافظه پنهان (۳۲ مگابایت) برای اکثر سایتها مناسب است و نمیتواند از ۵۱۲ مگابایت تجاوز کند.
برای فعال سازی، ماژول PHP APCu را نصب کنید:
dnf -y install php-pecl-apcunginx و php-fpm را مجددا راه اندازی کنید:
service nginx restart
service php-fpm restartاگر از زبان روسی و APCu با اندازه حافظه توصیه شده برای حافظه پنهان استفاده می کنید، ممکن است هشداری را در کنترل پنل مشاهده کنید مبنی بر اینکه اندازه حافظه اختصاص داده شده برای حافظه پنهان با مقدار توصیه شده متفاوت است، اما در واقع همه چیز به درستی کار می کند. و اخطار نادرست به احتمال زیاد در آپدیت های بعدی اصلاح خواهد شد.
یا اگر اخطار به چشم شما آسیب می رساند، می توانید استفاده کنید .
یادآوری می کنیم که شما هم می توانید برای ما تصویر بسازید
سه گزینه برای نحوه مشارکت وجود دارد.
تصویر را خودتان آماده کنید و 3000 روبل به موجودی خود دریافت کنید
اگر آماده هستید که فوراً وارد نبرد شوید و تصویری را ایجاد کنید که از دست داده اید، ما 3000 روبل به موجودی داخلی شما اعتبار می دهیم که می توانید آن را در سرورها خرج کنید.
چگونه تصویر خود را بسازیم:
- با ما یک حساب کاربری ایجاد کنید
- به پشتیبانی اطلاع دهید که قصد ایجاد و آزمایش تصاویر را دارید
- ما 3000 روبل به شما اعتبار می دهیم و توانایی ایجاد عکس های فوری را فعال می کنیم
- سفارش سرور مجازی با سیستم عامل تمیز
- نرم افزار را روی این VPS نصب کنید و آن را پیکربندی کنید
- دستورالعمل یا اسکریپت برای استقرار نرم افزار بنویسید
- یک عکس فوری برای سرور پیکربندی شده ایجاد کنید
- با انتخاب عکس فوری ایجاد شده قبلی در لیست کشویی "Server template" یک سرور مجازی جدید سفارش دهید.
- اگر سرور با موفقیت ایجاد شد، مواد دریافت شده در مرحله 6 را به پشتیبانی فنی انتقال دهید
- اگر خطایی وجود داشت، میتوانید با پشتیبانی دلیل آن را بررسی کنید و راهاندازی را تکرار کنید
برای صاحبان مشاغل: نرم افزار خود را ارائه دهید
اگر توسعهدهنده نرمافزاری هستید که روی VPS مستقر و استفاده میشود، میتوانیم شما را در بازار قرار دهیم. این روشی است که ما می توانیم به شما کمک کنیم تا مشتریان جدید، ترافیک و آگاهی ایجاد کنید.
در نظرات به ما بگویید چه تصویری را از دست داده اید؟
و خودمون آماده میکنیم
منبع: www.habr.com
