How to configure virtual hosts on Apache on Windows

If you are using Apache on your Windows machine and want to set up virtual hosts so you can type something like this “www.myDomain.tst” in your browser and it’ll direct you to your local hosted site … you have to edit this file:

C:\WINDOWS\system32\drivers\etc\hosts

Add a new line with this text
127.0.0.1  myDomain

Open apache\conf\extra\httpd-vhosts.conf file and add these lines:

<VirtualHost *:80>
DocumentRoot path_to_your_document_root
ServerName myDomain
</VirtualHost>

Free DNS

There are a number of free DNS that you can use:

  • Google’s 8.8.8.8
  • Quad9’s 9.9.9.9
  • CloudFlare’s 1.1.1.1
  • OpenDNS  208.67.222.222
  • Norton 199.85.126.20
  • CleanBrowsing 185.228.168.168
  • Comodo DNS 8.26.56.26

Here is a good article comparing DNS for speed and features

For the speed results, The Top 5 DNS are:

Global Average Speed:

  1. CloudFlare: 4.98 ms
  2.  Google: 16.44 ms
  3.  Quad9: 18.25 ms
  4.  CleanBrowsing: 19.14 ms
  5.  Norton: 34.75 ms

 

How to send variable to wherehas function in Laravel

If you need to send variable to wherehas function , all you have to do it to use “use” .. here is an example…

To list the Users whom their posts are in certain langue .

$language = 3;
$users = Users::whereHas('posts', function ($query) use($language){
                    $query->where('language_id', $language);
                })->get();

Download a file using command line in Windows

If you want to download a file using only command line, you can create a batch file (.bat) with the following :

download.bat

@Echo OFF
SetLocal EnableDelayedExpansion
powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('http://www.source.com/test.txt', 'C:\destination\test.txt')

Of course you have to change the source and destination according to your needs.

The only problem is that running this file will open the command prompt for few seconds .. to avoid that you can create a VBscript file (.vbs) that will run the batch file in the background without the appearance of the command prompt.

runme.vbs

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c download.bat"
oShell.Run strArgs, 0, false

Important article about future of the web apps

Here is a good article about the web apps and how it is going better. Mainly talking about PWA (Progressive Web App) , WEBASSEMBLY and HOUDINI

https://www.theverge.com/circuitbreaker/2018/4/11/17207964/web-apps-quality-pwa-webassembly-houdini

How to center google map to current location using javascript

To center google map to current user location using js api, you first have to make your website a HTTPS site

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function (position) {
        var pos = {
            lat: position.coords.latitude,
            lng: position.coords.longitude
    };
    
    map.setCenter(pos);
    }, function () {
        console.log('error gis');
    });
}

more details here

Laravel storage can’t be accessed

To be able to access Storage folder, you have to create a link:

php artisan storage:link

In case your are using a shared hosting and can’t access the SSH , then you can run the phpartisan from route or controller

Artisan::call(‘cache:clear’);

Here is an example of running phpartisan from route

Route::get('artisan/command/{key?}', array(function ($key = null) {

        if ($key == "cache - clear") {
            try {
                echo' < br > php artisan cache: clear…';
                Artisan::call('cache: clear');
                echo' < br > php artisan cache: clear completed';
            } catch (Exception $e) {
                Response::make($e– > getMessage(), 500);
            }
        }
        elseif($key == "view - clear") {
            try {
                echo' < br > php artisan view: clear…';
                Artisan::call('view: clear');
                echo' < br > php artisan view: clear completed';

            } catch (Exception $e) {
                Response::make($e– > getMessage(), 500);
            }

        }elseif($key == "link") {
            try {
                echo' < br > php artisan storage link';
                Artisan::call('storage:link');
                echo' < br > php artisan storage:link completed';

            } catch (Exception $e) {
                Response::make($e– > getMessage(), 500);
            }

        }else {
            App::abort(404);
        }

    }));

 

Also you can try running symlink() function

<?php
    $res = symlink('/home/pylonsof/public_html/darwinSource/storage/app/public','/home/pylonsof/public_html/darwin/storage');
    
    echo($res);
    echo('ok');
?><span id="mce_marker" data-mce-type="bookmark" data-mce-fragment="1">​</span>