Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Herkese selamlar, ne zaman bir laravel projesini canlıya yüklesem aynı hata ile karşılaşıyorum.
Öncelikle composer install yazıyorum, bana 7.3 kullandığımı söylüyor

Composer detected issues in your platform: Your Composer dependencies requi
re a PHP version ">= 8.2.0". You are running 7.3.33.

php -v yazarak php sürümümü kontrol ediyorum

 with Zend OPcache v8.2.15, Copyright (c), by Zend Technologies

internette biraz araştırma yapıp composeri 8.2 ile kullanmak için bir yöntem buldum. (bu arada which php yazdığımdaki php yolu alttada göreceğiniz üzere bu yol değil bu dikkatimi çekti "/usr/local/bin/php")

/usr/local/bin/ea-php82 /opt/cpanel/composer/bin/composer install

bu seferde bana şu uyarıyı veriyor,

Do not run Composer as root/super user! See https://getcomposer.org/root for details

Ne yapacağımı şaşırdım, bunun kolay, güzel ve doğru bir yolu yok mu acaba 🙂

    Composer Hatası: "Your Composer dependencies require a PHP version ">= 8.2.0". You are running 7.3.33."
    Hata: Bu hata, Composer'ın çalıştırdığınız PHP sürümünün, kurmak istediğiniz paketlerin gerektirdiği minimum sürümden daha eski olduğunu gösterir.

    Sebep: Bu hatanın birkaç olası sebebi olabilir:

    PHP sürümünüz güncel değil: Kullandığınız PHP sürümü 8.2.0'dan eski.
    Yanlış PHP sürümünü kullanıyorsunuz: Birden fazla PHP sürümü yüklüyse, Composer yanlış olanı kullanıyor olabilir.
    Composer yapılandırmanız hatalı: Composer'ın PHP sürümü ile ilgili ayarları hatalı olabilir.
    Çözüm: Hatayı çözmek için aşağıdaki adımları izleyebilirsiniz:

    1. PHP Sürümünüzü Kontrol Edin:

    php -v komutunu çalıştırarak kullandığınız PHP sürümünü kontrol edin.
    Sürüm 8.2.0'dan eski ise, PHP'yi güncellemeniz gerekir.

    1. Doğru PHP Sürümünü Kullanın:

    Birden fazla PHP sürümü yüklüyse, Composer'ın doğru olanı kullanmasını sağlayın.
    Bunu yapmak için composer.json dosyasına php anahtarını ekleyebilirsiniz.
    Örnek: "php": ">= 8.2.0"
    3. Composer Yapılandırmanızı Kontrol Edin:

    composer.json dosyasındaki config bölümünde platform ayarını kontrol edin.
    php anahtarı altında version değerinin >= 8.2.0 olduğundan emin olun.

    1. Sorun Devam Ederse:

    Yukarıdaki adımları uyguladıktan sonra hala hata alıyorsanız, Composer'ın hata ayıklama modunu kullanarak daha fazla bilgi edinebilirsiniz.
    Bunu yapmak için composer install --verbose veya composer update --verbose komutunu çalıştırın.
    Ek Bilgiler:

    Composer'ın PHP sürümü ile ilgili daha fazla bilgi için <geçersiz URL kaldırıldı> bağlantısını inceleyebilirsiniz.
    PHP'yi güncellemek için https://www.php.net/downloads.php bağlantısına gidebilirsiniz.
    Hata Çözüm Özeti:

    PHP sürümünüzü 8.2.0 veya üstüne güncelleyin.
    Doğru PHP sürümünün kullanıldığından emin olun.
    Composer yapılandırmanızı kontrol edin ve php anahtarının version değerinin >= 8.2.0 olduğundan emin olun.
    Sorun devam ederse, Composer'ın hata ayıklama modunu kullanın.

    mgsmus forumda aratırken sizin bir yazınıza denk geldikten sonra öyle yaptım, o kısmı çözdüm fakat bu seferde ana domaine kurulum yapamıyorum abi ya 403 forbidden veriyor (cpanel whm), subdomainlere kuruyordum halbuki araştırdım ama bişeyde bulamadım

    18 gün sonra

    Composer hatasını çözdüm fakat 403 forbidden hatası alıp duruyorum. (dedicated)
    Yaptığım şeyleri listeliyorum bilgisi olan varsa yardımcı olursa çok sevinirim. (subdomainlere kurarken sorun yaşamıyordum)

    1) Dosyaları ana dizine atıyorum, public_html gerisine base diye klasör açıp tüm dosyaları onun içerisine atıyorum
    2) public içerisindekileri ise public_html içerisine atıyorum - sembolik bağlantı falanda oluşturdum
    3) server php sürümü 7.3 olduğu için yeni bir account oluşturdum ssh ile bağlantı yaptım ve şu şekilde kullanıyorum vendor dosyalarıda geliyor silip test etmiştim

    /usr/local/bin/ea-php82 /opt/cpanel/composer/bin/composer update

    4) Artisan komutlarımın hepsi çalışıyor migrate vs. fakat forbidden hatasını geçemiyorum, hiç biyerde hata log bişeyde görünmüyor sadece 403 forbidden yazıyor. php sürümünü 8.2den 7.3e çekersem composer 8.2 required hatası geliyor ekrana. İzinlerle ilgili çok şey yaptım sorunun izinlerde olduğunu düşünmüyorum

    Bu durumda public içinden public_html içine taşıdığınız index.php dosyası içindeki require ile çağırılan dosyalarında yolunu ayarlamanız gerekiyor. Örnek vermek gerekirse;

    // Line 19
    // Eski yol
    if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) {
        require $maintenance;
    }
    
    // Yeni yol
    if (file_exists($maintenance = __DIR__.'/../../base/storage/framework/maintenance.php')) {
        require $maintenance;
    }
    
    // Line 34
    // Eski yol
    require __DIR__.'/../vendor/autoload.php';
    
    // Yeni yol
    require __DIR__.'/../../base/vendor/autoload.php';
    
    // Line 47
    // Eski yol
    $app = require_once __DIR__.'/../bootstrap/app.php';
    
    // Yeni yol
    $app = require_once __DIR__.'/../../base/bootstrap/app.php';

    Ben dosya yollarını örnek olarak düzenledim, siz kendinize uygun olarak düzenlemelisiniz. Bunun haricinde izninizle bir öneride bulunmak istiyorum. Eğer hosting sağlayıcınız siteniz için çalışma klasörü yani public_html klasörünün yolunu değiştirmenize izin veriyorsa bu şekilde yapmak yerine base/public klasörünü çalışacak klasör olarak güncellemeniz daha doğru olacaktır.

    Bunun haricinde daha önce denemedim fakat base/public/index.php dosyasını /public_html içine sembolik bağlantı olarak eklemekde uygun bir yayınlama yöntemi olabilir.

      kursatcanciger Hocam ben bu dosya yollarınıda ayarladım ama nafile hala 403 forbidden veriyor onu eklemeyi unutmuşum listeye, yani dedicated server bize ait direkt olarak public_html yerine publicte kullanabilirim sorun değil ama pek hakim değilim sunucu konusuna bir tane kurduk yıllardır öyle gidiyor 🙂 yani bir subdomain açıp aynı işlemleri yapınca kurulan şey ana domaine kurmaya çalışınca neden böyle yapar bilmiyorum saatlerce uğraşıyorum yine olmuyor

        beyondelayer

        • Kendi kullanıcınız ile giriş yapın.
        • public_html ile aynı seviyede bir klasör oluşturun, mesela project olsun.
        • Laravel'i içine klonlayın. Laravel'in public klasörünün yolu şöyle olacak: /home/username/project/public. Bu /home/username kısmı değişebilir, araya domain adı girebilir vs tam hatırlamıyorum.
        • Daha sonra WHM ya da cPanel içinde hesap ayarlarından document root değerini /home/username/project/public yapın ve web sunucusunu (Apache, Nginx vs hangisi ise) resetleyin.

        Şurada anlatmış bir şeyler:
        https://medium.com/@kkhicher1/change-primary-domain-document-root-in-cpanel-188c0242d09

          beyondelayer Dedicated yazısına dikkat etmemişim çok pardon. Bu durumda benim ve @mgsmus hocamın önerdiği gibi document root değerini güncellemek işinizi çözecektir. Ben paylaşımlı bir hosting hesabında laravel projelerimi bu yöntemle deploy ediyorum.

            mgsmus kursatcanciger

            Çok teşekkür ederim tüm sorun php 8.2 olmasından kaynaklıymış yoksa doğru yapıyormuşum, kazara 8.1 seçince hata geldi düzenleye düzenleye gittim sonrada mustafa abinin attığını medium.com urlsinde yazanları yaptım document root public oldu index.php içini falan değiştirmeye hiç gerek yokmuş document root değiştirince, otomatik herşey yerine oturdu çok teşekkür ediyorum sağolun 🙏🏻