CentOS 8'de Nginx ile Laravel PHP Çerçevesi Nasıl Kurulur


Laravel, büyük, sağlam web uygulamaları oluşturmayı kolaylaştıran etkileyici, zarif ve anlaşılması kolay sözdizimine sahip, açık kaynaklı, iyi bilinen ve modern PHP tabanlı bir web çerçevesidir.

Temel özellikleri arasında basit, hızlı yönlendirme motoru, güçlü bağımlılık enjeksiyon kapsayıcısı, oturum ve önbellek depolama için çoklu arka uçlar, etkileyici ve sezgisel veritabanı ORM (Nesne İlişkisel Haritalama), sağlam arka planda iş işleme ve gerçek zamanlı olay yayını yer alır.

Ayrıca, bağımlılıkları yönetmek için bir PHP paket yöneticisi olan Composer ve web uygulamaları oluşturmak ve yönetmek için bir komut satırı arayüzü olan Artisan gibi araçları kullanır.

Bu makalede, Laravel PHP web çerçevesinin en son sürümünün CentOS 8 Linux dağıtımına nasıl kurulacağını öğreneceksiniz.

Sunucu Gereksinimleri

Laravel çerçevesi aşağıdaki gereksinimlere sahiptir:

  • PHP >= 7.2.5 bu PHP uzantılarıyla OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype ve JSON.
  • Besteci – bağımlılıkları yüklemek ve yönetmek için.

Adım 1: LEMP Yığını CentOS 8'e Yükleme

1. Başlamak için sistem yazılım paketlerini güncelleyin ve LEMP yığınını (Linux, Nginx, ) yükleyin. MariaDB/MySQL ve PHP) aşağıdaki dnf komutlarını kullanarak.

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

2. LEMP kurulumu tamamlandığında, PHP-PFM, Nginx ve 'yi başlatmanız gerekir. >MariaDB hizmetlerini aşağıdaki systemctl komutlarını kullanarak oluşturun.

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

3. Ardından, gösterildiği gibi güvenlik komut dosyasını kullanarak MariaDB veritabanı motorunun güvenliğini sağlamanız ve sağlamlaştırmanız gerekir.

mysql_secure_installation

Sunucu kurulumunu güvenli hale getirmek için aşağıdaki soruları yanıtlayın.

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. Güvenlik duvarı hizmeti çalışıyorsa, güvenlik duvarında HTTP ve HTTPS hizmetini açmanız gerekir. Nginx web sunucusuna istemci isteklerini etkinleştirmek için.

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

5. Son olarak, sisteminizin IP adresindeki bir tarayıcıyı kullanarak LEMP yığınınızın çalıştığını doğrulayabilirsiniz.

http://server-IP

Adım 2: PHP-FPM ve Nginx'i Yapılandırma ve Güvenliğini Sağlama

6. Nginx web sunucusundan gelen istekleri işlemek için PHP-FPM bir Unix soketini veya TCP soketini dinleyebilir ve bu şu şekilde tanımlanır: /etc/php-fpm.d/www.conf yapılandırma dosyasındaki listen parametresini kullanın.

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

Varsayılan olarak, aşağıdaki ekran görüntüsünde gösterildiği gibi bir Unix soketini dinleyecek şekilde yapılandırılmıştır. Buradaki değer daha sonra Nginx sunucu blok dosyasında belirtilecektir.

7. Bir Unix soketi kullanıyorsanız, ekran görüntüsünde gösterildiği gibi yuvanın doğru sahipliğini ve izinlerini de ayarlamanız gerekir. Aşağıdaki parametrelerin açıklamalarını kaldırın ve değerlerini, Nginx'in çalıştığı kullanıcı ve grupla eşleşecek şekilde kullanıcıya ve gruba ayarlayın.

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

8. Ardından, /etc/php.ini yapılandırma dosyasında sistem genelindeki saat dilimini de ayarlayın.

vi /etc/php.ini

“;date.timezone ” satırını bulun ve açıklamasını kaldırın, ardından değerini ekran görüntüsünde gösterildiği gibi ayarlayın (bölgeniz/kıtanız ve ülkeniz için geçerli olan değerleri kullanın).

 
date.timezone = Africa/Kampala

