發表文章

目前顯示的是 2019的文章

laravel-excel 3 impoirt export 實作範例

想讀寫 Excel 文件,看了老半天,只輸出了一個空白的 Excel檔,浪費好物 laravel-excel 應該有人寫完整實做吧,果真! 工作環境:   laravel-6   phpspreadsheet   laravel-excel 記得要先裝 phpspreadsheet ! laravel-excel 安裝方法看這裏: https://docs.laravel-excel.com/3.1/getting-started/installation.html 使用Composer安裝: composer require maatwebsite/excel 設定 config/app.php 的 providers: + Maatwebsite\Excel\ExcelServiceProvider::class, 設定 config/app.php 的 aliases: + 'Excel' => Maatwebsite\Excel\Facades\Excel::class, $ php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" 執行成功後 vender/maatwebsite/config 下會多一個 excel.php 實做範例參看這裏: https://www.itsolutionstuff.com/post/laravel-57-import-export-excel-to-database-exampleexample.html 啟用內建資料庫 $ php artisan migrate 做一些測試用的資料 $ php artisan tinker factory(App\User::class, 20)->create(); 建立輸入 Controller(output: app/Imports/UsersImport.php) $ php artisan make:import UsersImport --model=User 建立輸出 Controller(output: app/Exports/UsersExport.php

laragon 建置可攜本機開發環境

搞一個不折騰的開發環境是最近的目標,有點折騰,不過,為了以後不折騰,先稍稍折騰一下 laragon 。 工作環境:   Windows 10   laragon portable V4 nginx 新增了 laravel 的程式之後,會以 appName 做為網址,預設會在 appName.test 如果不愛 .test 請到右上角有個齒輪形狀(設定) > General > Auto virtual hosts > Hostname: 輸入你愛的網域名稱,例如:{name}.love ,之後,就可以連到 appName.love ,很方便啊,網址又好看。 php7 +# PHP +php=https://windows.php.net/downloads/releases/php-7.3.11-Win32-VC15-x64.zip Menu > Quick App > Configuration+# Laravel +Laravel=composer create-project --prefer-dist laravel/laravel %s 現在開始可以: Menu > Quick App > Laravel > appName > 然後就裝了 laravel ,而且設好了 appName.test 這個網站可以連上去用。 MySQL 5.7 至少昇級到這個版本吧,不然 phpmyadmin 一直報錯 error 200,要不就連線中斷。 Menu > Tools > Quick Add > mysql-5.7 Menu > MySQL > version > mysql-5.7 很重要!很重要!很重要! 如果要為 root 設定 password 一定要從 Menu > MySQL > change root password 改,不然會出現很難搞的狀況, MySQL 重啟後就進不去了! Laravel: 如果遇到沒有 autoload.php 這個檔案,記得去 appName 下 composer install 一下。 Warning: require(D:\larago

連線到遠端的 virtualbox 網頁伺服器

工作環境:   Windows 10   virtualbox     guest: Ubuntu 18 Server LTS 症狀: 本機已經完成網頁伺服器設定,在本機可以存取 virtualbox 中的網頁,但是同一網段的其他電腦,要連過來網頁卻無法存取,瀏覽器一直出現無法連線的訊息。 檢查 Windows 安全性設定 > 防火牆與網路保護 :網域網路、私人網路、公用網路的防火牆狀態都是「防火牆已開啟」,先選取使用中的網路,將 Windows Defender 防火牆關閉,再次從遠瑞連過來,發現可以連線,確定無法連線是防火牆發揮了作用。 先把防火牆再次開啟。 準備打洞,開個窄門讓遠端的電腦連到網頁。 在設定中開啟 具有進階安全性的 Windows Defender 防火牆 > 輸入規則 > 新增規則 > 新增輸入規則精靈:   規則類型:連接埠 > 下一步   程式:TCP;特定本機連接埠:80 > 下一步   動作:允許連線 > 下一步   設定檔:網域、私人、公用都勾選 > 下一步   名稱:網頁;描述:連接本機的網頁 > 完成 完成之後 輸入規則 就會多了一個名為「網頁」的規則,雙擊把它點開,把你允許的遠端 ip 位址加上去:  可以一次加入整個賽網,像是 192.168.1.0/24 如此整個內網就都可以連上網頁了。 再次從遠端連網頁。 收工!

ubuntu 18 server timezone 和實際的時區不符

工作環境:  ubuntu 18 server LTS 症狀:  看 log 檔時,時間對不上 查一下目前的時間區間: $ timedatectl 結果看起來像這個樣子         Local time: Thu 2019-10-10 06:34:00 UTC  Universal time: Thu 2019-10-10 06:34:00 UTC          RTC time: Thu 2019-10-10 06:34:00        Time zone: Etc/UTC (UTC, +0000) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no 由於我的時區是 +0800 ,所以 log 檔裏面的時間怪怪的。 那到底設定值要設成什麼呢? $ timedatectl list-timezones | grep -i asia 或是 $ timedatectl list-timezones | grep -i CITY 結果看起來像這個樣子: Asia/Aden Asia/Almaty Asia/Amman Asia/Anadyr Asia/Aqtau Asia/Aqtobe Asia/Ashgabat Asia/Atyrau Asia/Baghdad Asia/Bahrain Asia/Baku ... 那就設成我的時區了: $ sudo timedatectl set-timezone Asia/Taipei 確認一下改好了沒: ls -l /etc/localtime 結果看起來像這個樣子: /etc/localtime -> ../usr/share/zoneinfo/Asia/Taipei 所以,應該也可以直接改動態聯結: $ sudo unlink /etc/localtime $ sudo ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime 收工!

