web-gelistirme-sc.com

El ile Joomla 3.5+ en son sürüme güncelleyin

Joomla kurulumum var, sürüm 3.5+, ama ne denediğim önemli değil, güncelleme yapamıyorum. Joomla Update bileşenini kullanmaya çalıştım, paketi yüklemeye çalıştım, işe yaramıyor.

Daha sonra paketi kök dizine çıkarmaya çalıştım ve sitemi kırdı.

Manuel olarak nasıl güncelleyebilirim?

3

Michael Babker, dosya sistemi güncellemelerinden sonra normal olarak gerçekleştirilen adımları çalıştıran https://Gist.github.com/mbabker/d7bfb4e1e2fbc6b7815a733607f89281 adresinde Manuel Sonrası Komut Dosyası sağladı.

Bu komut dosyası, güncelleştirme paketini siteniz üzerinden el ile çıkardıktan sonra çalıştırılmak üzere tasarlanmıştır.

Her zaman olduğu gibi, bunun gibi büyük bir güncellemeyi denemeden önce web sitenizin bir yedeğini çalıştırmalısınız.

Kodun geçerli kopyası aşağıdadır, ancak bağlantılı sayfa gelecekte güncellenebileceğinden, en son sürümü kullandığınızdan emin olun.


15 Eylül 2019 itibarıyla postupdate.php dosyası:

<?php
/**
 * @package    Joomla.Administrator
 *
 * @copyright  Copyright (C) 2016 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
/**
 * Define the application's minimum supported PHP version as a constant so it can be referenced within the application.
 */
define('JOOMLA_MINIMUM_PHP', '5.3.10');
if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<'))
{
    die('Your Host needs to use PHP ' . JOOMLA_MINIMUM_PHP . ' or higher to run this version of Joomla!');
}
/**
 * Constant that is checked in included files to prevent direct access.
 * define() is used in the installation folder rather than "const" to not error for PHP 5.2 and lower
 */
define('_JEXEC', 1);
// Load the administrator application's path constants
if (file_exists(__DIR__ . '/defines.php'))
{
    include_once __DIR__ . '/defines.php';
}
if (!defined('_JDEFINES'))
{
    define('JPATH_BASE', __DIR__);
    require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';
require_once JPATH_BASE . '/includes/helper.php';
// Account for moved JToolbarHelper class in 3.9
if (file_exists(JPATH_BASE . '/includes/toolbar.php'))
{
    require_once JPATH_BASE . '/includes/toolbar.php';
}
else
{
    require_once JPATH_BASE . '/includes/subtoolbar.php';
}
// Boot JApplicationAdministrator so the application references in the factory resolve correctly.
JFactory::getApplication('administrator');
// Set the component path (un)constants
define('JPATH_COMPONENT', JPATH_ADMINISTRATOR . '/components/com_joomlaupdate');
define('JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR . '/components/com_joomlaupdate');
define('JPATH_COMPONENT_SITE', JPATH_SITE . '/components/com_joomlaupdate');
// Load the update component's model to run the cleanup methods
JModelLegacy::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/models', 'JoomlaupdateModel');
/** @var JoomlaupdateModelDefault $model */
$model = JModelLegacy::getInstance('default', 'JoomlaupdateModel');
// Make sure we got the model
if (!($model instanceof JoomlaupdateModelDefault))
{
    echo 'Could not load update component model, please check the logs for additional details.' . PHP_EOL;
    exit(1);
}
// Load up the logger
JLog::addLogger(
    array(
        'format'    => '{DATE}\t{TIME}\t{LEVEL}\t{CODE}\t{MESSAGE}',
        'text_file' => 'joomla_update.php',
    ),
    JLog::INFO,
    array('Update', 'databasequery', 'jerror')
);
JLog::add('Starting manual update using postupdate', JLog::INFO, 'Update');
// Load the Joomla library and update component language files
JFactory::getLanguage()->load('lib_joomla');
JFactory::getLanguage()->load('com_joomlaupdate');
JLog::add(JText::_('COM_JOOMLAUPDATE_UPDATE_LOG_FINALISE'), JLog::INFO, 'Update');
// Finalize the update
if ($model->finaliseUpgrade() === false)
{
    echo 'Failed to finalize the upgrade, please check the logs for additional details.' . PHP_EOL;
    exit(1);
}
JLog::add(JText::_('COM_JOOMLAUPDATE_UPDATE_LOG_CLEANUP'), JLog::INFO, 'Update');
// Cleanup after the update
$model->cleanUp();
JLog::add(JText::sprintf('COM_JOOMLAUPDATE_UPDATE_LOG_COMPLETE', JVERSION), JLog::INFO, 'Update');
JLog::add('Finished manual update using postupdate', JLog::INFO, 'Update');
echo 'Update to ' . JVERSION . ' completed successfully.' . PHP_EOL;
3
Neil Robertson

Etraftaki birçok yayın Joomla 3.5+'yi manuel olarak güncellememeniz gerektiğini söylüyor. Ve bunun iyi bir tavsiye olması için çeşitli nedenler var.

Ancak, Joomla 3.5+'yi en son sürüme (şu anda 3.8.8) manuel olarak güncelleyebilirsiniz.

1. Önce yedekleme

İlk olarak, mevcut sitenizin iyi ve çalışan bir yedeğine sahip olmanız gerekir. İşler ters gidebilir.

2. Yöneticiye giriş

Hala çalışırken sitenin yöneticisinde etkin bir oturum olması önemlidir, aksi halde 4. adım çalışmayabilir.

3. Dosyaları ayıklayın

En yeni Joomla yükseltme paketini Joomla Güncelleme bileşeninizden indirebilirsiniz (Components > Joomla Update) veya downloads.joomla.org .

libraries dizininizi libraries-old.

İndirdiğiniz paketi sitenizin kök dizinine yerleştirin. Ayıkla.

Kullanıcı arabiriminizi açar ve bir hata ya da boş bir sayfa alırsanız, libraries dizinini tekrar libraries-broken ve libraries dizinini doğrudan en son sürümden tam paketten kopyalayın.

4. Veritabanı Onar

Şimdiye kadar başarılı olduysanız, yöneticiniz bozulmuş olmalıdır. Değilse, yaşasın! Extensions > Manage > Database ve Fix düğmesini tıklayın.

Yöneticiniz is bozuksa, sitenizin yönetici URL'sinden sonra aşağıdaki bağlantıyı kopyalayın:

[your site]/administrator/index.php?option=com_installer&view=database&task=database.fix

Bu bağlantıyı tıklatırsanız, veritabanı otomatik olarak düzeltilmelidir ve yöneticiniz tekrar kullanılabilir olacaktır. Fix düğmesine bir kez daha tıklayın.

Siteniz artık en son Joomla sürümüne sahip olmalıdır. Hala sorun yaşıyorsanız, üçüncü taraf uzantıları veya benzerlerini güncellemeniz gerekebilir.

3