Skip to main content
TrustServers Knowledge Base

Tip: Start typing to get instant search results.

Περιεχόμενα Άρθρου

Πώς να σερβίρετε μία εφαρμογή Laravel στο DirectAdmin

Το Laravel είναι ένα από τα πιο δημοφιλή και ισχυρά frameworks της PHP, γνωστό για την κομψή σύνταξή του και τις πλούσιες δυνατότητές του. Ωστόσο, όταν θέλουμε να φιλοξενήσουμε μία Laravel εφαρμογή σε περιβάλλον φιλοξενίας με DirectAdmin, υπάρχει μία σημαντική ιδιαιτερότητα που πρέπει να λάβουμε υπόψη.

Σε αντίθεση με τα περισσότερα δημοφιλή CMS (όπως το WordPress), σε μία web εφαρμογή που αναπτύσσεται σε Laravel framework δεν σερβίρεται ο root φάκελός της εφαρμογής, αλλά ο υποφάκελος public/ (ο οποίος βρίσκεται κάτω από τον root φάκελο). Σε ένα DirectAdmin περιβάλλον, ο φάκελος που σερβίρεται είναι ο public_html/, δηλαδή ο root φάκελος της εφαρμογής. Αυτή η διαφορά δημιουργεί ένα πρόβλημα που χρειάζεται την κατάλληλη ρύθμιση για να λυθεί.

Η λύση είναι να μεταφέρουμε την εφαρμογή σε έναν νέο φάκελο και να μετατρέψουμε το public_html σε symbolic link που να δείχνει απευθείας στον φάκελο public της εφαρμογής.
Με αυτόν τον τρόπο, το DirectAdmin εξυπηρετεί δημόσια μόνο τα αρχεία του public/ φακέλου, ενώ ο υπόλοιπος κώδικας της εφαρμογής παραμένει απρόσιτος από το διαδίκτυο.

💡 Laravel Deployer Tool: Αν χρησιμοποιείτε το Laravel Deployer Tool για την ανάπτυξη της εφαρμογής σας, προσέξτε παρακάτω τις σημειώσεις με αυτό το εικονίδιο σε κάθε βήμα, καθώς ορισμένες εντολές διαφέρουν.

Μετατροπή του public_html σε symbolic link

ΠΡΟΣΟΧΗ: Πριν εκτελέσετε τις παρακάτω εντολές, βεβαιωθείτε ότι έχετε λάβει backup του λογαριασμού σας. Η μετονομασία του public_html και η αφαίρεση αρχείων είναι μη αναστρέψιμες ενέργειες.

Αρχικά, συνδεόμαστε στον server μέσω SSH και μεταβαίνουμε στον φάκελο του domain μας.

cd /home/user/domains/mydomain.com

Θεωρούμε ότι αρχικά η εφαρμογή σας Laravel βρίσκεται στο φάκελο public_html. Στη  συνέχεια εκτελούμε τις παρακάτω εντολές:

mv public_html laravel
ln -s laravel/public public_html
cd public_html
rm storage

Με τις παραπάνω εντολές:

  • Μετονομάζουμε τον υπάρχοντα φάκελο public_html που έχει το Laravel Project σας σε laravel.
  • Δημιουργούμε ένα symbolic link με όνομα public_html που δείχνει στον υποφάκελο public της εφαρμογής.
  • Αφαιρούμε το υπάρχον symlink storage της εφαρμογής, ώστε να το αναδημιουργήσουμε στο επόμενο βήμα.

💡 Deployer: Αν χρησιμοποιείτε Deployer, το symbolic link θα πρέπει να δείχνει στο laravel/current/public αντί για laravel/public, καθώς το Deployer διαχειρίζεται τις εκδόσεις μέσω του φακέλου current. Η εντολή δημιουργίας του symbolic link δηλαδή γίνεται: ln -s laravel/current/public public_html.

Ρύθμιση της εφαρμογής Laravel

Μεταβαίνουμε στον φάκελο της εφαρμογής:

cd /home/user/domains/mydomain.com/laravel/

Και εκτελούμε τις παρακάτω εντολές:

php artisan cache:clear
php artisan config:cache
php artisan storage:unlink
php artisan storage:link

Με τις παραπάνω εντολές:

  • Εκκαθαρίζουμε την cache της εφαρμογής και στη συνέχεια την αναδημιουργούμε, ώστε να φορτωθούν σωστά οι ρυθμίσεις του νέου περιβάλλοντος.
  • Αφαιρούμε το παλιό symlink του storage (αν υπάρχει) και το αναδημιουργούμε, ώστε τα αρχεία της εφαρμογής να αποθηκεύονται στον σωστό φάκελο.

💡 Deployer: Αν χρησιμοποιείτε Deployer, μεταβείτε στον φάκελο laravel/current αντί για laravel πριν εκτελέσετε τις παραπάνω εντολές. Τα επόμενα deployments θα ενημερώνουν αυτόματα το symlink current, χωρίς να χρειάζεται να επαναλάβετε αυτά τα βήματα.

Εφόσον ολοκληρωθούν τα παραπάνω βήματα, η Laravel εφαρμογή σας θα σερβίρεται από τον αναμενόμενο public φάκελο. Το τυπικό public_htmlτου DirectAdmin θα είναι πλέον symbolic link προς το public της εφαρμογής σας.

Αν χρησιμοποιείτε Managed Dedicated Hosting (Managed Bare-metal ή Managed Cloud) τα παραπάνω βήματα δεν θα σας απασχολήσουν. Αναλαμβάνουμε εμείς την πλήρη ρύθμιση, διαμόρφωση και βελτιστοποίηση του managed Laravel hosting περιβάλλοντός σας, ώστε να είναι έτοιμο για την Laravel εφαρμογή σας.

Ήταν χρήσιμο το άρθρο?
Παρακαλούμε μοιραστείτε τη γνώμη σας
Πώς μπορεί να βελτιωθεί το άρθρο;
Επισκόπηση απορρήτου

Αυτός ο ιστότοπος χρησιμοποιεί cookies για να σας παρέχουμε την καλύτερη δυνατή εμπειρία χρήστη. Οι πληροφορίες των cookies αποθηκεύονται στο πρόγραμμα περιήγησής σας και εκτελούν λειτουργίες όπως η αναγνώρισή σας όταν επιστρέφετε στον ιστότοπό μας και βοηθώντας την ομάδα μας να καταλάβει ποια τμήματα του ιστότοπου μας θεωρείτε πιο ενδιαφέροντα και χρήσιμα.