Cara Install Laravel 6 di Ubuntu 18.04
Laravel yang mengusung tag line The PHP Framework for Web Artisans, merupakan salah satu PHP framework yang paling populer saat ini yang banyak digunakan oleh para web developer termasuk web developer di Indonesia, selain itu Laravel sangat cepat perkembangannya. Laravel 6.0 baru saja dirilis pada tanggal 3 September 2019 kemarin dan versi ini merupakan versi LTS (Long Term Support) di mana untuk bug fix sampai 3 September 2021 dan security fix sampai 3 September 2022. Informasi rilis Laravel 6.0 secara detail dapat dibaca di Release Notes.
0.Environment Lab
Dalam membuat tutorial ini saya menggunakan:
- OS: Ubuntu 18.04
- Public IP: 45.77.168.93
- Web server: Apache
- Database: MariaDB 10.4
- PHP version: 7.2
- Composer
- NPM
- Laravel version: Laravel 6.0
- User server: musaamin
- Domain: laravel.web
1.Server Requirements
Sebelum install Laravel 6.0, terlebih dahulu kita harus mengetahui server requirements yang dibutuhkannya. Semua requirements ini sebenarnya sudah terpenuhi di Laravel Homestead, sebuah web server untuk development environment Laravel yang berjalan di virtual machine.
Berikut spesifikasi PHP yang dibutuhkan oleh Laravel 6.0.
- PHP >= 7.2.0
- BCMath PHP Extension
- Ctype PHP Extension
- JSON PHP Extension
- Mbstring PHP Extension
- OpenSSL PHP Extension
- PDO PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
2.Membuat User
User baru ini dibuat jika belum memiliki user lain selain root (misalnya di VPS). User ini yang akan menjadi pemilik dari direktori dan file Laravel. Jika sudah memiliki user, lewati langkah ini.
1 2 3 | adduser musaamin usermod -aG sudo musaamin su -l musaamin |
3.Install Apache
Selanjutnya install web server Apache.
1 | sudo apt install apache2 -y |
Cek status service apache2 apakah sudah berjalan.
1 | sudo systemctl status apache2 |
Browsing http://localhost atau http://ip-server untuk menguji apakah web server sudah bisa diakses.
4.Install PHP
Selanjutnya install PHP beserta extension yang dibutuhkan.
1 | sudo apt install php php-common php-bcmath php-mbstring php-mysql php-tokenizer php-zip -y |
Restart service apache2.
1 | sudo systemctl restart apache2 |
Cek hasil install PHP sekaligus menampilkan versinya.
1 2 3 4 5 6 | php -v PHP 7.2.19-0ubuntu0.18.04.2 (cli) (built: Aug 12 2019 19:34:28) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.19-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies |
Terlihat versi yang terpasang adalah PHP 7.2.19, sudah memenuhi server requirements yang membutuhkan minimal versi 7.2.0.
Selanjutnya buat file pengujian PHP yang berisi informasi PHP yang terpasang.
1 | sudo nano /var/www/html/info.php |
Isi dengan
1 | <?php phpinfo(); ?> |
Save = CTRL + O, Exit = CTRL + X.
Lalu browsing http://localhost/info.php atau http://ip-server/info.php.
Periksa juga apakah PHP extension yang dibutuhkan sudah tersedia semua.
5.Install MariaDB
MariaDB adalah forking dari database MySQL.
Pasang repository MariaDB.
1 2 3 | sudo apt-get install software-properties-common sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://sgp1.mirrors.digitalocean.com/mariadb/repo/10.4/ubuntu bionic main' |
Install MariaDB.
1 2 | sudo apt update sudo apt install mariadb-server mariadb-client -y |
Jalankan mysql_secure_installation.
1 2 3 4 5 6 7 8 | sudo mysql_secure_installation Enter current password for root (enter for none): ENTER Set root password? [Y/n] y 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 |
Buat database khusus untuk project Laravel.
1 2 3 4 5 6 7 | sudo mysql -u root -p CREATE DATABASE laravel; CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON laravel.* TO 'laravel'@'localhost'; FLUSH PRIVILEGES; exit; |
6.Install Composer
Composer merupakan perangkat lunak package manager untuk PHP. Fungsinya mirip dengan package manager di distro Linux seperti Ubuntu, butuh script tertentu, dependensi, dan update cukup menggunakan Composer. Composer akan mengunduh script yang dibutuhkan. Pastikan koneksi internet yang digunakan stabil pada saat menjalankan perintah Composer.
Install composer.
1 2 3 | sudo apt install unzip curl -y curl https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer |
Uji hasil install composer.
1 | composer |
7.Install Laravel via Composer
Kalau belum ada swap di server buat swap file terlebih dahulu.
1 2 3 4 | sudo /bin/dd if=/dev/zero of=/var/swap bs=1M count=1024 sudo /sbin/mkswap /var/swap sudo /sbin/swapon /var/swap sudo chmod 600 /var/swap |
Buat direktori untuk project Laravel.
1 2 3 | sudo mkdir /var/www/laravel sudo chown $USER:www-data /var/www/laravel cd /var/www/laravel |
Install Laravel 6.0 via Composer.
1 | composer create-project laravel/laravel . 6.x |
Set hak akses atau permission untuk direktori storage dan bootstrap/cache.
1 2 | sudo chown -R $USER:www-data storage bootstrap/cache sudo chmod -R 775 storage bootstrap/cache |
Uji coba menjalankan Laravel dengan development server.
1 | php artisan serve |
Lalu browsing http://localhost:8000 atau http://127.0.0.1:8000.
Kalau install Laravel di server (VPS) dan mau mengaksesnya menggunakan Public IP, tambahkan opsi host yang berisi Public IP dari server dan nomor port yang ingin digunakan.
1 | php artisan serve --host=45.77.168.93 --port=8080 |
Tekan CTRL + C untuk menghentikan development server.
8.Setting Apache Virtual Host
Selanjutnya membuat virtual host untuk project Laravel. Kalau sudah memiliki domain, arahkan domain ke Public IP milik server. Kalau belum atau menggunakan localhost / komputer sendiri bisa edit file /etc/hosts.
Membuat file virtual host.
1 | sudo nano /etc/apache2/sites-available/laravel.web.conf |
Isi dengan
1 2 3 4 5 6 7 8 9 10 11 12 | <VirtualHost *:80> ServerName www.laravel.web ServerAlias laravel.web DocumentRoot /var/www/laravel/public <Directory /var/www/laravel/public> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> ErrorLog /var/log/apache2/laravel.web.error.log CustomLog /var/log/apache2/laravel.web.access.log combined </VirtualHost> |
Aktifkan virtual host dan restart service.
1 2 3 | sudo a2enmod rewrite sudo a2ensite laravel.web sudo systemctl restart apache2 |
Edit file /etc/hosts di komputer client yang akan mengakses website Laravel.
1 | sudo nano /etc/hosts |
Tambahkan ip-server laravel.web www.laravel.web.
1 2 3 4 5 | #Server local 127.0.0.1 laravel.web www.laravel.web #Kalau Public IP 45.77.168.93 laravel.web www.laravel.web |
Browsing http://www.laravel.web.
9.Setting Database
Setting Laravel agar bisa mengakses database MySQL/MariaDB.
Buka file .env dan pasang koneksi databasenya.
1 | nano .env |
Koneksi database.
1 2 3 4 5 6 | DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel DB_PASSWORD=password |
Selanjutnya membuat fungsi register dan login di Laravel.
Jalankan migrate untuk membuat struktur tabel user.
1 | php artisan migrate |
Tambahkan package ui.
1 | composer require laravel/ui |
Setelah itu membuat halaman authentication dengan ui memakai Vue.js.
1 | php artisan ui vue --auth |
Install npm.
1 | sudo apt install npm -y |
Jalankan perintah npm.
1 2 | npm install npm run dev |
Browsing kembali domainnya, link REGISTER dan LOGIN sudah jadi. Uji coba membuat akun baru dan login.
Selamat mencoba 🙂
Maaf mas kurang 1 kayaknya, konfigurasi di domain nya gimana yah? arahin ke ip-servernya port 80 atau gimana? terima kasih
mau pakai domain internet? buat A record dan pasang IP server. dan buat virtual host seperti di tutorial, tinggal menyesuaikan nama domainnya.
Mas, langkah-2 sudah dilalui dan berhasil sampai pada : composer require Laravel/ui . Di sini ada error sbb ;
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
– Conclusion: remove laravel/framework v6.18.35
– Conclusion: don’t install laravel/framework v6.18.35
Apa yg harus saya lakukan mas, terimakasih sebelumnya
coba ini
Ya bisa mas tapi saya pakai yg ^2.0. Untuk npm install dan npm run dev juga error.
Tampilan laravelnya sih sudah muncul sesuai contoh. Terima kasih banyak mas.