Laravel PHP Frameworkin asentaminen Nginxillä CentOS 8:ssa


Laravel on avoimen lähdekoodin, hyvin tunnettu ja moderni PHP-pohjainen verkkokehys, jossa on ilmeikäs, tyylikäs ja helposti ymmärrettävä syntaksi, jonka avulla on helppo rakentaa suuria, kestäviä verkkosovelluksia.

Sen tärkeimmät ominaisuudet sisältävät yksinkertaisen, nopean reititysmoottorin, tehokkaan riippuvuuden injektiosäiliön, useat taustat istuntojen ja välimuistin tallennusta varten, ilmeikäs ja intuitiivinen tietokanta ORM (Object-relational Mapping), vankka taustatöiden käsittely ja reaaliaikainen tapahtumalähetys.

Se käyttää myös työkaluja, kuten Composer – PHP-pakettien hallinta riippuvuuksien hallintaan ja Artisan – komentorivikäyttöliittymä verkkosovellusten rakentamiseen ja hallintaan.

Tässä artikkelissa opit asentamaan Laravel PHP -verkkokehyksen uusimman version CentOS 8 Linux-jakeluun.

Palvelinvaatimukset

Laravel-kehyksellä on seuraavat vaatimukset:

  • PHP >= 7.2.5 näillä PHP-laajennuksilla OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype ja JSON.
  • Säveltäjä – riippuvuuksien asentamiseen ja hallintaan.

Vaihe 1: Asenna LEMP Stack CentOS 8:aan

1. Aloita päivittämällä järjestelmäohjelmistopaketit ja asentamalla LEMP-pino (Linux, Nginx, MariaDB/MySQL ja PHP) käyttämällä seuraavia dnf-komentoja.

dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. Kun LEMP-asennus on valmis, sinun on käynnistettävä PHP-PFM, Nginx ja >MariaDB-palvelut käyttämällä seuraavia systemctl-komentoja.

systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb
systemctl status php-fpm nginx mariadb

3. Seuraavaksi sinun on suojattava ja vahvistettava MariaDB-tietokantamoottori käyttämällä suojausskriptiä kuvan mukaisesti.

mysql_secure_installation

Suojaa palvelimen asennus vastaamalla seuraaviin kysymyksiin.

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y

4. Jos sinulla on palomuuri-palvelu käynnissä, sinun on avattava palomuurin HTTP- ja HTTPS-palvelut. mahdollistaaksesi asiakaspyynnöt Nginx-verkkopalvelimelle.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

5. Lopuksi voit varmistaa, että LEMP-pino on käynnissä selaimella järjestelmäsi IP-osoitteessa.

http://server-IP

Vaihe 2: PHP-FPM:n ja Nginxin määrittäminen ja suojaaminen

6. Käsitelläkseen pyyntöjä Nginx-verkkopalvelimelta PHP-FPM voi kuunnella Unix- tai TCP-socketissa, ja tämän määrittää listen-parametri /etc/php-fpm.d/www.conf-määritystiedostossa.

vi /etc/php-fpm.d/www.conf

Oletusarvoisesti se on määritetty kuuntelemaan Unix-liitännässä seuraavan kuvakaappauksen mukaisesti. Tässä oleva arvo määritetään myöhemmin Nginx-palvelinlohkotiedostossa.

7. Jos käytät Unix-liitäntää, sinun tulee myös määrittää sille oikeat omistusoikeudet ja käyttöoikeudet kuvakaappauksen mukaisesti. Poista seuraavien parametrien kommentit ja aseta niiden arvot käyttäjälle ja ryhmälle vastaamaan käyttäjää ja ryhmää, jossa Nginx toimii.

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. Määritä seuraavaksi myös järjestelmän laajuinen aikavyöhyke /etc/php.ini-määritystiedostossa.

vi /etc/php.ini

Etsi rivi ";date.timezone " ja poista sen kommentti ja aseta sen arvo kuvakaappauksen mukaisesti (käytä arvoja, jotka koskevat aluettasi/mannerosaasi ja maatasi).

 
date.timezone = Africa/Kampala

