動機:希望在目前最新的網站開發環境(LNMP)中安裝 Laravel,實作如下~
示意圖:
準備環境:
1.Server: 桌機PC(台式機), Client: Windows10筆電
2.ubuntu 17.10.1 Desktop-amd64安裝光碟片 (下載 https://www.ubuntu.com/download/desktop/thank-you?country=TW&version=17.10.1&architecture=amd64 )
實作步驟:
1.[作業系統]將 ubuntu 安裝DVD放入桌機光碟機內並於BIOS啟動光碟開機及依安裝精靈指示步驟安裝之...
安裝完成後重新開機...
2.於 ubuntu 登入 步驟1. 設定的帳號,待出現 下載更新 並執行之...重新開機...
待重新登入後點選 左下角(九個圓點) 及 終端機...先行安裝 遠端連線 工具,指令如下
$ sudo apt-get install openssh-server -y
再安裝 網路工具,指令如下
$ sudo apt install net-tools
再查詢網卡IP,指令如下
$ ifconfig ( enp4s0 )
畫面如下圖
3.於遠端Client端(Windows10筆電),利用 Xshell 5 登入 上述步驟2. 的 IP...如下圖
4.[Web服務器]依據 參攷1. 指示,安裝 Nginx (1.12.1),指令如下(可利用 Ctrl + Insert 複製、Shift + Insert 貼上)
$ sudo apt install nginx
執行畫面,如下圖
並啟動 enable Nginx service (讓重開機後可自動執行),指令如下
$ sudo systemctl stop nginx.service
$ sudo systemctl start nginx.service
$ sudo systemctl enable nginx.service
執行畫面,如下圖
5.[資料庫管理系統]再依網頁安裝 MariaDB (10.1.30),指令如下
$ sudo apt-get install mariadb-server mariadb-client
執行畫面,如下圖
並啟動 enable MariaDB service,指令如下
$ sudo systemctl stop mariadb.service
$ sudo systemctl start mariadb.service
$ sudo systemctl enable mariadb.service
執行畫面,如下圖
再執行 MariaDB server 安全檢查,如下圖
再重啟 Restart MariaDB server,指令如下
$ sudo systemctl restart mariadb.service
執行畫面,如下圖
再新增資料庫及使用者,指令如下
$ mysql -u user -p
MariaDB [(none)]> CREATE DATABASE homestead;
MariaDB [(none)]> CREATE USER 'homestead'@'localhost' IDENTIFIED BY 'secret';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON homestead.* TO 'homestead'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit
$ mysql -u homestead -psecret
6.[網頁腳本語言]再安裝 PHP-FPM (7.1.11) 及相關模組,指令如下
$ sudo apt install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-mysql php-cli php-mcrypt php-zip
執行畫面,如下圖
再修改設定檔 php.ini,指令如下
$ sudo nano /etc/php/7.1/fpm/php.ini
修改內容如下
memory_limit = 256M
upload_max_filesize = 64M
cgi.fix_pathinfo=0
7.[Web開發框架]再安裝 COMPOSER,指令如下
$ sudo apt install composer unzip
執行畫面,如下圖
再下載 Laravel,指令如下
$ cd /var/www/html
$ sudo composer create-project laravel/laravel
$ sudo composer global require "laravel/installer"
執行畫面,如下圖
再修改檔案權限、屬性,指令如下
$ sudo chown -R www-data:www-data /var/www/html/laravel/
$ sudo chmod -R 755 /var/www/html/laravel/
$ sudo chmod -R 777 /var/www/html/laravel/bootstrap/cache/
$ sudo chmod -R 777 /var/www/html/laravel/storage/
再修改 app.php 設定,指令如下
$ sudo nano laravel/config/app.php
內容如下
'timezone' => 'Asia/Taipei',
'locale' => 'zh-TW',
'fallback_locale' => 'zh-TW',
執行畫面,如下圖
8.設定 NGINX,指令如下
$ sudo nano /etc/nginx/sites-available/laravel
檔案內容如下
server {
listen 80;
listen [::]:80;
root /var/www/html/laravel/public;
index index.php index.html index.htm;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; # for Ubuntu 17.10
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
9.設定 VirtualHost,指令如下
$ sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
10.重啟 Nginx,指令如下
$ sudo systemctl restart nginx.service
11.修改 Windows hosts 檔案 ( 目錄: C:\Windows\System32\drivers\etc\hosts )
內容如下(IP設為 Server 的IP)
192.168.1.103 example.com
12.使用 瀏覽器Chrome 來查看 laravel網頁,如下圖
如果看到上面的畫面才算成功...!!
--------------------------------------------------------------------------------------------------------------
以下,記錄錯誤問題排除...
(1).MariaDB無法以root登入(參攷2.) 指令如下
$ sudo systemctl stop mariadb.service
$ sudo mysqld_safe --skip-grant-tables --skip-networking &
$ sudo mysql -u root
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set password=PASSWORD("new_password_here") where User='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> \q
$ sudo systemctl stop mariadb.service
$ sudo systemctl start mariadb.service
$ sudo mysql -u root -p
--------------------------------------------------------------------------------------------------------------
(2).做完 上述(1). 發現並未成功讓 root 登入 MariaDB,故找了 參攷3. 指令如下
$ sudo mysql
MariaDB [(none)]> use mysql;
MariaDB [(mysql)]> UPDATE user SET Password=PASSWORD('輸入你 root 的新密碼') where USER='root';
MariaDB [(mysql)]> GRANT all ON *.* TO root@'localhost' IDENTIFIED BY '輸入你 root 的密碼';
MariaDB [(mysql)]> FLUSH PRIVILEGES;
MariaDB [(mysql)]> quit
$ sudo mysql -u root -p
終於可以成功登入root了!!
--------------------------------------------------------------------------------------------------------------
參攷:
1.INSTALL LARAVEL ON UBUNTU 17.04 / 17.10 WITH NGINX, MARIADB AND PHP SUPPORT, https://websiteforstudents.com/install-laravel-on-ubuntu-17-04-17-10-with-nginx-mariadb-and-php-support/
2.RESET MARIADB ROOT PASSWORD ON UBUNTU 17.04 / 17.10, https://websiteforstudents.com/reset-mariadb-root-password-ubuntu-17-04-17-10/
3.環境轉換,從Mysql到Mariadb, http://iam24j.blogspot.tw/2015/05/sqlmysqlmariadb.html
4.Laravel 5.5 - 1071 specified key was too long max key length is 767 bytes, https://hdtuto.com/article/laravel-55-1071-specified-key-was-too-long-max-key-length-is-767-bytes
5.Adminer - Database management in a single PHP file, https://www.adminer.org/
6.Laravel 安装指南, https://d.laravel-china.org/docs/5.5/installation
示意圖:
準備環境:
1.Server: 桌機PC(台式機), Client: Windows10筆電
2.ubuntu 17.10.1 Desktop-amd64安裝光碟片 (下載 https://www.ubuntu.com/download/desktop/thank-you?country=TW&version=17.10.1&architecture=amd64 )
實作步驟:
1.[作業系統]將 ubuntu 安裝DVD放入桌機光碟機內並於BIOS啟動光碟開機及依安裝精靈指示步驟安裝之...
安裝完成後重新開機...
2.於 ubuntu 登入 步驟1. 設定的帳號,待出現 下載更新 並執行之...重新開機...
待重新登入後點選 左下角(九個圓點) 及 終端機...先行安裝 遠端連線 工具,指令如下
$ sudo apt-get install openssh-server -y
再安裝 網路工具,指令如下
$ sudo apt install net-tools
再查詢網卡IP,指令如下
$ ifconfig ( enp4s0 )
畫面如下圖
3.於遠端Client端(Windows10筆電),利用 Xshell 5 登入 上述步驟2. 的 IP...如下圖
4.[Web服務器]依據 參攷1. 指示,安裝 Nginx (1.12.1),指令如下(可利用 Ctrl + Insert 複製、Shift + Insert 貼上)
$ sudo apt install nginx
執行畫面,如下圖
並啟動 enable Nginx service (讓重開機後可自動執行),指令如下
$ sudo systemctl stop nginx.service
$ sudo systemctl start nginx.service
$ sudo systemctl enable nginx.service
執行畫面,如下圖
5.[資料庫管理系統]再依網頁安裝 MariaDB (10.1.30),指令如下
$ sudo apt-get install mariadb-server mariadb-client
執行畫面,如下圖
並啟動 enable MariaDB service,指令如下
$ sudo systemctl stop mariadb.service
$ sudo systemctl start mariadb.service
$ sudo systemctl enable mariadb.service
執行畫面,如下圖
再執行 MariaDB server 安全檢查,如下圖
再重啟 Restart MariaDB server,指令如下
$ sudo systemctl restart mariadb.service
執行畫面,如下圖
再新增資料庫及使用者,指令如下
$ mysql -u user -p
MariaDB [(none)]> CREATE DATABASE homestead;
MariaDB [(none)]> CREATE USER 'homestead'@'localhost' IDENTIFIED BY 'secret';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON homestead.* TO 'homestead'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit
$ mysql -u homestead -psecret
$ sudo apt install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-mysql php-cli php-mcrypt php-zip
執行畫面,如下圖
再修改設定檔 php.ini,指令如下
$ sudo nano /etc/php/7.1/fpm/php.ini
修改內容如下
memory_limit = 256M
upload_max_filesize = 64M
cgi.fix_pathinfo=0
7.[Web開發框架]再安裝 COMPOSER,指令如下
$ sudo apt install composer unzip
執行畫面,如下圖
再下載 Laravel,指令如下
$ cd /var/www/html
$ sudo composer create-project laravel/laravel
$ sudo composer global require "laravel/installer"
執行畫面,如下圖
再修改檔案權限、屬性,指令如下
$ sudo chown -R www-data:www-data /var/www/html/laravel/
$ sudo chmod -R 755 /var/www/html/laravel/
$ sudo chmod -R 777 /var/www/html/laravel/bootstrap/cache/
$ sudo chmod -R 777 /var/www/html/laravel/storage/
再修改 app.php 設定,指令如下
$ sudo nano laravel/config/app.php
內容如下
'timezone' => 'Asia/Taipei',
'locale' => 'zh-TW',
'fallback_locale' => 'zh-TW',
8.設定 NGINX,指令如下
$ sudo nano /etc/nginx/sites-available/laravel
檔案內容如下
server {
listen 80;
listen [::]:80;
root /var/www/html/laravel/public;
index index.php index.html index.htm;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; # for Ubuntu 17.10
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
9.設定 VirtualHost,指令如下
$ sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
10.重啟 Nginx,指令如下
$ sudo systemctl restart nginx.service
11.修改 Windows hosts 檔案 ( 目錄: C:\Windows\System32\drivers\etc\hosts )
內容如下(IP設為 Server 的IP)
192.168.1.103 example.com
12.使用 瀏覽器Chrome 來查看 laravel網頁,如下圖
如果看到上面的畫面才算成功...!!
--------------------------------------------------------------------------------------------------------------
以下,記錄錯誤問題排除...
(1).MariaDB無法以root登入(參攷2.) 指令如下
$ sudo systemctl stop mariadb.service
$ sudo mysqld_safe --skip-grant-tables --skip-networking &
$ sudo mysql -u root
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set password=PASSWORD("new_password_here") where User='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> \q
$ sudo systemctl stop mariadb.service
$ sudo systemctl start mariadb.service
$ sudo mysql -u root -p
--------------------------------------------------------------------------------------------------------------
(2).做完 上述(1). 發現並未成功讓 root 登入 MariaDB,故找了 參攷3. 指令如下
$ sudo mysql
MariaDB [(none)]> use mysql;
MariaDB [(mysql)]> UPDATE user SET Password=PASSWORD('輸入你 root 的新密碼') where USER='root';
MariaDB [(mysql)]> GRANT all ON *.* TO root@'localhost' IDENTIFIED BY '輸入你 root 的密碼';
MariaDB [(mysql)]> FLUSH PRIVILEGES;
MariaDB [(mysql)]> quit
$ sudo mysql -u root -p
終於可以成功登入root了!!
--------------------------------------------------------------------------------------------------------------
(3).執行遷移時發生767 bytes錯誤,指令如下
$ sudo php artisan migrate:fresh
畫面如下圖
此時,利用 Adminer 查看該資料庫,如下圖
依 參攷4. 修改 AppServiceProvider.php,指令如下
$ sudo nano app/Providers/AppServiceProvider.php
內容如下
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
再執行遷移即可正常,如下圖
查詢資料庫狀況,如下圖
$ sudo php artisan migrate:fresh
畫面如下圖
此時,利用 Adminer 查看該資料庫,如下圖
依 參攷4. 修改 AppServiceProvider.php,指令如下
$ sudo nano app/Providers/AppServiceProvider.php
內容如下
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
再執行遷移即可正常,如下圖
查詢資料庫狀況,如下圖
--------------------------------------------------------------------------------------------------------------
參攷:
1.INSTALL LARAVEL ON UBUNTU 17.04 / 17.10 WITH NGINX, MARIADB AND PHP SUPPORT, https://websiteforstudents.com/install-laravel-on-ubuntu-17-04-17-10-with-nginx-mariadb-and-php-support/
2.RESET MARIADB ROOT PASSWORD ON UBUNTU 17.04 / 17.10, https://websiteforstudents.com/reset-mariadb-root-password-ubuntu-17-04-17-10/
3.環境轉換,從Mysql到Mariadb, http://iam24j.blogspot.tw/2015/05/sqlmysqlmariadb.html
4.Laravel 5.5 - 1071 specified key was too long max key length is 767 bytes, https://hdtuto.com/article/laravel-55-1071-specified-key-was-too-long-max-key-length-is-767-bytes
5.Adminer - Database management in a single PHP file, https://www.adminer.org/
6.Laravel 安装指南, https://d.laravel-china.org/docs/5.5/installation
留言