blog cover

Plesk Panel Üzerinde Nextjs Uygulaması Çalıştırmak

15 Eylül 2022
PleskNextjs

Bu makalede Plesk Panel üzerinde bir Nextj uygulamasını nasıl çalıştırılacağını anlatacağım. Aslında nextjs uygulamalarını çalıştırmak için optimize edilmiş hosting çözümleri mevcut vercel.com gibi. Ancak bazı durumlarda farklı hosting kullanmak durumunda kalabilirsiniz, benim gibi. Ben de kendi nextjs uygulama yükleme ve çalıştırma sürecimi ihtiyaç duyanlar için paylaşmak istedim.

Öncelikle bu anlatacaklarımı Plesk ver. 18.0.46 üzerinde gerçekleştirildi. Daha eski versiyonlar için farklı işlemler yapılması gerekebilir.

Yapılması gereken işlemler sırasıyla:


  • Nodejs modülünün aktif edilmesi.
  • Nodejs ayarları
  • Uygulamanın yüklenmesi
  • Uygulamanın build edilmesi
  • Uygulamanın çalıştırılması

Nodejs Modülünün Aktif Edilmesi


 Nodejs modülünün aktif edilmesi


Üstteki ekran görüntüsündeki işaretlenmiş olan Node.js butonuna tıklayarak nodejs menüsüne ulaşıp bende Disable Node.js olarak görülen (Alttaki ekran görüntüsü), aktif değilse sizde Enable Node.js olarak görünecektir, butonuna tıklayarak aktif edebilirsiniz.

Ayrıca alttaki ekran görüntüsünde görülen Node.js Versiyon yazısının karşısındaki versyion numarasına tıklayarak node versiyonunu değiştirebilirsiniz.


Nodejs Ayarları


Nodejs Ayarları


Burada dikkat edilmesi gereken iki konu var. Birincisi "Application Root"un belirlenmesi. Default / şeklinde ayarlı. Bunu üzerine tıklayarak /httpdocs (farklı bir klasör kullanıyorsanız o klasörü seçin.) olarak değiştirmeniz gerekiyor. İkinci yapmanız gereken ayar ise "Application Startup File"ı belirlemek. Default olarak /app.js şeklinde geliyor. Ancak bildiğiniz gibi bir nextjs uygulamasında app.js dosyası bulunmamakta. Bunun için bu dosyayı kendimiz oluşturacağız. Ben bu dosyaya server.js ismini verdim. Bu dosyanın içeriğini yazının ilerleyen aşamalarında paylaşacağım.


Uygulamanın Yüklenmesi


Uygulamanızı doğrudan ftp ile yükleyebilirsiniz. Ancak ben next.config.js dosyasını yüklerken bir sorunla karşılaştım ve ftp üzerinden yükleyemedim. Çözüm olarak ta plesk dosya yöneticisini kullanarak aynı isimde bir dosya oluşturup daha sonra ftp ile güncelledim.

Konuyla bağlandılı olarak bir güvenlik sorununa değinmek istiyorum. Geliştirici ortamında dosya sistemine doğrudan erişim olmasa da plesk üzerinde maalesef erişilebiliyor (sadece root dosyalarına). Yani http ile next.config.js dosyasının içeriğini görebiliyorsunuz. Bu nedenle bu dosyadaki hassas bilgiler varsa bunları güvenli hale getirmenizi öneririrm.

Son olarak plesk panelin git desteği var. Bu nedenle doğrudan reponuzu bağlayarak yüklemek ilerdeki güncellemeleri de düşünürsek daha pratik olabilir. İlerleyen zamanlarda bunun nasıl yapılacağı ile ilgili de bir makale yazmayı planlıyorum.


Uygulamanın Build Edilmesi


Nodejs modülünün build edilmesi


Build yapmadan önce bir üstteki ekran görüntüsünde görebileceğiniz NPM Install butonunu kullanarak "dependency"lerinizi yüklemeniz gerekiyor.

Daha sonra üstteki ekran görüntüsünde gördüğünüz gibi build yazıp Run butonuna tıklamanız yeterli. Bunun dışında geliştirici ortamında npm run ile verdiğiniz komutları da npm run ön ekini kullanmadan verebilirsiniz.


Uygulamanın Çalıştırılması


Aşağıdaki kodu kopyalayarak daha önce oluşturduğunuz server.js (ya da hangi ismi verdiyseniz) dosyasına yapıştırın. Artık tarayıcınza domininizi yazarak uygulamanızı başlatabilirsiniz. Gerekli olması halinde Restart App butonunu kullanarak uygulamanızı yeniden başlatın.


  const path = require('path');

const nextPath = path.join(__dirname, 'node_modules', '.bin', 'next');

process.argv.length = 1;
process.argv.push(nextPath, 'start');

require(nextPath);