Cara Menginstal Laravel di Ubuntu 20.04

Semua yang perlu Anda ketahui untuk menerapkan aplikasi web Laravel di mesin Ubuntu 20.04 LTS

Laravel adalah kerangka kerja PHP open-source yang sangat populer dengan sintaks ekspresif dan elegan yang digunakan untuk merancang aplikasi web modern dan indah. Laravel bertujuan untuk menghilangkan rasa sakit dari pengembangan web dan menjadikannya pengalaman yang menyenangkan dan kreatif, mengubah pengembang web menjadi pengrajin web.

Dalam panduan ini, Anda akan belajar cara menginstal Laravel dengan LAMP stack di server Ubuntu 20.04 untuk menjalankan & menjalankan aplikasi web Anda.

Prasyarat

Untuk mengikuti panduan ini, Anda memerlukan server Ubuntu 20.04 LTS dan masuk sebagai sudo pengguna. Sebelum kita mulai, perbarui dan tingkatkan paket Ubuntu 20.04 dengan menjalankan:

sudo apt update && sudo apt upgrade

Memasang LAMP Stack

LAMP adalah singkatan dari L sistem operasi inux, SEBUAH server web pache, M database ySQL dan P bahasa pemrograman HP. Kami sudah berada di Ubuntu 20.04 yang menandai Linux di tumpukan LAMP. Jadi kita akan menginstal sisa tiga paket untuk melengkapi tumpukan LAMP untuk aplikasi Laravel kita.

Tidak ada paket meta yang tersedia untuk menginstal tumpukan LAMP di repositori Ubuntu 20.04. Tapi kita bisa menggunakan fitur kecil yang rapi dari tepat manajer paket yang disebut tugas. Tugas dilambangkan menggunakan nama tugas yang tersedia dengan kadet (^) ditambahkan padanya.

sudo apt install lamp-server^

Perintah ini akan mencari file daftar paket untuk semua bidang "Tugas:" dan menginstal semua paket dengan "server-lampu" di bidang tugasnya. Jadi tumpukan LAMP yang terdiri dari paket Apache, MySQL dan PHP dengan semua dependensinya akan diinstal pada server Ubuntu Anda.

Konfigurasikan Firewall

Setelah Anda menginstal LAMP stack, Anda juga perlu mengonfigurasi uncomplicated firewall (UFW) dan mengubah aturannya sehingga Anda dapat mengakses server Apache dari internet.

UFW menyediakan profil aplikasi sederhana yang dapat digunakan untuk mengubah aturan dan mengalihkan lalu lintas pada port jaringan. Jalankan perintah berikut untuk mendaftar semua aplikasi yang mengakses port jaringan:

daftar aplikasi sudo ufw

Anda akan melihat output seperti ini:

Aplikasi yang tersedia: Apache Apache Full Apache Secure OpenSSH

Port jaringan yang dibuka profil ini di server Ubuntu 20.04 Anda tercantum di bawah ini:

  • Apache: Profil ini hanya membuka port 80 (memungkinkan lalu lintas HTTP)
  • Apache Penuh: Profil ini membuka keduanya 80 & 443 port (memungkinkan lalu lintas HTTP & HTTPS)
  • Apache Secure: Profil ini hanya membuka port 443 (memungkinkan lalu lintas HTTPS)
  • OpenSSH: Profil ini membuka port 22 yang memungkinkan protokol SSH

Anda perlu mengaktifkan profil 'Apache Full' yang akan memungkinkan lalu lintas ke server web Apache dari internet. Selain itu, Anda juga perlu mengaktifkan profil 'OpenSSH' yang memungkinkan lalu lintas di port 22 (SSH) di server Ubuntu 20.04 Anda. Jika Anda mengaktifkan UFW tanpa mengizinkan profil 'OpenSSH', Anda tidak akan dapat terhubung ke server Anda menggunakan SSH.

