Joomla هو ثالث أكثر أنظمة إدارة المحتوى شيوعًا (بعد Wordpress و Shopify) المكتوب بلغة PHP ويستخدم قواعد البيانات العلائقية كتخزين البيانات.
مثل العديد من أنظمة إدارة المحتوى الأخرى ، فإن Joomla مجانية تمامًا للاستخدام ومفتوحة المصدر. يتيح لك نظام القوالب تغيير مظهر الموقع بسهولة ، ويسهل كتالوج ضخم من الإضافات استكمال وظائف الموقع بالوحدات النمطية اللازمة.
لماذا نحب جملة
فيما يلي 10 حقائق نحبها بأنفسنا.
- مجاني
الشيء الرئيسي ، لماذا نحب جملة وما الذي ساعدها في أن تصبح مشهورة جدًا - المصدر
المفتوح كمنتج مفتوح المصدر ، يمكن لأي شخص أن يأخذ الكود الخاص به ويغيره إذا لزم الأمر. أدى هذا إلى قيام العديد من المطورين بالعمل على وجه التحديد مع جملة.
- SEO Friendly
Joomla . apache-, , . , - - . .
-
-, . CMS «Joomla Security Strike Team», . , , . Joomla , .
-
Joomla . , , .
-
, ,
-
Joomla , : . : , .
-
: , .
-
Joomla - . , , CMS.
- وثائق ممتازة وثائق
مفصلة للمصممين والمطورين ومسؤولي الموقع. توجد قناة على موقع يوتيوب ، حيث يتم تعليم المبتدئين لنشر الموقع بسرعة.
بمثل هذا الحب الكبير ، لم نتمكن بالتأكيد من مغادرة سوقنا بدون جملة وإنشاء صورة جديدة معها.
كيف نبني هذه الصورة: متطلبات الخادم
لاستخدام 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؟
ما الذي يجب أن تتضمنه كل استضافة تحترم نفسها في سوقها؟
