Basic stuff
sudo apt-get install git
sudo apt-get install zip
LAMP
sudo apt-get install tasksel
sudo tasksel install lamp-server
CURL
sudo apt-get install curl php-curl php-mcrypt php-mbstring php-gettext
Enable mods
sudo phpenmod mcrypt
sudo phpenmod mbstring
sudo a2enmod rewrite
sudo systemctl restart apache2
Install Composer
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Composer (test installation)
composer
Composer (optional)
composer install
If composer.lock exists, composer installs exactly what is in the composer.lock
composer update
Installs dependencies from composer.json and creates or updates composer.lock
Install phpmyadmin
sudo apt-get install phpmyadmin
Permission issue
Ensure your user is able to write to your ~/.composer and /var/www/ directory
sudo usermod -aG www-data kim
sudo chown -R www-data:www-data /var/www/
sudo chmod 775 /var/www/xyz.com
Creating Laravel Project
cd /var/www/html/
composer create-project laravel/laravel work --prefer-dist
sudo chmod -R 777 work
Creating Virtual Host work.com
sudo gedit/etc/apache2/sites-available/work.com.conf
<VirtualHost *:80>
ServerName work.com
DocumentRoot /var/www/html/work/public
<Directory /var/www/html/work/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Enable that site
sudo a2ensite work.com.conf
service apache2 reload
Common artisan operations
#Clear view
php artisan view:clear
#Clear cache
php artisan cache:clear
#Make controller
php artisan make:controller CardsController
#Create database table cards & notes
php artisan make:migration create_cards_table --create=cards
php artisan make:migration create_notes_table --create=notes
php artisan make:migration create_users_table --create=users
#migrate
php artisan migrate
#Make model
php artisan make:model Note
# listen to sql query
DB::listen(function($query) {var_dump($query->sql);});
Model relationship example
Card has many notes
class Card extends Model
{
public function notes(){
return $this->hasMany(Note::class);
}
}
Notes belong to Card
class Note extends Model
{
public function card(){
return $this->belongsTo(Card::class);
}
}