9. Vähentääksesi riskiä, että Nginx välittää pyyntöjä haitallisilta käyttäjiltä, jotka käyttävät muita laajennuksia PHP-koodin suorittamiseen PHP-FPM:lle, poista seuraavan parametrin kommentti ja aseta sen arvoksi 0.

cgi.fix_pathinfo=1

10. Mitä tulee edelliseen kohtaan, poista myös seuraavan parametrin kommentti /etc/php-fpm.d/www.conf-tiedostosta. Lue kommentti saadaksesi lisäselvitystä.

security.limit_extensions = .php .php3 .php4 .php5 .php7

Vaihe 3: Composerin ja Laravel PHP Frameworkin asentaminen

11. Asenna seuraavaksi Composer-paketti suorittamalla seuraavat komennot. Ensimmäinen komento lataa asennusohjelman ja suorittaa sen sitten PHP:llä.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

12. Nyt kun Composer on asennettu, käytä sitä Laravel-tiedostojen ja riippuvuuksien asentamiseen seuraavasti. Korvaa omasivusto.com sen hakemiston nimellä, johon Laravel-tiedostot tallennetaan. Absoluuttinen polku (tai juuripolku Nginx-määritystiedostossa) on /var/www/html/mysite. .com.

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel mysite.com

Jos kaikki menee hyvin prosessin aikana, sovellus tulee asentaa onnistuneesti ja avain tulee luoda seuraavan kuvakaappauksen mukaisesti.

13. Asennuksen aikana luotiin .env-ympäristötiedosto ja myös tarvittava sovellus, joten sinun ei tarvitse luoda niitä manuaalisesti kuten ennen. Vahvista tämä suorittamalla pitkä lista laravelin juurihakemistosta ls-komennolla.

ls -la mysite.com/

14. Seuraavaksi sinun on määritettävä oikea omistajuus ja käyttöoikeudet tallennus-- ja bootstrap/cache-hakemistoihin, jotta Nginx-verkko voi kirjoittaa. palvelin.

chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15. Jos SELinux on käytössä palvelimellasi, sinun tulee myös päivittää tallennustilan ja bootstrap/cache suojauskonteksti. > hakemistoja.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/mysite.com'

Vaihe 4: Määritä Nginx-palvelinlohko Laravelille

16. Jotta Nginx voi alkaa palvella verkkosivustoasi tai sovellustasi, sinun on luotava sille palvelinlohko .conf-tiedostoon kohdassa >/etc/nginx/conf.d/ hakemistosta kuvan mukaisesti.

vi /etc/nginx/conf.d/mysite.com.conf

Kopioi ja liitä tiedostoon seuraavat asetukset. Huomioi juuri- ja fastcgi_pass-parametrit.

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.com/public;
       index       index.php;

       charset utf-8;
       gzip on;
	gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
        	try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

17. Tallenna tiedosto ja tarkista suorittamalla, onko Nginx-määrityssyntaksi oikea.

nginx -t

18. Käynnistä sitten PHP-FPM- ja Nginx-palvelut uudelleen, jotta viimeaikaiset muutokset tulevat voimaan.

systemctl restart php-fpm
systemctl restart Nginx

Vaihe 5: Laravel-verkkosivuston käyttäminen verkkoselaimella

19. Pääset Laravel-verkkosivustolle osoitteessa mysite.com, joka ei ole täysin hyväksytty verkkotunnuksen nimi (FQDN) eikä sitä ole rekisteröity (käytetään vain testaustarkoituksiin) , käytämme paikallisen koneen /etc/hosts-tiedostoa paikallisen DNS:n luomiseen.

Suorita seuraava komento lisätäksesi palvelimen IP-osoitteen ja toimialueen vaadittuun tiedostoon (korvaa arvo asetustesi mukaan).

ip add		#get remote server IP
echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. Avaa seuraavaksi verkkoselain paikallisella koneella ja käytä navigointiin seuraavaa osoitetta.

http://mysite.com

Olet onnistuneesti ottanut Laravelin käyttöön CentOS 8:ssa. Voit nyt aloittaa verkkosivustosi tai verkkosovelluksesi kehittämisen Laravelin avulla. Lisätietoja on Laravelin aloitusoppaassa.