ติดตั้ง Laravel 5.3 บน Ubuntu 16.04

ลองมาดูการติดตั้ง Laravel 5.3 บน Ubuntu 16.04 กันบ้าง โดยจะทดสอบบนเครื่อง ติดตั้ง PHP 7 บน Ubuntu 16.04 ที่ ติดตั้ง Composer เพื่อบริหารจัดการไลบรารี PHP

โดยจะแสดงวิธีการติดตั้งทีละขั้นตอนด้วย composer แสดงข้อความปัญหาที่เกิดขึ้น พร้อมแสดงวิธีการแก้ไขปัญหา เช่นใช้คำสั่ง apt ติดตั้งแพ็คเกจโมดูล php เพิ่มเติม ที่จำเป็นต้องใช้

เริ่มต้นใช้คำสั่ง apt list –installed เพื่อดูแพ็คเกจ php ที่ติดตั้งอยู่แล้ว

dev@ubuntu-1604:~$ apt list --installed | grep php

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

php-cli/xenial,xenial,now 1:7.0+35ubuntu6 all [installed]
php-common/xenial,xenial,now 1:35ubuntu6 all [installed,automatic]
php7.0-cli/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]
php7.0-common/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]
php7.0-json/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]
php7.0-opcache/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]
php7.0-readline/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]

เวอร์ชัน php ที่ใช้

dev@ubuntu-1604:~$ php -v
PHP 7.0.8-0ubuntu0.16.04.2 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
 with Zend OPcache v7.0.8-0ubuntu0.16.04.2, Copyright (c) 1999-2016, by Zend Technologies

โมดูล php ที่สามารถเรียกใช้ได้

dev@ubuntu-1604:~$ php -m
[PHP Modules]
calendar
Core
ctype
date
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

ใช้ composer ระบุคำสั่ง create-project เพื่อติดตั้งแพ็คเกจ laravel/laravel ไว้ในโฟลเดอร์ blog

dev@ubuntu-1604:~$ composer create-project --prefer-dist laravel/laravel blog

Installing laravel/laravel (v5.3.0)
 Failed to download laravel/laravel from dist: The zip extension and unzip command are both missing, skipping.
The php.ini used by your command-line PHP is: /etc/php/7.0/cli/php.ini
 Now trying to download from source
 - Installing laravel/laravel (v5.3.0)
 Cloning f5dfa2057e800e15ecc1f5609016dfbc08fc643e from cache

Created project in blog
> php -r "file_exists('.env') || copy('.env.example', '.env');"
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
 - laravel/framework v5.3.6 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
 - laravel/framework v5.3.5 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
 - laravel/framework v5.3.4 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
...
 - Installation request for laravel/framework 5.3.* -> satisfiable by laravel/framework[v5.3.0, v5.3.1, v5.3.2, v5.3.3, v5.3.4, v5.3.5, v5.3.6].

To enable extensions, verify that they are enabled in those .ini files:
 - /etc/php/7.0/cli/php.ini
 - /etc/php/7.0/cli/conf.d/10-opcache.ini
 - /etc/php/7.0/cli/conf.d/10-pdo.ini
 - /etc/php/7.0/cli/conf.d/20-calendar.ini
 - /etc/php/7.0/cli/conf.d/20-ctype.ini
 - /etc/php/7.0/cli/conf.d/20-exif.ini
 - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
 - /etc/php/7.0/cli/conf.d/20-ftp.ini
 - /etc/php/7.0/cli/conf.d/20-gettext.ini
 - /etc/php/7.0/cli/conf.d/20-iconv.ini
 - /etc/php/7.0/cli/conf.d/20-json.ini
 - /etc/php/7.0/cli/conf.d/20-phar.ini
 - /etc/php/7.0/cli/conf.d/20-posix.ini
 - /etc/php/7.0/cli/conf.d/20-readline.ini
 - /etc/php/7.0/cli/conf.d/20-shmop.ini
 - /etc/php/7.0/cli/conf.d/20-sockets.ini
 - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
 - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
 - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
 - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
 You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

สังเกตด้านบนจะมีข้อความ Failed to download laravel/laravel from dist: The zip extension and unzip command are both missing, skipping

แนะนำให้ติดตั้ง php-zip เพิ่มเติม เพื่อให้ composer เรียกใช้ได้