Untuk mengubah aturan UFW dan mengizinkan lalu lintas di port 80 dan 22, Lari:

sudo ufw izinkan 'Apache Full' Sudo ufw izinkan 'OpenSSH'

Kemudian aktifkan firewall UFW menggunakan perintah berikut:

sudo ufw aktifkan

Anda mungkin mendapatkan prompt yang mengatakan "perintah dapat mengganggu koneksi ssh yang ada. Lanjutkan dengan operasi (y|n)?”. tekan kamu untuk melanjutkan karena kami telah menambahkan aturan untuk mengizinkan SSH di UFW.

Sekarang Anda dapat mengakses halaman web default Apache menggunakan alamat IP server Ubuntu Anda dari internet. Untuk melakukannya buka browser Anda dan ketik alamat IP server Ubuntu 20.04 Anda di bilah URL dan tekan enter.

//ip_ubuntu_server_Anda

Halaman ini mengkonfirmasi bahwa server web Apache berjalan dengan benar dan aturan UFW diatur dengan benar.

Menyiapkan Database MySQL untuk Laravel

Laravel 7 membuat interaksi dengan database menjadi sangat sederhana di berbagai backend database yang didukungnya seperti MySQL versi 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ dan SQL Server 2017+. Kami sudah menginstal paket MySQL terbaru dengan lampu-sever^ tugas. Jadi di bagian ini, kita akan mengkonfigurasi server MySQL dan kemudian melihat cara mengatur pengguna dan database MySQL baru untuk aplikasi Laravel.

Konfigurasi MySQL

Database MySQL dilengkapi dengan skrip keamanan yang telah diinstal sebelumnya yang dapat digunakan untuk menghapus beberapa pengaturan default yang tidak aman. Anda disarankan untuk menjalankan skrip ini sebelum menerapkan aplikasi Laravel Anda.

sudo mysql_secure_installation

Perintah di atas akan menjalankan skrip keamanan yang akan meminta Anda serangkaian pertanyaan untuk mengkonfigurasi server MySQL.

Pertama, Anda akan ditanya apakah Anda ingin mengatur VALIDASI PASSWORD pengaya. Plugin ini memeriksa kata sandi Anda dan memberi peringkat sebagai aman atau tidak aman berdasarkan tingkat kebijakan validasi kata sandi yang akan Anda pilih segera. Jadi tekan kamu jika Anda ingin mengaktifkan plugin ini.

Keluaran: Mengamankan penyebaran server MySQL. Menghubungkan ke MySQL menggunakan kata sandi kosong. VALIDASI KOMPONEN SANDI dapat digunakan untuk menguji kata sandi dan meningkatkan keamanan. Ini memeriksa kekuatan kata sandi dan memungkinkan pengguna untuk mengatur hanya kata sandi yang cukup aman. Apakah Anda ingin mengatur komponen VALIDATE PASSWORD? Tekan y|Y untuk Ya, tombol lain untuk Tidak: kamu

Kemudian atur tingkat kebijakan validasi kata sandi dengan memasukkan 0, 1 atau 2 tergantung pada seberapa kuat Anda ingin membuat kata sandi untuk database Anda.

Keluaran: Ada tiga tingkat kebijakan validasi kata sandi: RENDAH Panjang >= 8 SEDANG Panjang >= 8, numerik, huruf besar campuran, dan karakter khusus KUAT Panjang >= 8, angka, huruf besar campuran, karakter khusus dan file kamus Masukkan 0 = RENDAH, 1 = SEDANG dan 2 = KUAT: 2

Selanjutnya, Anda akan diminta untuk memasukkan kata sandi baru untuk pengguna root MySQL. Masukkan kata sandi yang sesuai untuk root MySQL Anda. Plugin VALIDATE PASSWORD akan memberi Anda perkiraan kekuatan kata sandi Anda sesuai dengan tingkat validasi kata sandi Anda. tekan kamu untuk melanjutkan dengan kata sandi yang Anda berikan.

