Semua yang anda perlu ketahui untuk menggunakan aplikasi web Laravel pada mesin Ubuntu 20.04 LTS
Laravel ialah rangka kerja PHP sumber terbuka yang sangat popular dengan sintaks ekspresif dan elegan yang digunakan untuk mereka bentuk aplikasi web yang moden dan cantik. Laravel bertujuan untuk menghilangkan kesakitan pembangunan web dan menjadikannya pengalaman yang menyeronokkan dan kreatif, menjadikan pembangun web menjadi tukang web.
Dalam panduan ini, anda akan belajar cara memasang Laravel dengan tindanan LAMP pada pelayan Ubuntu 20.04 untuk membolehkan aplikasi web anda berfungsi & berjalan.
Prasyarat
Untuk mengikuti panduan ini, anda memerlukan pelayan Ubuntu 20.04 LTS dan dilog masuk sebagai a sudo
pengguna. Sebelum kita mula, kemas kini dan tingkatkan pakej Ubuntu 20.04 dengan menjalankan:
kemas kini sudo apt && peningkatan sudo apt
Memasang LAMP Stack
LAMP ialah akronim untuk L sistem pengendalian inux, A pelayan web pache, M pangkalan data ySQL dan P bahasa pengaturcaraan HP. Kami sudah pun menggunakan Ubuntu 20.04 yang menandakan Linux dalam tindanan LAMP. Jadi kami akan memasang baki tiga pakej untuk melengkapkan tindanan LAMP untuk aplikasi Laravel kami.
Tiada pakej meta tersedia untuk memasang tindanan LAMP dalam repositori Ubuntu 20.04. Tetapi kita boleh menggunakan ciri kecil yang kemas apt
pengurus pakej dipanggil tugas. Tugas dilambangkan menggunakan nama tugas yang ada dengan kadet (^
) dilampirkan kepadanya.
sudo apt install lamp-server^
Perintah ini akan mencari fail senarai pakej untuk semua medan "Tugas:" dan memasang semua pakej dengan "pelayan lampu" dalam medan tugasnya. Jadi tindanan LAMP yang terdiri daripada pakej Apache, MySQL dan PHP dengan semua kebergantungan mereka akan dipasang pada pelayan Ubuntu anda.
Konfigurasi Firewall
Sebaik sahaja anda telah memasang tindanan LAMP, anda juga perlu mengkonfigurasi tembok api tidak rumit (UFW) dan menukar peraturannya supaya anda boleh mengakses pelayan Apache dari internet.
UFW menyediakan profil aplikasi mudah yang boleh digunakan untuk menukar peraturan dan menogol trafik pada port rangkaian. Jalankan arahan berikut untuk menyenaraikan semua aplikasi yang mengakses port rangkaian:
senarai apl sudo ufw
Anda akan melihat output seperti ini:
Aplikasi yang tersedia: Apache Apache Full Apache Secure OpenSSH
Port rangkaian yang dibuka oleh profil ini pada pelayan Ubuntu 20.04 anda disenaraikan di bawah:
- Apache: Profil ini hanya membuka port
80
(membenarkan trafik HTTP) - Apache Full: Profil ini membuka kedua-duanya
80
&443
port (membenarkan trafik HTTP & HTTPS) - Apache Secure: Profil ini hanya membuka port
443
(membenarkan trafik HTTPS) - OpenSSH: Profil ini membuka port
22
yang membenarkan protokol SSH
Anda perlu mendayakan profil 'Apache Full' yang akan membenarkan trafik ke pelayan web Apache dari internet. Selain itu, anda juga perlu mendayakan profil 'OpenSSH' yang membenarkan trafik pada port 22
(SSH) pada pelayan Ubuntu 20.04 anda. Jika anda mendayakan UFW tanpa membenarkan profil 'OpenSSH' anda tidak akan dapat menyambung ke pelayan anda menggunakan SSH.
Untuk menukar peraturan UFW dan membenarkan trafik pada port 80
dan 22
, jalankan:
sudo ufw benarkan 'Apache Full' sudo ufw benarkan 'OpenSSH'
Kemudian dayakan tembok api UFW menggunakan arahan berikut:
sudo ufw enable
Anda mungkin mendapat gesaan yang mengatakan "perintah mungkin mengganggu sambungan ssh sedia ada. Teruskan dengan operasi (y|n)?”. Tekan Y
untuk meneruskan kerana kami telah menambah peraturan untuk membenarkan SSH dalam UFW.
Kini anda boleh mengakses halaman web lalai Apache menggunakan alamat IP pelayan Ubuntu anda dari internet. Untuk berbuat demikian, buka penyemak imbas anda dan taip alamat IP pelayan Ubuntu 20.04 anda dalam bar URL dan tekan enter.
//Your_ubuntu_server_ip
Halaman ini mengesahkan bahawa pelayan web Apache berjalan dengan betul dan peraturan UFW disediakan dengan betul.
Menyediakan Pangkalan Data MySQL untuk Laravel
Laravel 7 menjadikan interaksi dengan pangkalan data sangat mudah merentasi pelbagai bahagian belakang pangkalan data yang disokongnya seperti MySQL versi 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ dan SQL Server 2017+. Kami sudah mempunyai pakej MySQL terkini yang dipasang dengan lampu-pemutus^
tugasan. Jadi dalam bahagian ini, kami akan mengkonfigurasi pelayan MySQL dan kemudian melihat bagaimana untuk menyediakan pengguna dan pangkalan data MySQL baharu untuk aplikasi Laravel.
Konfigurasikan MySQL
Pangkalan data MySQL disertakan dengan skrip keselamatan yang diprapasang yang boleh digunakan untuk mengalih keluar beberapa tetapan lalai yang tidak selamat. Adalah disyorkan agar anda menjalankan skrip ini sebelum anda menggunakan aplikasi Laravel anda.
sudo mysql_secure_installation
Perintah di atas akan melaksanakan skrip keselamatan yang akan meminta anda beberapa siri soalan untuk mengkonfigurasi pelayan MySQL.
Pertama, anda akan ditanya sama ada anda ingin menyediakan SAHKAN KATA LALUAN
pasangkan. Pemalam ini menyemak kata laluan anda dan meletakkannya sebagai selamat atau tidak selamat berdasarkan tahap dasar pengesahan kata laluan yang akan anda pilih tidak lama lagi. Jadi tekan Y jika anda ingin mendayakan pemalam ini.
Pengeluaran: Menjamin penggunaan pelayan MySQL. Menyambung ke MySQL menggunakan kata laluan kosong. SAHKAN KOMPONEN KATA LALUAN boleh digunakan untuk menguji kata laluan dan meningkatkan keselamatan. Ia menyemak kekuatan kata laluan dan membenarkan pengguna menetapkan hanya kata laluan yang cukup selamat. Adakah anda ingin menyediakan komponen SAHKAN KATA LALUAN? Tekan y|Y untuk Ya, sebarang kekunci lain untuk Tidak: Y
Kemudian tetapkan tahap dasar pengesahan kata laluan dengan sama ada memasukkan 0
, 1
atau 2
bergantung pada seberapa kuat anda ingin mencipta kata laluan anda untuk pangkalan data anda.
Pengeluaran: Terdapat tiga peringkat dasar pengesahan kata laluan: Panjang RENDAH >= 8 Panjang SEDERHANA >= 8, angka, huruf besar bercampur dan aksara khas Panjang KUAT >= 8, angka, huruf besar bercampur, aksara khas dan fail kamus Sila masukkan 0 = RENDAH, 1 = SEDERHANA dan 2 = KUAT: 2
Seterusnya, anda akan diminta memasukkan kata laluan baharu untuk pengguna root MySQL. Masukkan kata laluan yang sesuai untuk akar MySQL anda. Pemalam VALIDATE PASSWORD akan memberikan anda anggaran kekuatan kata laluan anda mengikut tahap pengesahan kata laluan anda. Tekan Y
untuk meneruskan kata laluan yang anda berikan.
Pengeluaran: Sila tetapkan kata laluan untuk root di sini. Kata laluan baharu: Masukkan semula kata laluan baharu: Anggaran kekuatan kata laluan: 100 Adakah anda ingin meneruskan kata laluan yang disediakan? (Tekan y|Y untuk Ya, sebarang kekunci lain untuk Tidak) : Y
Tekan Y
untuk selebihnya gesaan, mereka akan mengalih keluar beberapa pengguna tanpa nama dan pangkalan data ujian, melumpuhkan log masuk akar jauh dan memuat semula tetapan baharu untuk pelayan MySQL. Apabila anda selesai, uji pangkalan data anda dengan menjalankan:
sudo mysql
Perintah di atas akan membuka konsol MySQL, menyambung ke pangkalan data MySQL sebagai akar pengguna. Anda akan melihat output seperti ini:
Pengeluaran: Selamat datang ke monitor MySQL. Perintah berakhir dengan ; atau \g. Id sambungan MySQL anda ialah 10 versi Pelayan: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Hak Cipta (c) 2000, 2020, Oracle dan/atau ahli gabungannya. Hak cipta terpelihara. Oracle ialah tanda dagangan berdaftar Oracle Corporation dan/atau ahli gabungannya. Nama lain mungkin merupakan tanda dagangan pemilik masing-masing. Taip 'help;' atau '\h' untuk mendapatkan bantuan. Taip '\c' untuk mengosongkan penyata input semasa. mysql>
Anda mungkin perasan bahawa anda tidak perlu memasukkan kata laluan yang telah anda tetapkan untuk pengguna root MySQL. Ini kerana kaedah pengesahan lalai untuk pengguna akar MySQL pentadbiran ialah caching_sha2_authentication
bukannya mysql_native_password
kaedah yang menggunakan kata laluan untuk log masuk.
Jadi secara lalai, anda hanya boleh log masuk sebagai pengguna root MySQL dengan sudo
membolehkan pengguna yang bertindak sebagai keselamatan tambahan untuk pelayan MySQL. Tetapi perpustakaan MySQL PHP tidak menyokong caching_sha2_authentication
kaedah. Oleh itu kita perlu menggunakan mysql_native_password
kaedah apabila kami mencipta pengguna baharu untuk Laravel kerana ia menggunakan kata laluan untuk menyambung & berinteraksi dengan pangkalan data.
Cipta Pengguna & Pangkalan Data MySQL Baharu
Ia sentiasa menjadi amalan yang baik untuk mencipta pengguna baharu dan pangkalan data khusus untuk aplikasi anda dan bukannya menggunakan pangkalan data pengguna akar MySQL dan pangkalan data ujian. Jadi kami akan menyediakan pengguna MySQL baharu yang dipanggil pengguna_laravel
dan pangkalan data dipanggil laravel
. Jika anda telah mengikuti tutorial hingga ke tahap ini, anda harus membuka konsol MySQL. Untuk mencipta pengguna dipanggil pengguna_laravel
jalankan pertanyaan berikut dalam konsol MySQL:
Nota: Gantikan pas ujian
dalam pertanyaan MySQL di bawah dengan kata laluan yang kuat.
CIPTA PENGGUNA 'laravel_user'@'%' DIKENALPASTI DENGAN mysql_native_password OLEH 'testpass';
Seterusnya, buat pangkalan data yang dipanggil laravel
untuk aplikasi Laravel kami dengan menjalankan pertanyaan ini:
CIPTA PANGKALAN DATA laravel;
Hanya pengguna akar MySQL mempunyai kebenaran ke laravel pangkalan data yang baru dibuat. Berikan semua kebenaran ke atas laravel
pangkalan data kepada pengguna_laravel
dengan berlari:
BERIKAN SEMUA PADA laravel.* KEPADA 'laravel_user'@'%';
Jadi, kami kini mempunyai pengguna MySQL baharu dan pangkalan data, keluar dari konsol MySQL dengan menjalankan:
KELUAR;
Uji pengguna MySQL baharu anda dengan log masuk ke konsol MySQL dengannya, untuk berbuat demikian jalankan arahan ini dalam terminal:
mysql -u laravel_user -p
Perhatikan -hlm
bendera dalam arahan, ia akan meminta anda untuk kata laluan yang anda gunakan semasa mencipta pengguna_laravel
(pas ujian
dalam pertanyaan). Selepas anda log masuk ke konsol MySQL sebagai pengguna_laravel
, sahkan bahawa pengguna mempunyai akses kepada laravel
pangkalan data dengan menjalankan:
TUNJUKKAN PANGKALAN DATA;
Pengeluaran: +--------------------+ | Pangkalan Data | +--------------------+ | laravel | | skema_maklumat | +---------------------+ 2 baris dalam set (0.01 saat)
Output di atas mengesahkan bahawa pengguna MySQL pengguna_laravel
mempunyai kebenaran ke pangkalan data laravel
. Keluar dari konsol MySQL menggunakan KELUAR;
pertanyaan supaya kami boleh meneruskan untuk mencipta aplikasi DemoApp Laravel.
Memasang Laravel
Rangka kerja Laravel menggunakan Komposer untuk memuat turun dan mengurus kebergantungannya. Jadi, kami perlu memasang Komposer pada mesin Ubuntu 20.04 kami sebelum kami boleh mencipta aplikasi Laravel.
Pasang Komposer
Komposer ialah alat pengurus pergantungan untuk PHP, yang menjadikan pemasangan dan pengemaskinian rangka kerja dan perpustakaan PHP lebih mudah. Kami akan melihat cara memasang Komposer dengan cepat dalam tutorial ini supaya kami boleh menggunakannya untuk memuat turun dan mengurus rangka kerja Laravel.
Anda perlu memasang beberapa pakej tambahan yang diperlukan oleh Komposer untuk berfungsi seperti php-cli
untuk menjalankan skrip PHP dalam terminal dan buka zip
untuk membantu Komposer mengekstrak pakej. Pasang kedua-duanya dengan menjalankan:
sudo apt install php-cli unzip
Kemudian untuk memasang Komposer secara global, muat turun skrip pemasangan Komposer dengan keriting
dan pasangkannya menggunakan arahan berikut:
curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Akhir sekali, sahkan bahawa komposer dipasang dengan betul dengan menjalankan:
komposer
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Versi komposer 1.10.8 2020-06- 24 21:23:30 Penggunaan: perintah [pilihan] [argumen]
Output ini mengesahkan bahawa Komposer berfungsi dengan betul pada pelayan Ubuntu 20.04 anda, anda boleh mula menggunakannya untuk memasang dan mengurus rangka kerja dan perpustakaan PHP.
Buat Aplikasi Laravel
Kami mempunyai segala-galanya yang diperlukan untuk mencipta aplikasi Laravel pada pelayan Ubuntu 20.04 kami kecuali untuk beberapa sambungan PHP. Pasang sambungan yang hilang ini menggunakan arahan berikut:
sudo apt install php-mbstring php-xml php-bcmath php-zip php-json
Kini, kita boleh memasang Laravel dan mencipta aplikasi Laravel baharu dengan bantuan Komposer. Mula-mula, pastikan anda berada dalam direktori rumah pengguna anda:
cd ~
Kemudian buat projek Laravel baharu menggunakan Komposer cipta-projek
perintah:
komposer create-project --prefer-dist laravel/laravel LaravelApp
Perintah di atas akan mencipta projek baharu yang dipanggil sebagai LaravelApp dan ia juga akan memasang dan mengkonfigurasi Rangka Kerja Laravel untuk anda. Anda akan melihat output yang serupa dengan ini:
Pengeluaran: Mencipta projek "laravel/laravel" di "./LaravelApp" Memasang laravel/laravel (v7.12.0) Memasang laravel/laravel (v7.12.0): Memuat turun (100%) Projek yang dibuat dalam /home/ath/LaravelApp @php - r "fail_wujud('.env') || copy('.env.example', '.env');" Memuatkan repositori komposer dengan maklumat pakej Mengemas kini kebergantungan (termasuk memerlukan-dev) Operasi pakej: 97 pemasangan, 0 kemas kini, 0 pengalihan keluar Memasang voku/portable-ascii (1.5.2): Memuat turun (100%) Memasang symfony/polyfill-ctype (v1 .17.1): Memuat turun (100%) Memasang phpoption/phpoption (1.7.4): Memuat turun (100%) Memasang vlucas/phpdotenv (v4.1.7): Memuat turun (100%) Memasang symfony/css-selector (v5.1.2) : Memuat turun (100%) ....
Apabila pemasangan selesai, pergi ke direktori akar aplikasi dan kemudian jalankan Laravel tukang
arahan untuk mengesahkan bahawa semua komponen dipasang dengan betul:
cd LaravelApp/ php artisan
Pengeluaran: Rangka Kerja Laravel 7.18.0 Penggunaan: arahan [options] [argumen] Pilihan: -h, --help Paparkan mesej bantuan ini -q, --quiet Jangan keluarkan sebarang mesej -V, --version Paparkan versi aplikasi ini --ansi Paksa keluaran ANSI --no-ansi Lumpuhkan keluaran ANSI -n, --no-interaction Jangan tanya sebarang soalan interaktif --env[=ENV] Persekitaran arahan harus dijalankan di bawah -v|vv|vvv, --verbose Increase verbositi mesej: 1 untuk keluaran biasa, 2 untuk keluaran lebih bertele-tele dan 3 untuk nyahpepijat ....
Output ini mengesahkan bahawa pemasangan telah berjaya dan semua fail telah disediakan dan alat baris arahan Laravel berfungsi dengan baik. Walau bagaimanapun, kami masih perlu mengkonfigurasi aplikasi untuk menyediakan pangkalan data dan beberapa tetapan lain.
Konfigurasi Aplikasi Laravel
Fail konfigurasi Laravel terletak dalam direktori yang dipanggil konfigurasi
di dalam direktori akar aplikasi. Selain itu, apabila kami memasang Laravel melalui Komposer, ia mencipta fail persekitaran yang dipanggil '.env' dalam direktori akar aplikasi. Fail persekitaran termasuk konfigurasi khusus persekitaran dan ia diutamakan berbanding tetapan dalam fail konfigurasi biasa yang terletak di dalam direktori konfigurasi.
Nota: Fail konfigurasi persekitaran mengandungi maklumat sensitif tentang pelayan anda seperti kata laluan pangkalan data, kekunci aplikasi Laravel dll. Oleh itu, ia tidak boleh dikongsi secara terbuka.
Kami kini akan mengedit .env
fail untuk menukar konfigurasi dan menambah bukti kelayakan pangkalan data kepadanya. Buka fail menggunakan editor nano dengan menjalankan:
nano .env
Terdapat banyak pembolehubah konfigurasi dalam ini .env
fail. Kami tidak perlu menukar setiap satu daripadanya, kerana Komposer telah mengkonfigurasi kebanyakan tetapan secara automatik. Jadi, berikut ialah senarai beberapa pembolehubah konfigurasi utama yang mesti anda ketahui:
APP_NAME
: Nama aplikasi yang digunakan untuk pemberitahuan dan mesej, jadi kami akan menetapkannya kepada 'LaravelApp'.APP_ENV
: Pembolehubah ini digunakan untuk menunjukkan persekitaran aplikasi semasa. Ia boleh ditetapkan kepada persekitaran tempatan, pembangunan, ujian atau pengeluaran. Kami akan menetapkannya kepada persekitaran pembangunan buat masa ini.APP_KEY
: Kunci aplikasi unik yang digunakan untuk mencipta garam dan cincang untuk apl web. Ia dijana secara automatik apabila anda memasang Laravel melalui Komposer, jadi tidak perlu mengubahnya.APP_DEBUG
: Ia boleh ditetapkan kepada sama ada benar atau salah, bergantung pada jika anda ingin memaparkan ralat pada sisi klien. Tetapkannya kepada palsu apabila anda beralih ke persekitaran pengeluaran.APP_URL
: URL atau IP asas untuk aplikasi, tukarkannya kepada nama domain anda jika anda mempunyai satu untuk apl Laravel anda atau biarkan ia tidak disentuh buat masa ini.DB_DATABASE
: Nama pangkalan data yang anda ingin gunakan dengan aplikasi Laravel. Kami akan menggunakan pangkalan data MySQL 'laravel' yang kami buat semasa mengkonfigurasi MySQL.DB_USERNAME
: Nama pengguna untuk menyambung ke pangkalan data. Kami akan menggunakan pengguna MySQL 'laravel_user' yang kami buat.DB_PASSWORD
: Kata laluan untuk menyambung ke pangkalan data.
APP_NAME=LaravelApp
APP_ENV=pembangunan
APP_KEY=base64:Application_unique_key
APP_DEBUG=benar APP_URL=//domain_atau_IP
LOG_CHANNEL=tindanan DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=pengguna_laravel
DB_PASSWORD=pas ujian
Buat perubahan pada .env
fail dengan sewajarnya dan apabila anda selesai mengedit, simpan dan keluar fail dengan menggunakan CTRL+X
kemudian tekan Y
dan tekan enter untuk mengesahkan. Kini, yang tinggal hanyalah mengkonfigurasi pelayan Apache dan mencipta hos maya untuk aplikasi Laravel kami.
Menyediakan Pelayan Web Apache
Kami telah memasang Laravel dalam folder tempatan direktori rumah pengguna. Walaupun ini berfungsi dengan baik untuk pembangunan tempatan, amalan disyorkan untuk menempatkan direktori aplikasi web /var/www
. Sebab mengapa kami tidak memasang Laravel /var/www
secara langsung adalah kerana ia dimiliki oleh root dan Komposer tidak boleh digunakan dengan sudo
.
Jadi gunakan mv
arahan untuk mengalihkan folder aplikasi Laravel dan kandungannya ke /var/www
:
sudo mv ~/Laravel/ /var/www
Direktori LaravelApp dimiliki oleh pengguna, jadi anda masih boleh mengedit dan membuat perubahan pada fail tanpa menggunakan sudo
perintah. Tetapi pelayan web Apache memerlukan akses kepada cache dan direktori storan aplikasi kerana Laravel menyimpan fail yang dijana aplikasi di dalamnya. Tukar pemilik folder ini kepada www-data
pengguna menggunakan chown
perintah:
sudo chown -R www-data.www-data /var/www/LaravelApp/storage sudo chown -R www-data.www-data /var/www/LaravelApp/bootstrap/cache
Selepas menukar pemilik direktori ini, dayakan Apache mod_rewrite
kerana ia dikehendaki oleh Laravel untuk mengubah URL dengan betul untuk ditafsirkan oleh fungsi penghalaannya melalui .htaccess
fail.
sudo a2enmod tulis semula
Seterusnya, kita perlu menyediakan hos maya untuk aplikasi Laravel. Konfigurasi hos maya terletak di /etc/apache2/sites-available
. Kami akan mengedit fail hos maya lalai untuk menggunakan aplikasi Laravel. Buka fail konfigurasi hos maya lalai menggunakan editor nano:
sudo nano /etc/apache2/sites-available/000-default.conf
Tukar akar dokumen daripada /var/www/html
kepada /var/www/LaravelApp/public
dan tambahkan coretan berikut di bawah baris DocumentRoot:
AllowOverride Semua
awak 000-default.conf
sepatutnya kelihatan seperti ini sekarang dengan sedikit ulasan.
ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log digabungkan
Mulakan semula pelayan web Apache dengan menjalankan arahan berikut:
sudo systemctl mulakan semula apache2
Sekarang pergi ke penyemak imbas anda dan taip alamat IP pelayan Ubuntu 20.04 anda. Anda akan melihat halaman mula Laravel dan bukannya halaman alu-aluan Apache lalai.
Dengan mengandaikan anda telah mengikuti panduan ini setakat ini, anda sepatutnya mempunyai aplikasi Laravel yang berfungsi dengan pangkalan data MySQL dipanggil laravel
untuk ia. Dari sudut ini, anda boleh mula membangunkan aplikasi Laravel anda sendiri. Untuk mengetahui lebih lanjut tentang rangka kerja Laravel dan penggunaannya, lawati halaman dokumen Laravel.