นอกจากนี้ยังขึ้นข้อความ requires ext-mbstring จำเป็นต้องติดตั้งโมดูล php-mbstring เพิ่มเติม

ใช้คำสั่ง apt install ติดตั้งแพ็คเกจ php-zip เพิ่มเติม

dev@ubuntu-1604:~$ sudo apt install php-zip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
 libzip4 php7.0-zip
The following NEW packages will be installed:
 libzip4 php-zip php7.0-zip
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 58.0 kB of archives.
After this operation, 198 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
...

ติดตั้งแพ็คเกจ php-mbstring

dev@ubuntu-1604:~$ sudo apt install php-mbstring
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
 php7.0-mbstring
The following NEW packages will be installed:
 php-mbstring php7.0-mbstring
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 467 kB of archives.
After this operation, 1,508 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
...

ถ้าลองรัน php -m จะมีบรรทัดชื่อโมดูล mbstring, zip เพิ่มขึ้นมา

รัน composer ติดตั้ง laravel อีกครั้ง

dev@ubuntu-1604:~$ composer create-project --prefer-dist laravel/laravel blog
Installing laravel/laravel (v5.3.0)


 [InvalidArgumentException]
 Project directory blog/ is not empty.


create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]

ต้องลบโฟลเดอร์ blog เดิมออกก่อน แล้วค่อยรัน composer ใหม่

dev@ubuntu-1604:~$ ls -l
total 16
drwxrwxr-x 12 dev dev 4096 Sep 3 14:05 blog

dev@ubuntu-1604:~$ rm -rf blog/

dev@ubuntu-1604:~$ composer create-project --prefer-dist laravel/laravel blog
Installing laravel/laravel (v5.3.0)
 - Installing laravel/laravel (v5.3.0)
 Downloading: 100%

Created project in blog
> php -r "file_exists('.env') || copy('.env.example', '.env');"
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
 - phpunit/phpunit 5.5.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
 - phpunit/phpunit 5.5.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
 - phpunit/phpunit 5.5.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
...
 - Installation request for phpunit/phpunit ~5.0 -> satisfiable by phpunit/phpunit[5.0.0, 5.0.1, 5.0.10, 5.0.2, 5.0.3, 5.0.4, 5.0.5, 5.0.6, 5.0.7, 5.0.8, 5.0.9, 5.1.0, 5.1.1, 5.1.2, 5.1.3, 5.1.4, 5.1.5, 5.1.6, 5.1.7, 5.2.0, 5.2.1, 5.2.10, 5.2.11, 5.2.12, 5.2.2, 5.2.3, 5.2.4, 5.2.5, 5.2.6, 5.2.7, 5.2.8, 5.2.9, 5.3.0, 5.3.1, 5.3.2, 5.3.3, 5.3.4, 5.3.5, 5.4.0, 5.4.1, 5.4.2, 5.4.3, 5.4.4, 5.4.5, 5.4.6, 5.4.7, 5.4.8, 5.5.0, 5.5.1, 5.5.2, 5.5.3, 5.5.4].

To enable extensions, verify that they are enabled in those .ini files:
 - /etc/php/7.0/cli/php.ini
 - /etc/php/7.0/cli/conf.d/10-opcache.ini
 - /etc/php/7.0/cli/conf.d/10-pdo.ini
 - /etc/php/7.0/cli/conf.d/20-calendar.ini
 - /etc/php/7.0/cli/conf.d/20-ctype.ini
 - /etc/php/7.0/cli/conf.d/20-exif.ini
 - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
 - /etc/php/7.0/cli/conf.d/20-ftp.ini
 - /etc/php/7.0/cli/conf.d/20-gettext.ini
 - /etc/php/7.0/cli/conf.d/20-iconv.ini
 - /etc/php/7.0/cli/conf.d/20-json.ini
 - /etc/php/7.0/cli/conf.d/20-mbstring.ini
 - /etc/php/7.0/cli/conf.d/20-phar.ini
 - /etc/php/7.0/cli/conf.d/20-posix.ini
 - /etc/php/7.0/cli/conf.d/20-readline.ini
 - /etc/php/7.0/cli/conf.d/20-shmop.ini
 - /etc/php/7.0/cli/conf.d/20-sockets.ini
 - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
 - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
 - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
 - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
 - /etc/php/7.0/cli/conf.d/20-zip.ini
 You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