Keluaran: Silakan atur kata sandi untuk root di sini. Kata sandi baru: Masukkan kembali kata sandi baru: Perkiraan kekuatan kata sandi: 100 Apakah Anda ingin melanjutkan dengan kata sandi yang diberikan? (Tekan y|Y untuk Ya, tombol lain untuk Tidak): kamu

tekan kamu untuk petunjuk lainnya, mereka akan menghapus beberapa pengguna anonim dan database pengujian, menonaktifkan login root jarak jauh dan memuat ulang pengaturan baru untuk server MySQL. Setelah selesai, uji database Anda dengan menjalankan:

sudo mysql

Perintah di atas akan membuka konsol MySQL, menghubungkan ke database MySQL sebagai akar pengguna. Anda akan melihat output seperti ini:

Keluaran: Selamat datang di monitor MySQL. Perintah diakhiri dengan ; atau \g. ID koneksi MySQL Anda adalah 10 Versi Server: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Hak Cipta (c) 2000, 2020, Oracle dan/atau afiliasinya. Seluruh hak cipta. Oracle adalah merek dagang terdaftar dari Oracle Corporation dan/atau afiliasinya. Nama lain mungkin merupakan merek dagang dari pemiliknya masing-masing. Ketik 'bantuan;' atau '\h' untuk bantuan. Ketik '\c' untuk menghapus pernyataan input saat ini. mysql>

Anda mungkin telah memperhatikan bahwa Anda tidak perlu memasukkan kata sandi yang telah Anda tetapkan untuk pengguna root MySQL. Itu karena metode otentikasi default untuk pengguna root MySQL administratif adalah caching_sha2_otentikasi bukannya mysql_native_password metode yang menggunakan kata sandi untuk masuk.

Jadi secara default, Anda hanya dapat masuk sebagai pengguna root MySQL dengan sudo pengguna yang diaktifkan yang bertindak sebagai keamanan tambahan untuk server MySQL. Tetapi perpustakaan MySQL PHP tidak mendukung caching_sha2_otentikasi metode. Oleh karena itu kita perlu menggunakan mysql_native_password metode ketika kami membuat pengguna baru untuk Laravel karena menggunakan kata sandi untuk terhubung & berinteraksi dengan database.

Buat Pengguna & Basis Data MySQL Baru

Itu selalu merupakan praktik yang baik untuk membuat pengguna dan database baru khusus untuk aplikasi Anda daripada menggunakan pengguna root MySQL dan database pengujian. Jadi kita akan menyiapkan pengguna MySQL baru yang disebut laravel_user dan database yang disebut laravel. Jika Anda telah mengikuti tutorial sampai saat ini, Anda harus membuka konsol MySQL. Untuk membuat pengguna yang disebut laravel_user jalankan kueri berikut di konsol MySQL:

Catatan: Ganti lulus ujian dalam kueri MySQL di bawah ini dengan kata sandi yang kuat.

BUAT PENGGUNA 'laravel_user'@'%' DIIDENTIFIKASI DENGAN mysql_native_password OLEH 'testpass';

Selanjutnya, buat database bernama laravel untuk aplikasi Laravel kami dengan menjalankan kueri ini:

BUAT DATABASE laravel;

Hanya pengguna root MySQL yang memiliki izin ke database laravel yang baru dibuat. Berikan semua izin atas laravel database ke laravel_user dengan menjalankan:

HIBAH SEMUA DI laravel.* KEPADA 'laravel_user'@'%';

Jadi, kita sekarang memiliki pengguna MySQL baru dan database, keluar dari konsol MySQL dengan menjalankan:

KELUAR;

Uji pengguna MySQL baru Anda dengan masuk ke konsol MySQL dengannya, untuk melakukannya jalankan perintah ini di terminal:

mysql -u laravel_user -p

