NGINX ile Symfony 5 projesi nasıl Deploy edilir ? 우분투

6060 단어
셀라마르 벤 알페렌,

Bu yazıda sizlere NGINX ile Symfony 5 projesi nasıl Deploy edilir açıklayamaya çalışıcağım.

Bunu yaparken sırasıyla PHP, Mysql, NGINX, Redis, Composer, Gitlab repository'sinden projeyi çekmek ve NGINX Config kurulum veğaayarlama

Öncelikli olarak 배포 etmek istediğimiz projenin düzgün bir şekilde Gitlab üzerinde bir repository'de bulunduğunu varsayalım.

Webserver'a nasıl geçicez açıkçası o kısmını ben de bilmiyorum . 바나 괴텐 인디 :D
lsb_release -cd ; hostname ; hostname -I ; whoami ; getconf LONG_BIT;크기 de gokten indiyse bu komutları çalıştırarak webserverınız hakkında bilgi alabilirsiniz .

Webserver'ı ayağa kaldırmak için gerekli kurulumları yapalım

PHP 8.1



Kuruluma başlamadan önce PHP 네디르 ? 소루순눈 세바비나 바칼림

PHP, HTML 이전 버전에서 사용할 수 있습니다. 사이트를 확장할 수 있습니다.

Php kurulumu için repo'muzu ekleyelim ;add-apt-repository ppa:ondrej/php -y
PHP 8.1 확장 프로그램 확장 ;sudo apt install php8.1 php8.1-cli php8.1-cgi php8.1-bcmath php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-sqlite3 php8.1-xml php8.1-zip php8.1-snmp php8.1-imap php8.1-common php8.1-tidy php8.1-pgsql php8.1-ldap php8.1-soap php8.1-xsl php8.1-redis php8.1-xmlrpc php8.1-zip php-imagick php-pear php-memcache php-apcu
Php kurulumunu doğrulamak için ;php -vKurduğumuz 확장 추가 괴르멕 için ise ;php -m

MYSQL 8



Mysql kurulumda dikkat etmemiz gereken bir konu Yetkilendirme
예를 들어 아직 킬렌디르메가 데이터베이스에 포함되지 않습니다.sudo apt install mysql-serverMysql'girş yapalım ;mysql -u root예니 도구 모음 ;CREATE USER 'yeni_kullanici'@'localhost' IDENTIFIED BY 'sifre';Yeni Kullanıcıya yetkilendirme verelim ;GRANT ALL PRIVILEGES ON * . * TO 'yeni_kullanici'@'localhost';
Komuttaki yıldızlar(*) 데이터베이스 및 표는 해당 정보를 참조합니다. Komut kullanıcıya belirli database ve tablolara izin vermeye olanak sağlar. İşlemi bitirmeden önce yetkileri enilediğinizden emin olun Daha sonra yeni_kullanıcı ile mysql'e tekrar giriş yapın .
mysql -u yeni_kullanici -p 'sifre'
Şimdi bir 데이터베이스 olusturalım . 북경 부 데이터베이스 ne işimize yarayacak ?
Symfony projemizdeki verileri tutacak .
Projemizdeki .env dosyasını ayarlarken kullanacağız, database'i ekteki komut ile olusturalım ;CREATE DATABASE deneme;

NGINX



Ngınx webserver'i ayağa kaldıracak hızlı stabil ve hafif bir web sunucudur.sudo apt install nginxsystemctl start nginxsystemctl status nginx

레디스


sudo apt install redis-serverredis.conf dosyasını düzenleyelim;sudo nano /etc/redis/redis.confsupervised kısmı default olarak no geliyor görseldeki gibi değiştirelim

작곡가



Symfony projemizi ayağa kaldıracak bunu unutmayalım ;curl -sS https://getcomposer.org/installer | php ; mv composer.phar /usr/local/bin/composer ; chmod +x /usr/local/bin/composer

Sunucu üzerinde gerekli tüm kurulumları bitirdiğimizde aşağıdaki adımları takip ederek deployment işlemine başlayabiliriz.



Projemizi çekeceğimiz dizine girelim;cd /var/www/htmlgit clone https://{gitlab-username}:{access_token}@{git-url}
daha anlaşılır olması için bir örnek verelim;
gitlab-username : 알퍼
access_token : abcdf_1234ae
git-url : gitlab.com/alper/test.git
git clone https://alper: [email protected]/alper/test.git

NOT bu kısımda ben acces-token kullandım fakat deploy-token da kullanılabilir.



Projeyi çektikten sonra sahiplendirme ve izin işlemleri için ;chown -R www-data:www-data /var/www/html/ ; chmod -R 755 /var/www/html/
Projemiz symfony projesi olduğu için gerekli paketleri yükleyelim;Composer install
.env dosyasını ayarlayalım
bunun için ilk olarak proje dizinine girelim .cd /var/www/testnano .env
ekte olduğu gibi MYSQL Kısmında oluşturduğunuz 데이터베이스'i.env dosyamıza ekliyoruz .

NGINX 구성



프로젝트는 NGINX 구성에 대한 추가 정보를 얻을 수 있습니다.
Ekteki komutta belirtilen dizine default isimli bir dosya olusturur;nano /etc/nginx/sites-available/default
dosyamızın içini düzenleyelim;

 server {
    listen 80;
    listen [::]:80;
    server_name domain www.domain.com;
    root   /var/www/test/public;
     index  index.php;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    client_max_body_size 100M;

    autoindex off;

    location / {

    try_files $uri /index.php$is_args$args;
      }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
         include fastcgi_params;
         fastcgi_intercept_errors on;
    }
}



kaydetme işlemi için CTRL+O ENTER CTRL+X구성 dosyamıza sembolik 링크 olusturalım ;
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
daha sonra nginx.service tekrar başlatalım ;sudo systemctl restart nginx.service
그녀의 타맘.
http://domain.com/ sitenizi gorebilirsiniz...

좋은 웹페이지 즐겨찾기