Ubuntu 18 使用空間不足 無法寫入或是安裝應用程式

安裝程式或是昇級系統時無法安裝,出現無法寫入的情形,sudo無效,因為裝的東西不多,應該硬碟實體還是有空間的,所以要來處理一下。 作業環境:Ubuntu 18 server 檢查硬碟空間: $df -h 發現 /dev/mapper/ubuntu--vg-ubuntu--lv usage:100% 但是硬碟使用量遠小於實體硬碟容量 解法: # 邏輯容量 lvm 調到使用所有能用容量(volume group) $ lvm lvm> lvextend -l 100%FREE /dev/somewhere/ubuntu--vg-ubuntu--lv(有的網頁是說用 /dev/ubuntu-vg/ubuntu-lv) lvm> exit # 重設檔案系統,取用新的邏輯容量可用空間 $ resize2fs /dev/somewhere/ubuntu--vg-ubuntu--lv resize2fs 1.44.1 (24-Mar-2018)........... # 重新檢查可用空間 $ df -h /dev/somewhere/ubuntu--vg-ubuntu--lv  usage < 100% 要管理 lvm 可以深入了解以下這些:     Physical Volume (PV) => The physical space on a drive.     Volume Group (VG) => An abstracted amount of drive space that can be split between multiple drives/devices.     Logical Volume (LV) => The space that ubuntu "sees" HowTo 可以 看這裏

ubuntu 18 server print_req_error i/o error dev fd0 sector 0

工作環境:  ubuntu Server TLS 18.04.2  有軟碟(floppy)的老服一部 症狀:  軟碟機一直有讀取軟碟的嘎嘎聲  終端機(黑白畫面)出現 server print_req_error i/o error dev fd0 sector 0 的訊息 可能是有什麼程式在讀取 fd0 造成。 原本是想 mark 掉 /etc/fstab 中 fd0 的設定,但是(lsblk -f)沒有 fd0 的 UUID 直接 blacklist fd0: sudo vim /etc/modprobe.d/blacklist.conf 加上這一行 blacklist floppy 然後更後一下核心的映像檔: sudo update-initramfs -u 再更新一下 grub 開機項: sudo update-grub 好像要重開機… sudo reboot 老服果然不會再嘎嘎響了 收工!

郵件不服氣

寄一封電子郵件,或許己經慢慢遠離現代的生活了,它正慢慢的被所謂的即時通訊蠶食,即便如此,一些比較不需要即時反應的訊息,或是比較正式的邀約,甚至是廣告,還是會透過這個其實沒有很老的「傳統」方式進行。 自廣告/垃報郵件(SPAM)風行的年代起,郵件伺服器就肩負了訊息溝通的重任,同時也一直是攻防的重點之一,畢竟一個人,就代表了一份消費力,即便成交效能有限,廣告還是沒有從郵件中退出,因為 0 只是趨近於 0 但是不是 0 的數字。 郵件伺服器裏面有一些敏感的訊息,包括個資、業務訊息…等等,所以維護起來還蠻需要不少精力的,為了有效的傳遞訊息,必需讓使用者不論在什麼地方都可以收發郵件,必需讓伺服器也可以收不論是什麼地方什麼人寄來的訊息,後來,還必需提供網頁界面給使用者、後來,裏面必需要可以維護通訊錄,反正 outlook 、 gmail 裏面有什麼,就得把什麼功能掛上去,然後,放到防火牆去躲砲火,郵件收發過程再加密一下,可以的話再掛個掃毒,還得把郵件使用者帳密和原生的系統帳密分開,以上這些林林總總,大概就是目前要自行維護郵件伺服器的生態,gmail 真的做了不少事啊。 雲真偉大,可惜用雲不在這次的考量之內。 說了一堆,準備開工,工作環境如下:  作業系統:  Linux based OS (Debian/Ubuntu/CentOS...)  Mail Server (dovecot, postfix)  Webmail (roundcube/squerrel-mail/SOGo...)  Security (iptables, fail2ban, clamav)  Database (MySQL/MariaDB/Postgresql) 把以上這些套件都裝起來,config 檔調了又調,再調一下自機防火牆,然後就開始寄信了。 But ... 信可以寄出去,收不到寄進來的信。 去網域伺服器新增一下對應的域名(通常新增 A 紀錄應該就可以了,MX 如果真的信收不到再加) 還是不行… 挖洞:防火牆開 POPS(995)、IMAPS(993) ,還是不行,原來最重要的 SMTP(25) 不能關,洞挖了,信就一股腦兒全部進來了。 收工!