ขึ้นข้อความ requires ext-dom ต้องติดตั้งแพ็คเกจ php-xml เพิ่มเติม

dev@ubuntu-1604:~$ sudo apt install php-xml
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
 libxslt1.1 php7.0-xml
The following NEW packages will be installed:
 libxslt1.1 php-xml php7.0-xml
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 259 kB of archives.
After this operation, 968 kB of additional disk space will be used.
Do you want to continue? [Y/n] y

ถ้ารัน php -m จะมี dom, SimpleXML, wddx, xml, xmlreader, xmlwriter, xsl เพิ่มขึ้นมา

ลบโฟลเดอร์ blog แล้วรัน composer ติดตั้ง laravel ใหม่อีกครั้ง

dev@ubuntu-1604:~$ rm -rf blog/

dev@ubuntu-1604:~$ composer create-project --prefer-dist laravel/laravel blog
Installing laravel/laravel (v5.3.0)
 - Installing laravel/laravel (v5.3.0)
 Loading from cache

Created project in blog
> php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies (including require-dev)
 - Installing vlucas/phpdotenv (v2.4.0)
 Downloading: 100%

- Installing symfony/polyfill-mbstring (v1.2.0)
 Downloading: 100%

- Installing symfony/var-dumper (v3.1.3)
 Downloading: 100%
...
 - Installing laravel/framework (v5.3.6)
 Downloading: 100%
...
 - Installing phpunit/phpunit (5.5.4)
 Downloading: 100%

- Installing symfony/css-selector (v3.1.3)
 Downloading: 100%

- Installing symfony/dom-crawler (v3.1.3)
 Downloading: 100%

symfony/var-dumper suggests installing ext-symfony_debug ()
symfony/translation suggests installing symfony/config ()
symfony/routing suggests installing doctrine/annotations (For using the annotation loader)
...
laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (~1.0).)
laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (~2.0).)
laravel/framework suggests installing symfony/psr-http-message-bridge (Required to psr7 bridging features (0.2.*).)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (>=2.4.0)
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
Writing lock file
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
> php artisan key:generate
Application key [base64:eM1Gkw/0zPkMVWIqZO4cmB/qhopIk2hpZlq8iuTfpek=] set successfully.

เพิ่มเติม เพื่อให้ Laravel ติดต่อฐานข้อมูล SQLite และ MySQL ได้ แนะนำให้ติดตั้งแพ็คเกจ php-pdo-sqlite และ php-pdo-mysql ด้วย

dev@ubuntu-1604:~$ sudo apt install php-pdo-sqlite
dev@ubuntu-1604:~$ sudo apt install php-pdo-mysql

สรุปชื่อแพ็คเกจ php ที่ติดตั้งบน Ubuntu 16.04 เพื่อใช้ติดตั้ง Laravel 5.3

dev@ubuntu-1604:~$ apt list --installed | grep php

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

php-cli/xenial,xenial,now 1:7.0+35ubuntu6 all [installed]
php-common/xenial,xenial,now 1:35ubuntu6 all [installed,automatic]
php-mbstring/xenial,xenial,now 1:7.0+35ubuntu6 all [installed]
php-xml/xenial,xenial,now 1:7.0+35ubuntu6 all [installed]
php-zip/xenial,xenial,now 1:7.0+35ubuntu6 all [installed]
php7.0-cli/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]
php7.0-common/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed]
php7.0-json/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]
php7.0-mbstring/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]
php7.0-mysql/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed]
php7.0-opcache/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]
php7.0-readline/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]
php7.0-sqlite3/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed]
php7.0-xml/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]
php7.0-zip/xenial-updates,xenial-security,now 7.0.8-0ubuntu0.16.04.2 amd64 [installed,automatic]

สรุปรายชื่อโมดูล php ที่เรียกใช้งานได้

dev@ubuntu-1604:~$ php -m
[PHP Modules]
calendar
Core
ctype
date
dom
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

cd เข้าไปใน blog ลองดูชื่อไฟล์ของ Laravel 5.3 ที่ติดตั้งได้