9. Nginx'in, PHP kodunu yürütmek için diğer uzantıları kullanan kötü niyetli kullanıcılardan gelen istekleri PHP-FPM'ye geçirme riskini azaltmak için, aşağıdaki parametrenin açıklamasını kaldırın ve değerini < olarak ayarlayın. kod>0.

cgi.fix_pathinfo=1

10. Önceki noktaya ilişkin olarak, /etc/php-fpm.d/www.conf dosyasında aşağıdaki parametrenin açıklamasını da kaldırın. Daha fazla açıklama için yorumu okuyun.

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

Adım 3: Composer ve Laravel PHP Framework'ün Kurulumu

11. Ardından, aşağıdaki komutları çalıştırarak Composer paketini yükleyin. İlk komut yükleyiciyi indirir, ardından onu PHP kullanarak çalıştırır.

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

12. Artık Composer kurulduğuna göre, Laravel dosyalarını ve bağımlılıklarını aşağıdaki gibi yüklemek için onu kullanın. sitem.com adresini Laravel dosyalarının depolanacağı dizinin adıyla değiştirin; mutlak yol (veya Nginx yapılandırma dosyasındaki kök yol) /var/www/html/mysite olacaktır. .com.

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

İşlem sırasında her şey yolunda giderse uygulama başarıyla kurulmalı ve aşağıdaki ekran görüntüsündeki gibi bir anahtar oluşturulmalıdır.

13. Kurulum işlemi sırasında .env ortam dosyası oluşturuldu ve gerekli uygulama da oluşturuldu, böylece bunları daha önce olduğu gibi manuel olarak oluşturmanıza gerek yok. Bunu onaylamak için ls komutunu kullanarak laravel kök dizininin uzun bir listesini çalıştırın.

ls -la mysite.com/

14. Ardından, Nginx web tarafından yazılabilir olması için depolama ve bootstrap/cache dizinlerinde doğru sahiplik ve izinleri yapılandırmanız gerekir. sunucu.

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. Sunucunuzda SELinux etkinse, depolama ve önyükleme/önbellek 'in güvenlik içeriğini de güncellemelisiniz. dizinler.

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'

Adım 4: Laravel İçin Nginx Sunucu Bloğunu Yapılandırma

16. Nginx'in web sitenize veya uygulamanıza hizmet vermeye başlaması için, altındaki .conf dosyasında bunun için bir sunucu bloğu oluşturmanız gerekir. >/etc/nginx/conf.d/ dizini gösterildiği gibi.

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

Aşağıdaki yapılandırmayı kopyalayıp dosyaya yapıştırın. Kök ve fastcgi_pass parametrelerini not edin.

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. Dosyayı kaydedin ve çalıştırarak Nginx yapılandırma sözdiziminin doğru olup olmadığını kontrol edin.

nginx -t

18. Ardından, son değişikliklerin etkili olması için PHP-FPM ve Nginx hizmetlerini yeniden başlatın.

systemctl restart php-fpm
systemctl restart Nginx

Adım 5: Bir Web Tarayıcısından Laravel Web Sitesine Erişim

19. Tam nitelikli bir alan adı (FQDN) olmayan ve kayıtlı olmayan (yalnızca test amacıyla kullanılır) mysite.com adresindeki Laravel web sitesine erişmek için yerel DNS oluşturmak için yerel makinenizdeki /etc/hosts dosyasını kullanacağız.

Sunucu IP adresini ve etki alanını gerekli dosyaya eklemek için aşağıdaki komutu çalıştırın (değeri ayarlarınıza göre değiştirin).

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

20. Ardından, yerel makinede bir web tarayıcısı açın ve gezinmek için aşağıdaki adresi kullanın.

http://mysite.com

Laravel'i CentOS 8'e başarıyla dağıttınız. Artık Laravel'i kullanarak web sitenizi veya web uygulamanızı geliştirmeye başlayabilirsiniz. Daha fazla bilgi için Laravel Başlangıç kılavuzuna bakın.