Laravel PHP Frameworkin asentaminen Nginxin kanssa CentOS 8: een


Laravel on avoimen lähdekoodin, tunnettu ja moderni PHP-pohjainen verkkokehys, jolla on ilmeikäs, tyylikäs ja helposti ymmärrettävä syntaksin avulla, mikä tekee suurten, vankkojen verkkosovellusten rakentamisesta helppoa.

Sen tärkeimpiä ominaisuuksia ovat yksinkertainen, nopea reititysmoottori, tehokas riippuvuussyöttösäiliö, useita taustoja istunto- ja välimuistitallennukseen, ilmeikäs ja intuitiivinen ORM-tietokanta (Object-relational Mapping), vankka taustatyön käsittely ja reaaliaikainen tapahtumalähetys.

Lisäksi se käyttää työkaluja, kuten Composer - PHP-paketinhallinta riippuvuuksien hallintaan ja Artisan - komentoriviliittymä verkkosovellusten rakentamiseen ja hallintaan.

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

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: LEMP-pinon asentaminen CentOS 8: een

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

# 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 seuraavilla systemctl-komennoilla.

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

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

# mysql_secure_installation

Varmista 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 palomuuripalvelu on käynnissä, sinun on avattava palomuurissa HTTP- ja HTTPS-palvelu, jotta asiakaspyynnöt Nginx-verkkopalvelimelle voidaan ottaa käyttöön.

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

5. Lopuksi voit vahvistaa, että LEMP-pinoasi käytetään selaimella järjestelmän IP-osoitteessa.

http://server-IP

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

6. Käsittelemään Nginx-verkkopalvelimelta tulevia pyyntöjä PHP-FPM voi kuunnella Unix- tai TCP-liitännässä, ja tämä määritetään /etc/php-fpm.d/www.conf -asetustiedoston kuunteluparametrilla.

# 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 Nginx-palvelimen estotiedostossa myöhemmin.

7. Jos käytät Unix-liitäntää, sinun on myös asetettava sille oikea omistajuus ja käyttöoikeudet kuvakaappauksen mukaisesti. Poista seuraavien parametrien komento ja aseta niiden arvot käyttäjälle ja ryhmälle vastaamaan käyttäjää ja ryhmää. Nginx toimii nimellä.

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

8. Aseta seuraavaksi myös koko järjestelmän aikavyöhyke /etc/php.ini -asetustiedostossa.

# vi /etc/php.ini

Etsi rivi “; date.timezone” ja poista kommentti, aseta sitten arvo kuvakaappauksen osoittamalla tavalla (käytä alueellesi/mantereellesi ja maallesi soveltuvia arvoja).

 
date.timezone = Africa/Kampala

9. Pienennä riskiä siitä, että Nginx välittää pyyntöjä haitallisilta käyttäjiltä, jotka käyttävät muita laajennuksia suorittamaan PHP-koodin PHP-FPM: lle, purkamalla seuraavan parametrin kommentti ja asettamalla sen arvoksi 0 .

cgi.fix_pathinfo=1

10. Kommentoi myös edelliseen kohtaan suhteessa seuraavaa parametria tiedostossa /etc/php-fpm.d/www.conf. Lue kommentti saadaksesi lisätietoja.

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

Vaihe 3: Asenna Composer ja Laravel PHP Framework

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, asenna se Laravel-tiedostojen ja riippuvuuksien avulla seuraavasti. Korvaa mysite.com sen hakemiston nimellä, johon Laravel-tiedostot tallennetaan. Absoluuttinen polku (tai juuripolku Nginx-määritystiedostossa) on /var/www/html/omasivusto.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 luoda avain seuraavan kuvakaappauksen mukaisesti.

13. Asennuksen aikana luotiin .env -ympäristötiedosto ja luotiin myös vaadittu sovellus, joten sinun ei tarvitse luoda niitä manuaalisesti kuten aiemmin. Vahvista tämä suorittamalla pitkä luettelo laravel-juurihakemistosta käyttämällä ls-komentoa.

# ls -la mysite.com/

14. Seuraavaksi sinun on määritettävä tallennus- ja käynnistyshihna-/välimuistihakemistojen oikea omistajuus ja käyttöoikeudet Nginx-verkkopalvelimen kirjoitettaviksi.

# 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, päivitä myös tallennus- ja käynnistyshihna-/välimuistihakemistojen suojauskonteksti.

# 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 voisi aloittaa verkkosivustosi tai sovelluksesi palvelun, sinun on luotava sille palvelinlohko .conf -tiedostoon hakemistoon /etc/nginx/conf.d/, kuten näytetään.

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

Kopioi ja liitä seuraava kokoonpano tiedostoon. Ota huomioon root- 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 Nginx-kokoonpanosyntaksi oikein.

# 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ö verkkoselaimella

19. Pääsetksesi Laravel-verkkosivustolle osoitteessa mysite.com, joka ei ole täysin pätevä verkkotunnus (FQDN) eikä sitä ole rekisteröity (sitä käytetään vain testaustarkoituksiin), käytämme/etc/hosts-tiedostoa paikallisella koneellasi luoda paikallinen DNS.

Suorita seuraava komento lisätäksesi palvelimen IP-osoite ja toimialue vaadittavaan tiedostoon (korvaa arvo asetusten mukaan).

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

20. Avaa seuraavaksi selain paikallisella koneella ja käytä seuraavaa osoitetta navigoidaksesi.

http://mysite.com

Olet asentanut Laravelin onnistuneesti CentOS 8: een. Voit nyt alkaa kehittää verkkosivustoasi tai verkkosovellustasi Laravelin avulla. Lisätietoja on Laravelin aloitusoppaassa.