dev@ubuntu-1604:~/blog$ ls -l
total 192
drwxrwxr-x 6 dev dev   4096 Sep 3 14:12 app
-rw-rw-r-- 1 dev dev   1646 Sep 3 14:12 artisan
drwxrwxr-x 3 dev dev   4096 Sep 3 14:12 bootstrap
-rw-rw-r-- 1 dev dev   1283 Sep 3 14:12 composer.json
-rw-rw-r-- 1 dev dev 123589 Sep 3 14:18 composer.lock
drwxrwxr-x 2 dev dev   4096 Sep 3 14:12 config
drwxrwxr-x 5 dev dev   4096 Sep 3 14:12 database
-rw-rw-r-- 1 dev dev    556 Sep 3 14:12 gulpfile.js
-rw-rw-r-- 1 dev dev    400 Sep 3 14:12 package.json
-rw-rw-r-- 1 dev dev    930 Sep 3 14:12 phpunit.xml
drwxrwxr-x 4 dev dev   4096 Sep 3 14:12 public
-rw-rw-r-- 1 dev dev   1918 Sep 3 14:12 readme.md
drwxrwxr-x 5 dev dev   4096 Sep 3 14:12 resources
drwxrwxr-x 2 dev dev   4096 Sep 3 14:12 routes
-rw-rw-r-- 1 dev dev    563 Sep 3 14:12 server.php
drwxrwxr-x 5 dev dev   4096 Sep 3 14:12 storage
drwxrwxr-x 2 dev dev   4096 Sep 3 14:12 tests
drwxrwxr-x 31 dev dev  4096 Sep 3 14:18 vendor

ใช้ php รันไฟล์ artisan เพื่อดูคำสั่งและออปชัน ที่ใช้ช่วยในการพัฒนาโปรแกรมด้วย Laravel

dev@ubuntu-1604:~/blog$ php artisan
Laravel Framework version 5.3.6

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
      --env[=ENV]       The environment the command should run under.
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  clear-compiled       Remove the compiled class file
  down                 Put the application into maintenance mode
  env                  Display the current framework environment
  help                 Displays help for a command
  inspire
  list                 Lists commands
  migrate              Run the database migrations
  optimize             Optimize the framework for better performance
  serve                Serve the application on the PHP development server
  tinker               Interact with your application
  up                   Bring the application out of maintenance mode
 app
  app:name             Set the application namespace
 auth
  auth:clear-resets    Flush expired password reset tokens
 cache
  cache:clear          Flush the application cache
  cache:table          Create a migration for the cache database table
 config
  config:cache         Create a cache file for faster configuration loading
  config:clear         Remove the configuration cache file
 db
  db:seed              Seed the database with records
 event
  event:generate       Generate the missing events and listeners based on registration
 key
  key:generate         Set the application key
 make
  make:auth            Scaffold basic login and registration views and routes
  make:command         Create a new Artisan command
  make:controller      Create a new controller class
  make:event           Create a new event class
  make:job             Create a new job class
  make:listener        Create a new event listener class
  make:mail            Create a new email class
  make:middleware      Create a new middleware class
  make:migration       Create a new migration file
  make:model           Create a new Eloquent model class
  make:notification    Create a new notification class
  make:policy          Create a new policy class
  make:provider        Create a new service provider class
  make:request         Create a new form request class
  make:seeder          Create a new seeder class
  make:test            Create a new test class
 migrate
  migrate:install      Create the migration repository
  migrate:refresh      Reset and re-run all migrations
  migrate:reset        Rollback all database migrations
  migrate:rollback     Rollback the last database migration
  migrate:status       Show the status of each migration
 notifications
  notifications:table  Create a migration for the notifications table
 queue
  queue:failed         List all of the failed queue jobs
  queue:failed-table   Create a migration for the failed queue jobs database table
  queue:flush          Flush all of the failed queue jobs
  queue:forget         Delete a failed queue job
  queue:listen         Listen to a given queue
  queue:restart        Restart queue worker daemons after their current job
  queue:retry          Retry a failed queue job
  queue:table          Create a migration for the queue jobs database table
  queue:work           Process the next job on a queue
 route
  route:cache          Create a route cache file for faster route registration
  route:clear          Remove the route cache file
  route:list           List all registered routes
 schedule
  schedule:run         Run the scheduled commands
 session
  session:table        Create a migration for the session database table
 storage
  storage:link         Create a symbolic link from "public/storage" to "storage/app/public"
 vendor
  vendor:publish       Publish any publishable assets from vendor packages
 view
  view:clear           Clear all compiled view files

