Monday, September 23, 2019

Permanent DNS setup on Ubuntu 18

  1. Install the resolvconf package.
    sudo apt install resolvconf
  2. Edit /etc/resolvconf/resolv.conf.d/head and add the following:
    # Make edits to /etc/resolvconf/resolv.conf.d/head.
    nameserver 8.8.4.4
    nameserver 8.8.8.8
  3. Restart the resolvconf service.
    sudo service resolvconf restart

Saturday, July 20, 2019

Ubuntu route configuration

Clear route table: sudo ip route flush table main
Add default route: sudo route add default gw 192.168.1.1
Add route to certain subnet: sudo ip route add 0.0.0.0/0 dev ens33

Add route according to route table: sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
Add route via: sudo ip route add 192.168.1.0/24 via 192.168.1.1


Delete certain route:
sudo route del -net 192.168.1.0 gw 0.0.0.0 netmask 255.255.255.0
sudo route del -net 192.168.1.0 gw 0.0.0.0 netmask 255.255.255.0 dev ens33


Restart network service:  systemctl restart networking
Restart network manager: sudo service network-manager




Wednesday, July 3, 2019

To make /etc/network/interfaces effective after changing the file

When changing the file /etc/network/interfaces, there will be no immediate effect except reboot the system. You can run following commands to take effect.


sudo ifconfig ath0 down
sudo /etc/init.d/networking restart
sudo ifconfig ath0 up

Tuesday, March 12, 2019

Solving Network Manangement Disabled in Ubuntu

go to /etc/NetworkManager/nm-system-settings.conf

then set managed=false to managed=true

sudo service network-manager restart
if there is no change try

touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
sudo service network-manager restart

Tuesday, January 15, 2019

PhpMyAdmin has no export as SQL option problem

Find the Export.php file in the phpmyadmin display folder or something like this phpMyAdmin/libraries/classes/Display depending on type of OS and package.

find the text /* Scan for plugins */ and put the code above right below after the text

if (isset($_GET['single_table'])) { 
$GLOBALS['single_table'] = $_GET['single_table']; 
}

Good luck

Sunday, January 13, 2019

Error: Your requirements could not be resolved to an installable set of packages of composer

Solve by putting ignoring platform requirements
Example: composer require --prefer-dist victor78/yii2-zipper:"~0.0.4"
You will get error 

Your requirements could not be resolved to an installable set of packages. Installation failed, reverting ./composer.json to its original content.
So can by as follows: 
composer require --prefer-dist victor78/yii2-zipper:"~0.0.4" --ignore-platform-reqs 




Wednesday, December 16, 2015

Yii2: Login With MySQL Database

1. Create a Table named Login

CREATE TABLE IF NOT EXISTS `login` (

  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(30) NOT NULL,
  `password` varchar(30) NOT NULL,
  `authKey` varchar(50) NOT NULL,
  `accessToken` varchar(50) NOT NULL,
  `role` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

2. Insert sample data into the table

INSERT INTO `yii2`.`login` (`id`, `username`, `password`, `authKey`, `accessToken`, `role`) VALUES (NULL, 'john', 'john1234', 'key1234567', 'token1234567', '1');

3. Create Model for the table. You may use Gii to generate the model

<?php

namespace app\models;

use Yii;

/**
 * This is the model class for table "login".
 *
 * @property integer $id
 * @property string $username
 * @property string $password
 * @property string $authKey
 * @property string $accessToken
 * @property integer $role
 */
class Login extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'login';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['username', 'password', 'authKey', 'accessToken', 'role'], 'required'],
            [['role'], 'integer'],
            [['username', 'password'], 'string', 'max' => 30],
            [['authKey', 'accessToken'], 'string', 'max' => 50]
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'username' => 'Username',
            'password' => 'Password',
            'authKey' => 'Auth Key',
            'accessToken' => 'Access Token',
            'role' => 'Role',
        ];
    }

}


4. Open User.php file in models/User.php. Goto to findIdentity static function

Original code

public static function findIdentity($id)
{
   return isset(self::$users[$id]) ? new static(self::$users[$id]) : null;
}

Change to

public static function findIdentity($id)
{
   $user = Login::findOne($id);
   if(count($user)){
      return new static($user);
   }
   return null;
}

5. Change static function findIdentityByAccessToken

Original Code

public static function findIdentityByAccessToken($token, $type = null)
{
        foreach (self::$users as $user) {
            if ($user['accessToken'] === $token) {
                return new static($user);
            }
        }

        return null;
}


Change to

public static function findIdentityByAccessToken($token, $type = null)
{
        $user = Login::find()->where(['accessToken'=>$token])->one();
        if(count($user)){
            return new static($user);
        }
        return null;
}

6. Change static function findByUsername

Original Code

public static function findByUsername($username)
{
        foreach (self::$users as $user) {
            if (strcasecmp($user['username'], $username) === 0) {
                return new static($user);
            }
        }

        return null;
}

Change to


public static function findByUsername($username)
{
        $user = Login::find()->where(['username'=>$username])->one();
        if(count($user)){
            return new static($user);
        }
        return null;
}



7. Now you can test the login page with test data.