Perhatikan -P tandai dalam perintah, itu akan meminta Anda untuk kata sandi yang Anda gunakan saat membuat laravel_user (lulus ujian dalam kueri). Setelah Anda masuk ke konsol MySQL sebagai laravel_user, konfirmasikan bahwa pengguna memiliki akses ke laravel basis data dengan menjalankan:

TAMPILKAN DATABASES;
Keluaran: +--------------------+ | Basis Data | +--------------------+ | laravel | | informasi_skema | +--------------------+ 2 baris dalam set (0,01 detik)

Output di atas mengkonfirmasi bahwa pengguna MySQL laravel_user memiliki izin ke database laravel. Keluar dari konsol MySQL menggunakan KELUAR; query sehingga kami dapat melanjutkan untuk membuat aplikasi DemoApp Laravel.

Menginstal Laravel

Kerangka kerja Laravel menggunakan Komposer untuk mengunduh dan mengelola dependensinya. Jadi, kita perlu menginstal Composer di mesin Ubuntu 20.04 kita sebelum kita dapat membuat aplikasi Laravel.

Instal Komposer

Composer adalah alat pengelola ketergantungan untuk PHP, yang membuat pemasangan dan pembaruan kerangka kerja dan pustaka PHP menjadi lebih mudah. Kita akan melihat cara menginstal Composer dengan cepat dalam tutorial ini sehingga kita dapat menggunakannya untuk mengunduh dan mengelola framework Laravel.

Anda perlu menginstal beberapa paket tambahan yang diperlukan oleh Komposer untuk berfungsi seperti: php-cli untuk menjalankan skrip PHP di terminal dan buka ritsleting untuk membantu Komposer mengekstrak paket. Instal keduanya dengan menjalankan:

sudo apt install php-cli unzip

Kemudian untuk menginstal Composer secara global, unduh skrip instalasi Composer dengan keriting dan instal menggunakan perintah berikut:

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Terakhir, verifikasi bahwa komposer diinstal dengan benar dengan menjalankan:

komposer
 ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ _/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Komposer versi 1.10.8 2020-06- 24 21:23:30 Penggunaan: perintah [opsi] [argumen]

Keluaran ini mengonfirmasi bahwa Komposer berfungsi dengan baik di server Ubuntu 20.04 Anda, Anda dapat mulai menggunakannya untuk menginstal dan mengelola kerangka kerja dan pustaka PHP.

Buat Aplikasi Laravel

Kami memiliki hampir semua yang diperlukan untuk membuat aplikasi Laravel di server Ubuntu 20.04 kami kecuali untuk beberapa ekstensi PHP. Instal ekstensi yang hilang ini menggunakan perintah berikut:

sudo apt install php-mbstring php-xml php-bcmath php-zip php-json

Sekarang, kita dapat menginstal Laravel dan membuat aplikasi Laravel baru dengan bantuan Composer. Pertama, pastikan Anda berada di direktori home pengguna Anda:

cd ~

Kemudian buat proyek Laravel baru menggunakan Composer's buat-proyek memerintah:

komposer create-project --prefer-dist laravel/laravel LaravelApp

Perintah di atas akan membuat proyek baru bernama LaravelApp dan juga akan menginstal dan mengkonfigurasi Laravel Framework untuk Anda. Anda akan melihat output yang mirip dengan ini:

Keluaran: Membuat proyek "laravel/laravel" di "./LaravelApp" Menginstal laravel/laravel (v7.12.0) Menginstal laravel/laravel (v7.12.0): Mengunduh (100%) Membuat proyek di /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Memuat repositori komposer dengan informasi paket Memperbarui dependensi (termasuk require-dev) Operasi paket: 97 penginstalan, 0 pembaruan, 0 penghapusan Menginstal voku/portable-ascii (1.5.2): Mengunduh (100%) Menginstal symfony/polyfill-ctype (v1 .17.1): Mengunduh (100%) Menginstal phpoption/phpoption (1.7.4): Mengunduh (100%) Menginstal vlucas/phpdotenv (v4.1.7): Mengunduh (100%) Menginstal symfony/css-selector (v5.1.2) : Mengunduh (100%) ....

