GNU/Linux >> Belajar Linux >  >> Debian

Cara Setup Symfony 4 di Server Debian 9

Symfony adalah pilihan favorit pengembang PHP untuk membangun aplikasi skala kecil hingga besar. Dengan setiap rilis baru, Symfony berkembang menjadi perangkat yang lebih baik untuk pengembang. Symfony memungkinkan proses pengembangan aplikasi yang cepat sehingga pengembang dapat membangun API skala penuh, platform e-niaga, fintech dan aplikasi akuntansi, dll. Di sisi lain spektrum, pengembang dapat membuat situs web sederhana dengan bantuan mesin templating Twig.

Symfony 4 memiliki sistem resep cerdas dan struktur direktori yang disederhanakan yang tidak membebani file kode dalam proyek Anda. Symfony Flex ada untuk menginstal perpustakaan dengan nama alias dan mendaftarkannya secara otomatis dalam konfigurasi bundel. Versi baru ini juga memperkenalkan sistem perutean cepat yang lebih cepat menggunakan pencarian peta hash untuk rute statis dan gabungan ekspresi reguler untuk rute dengan placeholder.

Mengingat popularitas Symfony 4, saya memutuskan untuk mengkonfigurasi dan mengatur versi ini pada mesin Debian 9. Pada artikel ini, saya akan menunjukkan kepada Anda bagaimana Anda dapat mengatur Symfony Stack lengkap untuk menjalankan aplikasi Symfony. Prosesnya mencakup langkah-langkah terkait izin, root web, dan server web.

Buat Server DigitalOcean

Saat ini, Anda dapat menemukan sejumlah penyedia hosting awan di pasaran saat ini dan pilihannya sangat bergantung pada perpaduan antara persyaratan kinerja dan anggaran Anda.

Untuk tujuan artikel ini, saya akan menggunakan DigitalOcean, penyedia cloud hosting yang sangat disukai oleh para pengembang. Anda dapat dengan mudah mendaftar untuk akun DigitalOcean, dan memilih distribusi, ukuran, dan pusat data server Anda, seperti yang ditunjukkan pada GIF berikut:

Sekarang, langkah selanjutnya adalah meluncurkan terminal SSH. Jika Anda pengguna Linux atau Mac, Anda mendapatkannya secara default di mesin Anda. Jika Anda adalah pengguna Windows, Anda perlu mengunduh Putty. Kabar baiknya adalah Windows 10 hadir dengan PowerShell sendiri yang dapat Anda gunakan untuk tujuan artikel ini.

Setelah meluncurkan droplet, Anda memerlukan tiga item berikut untuk masuk ke terminal SSH:

  • Alamat IP server

  • Nama pengguna

  • Sandi atau kunci SSH

Karena saya menggunakan Windows, saya akan menggunakan Putty untuk semua aktivitas terkait SSH. Catat item di atas dari droplet dan login ke terminal SSH. Di Putty, ketika Anda memasukkan alamat IP dan menekan Enter, server akan menanyakan tentang caching kunci. Tekan sederhana Ya.

Selanjutnya, masukkan kredensial dan Anda akan masuk ke tetesan DigitalOcean Anda dengan akses root.

Stack LAMP Symfony

Symfony bergantung pada tumpukan LAMP khas yang terdiri dari PHP, Apache/Nginx, MySQL dan distribusi Linux. Anda perlu menginstal semua komponen perangkat lunak ini terlebih dahulu, lalu mengkonfigurasi Apache/Nginx sesuai dengan persyaratan Symfony. Untungnya semua komponen untuk membuat tumpukan Symfony adalah open source sehingga Anda hanya perlu menjalankan perintah dan menginstalnya melalui SSH di server Anda.

Symfony juga telah menentukan konfigurasi server web untuk Nginx dan Apache dalam dokumentasinya, jadi saya akan membahas setelan utama di sini  dan Anda dapat membaca sisanya di sana.

Perbarui Paket di Debian

Item tindakan pertama dalam daftar adalah memperbarui paket pada mesin Debian.

Mulailah dengan memeriksa versi Debian di server dengan menjalankan perintah berikut:

cat /etc/debian_version

Jadi saya memiliki Debian 9.4 di server DigitalOcean saya.

Selanjutnya, jalankan perintah berikut untuk memperbarui paket melalui SSH:

apt-get update
apt-get upgrade
apt-get dist-upgrade

Setelah semuanya diperbarui, saya siap menginstal server web.

Instal Apache2 untuk Symfony 4

Buka terminal SSH dan instal Apache2 terlebih dahulu dengan perintah berikut:

apt-get install apache2 -y

Setelah perintah selesai, akses IP server Anda dan Anda akan melihat halaman selamat datang Apache:

Berikutnya. masuk ke struktur sub-direktori dengan perintah:

cd /etc/apache2/sites-available/

Aktifkan opsi mod_rewrite dengan cepat terlebih dahulu dengan perintah ini:

