لدينا صورة جديدة في السوق: VPS مع Joomla 3.9 على Centos 8





Joomla هو ثالث أكثر أنظمة إدارة المحتوى شيوعًا (بعد Wordpress و Shopify) المكتوب بلغة PHP ويستخدم قواعد البيانات العلائقية كتخزين البيانات.



مثل العديد من أنظمة إدارة المحتوى الأخرى ، فإن Joomla مجانية تمامًا للاستخدام ومفتوحة المصدر. يتيح لك نظام القوالب تغيير مظهر الموقع بسهولة ، ويسهل كتالوج ضخم من الإضافات استكمال وظائف الموقع بالوحدات النمطية اللازمة.



لماذا نحب جملة



فيما يلي 10 حقائق نحبها بأنفسنا.



  1. مجاني

    الشيء الرئيسي ، لماذا نحب جملة وما الذي ساعدها في أن تصبح مشهورة جدًا
  2. المصدر

    المفتوح كمنتج مفتوح المصدر ، يمكن لأي شخص أن يأخذ الكود الخاص به ويغيره إذا لزم الأمر. أدى هذا إلى قيام العديد من المطورين بالعمل على وجه التحديد مع جملة.

  3. SEO Friendly

    Joomla . apache-, , . , - - . .



  4. -, . CMS «Joomla Security Strike Team», . , , . Joomla , .



  5. Joomla . , , .



  6. , ,



  7. Joomla , : . : , .



  8. : , .



  9. Joomla - . , , CMS.

  10. وثائق ممتازة وثائق

    مفصلة للمصممين والمطورين ومسؤولي الموقع. توجد قناة على موقع يوتيوب ، حيث يتم تعليم المبتدئين لنشر الموقع بسرعة.



بمثل هذا الحب الكبير ، لم نتمكن بالتأكيد من مغادرة سوقنا بدون جملة وإنشاء صورة جديدة معها.







كيف نبني هذه الصورة: متطلبات الخادم



لاستخدام Joomla ، يوصى باستخدام 2 غيغابايت من ذاكرة الوصول العشوائي و 2 وحدة معالجة مركزية.



تبلغ مساحة ملفات Joomla الرئيسية حوالي 40 ميجابايت ، بالإضافة إلى أنك ستحتاج إلى مساحة لتخزين الصور وقاعدة البيانات والسمات والوحدات النمطية الإضافية والنسخ الاحتياطية ، والتي ستعتمد على حجم موقعك.



يتطلب Joomla 3.9 حد أدنى من إصدار PHP 5.3.10 ، ولكن يوصى باستخدام 7.3 أو أعلى.



يمكن لـ Joomla استخدام Apache أو Nginx أو IIS كخادم ويب و MySQL أو MSSQL أو PostgreSQL كقاعدة بيانات.



سنقوم بتثبيت Joomla باستخدام 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 systemctl start nginx
sudo systemctl enable nginx


تثبيت PHP و PHP-FPM ووحدات PHP المطلوبة:



sudo dnf install php-fpm php-cli php-mysqlnd php-json php-gd php-ldap php-odbc php-pdo php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip -y


قم بتثبيت MySQL Server:



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


أضف /etc/nginx/nginx.confgzip إلى إعدادات الضغط



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


قم بتنزيل الأرشيف باستخدام Joomla_3-9-22-Stable-Full_Package من خارج الموقع



cd ~
wget https://downloads.joomla.org/cms/joomla3/3-9-22/Joomla_3-9-22-Stable-Full_Package.tar.gz?format=gz


قم بتثبيت tar لفك ضغط الأرشيف



sudo dnf install tar -y


فك ضغط الملفات إلى دليل خادم الويب



tar xf Joomla_3-9-22-Stable-Full_Package.tar.gz\?format\=gz -C /usr/share/nginx/html/


احذف الأرشيف



rm -f Joomla_3-9-22-Stable-Full_Package.tar.gz\?format\=gz


تعيين مالك ملفات nginx



sudo chown -R nginx. /usr/share/nginx/html


تعطيل التخزين المؤقت للإخراج وفقًا لتوصية جملة



sudo sed -i --follow-symlinks 's/output_buffering = 4096/output_buffering = Off/g' /etc/php.ini


في هذه المرحلة ، سنقوم بإيقاف تشغيل الخادم وأخذ لقطة:



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


بعد ذلك ، لإكمال التثبيت ، يمكننا الانتقال إلى العنوان vps_ip_address

في هذا العنوان سنرى الصفحة التي تحتوي على تثبيت Joomla.



سنشير إلى اسم الموقع ، وسنقوم بتعيين البريد الإلكتروني وتسجيل الدخول وكلمة المرور لمسؤول Joomla. انقر فوق {التالي".



في الصفحة الثانية ، سنحدد اسم مستخدم قاعدة البيانات الجذر وكلمة المرور التي قمنا بتعيينها عند بدء mysql_secure_installation.

دعنا نضع اسمًا لقاعدة البيانات ، على سبيل المثال جملة. انقر فوق " التالي ".



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



لتثبيت اللغة الروسية ، تحتاج إلى النقر فوق " تثبيت حزم اللغات"- الروسية ، وبعد التثبيت ، قم بتعيين اللغة الافتراضية.



لإكمال التثبيت ، انقر فوق" حذف الدليل "لحذف الملفات المستخدمة للتثبيت.



بعد ذلك ، يمكنك الانتقال إلى لوحة التحكم باستخدام اسم المستخدم وكلمة المرور اللذين تم إنشاؤهما لمدير Joomla.



تهيئة 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"




لأصحاب الأعمال: اعرض برنامجك



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



فقط قدم لنا صورة في التعليقات



اكتب ، ما هو البرنامج الذي ترغب في أن تكون قادرًا على نشر الأجهزة الافتراضية بنقرة واحدة؟



ما الذي تفتقده في سوق RUVDS؟



ما الذي يجب أن تتضمنه كل استضافة تحترم نفسها في سوقها؟










All Articles