有時侯你就是想黏在某個網站上

圖片
有時侯你就是想黏在某個網站上,人說,愛到卡慘死,其實這種狀況還不是最慘的。 更慘的,你不得已必需黏在某個網站上,然後呢,然後那個網站時不時要踢人的,想黏的有不得己的苦,想踢的也有自已的考量,所以需要另闢蹊徑,轉個彎來到達目的地。 每個人都有自已愛用的瀏覽器, 不得不說,在台灣擺脫不了 IE ,但是 IE 自已也不長進,所以第三方的瀏覽器一直佔了一席之地,不為什麼,好用、快、功能多,大概不脫這些理由,好用對很多使用者來說只是本著使用經驗累積的直覺;快和功能多,雖然是瀏覽器功能的取捨造成的,只不過開發瀏覽器這檔事我們這些使用者是構不著,過問不了,只好用腳投票了! 工作環境:   Windows 10 pro   很多瀏覽器   Firefox 65.0.2 64位元版 如果你很清楚自已的需求,股溝 auto refresh 就會得到一堆結果,大家可以來個以身試藥,以便找出自已合用的擴充套件,或許時光流逝, IE 和 Chrome 上已經有了好結果……讓我們可以少裝一個瀏覽器。 日前(幾日已不可考)試了很多個瀏覽器和其他的擴充套件,先不說 IE 的擴充套件這碼事大概是難了, Chrome 這方面的擴充功能在上次的測試結果不甚理想,只好重拾 ff 全名 Firefox 人稱「火狐」的瀏覽器,這次找到的是個使用者不甚多的 auto reload tab 這個套件,本著能抓老鼠就是好貓的精神,這個擴充套件的功能也就這麼一個,為你指定的分頁(tab)設定一個重整的時間,然後,你漏掉新訊息的時間差(gap)就是這個重整的時段了;即便如此,請慎用這類套件,別把重整時間設得太短,以免被當成不懷好意的傢伙,被拒於門外,無法再次使用愛用的網站,得不償失。 設定重整的時間 收工!

備份與還原趨動程式

歷經各式各樣的網頁洗禮之後,Windows開始拖著略顯老態的身軀,慢條斯理的繼續工作著,有時侯我們可以回復原始的狀態,然後開始漫長的更新歷程,再把常用的程式一個個裝回來,然後開始新的變老的輪迴。 But...... 有時侯我們沒有回復原廠設定可以用,然後也找不到原本的趨動程式光碟,雖然也可以上網去下載,這時侯分別下載也是蠻麻煩的,就算有無人值守,未必當初有考慮裝回趨動程式的事,為何就不能把現在裝在 Windows 裏的趨動程式備份出來,系統重裝完後直接把趨動程式還原,以前,要做這件事,得依賴專用的程式,然後,如果這專用程式不靠譜,那就…打回原始人狀態,用另一台電腦,分別下載原廠的趨動程式回來裝,痛!累!花好多時間!不想動! 還好,我們活在文明的年代,用的也是新的 Windows 10 ,那麼,打2個指令,就可以了。 工作環境:   Windows 10 專業版  存檔位置: D:\Drivers 備份:dism /online /export-driver /destination:D:\Drivers 還原: dism /online /Add-Driver /Driver:D:\Drivers /Recurse 收工!

安裝 voyager

拿起我那斬到快斷的手(誤),來安裝夢裏看到也會笑的 voyager 以便展開我的新旅程,之前做的那麼多,都是為了要在 laravel 裝上之後來裝 voyager ,雖然現在 voyager 不是維一的選擇,但是它也持續發展了一段時間,而且 UI 越來越完整,應該還是不錯的選擇,希望它可以撐得比 XOOPS 長。 工作環境:   Windwos 10 + virtualbox   guest: Ubuntu 18 server 現在的 voyager 不但已經有了使用者界面,而且現在官網上也有教學,當然,要學功夫,就學正宗,看著官網做,總是不會錯。 安裝一個新的 laravel 專案就叫 voyager 這樣會在你的家目錄底下新增一個 voyager 的 laravel 開發環境 $ laravel new voyager 記得要修正程式用來儲存檔案的資料夾的權限,像是 storage 以下的資料夾就是預設儲存檔案的地方 $ sudo chown -R $USER.www-data storage $ chmod -R 775 storage $ sudo chown -R $USER.www-data hook $ chmod -R 775 hook 導入 voyager 的套件的設定和指令,並且修改相關的參數 $ cd /voyager $ composer require tcg/voyager$ vim .env ------------------------- APP_URL=http://laravel.test:8080 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=voyager DB_USERNAME=voyager DB_PASSWORD=your_voyager_password ------------------------- 完成修改的 voyager 相關設定大概會長成這個樣子,記得如果你的網址和你的 apache 設定要一樣,網址和埠號準確地寫在設定檔裏面,沒有設好的話,像是 media 中頭像、檔案這種和路徑相關密切相關的資料,就無法正確地顯示,導致網頁中圖片的部份沒有顯示或是出現破圖的圖示。

使用內建的功能來備份趨動程式