a2enmod rewrite

Sekarang buka 000-default.conf file dan tambahkan berikut ini untuk mengonfigurasi host web di Apache 2:

 

<VirtualHost *:80>
   ServerName domain.tld
   ServerAlias www.domain.tld
 
   DocumentRoot /var/www/html/symfony4/public
   <Directory /var/www/html/symfony4/public>
       Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
       Allow from All
   </Directory>
 
   # uncomment the following lines if you install assets as symlinks
   # or run into problems when compiling LESS/Sass/CoffeeScript assets
   # <Directory /var/www/html>
   #  Options FollowSymlinks
   # </Directory>
 
   ErrorLog /var/log/apache2/project_error.log
   CustomLog /var/log/apache2/projec_access.log combined
</VirtualHost>

Sekarang, Apache2 dikonfigurasi untuk menjalankan proyek dari /var/www/html map. Tetapi Anda juga dapat memperluas konfigurasi dengan beberapa opsi lain yang paling sesuai dengan Symfony 4. Berikut ini contohnya:

<VirtualHost *:80>
   ServerName domain.tld
   ServerAlias www.domain.tld
 
   DocumentRoot /var/www/html/symfony4/public
   <Directory /var/www/html/symfony4/public>
       AllowOverride None
       Require all granted
       Allow from All
 
       <IfModule mod_rewrite.c>
           Options -MultiViews
           RewriteEngine On
           RewriteCond %{REQUEST_FILENAME} !-f
           RewriteRule ^(.*)$ index.php [QSA,L]
       </IfModule>
   </Directory>
 
   # uncomment the following lines if you install assets as symlinks
   # or run into problems when compiling LESS/Sass/CoffeeScript assets
   # <Directory /var/www/crvfakeexample.com>
   #  Options FollowSymlinks
   # </Directory>
 
   # optionally disable the RewriteEngine for the asset directories
   # which will allow apache to simply reply with a 404 when files are
   # not found instead of passing the request into the full symfony stack
   <Directory /var/www/crvfakeexample.com/public/bundles>
       <IfModule mod_rewrite.c>
           RewriteEngine Off
       </IfModule>
   </Directory>
   ErrorLog /var/log/apache2/crvfakeexample.com_error.log
   CustomLog /var/log/apache2/crvfakeexample.com_access.log combined
 
   # optionally set the value of the environment variables used in the application
   #SetEnv APP_ENV prod
   #SetEnv APP_SECRET <app-secret-id>
   #SetEnv DATABASE_URL "mysql://db_user:[email protected]:3306/db_name"
</VirtualHost>

Anda juga dapat menggunakan opsi Apache terbaru seperti Wajibkan semua diberikan dan konfigurasikan variabel lingkungan dalam pengaturan di atas. Sekarang muat ulang server Apache dengan perintah berikut sehingga pengaturan baru dapat diterapkan:

service apache2 reload

Instal Nginx untuk Symfony 4

Jika Anda tidak ingin menggunakan Apache, Nginx adalah pilihan yang bagus untuk server web. Prosesnya hampir mirip.

Mulailah dengan menginstal Nginx dengan perintah berikut:

apt-get update
apt-get install nginx -y

Sekarang jalankan cd /etc/nginx/conf.d dan konfigurasikan file sebagai:

server {
   server_name domain.tld www.domain.tld;
   root /var/www/html/symfony4/public;
 
   location / {
       # try to serve file directly, fallback to index.php
       try_files $uri /index.php$is_args$args;
   }
   location ~ ^/index\.php(/|$) {
       fastcgi_pass unix:/var/run/php7.1-fpm.sock;
       fastcgi_split_path_info ^(.+\.php)(/.*)$;
       include fastcgi_params;
 
       # optionally set the value of the environment variables used in the application
       # fastcgi_param APP_ENV prod;
       # fastcgi_param APP_SECRET <app-secret-id>;
       # fastcgi_param DATABASE_URL "mysql://db_user:[email protected]:3306/db_name";
 
       # When you are using symlinks to link the document root to the
       # current version of your application, you should pass the real
. yang sebenarnya
       # application path instead of the path to the symlink to PHP
       # FPM.
       # Otherwise, PHP's OPcache may not properly detect changes to
dengan benar
       # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
       # for more information).
       fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
       fastcgi_param DOCUMENT_ROOT $realpath_root;
       # Prevents URIs that include the front controller. This will 404:
       # http://domain.tld/index.php/some-path
       # Remove the internal directive to allow URIs like this
       internal;
   }
   # return 404 for all other php files not matching the front controller
   # this prevents access to other php files you don't want to be accessible.
   location ~ \.php$ {
       return 404;
   }
   error_log /var/log/nginx/project_error.log;
   access_log /var/log/nginx/project_access.log;
}

Sekarang reload server dengan menjalankan perintah berikut:

service nginx reload