เริ่มต้น รัน php artisan ระบุคำสั่ง serve เพื่อรันเว็บเซิร์ฟเวอร์สำหรับการทดสอบการพัฒนาโปรแกรมด้วย Laravel โดยที่ไม่จำเป็นต้องติดตั้งเว็บเซิร์ฟเวอร์ เช่น Apache หรือ Nginx เลย

dev@ubuntu-1604:~/blog$ php artisan serve
Laravel development server started on http://localhost:8000/

ดีฟอลต์คำสั่ง serve จะเรียกเว็บได้จากภายในตัวเซิร์ฟเวอร์เองเท่านั้น (localhost) ต้องระบุออปชัน –host ระบุ IP ของเซิร์ฟเวอร์ เพื่อให้เครื่องอื่นๆ มาเรียกใช้เว็บเซิร์ฟเวอร์ที่รันได้

dev@ubuntu-1604:~/blog$ php artisan serve --host 192.168.56.116
Laravel development server started on http://192.168.56.116:8000/

ตัวอย่างหน้าเว็บดีฟอลต์ของ Laravel 5.3 ที่เปิดจาก browser

laravel-5.3-on-ubuntu-16.04

จะเห็นว่ามีข้อความแสดง IP ของเครื่องที่เรียกเข้ามาด้วย

dev@ubuntu-1604:~/blog$ php artisan serve --host 192.168.56.116
Laravel development server started on http://192.168.56.116:8000/
[Sat Sep 3 14:19:46 2016] 192.168.56.1:50196 [200]: /favicon.ico
^C

กด [Ctrl]+[c] เพื่อออกจากคำสั่ง serve

ข้อมูลอ้างอิง

4 thoughts on “ติดตั้ง Laravel 5.3 บน Ubuntu 16.04”

  1. ขอบคุณมากๆนะครับ บทความนี้แก้ปัญหาที่ผมติดได้มากๆเบยครับผม
    เป็นบทความที่ดีมากครับ ขอบคุณครับ ^^

  2. ขอบคุณมากครับ เพิ่งหัดเล่น Ubuntu อยู่พอดีเลย

  3. ขอบคุณมากครับ คุณครู
    ยอดเยี่ยมบทความนี้ ผมทำตามใช้ได้งาน

    มีคำถามเพิ่มเติม

    กรณีติดตั้ง ubuntu16.04.1 บน VBox (ทำ box เอง ดูตามในบทความของ สปาฯ เช่นกัน)
    และใช้ vagrant เพื่อติดต่อ VBox
    เมื่อรัน php artisan serv บนฝั่ง vbox
    บนเบราเซอร์ ทำอย่างไรจึงจะเรียกใช้งานได้ เหมือนตัวอย่างนี้ที่ใช้ http://192.168.56.116:8000/

    ้ต้องไปกำหนดค่าที่ VBox หรือ vagrant อย่างไร
    รบกวนด้วยครับ

  4. ขอตอบคำถามที่ตั้งคำถามเอง นะครับ เนื่องจากผมทำได้แล้ว

    1. กำหนดใน Vagrantfile ให้มีค่าเป็น

    config.vm.network “public_network”, auto_config: false

    2.) ล็อกอินเข้า VBox ที่ผมติดตั้ง config.vm.box = “your box” ในที่นี้ผมใช้ Ubuntu16.04.1 นี่แหละ
    กำหนดไอพีแอดเดรสของเครื่องมีเป็นวงเดียวกันกับเครื่องคอมพิวเตอร์เรา รวมถีงเกตเวย์ที่ออกเน็ตด้วย

    ข้อนี้ผมได้วิธีทำมาจากเว็บนี้
    http://askubuntu.com/questions/766131/set-static-ip-ubuntu-16-04

    ผลที่ได้
    – ใช้คำสั่ง ping จากเครื่องคอมฯ ไปหา VBox เจอ
    – รัน php artisan serv –host 192.168.1.9:8000

    เมื่อเรียกเว็บจากเบราเซอร์ ก็รันได้
    เขียน Laravel ฐานข้อมูล ก็รันได้

    +++++
    ผิดถูกขออภัยนะครับ (ผมไม่เก่งด้านเอดมิน)

Leave a Reply