Ketika instalasi selesai, pergi ke direktori root aplikasi dan kemudian jalankan Laravel's tukang perintah untuk memverifikasi bahwa semua komponen terpasang dengan benar:

cd LaravelApp/ php artisan
Keluaran: Laravel Framework 7.18.0 Penggunaan: perintah [opsi] [argumen] Opsi: -h, --help Tampilkan pesan bantuan ini -q, --quiet Jangan keluarkan pesan apa pun -V, --version Tampilkan versi aplikasi ini --ansi Paksa keluaran ANSI --no-ansi Nonaktifkan keluaran ANSI -n, --no-interaction Jangan ajukan pertanyaan interaktif --env[=ENV] Lingkungan perintah harus dijalankan di bawah -v|vv|vvv, --verbose Meningkatkan verbositas pesan: 1 untuk keluaran normal, 2 untuk keluaran bertele-tele dan 3 untuk debug ....

Keluaran ini mengonfirmasi bahwa penginstalan berhasil dan semua file ada di tempatnya dan alat baris perintah Laravel berfungsi dengan baik. Namun, kita masih perlu mengkonfigurasi aplikasi untuk mengatur database dan beberapa pengaturan lainnya.

Konfigurasi Aplikasi Laravel

File konfigurasi Laravel terletak di direktori bernama konfigurasi di dalam direktori root aplikasi. Selain itu, ketika kami menginstal Laravel melalui Composer, itu membuat file lingkungan bernama '.env' di direktori root aplikasi. File lingkungan mencakup konfigurasi khusus lingkungan dan lebih diutamakan daripada pengaturan di file konfigurasi biasa yang terletak di dalam direktori config.

Catatan: File konfigurasi lingkungan berisi informasi sensitif tentang server Anda seperti kata sandi basis data, kunci aplikasi Laravel, dll. Oleh karena itu, tidak boleh dibagikan secara publik.

Kami sekarang akan mengedit .env file untuk mengubah konfigurasi dan menambahkan kredensial database ke dalamnya. Buka file menggunakan editor nano dengan menjalankan:

nano .env

Ada banyak variabel konfigurasi dalam hal ini .env mengajukan. Kami tidak perlu mengubah masing-masing, karena Komposer telah mengonfigurasi sebagian besar pengaturan secara otomatis. Jadi, berikut adalah daftar beberapa variabel konfigurasi utama yang harus Anda ketahui:

  • NAMA APLIKASI: Nama aplikasi yang digunakan untuk notifikasi dan pesan, jadi kita akan menyetelnya ke 'LaravelApp'.
  • APP_ENV: Variabel ini digunakan untuk menunjukkan lingkungan aplikasi saat ini. Itu dapat diatur ke lingkungan lokal, pengembangan, pengujian atau produksi. Kami akan mengaturnya ke lingkungan pengembangan untuk saat ini.
  • APP_KEY: Kunci aplikasi unik yang digunakan untuk membuat garam dan hash untuk aplikasi web. Ini dibuat secara otomatis ketika Anda menginstal Laravel melalui Composer, jadi tidak perlu mengubahnya.
  • APP_DEBUG: Ini dapat diatur ke benar atau salah, tergantung pada apakah Anda ingin menampilkan kesalahan di sisi klien. Setel ke false saat Anda pindah ke lingkungan produksi.
  • APP_URL: URL atau IP dasar untuk aplikasi, ubah ke nama domain Anda jika Anda memilikinya untuk aplikasi Laravel Anda atau biarkan tidak tersentuh untuk saat ini.
  • DB_DATABASE: Nama database yang ingin Anda gunakan dengan aplikasi Laravel. Kita akan menggunakan database MySQL 'laravel' yang kita buat saat mengkonfigurasi MySQL.
  • DB_USERNAME: Nama pengguna untuk terhubung ke database. Kami akan menggunakan pengguna MySQL 'laravel_user' yang kami buat.
  • DB_PASSWORD: Kata sandi untuk terhubung ke database.
 APP_NAME= LaravelApp APP_ENV= perkembangan APP_KEY= base64:Application_unique_key APP_DEBUG=benar APP_URL= //domain_atau_IP LOG_CHANNEL=tumpukan DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME= laravel_user DB_PASSWORD= lulus ujian

