Joomla 6-ს სჭირდება PHP 8.3 ან უფრო ახალი (რეკომენდებულია 8.4), MySQL 8.0.13+, MariaDB ან PostgreSQL ბაზა, PHP-ის memory_limit 256 MB და PHP გაფართოებების ჩვეულებრივი მუჭა. დაყენება კლასიკური PHP რუტინაა: ატვირთე ერთი არქივი, გახსენი ვებ root-ში, შექმენი ცარიელი ბაზა და გაიარე ბრაუზერის ინსტალერი, რომელიც configuration.php-ს შენთვის წერს. ჩვეულებრივ კავშირზე მთელი საქმე თხუთმეტი წუთია.
ნაწილები, რომლებიც მოგვიანებით პრობლემებს იწვევს, სხვაგანაა: საძიებო სისტემებისთვის მეგობრული URL-ები nginx-ზე, სადაც Joomla-ს .htaccess არაფერს აკეთებს; გაფართოებები, დაყენებული იქიდან, სადაც ძიების შედეგმა მიგითითა; cache-ისა და სესიების პარამეტრები, ნაგულისხმევზე დატოვებული, რომლებიც საიტს არ ერგება; და განახლებები, გაშვებული backup-ის გარეშე. ეს გზამკვლევი დაყენებას აკეთებს და შემდეგ თითოეულ მათგანს სათანადოდ გადის.
Joomla 6 თუ Joomla 5.4#
Joomla 6.0 და 5.4 ერთად გამოვიდა 2025 წლის ოქტომბერში. Joomla 6 მიმდინარე ძირითადი ვერსიაა; 5.4 მე-5 სერიის ბოლოა, რომელიც მხარდაჭერის რეჟიმში გადავიდა. პროექტის გამოქვეყნებული roadmap-ის მიხედვით Joomla 5 ბაგების შესწორებებს 2026 წლის ოქტომბრამდე იღებს, უსაფრთხოების შესწორებებს კი 2027 წლის ოქტომბრამდე - სანამ მათზე დაყრდნობით დაგეგმავ, მიმდინარე თარიღები joomla.org-ზე გადაამოწმე.
ახალი საიტისთვის დააყენე Joomla 6. 5.4 გამოიყენე მხოლოდ მაშინ, თუ გაფართოება, რომლის გარეშეც ვერ იქნები, 6-ისთვის ჯერ არ განახლებულა, და გადასვლა დაგეგმე. 5.4-დან 6-ზე გადასვლა ადგილზე განახლებაა Joomla Update კომპონენტით, როცა Pre-Update Check გაცნობებს, რომ შენი გაფართოებები თავსებადია; ის გაცილებით პატარაა, ვიდრე Joomla 3-დან 4-ზე ნახტომი იყო.
Joomla 6-ის მოთხოვნები, ოფიციალური ტექნიკური მოთხოვნების გვერდიდან:
| პროგრამა | მინიმუმი | რეკომენდებული |
|---|---|---|
| PHP | 8.3.0 | 8.4 |
| MySQL | 8.0.13 | 8.4 |
| MariaDB | 10.4 (10.6 მხარდაჭერილი) | 12.0 |
| PostgreSQL | 12.0 (14.0 მხარდაჭერილი) | 17.6 |
| nginx | 1.26 მხარდაჭერილი | 1.29 |
| Apache | 2.4 | 2.4 |
სავალდებულო PHP გაფართოებებია json, simplexml, dom, zlib, gd და ერთ-ერთი mysqlnd-იდან, pdo_mysql-იდან ან pdo_pgsql-იდან; mbstring რეკომენდებულია. სახელმძღვანელო გირჩევს memory_limit-ს მინიმუმ 256 MB. ასევე გაზარდე upload_max_filesize და post_max_size დაახლოებით 32-64 MB-მდე, თორემ დიდი გაფართოების პაკეტის დაყენება გაურკვეველი შეცდომით ჩავარდება. php.ini პარამეტრები, რომლებსაც მნიშვნელობა აქვს ფარავს, სად ცხოვრობს ისინი.
რესურსების მოხმარება ზომიერია. პატარა Joomla საიტი 1 GB მეხსიერებაზე კომფორტულად მუშაობს; საიტს page builder-ით, მაღაზიის გაფართოებითა და შესული წევრებით 2 GB სჭირდება. დისკი დაახლოებით 100 MB-ია თავად Joomla-სთვის, პლუს სურათები და ნებისმიერი backup არქივი, რომელსაც სერვერზე ინახავ - და სწორედ backup არქივები ავსებს პატარა დისკებს.
სანამ დაიწყებ: ბაზა და PHP ვერსია#
ჯერ ბაზა შექმენი. ჰოსტინგის უმეტესობაზე Joomla ბაზას შენთვის არ ქმნის; მას სჭირდება არსებული ცარიელი ბაზა და მომხმარებელი მასზე სრული უფლებებით. ჩაიწერე host, პორტი, ბაზის სახელი, მომხმარებელი და პაროლი.
RE:NODE-ზე Engines გეგმები ის ხაზია, რომელიც Joomla-ს მსგავსი CMS-ისთვისაა შერჩეული, და თითოეულს ორი ბაზის სლოტი აქვს, რომლებიც პანელიდან იქმნება გენერირებული host-ით, მომხმარებლითა და პაროლით. Open in phpMyAdmin ღილაკი შეგიყვანს ერთჯერადი token-ით, რომელიც სამოცი წამის შემდეგ იწურება, ასე რომ შეგიძლია შეამოწმო, რომ ბაზა არსებობს და ცარიელია, პაროლის ფორმაში აკრეფის გარეშე. Joomla-ს თავად აყენებ - one-click ინსტალერი არ არის, რაც ასევე ნიშნავს, რომ სხვა არავინ წყვეტს, როდის შეიცვლება შენი ვერსია.
სანამ რამეს ჩამოტვირთავ, შეამოწმე PHP ვერსია, რომელზეც შენი გეგმა რეალურად მუშაობს: ფაილი <?php phpinfo(); შიგთავსით, ბრაუზერში ერთხელ ჩატვირთული და შემდეგ წაშლილი, აჩვენებს ვერსიას, ჩატვირთულ გაფართოებებს და მოქმედ memory_limit-ს. Joomla 6 PHP 8.2-ზე დაყენებაზე უარს იტყვის.
Joomla-ს დაყენება#
- ჩამოტვირთე სრული პაკეტი
downloads.joomla.org-დან, არასოდეს მესამე მხარის mirror-იდან. გაყალბებული CMS არქივი ყველაზე პირდაპირი გზაა, რომ საიტმა არსებობა უკვე გატეხილმა დაიწყოს. - ატვირთე zip ვებ root-ში და იქვე გახსენი. File manager, რომელიც სერვერის მხარეს ხსნის, რამდენიმე ათას პატარა ფაილს ერთ ატვირთვად აქცევს. SFTP-ით ატვირთე zip და გახსენი file manager-ში, ნაცვლად გახსნილი ხის ატვირთვისა. SFTP და file manager ორივეს ფარავს.
- გახსენი საიტი. ინსტალერი ავტომატურად იწყება. აირჩიე ენა და დააყენე საიტის სახელი.
- შექმენი Super User. არა
admin; გრძელი გენერირებული პაროლი; ნამდვილი ელფოსტის მისამართი, რომელსაც კითხულობ. - ბაზის პარამეტრები. ტიპი
MySQLiანMySQL (PDO)MySQL-ისა და MariaDB-ისთვის,PostgreSQL (PDO)PostgreSQL-ისთვის. Host, მომხმარებელი, პაროლი და ბაზის სახელი შენი პანელიდან. დატოვე შემთხვევითი ცხრილის პრეფიქსი, რომელსაც ინსტალერი გთავაზობს. - დაამტკიცე, რომ საიტი შენია, თუ მოგთხოვენ. როცა ბაზის host რაიმე სხვაა, გარდა
localhost-ისა, Joomlainstallationსაქაღალდეში ქმნის შემთხვევითი სახელის ფაილს, რომელიც_Joomla-თი იწყება, და გთხოვს წაშალო, სანამ გააგრძელებს. ეს ხელს უშლის ვინმეს, ვინც ნახევრად დასრულებულ ინსტალაციას იპოვის, რომ ის საკუთარ ბაზაზე მიმართოს. წაშალე file manager-ით და კვლავ დააჭირე Install-ს. - დაასრულე. ბოლო ეკრანი გთავაზობს საიტის ან ადმინისტრაციული ნაწილის გახსნას. დარწმუნდი, რომ ამის შემდეგ
installationსაქაღალდე აღარ არსებობს; თუ ჯერ კიდევ იქაა, წაშალე.
ადმინისტრაციული ნაწილი /administrator-ზე ცხოვრობს. შედი, გადადი System-ზე, შემდეგ Global Configuration, და გაიარე ქვემოთ მოცემული პარამეტრები, სანამ რაიმე კონტენტს დაამატებ.
configuration.php და Global Configuration#
ყველაფერი, რასაც Global Configuration-ში აყენებ, ინახება configuration.php-ში საიტის root-ში, როგორც PHP კლასის თვისებები. ფაილის პირდაპირ რედაქტირება შეგიძლია - სასარგებლოა, როცა არასწორმა პარამეტრმა ადმინისტრაციული ნაწილიდან გაგაძევა - მაგრამ ჯერ ჩასაწერი გახადე, ფრთხილად შეასწორე და ისევ მხოლოდ წასაკითხი გახადე.
public $sitename = 'Example';public $offline = false;public $dbtype = 'mysqli';public $host = 'db.example.internal:3306';public $user = 'joomla_site';public $password = 'from-the-panel';public $db = 'joomla';public $dbprefix = 'x7k2q_';public $secret = 'generated-at-install';public $live_site = '';public $force_ssl = 2;public $sef = true;public $sef_rewrite = true;public $tmp_path = '/path/to/site/tmp';public $log_path = '/path/to/site/administrator/logs';public $error_reporting = 'none';public $debug = false;public $caching = 0;public $cache_handler = 'file';public $lifetime = 30;public $session_handler = 'database';public $behind_loadbalancer = true;ის პარამეტრები, რომლებსაც მნიშვნელობა აქვს:
- `host` იღებს hostname-ს პორტით ორწერტილის შემდეგ, როცა ბაზა ნაგულისხმევ პორტზე არ არის. როგორც ყველა PHP CMS-ში,
localhostმხოლოდ მაშინაა სწორი, როცა ბაზა იმავე მანქანაზე მუშაობს. - `secret` დაყენებისას გენერირდება და hash-ებსა და token-ებში გამოიყენება. საიტებს შორის ნუ დააკოპირებ; საიტის გადატანისას კი შეინარჩუნე.
- `force_ssl`:
0არაფერი,1მხოლოდ ადმინისტრაციული ნაწილი,2მთელი საიტი. გამოიყენე2, როცა HTTPS მუშაობს, და არა მანამდე - მისი დაყენება საიტზე სერტიფიკატის გარეშე გაგაძევებს, და გამოსწორება ამ ფაილის რედაქტირებაა. - `tmp_path` და `log_path` აბსოლუტური გზებია. საიტის ახალ სერვერზე გადატანის შემდეგ ეს "cannot install extension" შეცდომების კლასიკური მიზეზია, რადგან ისინი ჯერ კიდევ ძველი სერვერის დირექტორიებზე მიუთითებენ. განაახლე ისინი ყოველი მიგრაციის შემდეგ.
- `error_reporting`:
noneანsimpleproduction-ში.maximumანdevelopmentმხოლოდ debug-ის დროს, რადგან ის ვიზიტორებს გზებსა და მოთხოვნებს უჩვენებს. - `lifetime` სესიის ხანგრძლივობაა წუთებში, ნაგულისხმევად 15. ადმინისტრატორები, რომლებიც მუდმივი გამოგდებით დაიღალნენ, ზრდიან; 30-დან 60-მდე გონივრულია.
- `behind_loadbalancer`, Server ჩანართზე სახელით Behind Load Balancer, Joomla-ს ეუბნება, ენდოს
X-Forwarded-For-სა დაX-Forwarded-Proto-ს. ჩართე, როცა reverse proxy საიტის წინ TLS-ს ასრულებს, თორემ Joomla ყოველ ვიზიტორს proxy-დ ხედავს და შეიძლება HTTPS საიტზეhttp://URL-ები ააგოს.
SEF URL-ები nginx-ზე#
საძიებო სისტემებისთვის მეგობრული URL-ები ორი ნაწილისგან შედგება. sef აქცევს index.php?option=com_content&view=article&id=12-ს index.php/my-article-ად. sef_rewrite შლის index.php/-ს - და ამისთვის ვებ სერვერმა უცნობი გზები index.php-ს უნდა გაუგზავნოს.
Apache-ზე Joomla წესებს htaccess.txt-ში აწვდის; გადაარქვი მას .htaccess. nginx-ზე .htaccess უგულებელყოფილია, და ეკვივალენტია:
location / { try_files $uri $uri/ /index.php?$args;}თუ ჩართავ Use URL Rewriting-ს და მთავარი გვერდის გარდა ყველა გვერდი 404-ს აბრუნებს, ეს წესი აკლია. მართულ ჰოსტინგზე nginx-ის კონფიგურაციის თავად რედაქტირება შეიძლება არ შეგეძლოს: შეამოწმე rewrite-ის ჩართვით და სტატიის გახსნით - თუ იტვირთება, წესი უკვე არსებობს. თუ არა, sef_rewrite გამორთული დატოვე (URL-ები index.php/ სეგმენტს ინარჩუნებენ, მაგრამ მუშაობენ) და ჰოსტს ჰკითხე. შემდეგი ნაბიჯი დომენი და სერტიფიკატია საიტის წინ; RE:NODE-ზე proxy სლოტი სერტიფიკატს ავტომატურად გასცემს და ანახლებს, როცა შენი A ჩანაწერი მასზე მიუთითებს, ხოლო შენი დომენი და მისი სერტიფიკატი DNS-ის მხარეს ფარავს.
გაფართოებები: უსაფრთხო დაყენება#
Joomla-ს გაფართოებების ტიპებია კომპონენტები, მოდულები, plugin-ები, შაბლონები და ენის პაკეტები, ყველა System-იდან ყენდება, შემდეგ Install, შემდეგ Extensions - პაკეტის ატვირთვით, საქაღალდიდან, URL-იდან ან Install from Web ჩანართიდან, რომელიც Joomla Extensions Directory-ს ათვალიერებს.
წესები, რომლებიც Joomla საიტს მართვადს ინახავს:
- დააყენე მხოლოდ დეველოპერისგან ან JED-იდან. კომერციული გაფართოებების "უფასო" ასლები ჩამოტვირთვის საიტებიდან Joomla საიტებში backdoor-ების ყველაზე გავრცელებული წყაროა.
- შეამოწმე ბოლო განახლების თარიღი და Joomla 6-თან თავსებადობა დაყენებამდე. გაფართოება, რომელიც ბოლოს სამი წლის წინ განახლდა, შენს შემდეგ ძირითად განახლებას დაბლოკავს.
- ნაკლები, უკეთესი გაფართოება. თითოეული კოდია, რომელიც ყოველ გვერდზე ეშვება, და განახლება, რომელიც უნდა გაუშვა.
- კომერციული გაფართოებები download key-ებს იყენებენ. შეიყვანე key System-ში, შემდეგ Update Sites, თორემ გაფართოება თავს ვერ განაახლებს.
- წაშალე და ნუ გამორთავ იმას, რასაც აღარ იყენებ. გამორთული კოდი ჯერ კიდევ დისკზეა და ისევ ექსპლუატირებადია, თუ მას აქვს ხარვეზი, რომელიც პირდაპირ მისაწვდომია.
Backup გაფართოება ისაა, რომელიც საიტების უმეტესობამ პირველივე დღეს უნდა დაამატოს. Akeeba Backup დიდი ხნის არჩევანია: ის ფაილებსა და ბაზას ერთად აარქივებს, და მისი თანმხლები Kickstart სკრიპტი არქივს ცარიელ სერვერზე აღადგენს. არქივები სერვერის გარეთ შეინახე - backup იმავე დისკზე, სადაც საიტია, მასთან ერთად ქრება. Backup-ები, რომლებიც მართლა აღდგება ხსნის, რატომ აქვს აღდგენის ტესტს უფრო მეტი მნიშვნელობა, ვიდრე თავად backup-ს.
Cache, სესიები და დაგეგმილი ამოცანები#
Joomla-ს cache-ის ორი ცალკე შრე აქვს, ორივე ნაგულისხმევად გამორთული:
- Conservative ან Progressive caching, Global Configuration-ში, შემდეგ System, მოდულებისა და კომპონენტების გამოტანას ინახავს cache-ში. Conservative უსაფრთხო არჩევანია; Progressive ვიზიტორზე ცალკე ინახავს და შეიძლება ბევრი დისკი დახარჯოს.
- System - Page Cache plugin სტუმრებისთვის მთელ გვერდებს ინახავს. დიდი მოგებაა ანონიმური ტრაფიკისთვის, მაგრამ გამორიცხე ფორმებიანი გვერდები ან ნებისმიერი პერსონალიზებული რამ, და მაღაზიებზე გამორთული დატოვე.
Cache Handler და Session Handler პარამეტრები მხოლოდ იმ backend-ებს ჩამოთვლის, რომლებსაც შენი PHP ინსტალაცია უჭერს მხარს. File და database ყოველთვის არის. Redis ჩნდება, როცა phpredis გაფართოება ჩატვირთულია, და Valkey-სთან უცვლელად მუშაობს, რადგან Valkey იმავე პროტოკოლზე ლაპარაკობს. სესიებისა და cache-ის Valkey სერვერზე გადატანა დატვირთულ საიტებზე ბაზას ჩაწერის დატვირთვას აშორებს; პატარა საიტებზე database handler კარგია. თუ Redis ვარიანტი სიაში არ ჩანს, გაფართოება დაყენებული არ არის, და ვერანაირი პარამეტრი ვერ დაამატებს მას.
Joomla-ს Task Scheduler, System-ში, შემდეგ Scheduled Tasks, უშვებს ისეთ job-ებს, როგორიცაა სესიების გასუფთავება, რიგში მდგარი წერილების გაგზავნა, განახლების შეტყობინებები და საიტის შემოწმებები. ის სამიდან ერთი გზით ეშვება: Lazy Scheduler, რომელიც დროულ ამოცანებს ჩვეულებრივი გვერდის ვიზიტების დროს უშვებს (ნაგულისხმევი, პატარა საიტებისთვის კარგი); web cron URL საიდუმლო key-ით, რომელსაც გარე scheduler ითხოვს; ან CLI php cli/joomla.php scheduler:run-ით, სადაც shell გაქვს. თუ არაფერი უშვებს მას, ამოცანები ჩუმად არასოდეს სრულდება. დაგეგმილი ამოცანები, რომელთა ქონაც ღირს უფრო ფართო სიაა.
განახლებები#
Joomla 5.4-მა და 6.0-მა core-ის ავტომატური განახლებები შემოიტანა. Joomla 6-ის ახალ ინსტალაციაზე ფუნქცია ნაგულისხმევად ჩართულია; Joomla 5-იდან განახლებულ საიტზე ის გამორთული იწყება და Joomla Update კომპონენტში უნდა ჩაირთოს. ის ბაგების შესწორებისა და უსაფრთხოების გამოშვებებს აყენებს (მაგალითად, 6.0.0-დან 6.0.1-მდე) და შედეგს Super User-ებს ელფოსტით უგზავნის. ის ეყრდნობა იმას, რომ Joomla-ს განახლების სერვისს შენს საიტამდე მიღწევა შეუძლია, ამიტომ ლოკალურ development ასლებზე არ მუშაობს.
ძირითადი და minor განახლებებისთვის, და ყოველი გაფართოების განახლებისთვის, რუტინა ასეთი უნდა იყოს:
- აიღე სრული backup და დარწმუნდი, რომ დასრულდა.
- წაიკითხე გამოშვების შენიშვნები, განსაკუთრებით გაფართოებებისთვის, რომლებიც ბაზის სტრუქტურას ცვლიან.
- ძირითადი ვერსიებისთვის გაუშვი Pre-Update Check; ყოველმა გაფართოებამ თავსებადობა უნდა აჩვენოს.
- ჯერ core განაახლე, შემდეგ გაფართოებები, System-ში, შემდეგ Update.
- გაასუფთავე cache და შეამოწმე წინა ნაწილი, შესვლა და ნებისმიერი ფორმა.
- შეხედე System-ს, შემდეგ Manage, შემდეგ Database. თუ ის სტრუქტურის პრობლემებს აჩვენებს, Fix ღილაკი შეწყვეტილი განახლების შემდეგ დარჩენილ სქემის განსხვავებებს ასწორებს.
პრობლემების მოგვარება#
"Error connecting to the database" დაყენებისას. არასწორი host ან მონაცემები. შეამოწმე ისინი phpMyAdmin-ში; თუ იქ მუშაობს, განსხვავება ჩვეულებრივ host ველია - localhost იქ, სადაც hostname იყო საჭირო, ან დაკარგული პორტი.
"JFolder::create: Could not create folder" ან გაფართოებების დაყენება ვერ ხერხდება. tmp_path მიუთითებს დირექტორიაზე, რომელიც არ არსებობს ან ჩასაწერი არ არის, ჩვეულებრივ მიგრაციის შემდეგ.
404 ყველა გვერდზე მთავარის გარდა. URL rewrite ჩართულია სერვერის წესის გარეშე.
გაძევება Force HTTPS-ის ჩართვის შემდეგ. configuration.php-ში force_ssl დააბრუნე 0-ზე, გაასწორე სერტიფიკატი, შემდეგ ისევ ჩართე.
"The most recent request was denied because it had an invalid security token". ვადაგასული სესია; განაახლე გვერდი და თავიდან შედი. თუ ეს მუდმივად ხდება, გაზარდე lifetime ან შეამოწმე, მუშაობს თუ არა session handler-ის საცავი.
თეთრი გვერდი. PHP-ის fatal შეცდომა გამორთული ჩვენებით. მოკლე დროით დააყენე error_reporting maximum-ზე, გაიმეორე, წაიკითხე შეტყობინება, დააბრუნე უკან.
FAQ#
Joomla ჯერ კიდევ მხარდაჭერილია?
დიახ. Joomla 6.0 გამოვიდა 2025 წლის ოქტომბერში core-ის ავტომატური განახლებებით, და პროექტი რეგულარულად აქვეყნებს minor და უსაფრთხოების გამოშვებებს. მას WordPress-ზე პატარა გაფართოებების ეკოსისტემა აქვს და ძლიერი ჩაშენებული ფუნქციონალი - მრავალენოვანი კონტენტი, წვდომის დონეები და custom ველები core-ში.
რამდენი ჰოსტინგი სჭირდება Joomla-ს?
პატარა საიტი 1 GB მეხსიერებასა და CPU-ს ნახევარ ბირთვზე მუშაობს. საიტს page builder-ით, მაღაზიის გაფართოებით ან ბევრი შესული წევრით 2 GB სჭირდება. PHP-ის memory_limit 256 MB უნდა იყოს, როგორც Joomla-ს სახელმძღვანელო გირჩევს.
შემიძლია Joomla საიტის ახალ ჰოსტინგზე გადატანა?
დიახ. დააკოპირე ფაილები და გააკეთე ბაზის export, შემოიტანე ის ახალ სერვერზე, შემდეგ configuration.php-ში განაახლე ბაზის მონაცემები, tmp_path და log_path. Backup გაფართოება აღდგენის სკრიპტით იგივეს ნაკლები ნაბიჯით აკეთებს. phpMyAdmin-ის import და export გზამკვლევი ბაზის ნახევარს ფარავს.
უნდა გამოვიყენო Redis cache handler Valkey-სთან?
დატვირთულ საიტზე დიახ - ის cache-ისა და სესიების ჩაწერებს ბაზას აშორებს. მას phpredis გაფართოება სჭირდება. პატარა საიტზე ფაილური cache და ბაზაზე დაფუძნებული სესიები უფრო მარტივი და სავსებით საკმარისია.
რომელია უკეთესი, Joomla თუ WordPress?
საიტზეა დამოკიდებული. Joomla-ს core მრავალენოვან საიტებსა და წვდომის დეტალურ დონეებს გაფართოებების გარეშე აკეთებს; WordPress-ს თემებისა და plugin-ების ბევრად უფრო დიდი ეკოსისტემა აქვს. WordPress-ის, Drupal-ისა და Joomla-ს შედარება გადის, რომელი რას შეეფერება.




კომენტარები
სრულიად ანონიმურად: ანგარიშის, ელფოსტის და cookie-ის გარეშე. ინახება მხოლოდ სახელი, ტექსტი და დრო - სხვა არაფერი. ბმულების რაოდენობა ლიმიტირებულია.