Tot el que necessites saber per implementar una aplicació web Laravel en una màquina Ubuntu 20.04 LTS
Laravel és un framework PHP de codi obert molt popular amb la sintaxi expressiva i elegant que s'utilitza per dissenyar aplicacions web modernes i boniques. Laravel pretén eliminar el dolor del desenvolupament web i convertir-lo en una experiència divertida i creativa, convertint els desenvolupadors web en artesans web.
En aquesta guia, aprendràs a instal·lar Laravel amb la pila LAMP en un servidor Ubuntu 20.04 per posar en funcionament la teva aplicació web.
Requisits previs
Per seguir aquesta guia, necessitareu un servidor Ubuntu 20.04 LTS i estar connectat com a sudo
usuari. Abans de començar, actualitzeu i actualitzeu els paquets d'Ubuntu 20.04 executant:
sudo apt update && sudo apt update
Instal·lació de LAMP Stack
LAMP és un acrònim de L sistema operatiu inux, A servidor web pache, M base de dades ySQL i P Llenguatge de programació HP. Ja estem a Ubuntu 20.04 que marca Linux a la pila LAMP. Per tant, instal·larem la resta de tres paquets per completar la pila LAMP per a la nostra aplicació Laravel.
No hi ha cap metapaquet disponible per instal·lar la pila LAMP als repositoris Ubuntu 20.04. Però podem utilitzar una petita característica nítida de apt
gestor de paquets anomenat tasques. Les tasques es denoten utilitzant el nom de la tasca disponible amb un cadet (^
) s'hi adjunta.
sudo apt install lamp-server^
Aquesta ordre cercarà als fitxers de la llista de paquets tot el camp "Tasca:" i instal·larà tots els paquets amb "lamp-server" al seu camp de tasca. Així, la pila LAMP que consta de paquets Apache, MySQL i PHP amb totes les seves dependències s'instal·larà al vostre servidor Ubuntu.
Configura el tallafoc
Un cop hàgiu instal·lat la pila LAMP, també heu de configurar el tallafocs sense complicacions (UFW) i canviar-ne les regles perquè pugueu accedir al servidor Apache des d'Internet.
UFW proporciona perfils d'aplicació senzills que es poden utilitzar per canviar les regles i canviar el trànsit als ports de xarxa. Executeu l'ordre següent per llistar totes les aplicacions que accedeixen als ports de xarxa:
llista d'aplicacions sudo ufw
Veureu una sortida com aquesta:
Aplicacions disponibles: Apache Apache Full Apache Secure OpenSSH
Els ports de xarxa que s'obren aquests perfils al vostre servidor Ubuntu 20.04 s'enumeren a continuació:
- Apache: aquest perfil només obre el port
80
(permet trànsit HTTP) - Apache Complet: aquest perfil obre tots dos
80
&443
ports (permet trànsit HTTP i HTTPS) - Apache Secure: aquest perfil només obre el port
443
(permet trànsit HTTPS) - OpenSSH: aquest perfil obre el port
22
que permet el protocol SSH
Heu d'habilitar el perfil "Apache Full" que permetrà el trànsit al servidor web Apache des d'Internet. A més, també haureu d'habilitar el perfil "OpenSSH" que permet el trànsit al port 22
(SSH) al vostre servidor Ubuntu 20.04. Si activeu UFW sense permetre el perfil "OpenSSH", no podreu connectar-vos al vostre servidor mitjançant SSH.
Per canviar la regla UFW i permetre el trànsit al port 80
i 22
, correr:
sudo ufw permet 'Apache Full' sudo ufw permet 'OpenSSH'
A continuació, activeu el tallafoc UFW mitjançant l'ordre següent:
sudo ufw enable
És possible que rebeu un missatge que digui "l'ordre pot interrompre les connexions ssh existents. Continueu amb les operacions (y|n)?”. Premeu Y
per continuar, ja que ja hem afegit una regla per permetre SSH a UFW.
Ara podeu accedir a la pàgina web predeterminada d'Apache mitjançant l'adreça IP del vostre servidor Ubuntu des d'Internet. Per fer-ho, obriu el vostre navegador i escriviu l'adreça IP del vostre servidor Ubuntu 20.04 a la barra d'URL i premeu Intro.
//El_teu_servidor_ubuntu_ip
Aquesta pàgina confirma que el servidor web Apache s'està executant correctament i que les regles UFW estan configurades correctament.
Configuració de la base de dades MySQL per a Laravel
Laravel 7 fa que la interacció amb bases de dades sigui extremadament senzilla a través dels diferents backends de bases de dades que admet, com ara MySQL versió 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ i SQL Server 2017+. Ja tenim l'últim paquet MySQL instal·lat amb el llum-sever^
tasca. Així, en aquesta secció, configurarem el servidor MySQL i després veurem com configurar un nou usuari i una base de dades MySQL per a l'aplicació Laravel.
Configura MySQL
La base de dades MySQL ve amb un script de seguretat preinstal·lat que es pot utilitzar per eliminar alguns paràmetres predeterminats insegurs. Es recomana que executeu aquest script abans de desplegar la vostra aplicació Laravel.
sudo mysql_secure_installation
L'ordre anterior executarà l'script de seguretat que us demanarà una sèrie de preguntes per configurar el servidor MySQL.
En primer lloc, se us demanarà si voleu configurar el VALIDA LA CONTRAsenya
connectar. Aquest connector comprova la vostra contrasenya i la classifica com a segura o insegura en funció del nivell de política de validació de contrasenya que trieu aviat. Així que premeu Y si voleu habilitar aquest connector.
Sortida: Assegurar el desplegament del servidor MySQL. Connexió a MySQL amb una contrasenya en blanc. EL COMPONENT DE VALIDACIÓ DE LA CONTRASENYA es pot utilitzar per provar contrasenyes i millorar la seguretat. Comprova la força de la contrasenya i permet als usuaris establir només aquelles contrasenyes prou segures. Voleu configurar el component VALIDAR LA CONTRAsenya? Premeu y|Y per a Sí, qualsevol altra tecla per a No: Y
A continuació, configureu el nivell de política de validació de contrasenyes entrant 0
, 1
o 2
depenent de la força que vulgueu crear la vostra contrasenya per a les vostres bases de dades.
Sortida: Hi ha tres nivells de política de validació de contrasenyes: BAIX Llargada >= 8 LONGITUD MITJANA >= 8, numèric, majúscules i majúscules i caràcters especials FORT Longitud >= 8, numèric, majúscules i minúscules mixtes, caràcters especials i fitxer de diccionari Si us plau, introduïu 0 = BAIX, 1 = MITJÀ i 2 = FORT: 2
A continuació, se us demanarà que introduïu una nova contrasenya per a l'usuari root de MySQL. Introduïu una contrasenya adequada per al vostre arrel MySQL. El connector VALIDA LA CONTRASENYA us donarà la força estimada de la vostra contrasenya segons el vostre nivell de validació. Premeu Y
per continuar amb la contrasenya que has proporcionat.
Sortida: Definiu aquí la contrasenya per a root. Nova contrasenya: Torneu a introduir la nova contrasenya: Força estimada de la contrasenya: 100 Voleu continuar amb la contrasenya proporcionada? (Premeu y|Y per a Sí, qualsevol altra tecla per a No): Y
Premeu Y
per a la resta de les indicacions, eliminaran alguns usuaris anònims i les bases de dades de prova, desactivaran l'inici de sessió arrel remot i tornaran a carregar la nova configuració del servidor MySQL. Quan hàgiu acabat, proveu la vostra base de dades executant:
sudo mysql
L'ordre anterior obrirà la consola MySQL, connectant-se a la base de dades MySQL com a arrel usuari. Veureu una sortida com aquesta:
Sortida: Benvingut al monitor MySQL. Les ordres acaben amb ; o \g. El vostre identificador de connexió MySQL és 10 Versió del servidor: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2020, Oracle i/o els seus afiliats. Tots els drets reservats. Oracle és una marca registrada d'Oracle Corporation i/o les seves filials. Altres noms poden ser marques comercials dels seus respectius propietaris. Escriviu "ajuda;" o '\h' per demanar ajuda. Escriviu "\c" per esborrar la instrucció d'entrada actual. mysql>
Potser us heu adonat que no heu d'introduir la contrasenya que heu establert per a l'usuari root de MySQL. Això és perquè el mètode d'autenticació predeterminat per a l'usuari root de MySQL administratiu és caching_sha2_autenticació
en lloc de la mysql_native_password
mètode que utilitza una contrasenya per iniciar sessió.
Així, per defecte, només podeu iniciar sessió com a usuari root de MySQL amb sudo
usuaris habilitats que actuen com a seguretat addicional per al servidor MySQL. Però la biblioteca MySQL PHP no és compatible caching_sha2_autenticació
mètode. Per tant, hem d'utilitzar mysql_native_password
mètode quan creem un usuari nou per a Laravel, ja que utilitza contrasenyes per connectar-se i interactuar amb la base de dades.
Creeu un nou usuari i base de dades MySQL
Sempre és una bona pràctica crear un usuari i una base de dades nous específicament per a la vostra aplicació en lloc d'utilitzar l'usuari root de MySQL i bases de dades de prova. Així doncs, configurarem un nou usuari de MySQL anomenat laravel_user
i una base de dades anomenada laravel
. Si heu seguit el tutorial fins a aquest punt, hauríeu de tenir la consola MySQL oberta. Per crear l'usuari anomenat laravel_user
executeu la consulta següent a la consola MySQL:
Nota: Substituïu el testpass
a la consulta MySQL següent amb una contrasenya segura.
CREAR USUARI 'laravel_user'@'%' IDENTIFICAT AMB mysql_native_password PER 'testpass';
A continuació, creeu una base de dades anomenada laravel
per a la nostra aplicació Laravel executant aquesta consulta:
CREAR BASE DE DADES laravel;
Només l'usuari root de MySQL té permisos per a la nova base de dades laravel creada. Concediu tots els permisos sobre laravel
base de dades a la laravel_user
executant:
CONSEGUEIX TOT A laravel.* A 'laravel_user'@'%';
Per tant, ara tenim un nou usuari de MySQL i una base de dades, sortiu de la consola MySQL executant:
SORTIR;
Proveu el vostre nou usuari de MySQL iniciant sessió a la consola MySQL amb ell, per fer-ho, executeu aquesta ordre al terminal:
mysql -u laravel_user -p
Fixeu-vos en el -p
marca a l'ordre, us demanarà la contrasenya que heu utilitzat durant la creació del fitxer laravel_user
(testpass
a la consulta). Després d'haver iniciat sessió a la consola MySQL com a laravel_user
, confirmeu que l'usuari té accés a laravel
base de dades executant:
MOSTRA BASES DE DADES;
Sortida: +--------------------+ | Base de dades | +--------------------+ | laravel | | esquema_informació | +--------------------+ 2 files al conjunt (0,01 segons)
La sortida anterior confirma que l'usuari de MySQL laravel_user
té permisos per a la base de dades laravel
. Sortiu de la consola MySQL utilitzant el botó SORTIR;
consulta perquè puguem procedir a crear l'aplicació DemoApp Laravel.
Instal·lació de Laravel
El marc Laravel utilitza Composer per descarregar i gestionar les seves dependències. Per tant, hem d'instal·lar Composer a la nostra màquina Ubuntu 20.04 abans de poder crear una aplicació Laravel.
Instal·leu Composer
Composer és una eina de gestió de dependències per a PHP, que facilita la instal·lació i l'actualització dels marcs i biblioteques PHP. Veurem com instal·lar Composer ràpidament en aquest tutorial perquè puguem utilitzar-lo per descarregar i gestionar el marc de Laravel.
Heu d'instal·lar alguns paquets addicionals que Composer requereix per funcionar, com ara php-cli
per executar scripts PHP al terminal i descomprimir
per ajudar Composer a extreure els paquets. Instal·leu-los tots dos executant:
sudo apt install php-cli unzip
A continuació, per instal·lar Composer globalment, descarregueu l'script d'instal·lació de Composer amb rínxol
i instal·leu-lo amb l'ordre següent:
curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Finalment, comproveu que el compositor s'ha instal·lat correctament executant:
compositor
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Versió del compositor 1.10.8 2020-06- 24 21:23:30 Ús: comanda [opcions] [arguments]
Aquesta sortida confirma que el Composer funciona correctament al vostre servidor Ubuntu 20.04, podeu començar a utilitzar-lo per instal·lar i gestionar marcs i biblioteques PHP.
Creeu una aplicació Laravel
Tenim pràcticament tot el necessari per crear una aplicació Laravel al nostre servidor Ubuntu 20.04, excepte poques extensions PHP. Instal·leu aquestes extensions que falten amb l'ordre següent:
sudo apt install php-mbstring php-xml php-bcmath php-zip php-json
Ara, podem instal·lar Laravel i crear una nova aplicació Laravel amb l'ajuda de Composer. Primer, assegureu-vos que esteu al directori inicial del vostre usuari:
cd ~
A continuació, creeu un nou projecte de Laravel amb el de Composer crear-projecte
comandament:
compositor create-project --prefer-dist laravel/laravel LaravelApp
L'ordre anterior crearà un nou projecte anomenat LaravelApp i també instal·larà i configurarà el Laravel Framework. Veureu una sortida semblant a aquesta:
Sortida: Creació d'un projecte "laravel/laravel" a "./LaravelApp" Instal·lació de laravel/laravel (v7.12.0) Instal·lació de laravel/laravel (v7.12.0): descàrrega (100%) Projecte creat a /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Càrrega de repositoris del compositor amb informació del paquet Actualització de dependències (incloent require-dev) Operacions de paquets: 97 instal·lacions, 0 actualitzacions, 0 eliminacions Instal·lació de voku/portable-ascii (1.5.2): Descàrrega (100%) Instal·lació de symfony/polyfill-ctype (v1) .17.1): Descàrrega (100%) Instal·lació de phpoption/phpoption (1.7.4): Descàrrega (100%) Instal·lació de vlucas/phpdotenv (v4.1.7): Descàrrega (100%) Instal·lació de symfony/css-selector (v5.1.2) : S'està baixant (100%)...
Quan finalitzi la instal·lació, aneu al directori arrel de l'aplicació i, a continuació, executeu el Laravel artesà
comanda per verificar que tots els components estiguin instal·lats correctament:
cd LaravelApp/ php artisan
Sortida: Laravel Framework 7.18.0 Ús: comanda [opcions] [arguments] Opcions: -h, --help Mostra aquest missatge d'ajuda -q, --quiet No emet cap missatge -V, --version Mostra aquesta versió de l'aplicació --ansi Força la sortida ANSI --no-ansi Desactiva la sortida ANSI -n, --no-interaction No feu cap pregunta interactiva --env[=ENV] L'entorn en què s'ha d'executar l'ordre -v|vv|vvv, --verbose Augmenta la verbositat dels missatges: 1 per a una sortida normal, 2 per a una sortida més detallada i 3 per a depuració...
Aquesta sortida confirma que la instal·lació va ser correcta i que tots els fitxers estan al seu lloc i que les eines de línia d'ordres de Laravel funcionen correctament. Tanmateix, encara hem de configurar l'aplicació per configurar la base de dades i alguns paràmetres més.
Configura l'aplicació Laravel
Els fitxers de configuració de Laravel es troben en un directori anomenat config
dins del directori arrel de l'aplicació. A més, quan vam instal·lar Laravel mitjançant Composer, va crear un fitxer d'entorn anomenat ".env" al directori arrel de l'aplicació. El fitxer d'entorn inclou les configuracions específiques de l'entorn i té prioritat sobre la configuració dels fitxers de configuració habituals situats dins del directori de configuració.
Nota: el fitxer de configuració de l'entorn conté informació sensible sobre el vostre servidor, com ara contrasenyes de bases de dades, claus d'aplicació Laravel, etc. Per tant, mai no s'hauria de compartir públicament.
Ara editarem el .env
fitxer per canviar la configuració i afegir-hi les credencials de la base de dades. Obriu el fitxer amb l'editor nano executant:
nano .env
Hi ha moltes variables de configuració en això .env
dossier. No cal que canviem cadascun d'ells, ja que Composer ha configurat la majoria de paràmetres automàticament. Per tant, aquí teniu la llista d'algunes variables de configuració primàries que heu de conèixer:
APP_NAME
: El nom de l'aplicació que s'utilitza per a la notificació i els missatges, així que l'establirem a 'LaravelApp'.APP_ENV
: Aquesta variable s'utilitza per indicar l'entorn de l'aplicació actual. Es pot configurar en entorns locals, de desenvolupament, de prova o de producció. De moment, el configurarem a l'entorn de desenvolupament.APP_KEY
: Clau d'aplicació única utilitzada per crear sals i hash per a l'aplicació web. Es genera automàticament quan instal·leu Laravel mitjançant Composer, de manera que no cal canviar-ho.APP_DEBUG
: es pot configurar com a vertader o fals, depenent de si voleu mostrar errors al costat del client. Establiu-lo a false quan passeu a l'entorn de producció.APP_URL
: URL base o IP per a l'aplicació, canvieu-lo pel vostre nom de domini si en teniu un per a la vostra aplicació Laravel o bé, manteniu-lo sense tocar de moment.DB_DATABASE
: Nom de la base de dades que voleu utilitzar amb l'aplicació Laravel. Utilitzarem la base de dades MySQL "laravel" que vam crear mentre configurem MySQL.DB_USERNAME
: Nom d'usuari per connectar-se a la base de dades. Utilitzarem l'usuari de MySQL "laravel_user" que hem creat.DB_PASSWORD
: la contrasenya per connectar-se a la base de dades.
APP_NAME=LaravelApp
APP_ENV=desenvolupament
APP_KEY=base64:Clau_única_aplicació
APP_DEBUG=true APP_URL=//domini_o_IP
LOG_CHANNEL=pila DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel_user
DB_PASSWORD=testpass
Feu canvis al .env
fitxer en conseqüència i quan hàgiu acabat d'editar, deseu i sortiu del fitxer utilitzant CTRL+X
després premeu Y
i premeu Intro per confirmar. Ara, només queda configurar el servidor Apache i crear un host virtual per a la nostra aplicació Laravel.
Configuració del servidor web Apache
Hem instal·lat Laravel a la carpeta local del directori d'inici de l'usuari. Tot i que això funciona perfectament per al desenvolupament local, es recomana que hi hagi un directori d'aplicacions web /var/www
. El motiu pel qual no vam instal·lar Laravel /var/www
directament és perquè és propietat de root i no s'ha d'utilitzar Composer amb sudo
.
Així que utilitzeu el mv
comanda per moure la carpeta de l'aplicació Laravel i el seu contingut /var/www
:
sudo mv ~/Laravel/ /var/www
El directori LaravelApp és propietat de l'usuari, de manera que encara podeu editar i fer canvis als fitxers sense utilitzar el sudo
comandament. Però el servidor web Apache necessita accedir a la memòria cau i als directoris d'emmagatzematge de l'aplicació, ja que Laravel emmagatzema els fitxers generats per l'aplicació. Canvia el propietari d'aquestes carpetes a www-dades
usuari utilitzant el chown
comandament:
sudo chown -R www-data.www-data /var/www/LaravelApp/storage sudo chown -R www-data.www-data /var/www/LaravelApp/bootstrap/cache
Després de canviar el propietari d'aquests directoris, activeu els d'Apache mod_rewrite
ja que Laravel requereix que transformi correctament els URL per ser interpretats per la seva funció d'encaminament via .htaccess
dossier.
reescriptura sudo a2enmod
A continuació, hem de configurar un host virtual per a l'aplicació Laravel. Les configuracions de l'amfitrió virtual es troben a /etc/apache2/sites-available
. Editarem el fitxer d'amfitrió virtual predeterminat per desplegar l'aplicació Laravel. Obriu el fitxer de configuració de l'amfitrió virtual predeterminat mitjançant l'editor nano:
sudo nano /etc/apache2/sites-available/000-default.conf
Canvia l'arrel del document des de /var/www/html
a /var/www/LaravelApp/public
i afegiu el fragment següent a sota de la línia DocumentRoot:
AllowOverride All
El teu 000-default.conf
hauria de semblar ara amb pocs comentaris.
ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combinat
Reinicieu el servidor web Apache executant l'ordre següent:
sudo systemctl reinicia apache2
Ara aneu al vostre navegador i escriviu l'adreça IP del vostre servidor Ubuntu 20.04. Veureu la pàgina d'inici de Laravel en lloc de la pàgina de benvinguda d'Apache predeterminada.
Suposant que heu seguit aquesta guia fins ara, hauríeu de tenir una aplicació Laravel que funcioni amb una base de dades MySQL anomenada laravel
per això. A partir d'aquest punt, podeu començar a desenvolupar la vostra aplicació Laravel pel vostre compte. Per obtenir més informació sobre el marc de Laravel i el seu ús, visiteu la pàgina de documents de Laravel.