Instal PHP 7.2 Untuk Symfony 4

Ketergantungan Symfony 4 yang penting adalah PHP 7.1.3 (atau lebih tinggi) di server. Untuk menginstal versi yang diperlukan, saya perlu memperbarui/menginstal beberapa paket di Debian 9 untuk menginstal PHP 7.2. Buka terminal SSH (dan pastikan Anda berada di root)  dan jalankan perintah berikut:

sudo apt install ca-certificates apt-transport-https
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
sudo echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list

Sekarang di langkah berikutnya, jalankan perintah ini:

sudo apt update
sudo apt install php7.2

Setelah instalasi berhasil, periksa versi PHP:

php -v

Saya juga perlu menginstal beberapa perpustakaan lagi untuk memastikan bahwa PHP 7.2 bekerja dengan baik di server. Jalankan perintah berikut untuk menginstal perpustakaan yang diperlukan:

sudo apt install php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-mysql php7.2-xml libapache2-mod-php7.2

Pustaka akan diinstal dan PHP 7.2 dikonfigurasi dengan benar untuk Symfony 4.

Instal MySQL untuk Mengonfigurasi Database

Mari kita instal database MySQL dengan cepat.

Mulailah dengan menjalankan perintah berikut:

apt-get install mysql-server

Proses akan berhenti sejenak untuk meminta izin Anda. Ketik (y ) dan tekan Enter. Di jendela berikutnya, atur kata sandi untuk pengguna root MySQL.

Proses selesai dalam hitungan menit.

Selanjutnya, saya akan mengkonfigurasi MySQL sesuai dengan persyaratan tumpukan LAMP. Untuk ini, masukkan perintah berikut:

mysql_secure_installation

Pada titik ini, penyiapan server telah selesai sesuai dengan persyaratan Symfony 4. Sekarang saya akan fokus pada penginstalan kerangka kerja itu sendiri.

Instal Komposer di Debian 9

Menginstal Composer secara global adalah ide yang bagus karena dengan cara ini, setiap pengguna dapat dengan mudah menggunakannya. Jadi, saya akan menginstalnya di /user/local/bin direktori.

Salin dulu installernya ke /tmp direktori:

php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"

Selanjutnya, jalankan perintah berikut untuk mengeksekusi file Composer dan menginstalnya secara global:

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Sekarang setelah Composer terinstal, saya akan melanjutkan dengan instalasi Symfony 4 yang sebenarnya.

Terakhir, Instal Symfony 4 di Server Debian 9

Pada titik ini, saya telah mengonfigurasi server Apache untuk webroot dengan memberikan URL:/var/www/html/symfony4/public.

Masuk ke html folder dan jalankan perintah Komposer berikut untuk menginstal Symfony 4:

composer create-project symfony/skeleton symfony4

Kerangka kerja akan dipasang dalam beberapa detik. Karena Symfony 4 sangat dioptimalkan dengan basis kode dan dependensi yang kecil, ia tidak akan meminta kredensial apa pun selama penginstalan. Setelah selesai, Anda perlu mengkonfigurasi database.

Setelah proses selesai, akses IP server Anda dan Anda akan melihat halaman selamat datang:

Selanjutnya, saya akan menambahkan kredensial database ke .env file Symfony.

 

###> doctrine/doctrine-bundle ###
APP_ENV=dev
APP_DEBUG=1
APP_SECRET=bd4d4fxxxx035a97fxxxed13f18646f
 
# customize this line!
DATABASE_URL="mysql://db_user:[email protected]:3306/db_name"
###< doctrine/doctrine-bundle ###

 

Kata-kata Akhir

Symfony 4 telah diadopsi secara luas dan dihargai oleh pengembang PHP dan telah diunduh dalam jutaan. Anda juga dapat menggunakan versi standar Symfony 3.x (Anda hanya perlu memperbarui perintah untuk menginstal versi tertentu):

Untuk Symfony 3.0:

composer create-project symfony/framework-standard-edition your_project_name "3.0.*"

Untuk Symfony 3.1:

composer create-project symfony/framework-standard-edition your_project_name "3.1.*"

Jika Anda memerlukan bantuan dalam menginstal dan menyiapkan Symfony 4 di mesin Debian 9, beri tahu saya di komentar.


Debian
  1. Cara Setup Server Rsyslog di Debian 11

  2. Cara Menginstal Server Redis di Debian 11

  3. Cara mengatur server SFTP di Server Debian 11

  1. Cara Mengaktifkan SSH di Debian 9 atau 10

  2. Cara mengatur vsftpd di Debian

  3. Cara Menginstal MySQL 8.0 / 5.7 di Debian 11 / Debian 10

  1. Cara Setup Server FTP dengan VSFTPD di Debian 9

  2. Cara Memasang Server Minecraft di Debian 9

  3. Cara Setup Server Rsyslog di Debian 11 (Bullseye)