Lakukan perubahan pada .env file yang sesuai dan ketika Anda selesai mengedit, simpan dan keluar dari file dengan menggunakan CTRL+X lalu tekan kamu dan tekan enter untuk konfirmasi. Sekarang, yang tersisa hanyalah mengkonfigurasi server Apache dan membuat virtual host untuk aplikasi Laravel kita.

Menyiapkan Server Web Apache

Kami telah menginstal Laravel di folder lokal direktori home pengguna. Meskipun ini berfungsi dengan baik untuk pengembangan lokal, praktik yang disarankan adalah memiliki direktori aplikasi web yang terletak di /var/www. Alasan mengapa kami tidak menginstal Laravel di /var/www langsung karena dimiliki oleh root dan Komposer tidak boleh digunakan dengan sudo.

Jadi gunakan mv perintah untuk memindahkan folder aplikasi Laravel dan isinya ke /var/www:

sudo mv ~/Laravel/ /var/www

Direktori LaravelApp dimiliki oleh pengguna, sehingga Anda masih dapat mengedit dan membuat perubahan pada file tanpa menggunakan sudo memerintah. Tetapi server web Apache memerlukan akses ke cache dan direktori penyimpanan aplikasi karena Laravel menyimpan file yang dihasilkan aplikasi di dalamnya. Ubah pemilik folder ini menjadi www-data pengguna menggunakan chown memerintah:

sudo chown -R www-data.www-data /var/www/LaravelApp/storage Sudo chown -R www-data.www-data /var/www/LaravelApp/bootstrap/cache

Setelah mengubah pemilik direktori ini, aktifkan Apache's mod_rewrite karena diperlukan oleh Laravel untuk mengubah URL dengan benar untuk ditafsirkan oleh fungsi peruteannya melalui .htaccess mengajukan.

sudo a2enmod menulis ulang

Selanjutnya, kita perlu menyiapkan virtual host untuk aplikasi Laravel. Konfigurasi virtual host terletak di /etc/Apache2/sites-available. Kita akan mengedit file host virtual default untuk menyebarkan aplikasi Laravel. Buka file konfigurasi host virtual default menggunakan editor nano:

sudo nano /etc/Apache2/sites-available/000-default.conf

Ubah root dokumen dari /var/www/html ke /var/www/LaravelApp/public dan tambahkan cuplikan berikut di bawah baris DocumentRoot:

 AllowOverride Semua 

Milikmu 000-default.conf harus terlihat seperti ini sekarang dengan beberapa komentar.

 ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log digabungkan 

Restart web server Apache dengan menjalankan perintah berikut:

sudo systemctl restart Apache2

Sekarang buka browser Anda dan ketik alamat IP server Ubuntu 20.04 Anda. Anda akan melihat halaman awal Laravel alih-alih halaman selamat datang default Apache.

Dengan asumsi Anda telah mengikuti panduan ini sejauh ini, Anda harus memiliki aplikasi Laravel yang berfungsi dengan database MySQL yang disebut laravel untuk itu. Dari titik ini, Anda dapat mulai mengembangkan aplikasi Laravel Anda sendiri. Untuk mempelajari lebih lanjut tentang kerangka kerja Laravel dan penggunaannya, kunjungi halaman dokumen Laravel.