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 εφαρμογή σας.