發表文章

目前顯示的是 2018的文章

Ubuntu server phppgadmin 網頁無法連結

最近想來用用 postgresql ,和 MySQL 相似的資料庫伺服器軟體, MySQL 在台灣應該是比較流行的資料庫, postgresql 對於關聯性的資料表鍵結,還有一些內建函數(包含gis的函數)功能面好像比較齊全。 此次工作環境 Ubuntu LTS server 14.04 LAMP 已安裝 postgresql 已安裝 phppgadmin 已安裝 此次症狀: 以連到 server.name.com 為例 連到 server.name.com/phppgadmin 瀏覽器出現錯誤代碼 404 ------------------------------  選項,非必要  ------------------------------ 如果發現 postgresql server 還沒裝(選項,非必要) 如果你已經有裝了,可以跳過 開始裝 sudo apt-get install postgresql-9.3 處理 postgre 的資料夾和權限(選項,非必要) sudo mkdir -p /usr/local/pgsql/data sudo chown -R postgres:postgres /usr/local/pgsql/ sudo su - postgres cd /usr/lib/postgresql/9.3/bin/ ./initdb -D /usr/local/pgsql/data ./postgres -D /usr/local/pgsql/data 可能需要裝 postgres-xc (這是我覺得最怪的地方,要裝一個 postgresql 得裝一堆有的沒的) sudo apt-get install postgres-xc postgres-xc-client 把一些東西清掉 sudo apt-get autoremove 重新啟動 postgresql 伺服器 sudo service postgresql restart ------------------------------  選項,非必要  ------------------------------ 修改授權的來源位址(必要) 和 phpmyadmin 相似,phppgadmin 也可以限制來源位址

Mikrotik CCR 備份設定檔案

最近常用這家的路由器,如果只是要用分享器的功能市面上有很多其他的選擇,而且便宜也直覺,但是這個路由器有很多好用的功能,雖然除了一般分享器以外的功能都須要一些背景知識和設定,但是它的工作表現真的很穩定,近期可能離不開它了 Save Load 大法是破關的好朋友,經由不斷驗證,找出破關的路,所以學會備份是不二法門 工作環境:   Mikrotik CCR 路由器 v6   命令列(Command Mode): export file = test_backup test_backup.rsc system b a c k u p save name = test_backup test_backup.backup 操作界面(UI): Files > Backup > name: test_backup > Backup test_backup.backup 只要是 .backup 的檔案就是編碼過的,人眼無法判讀,rsc 的就是可判讀的文字檔 收工!

voyager 的中文界面設定

多語系支援的需求雖然一開始不會浮現,但是早晚還是得要面對的事情, voyager 事先就實作了,需要的就是一點翻譯的工作。 作業環境:   Windows 10 + virtualbox   guest: Ubuntu server 18 設定所需的檔案位置在這裏: /your_app_path/vendor/tcg/voyager/publishable/lang預設只有 zh_CN 自已轉了內容存到 zh_TW 就可以用了。 之後登入使用者的編輯介面中 local 有新的 zh_TW 可以選用,再次登入的時侯就會看到中文的介面了,用詞當然不是全部和我們的習慣一樣,再自已去語系檔裏改一下嚕。 收工!

從 netplan 轉回 interfaces x ifupdown

新的作業系統總會有些新的東西要學,奈何除錯的時侯總是不那麼盡如人意,就是那個,人生不如意事十有八九的那碼子事,netplan 用在 Ubuntu Server 18 是個新的管理套件,這次想要加多設一個網路卡,怎麼也設不起來,就算設定檔寫好了,網卡一直處在停用的狀態 (disabled) 無法啟用 ,雖說好馬不是回頭草,好在,我不是馬 XD...... 工作環境:   Windows 10 + virtualbox   guest: Ubuntu Server 18     開工了~~~~~~~~~~~~~~~~~ 參考這篇:https://askubuntu.com/questions/1031709/ubuntu-18-04-switch-back-to-etc-network-interfaces 安裝網路卡管理套件 $ sudo apt-get update $ sudo apt-get install ifupdown 設定你的網卡 /etc/network/interfaces 設好之後會長的像這樣子 ---------------------------------------- # 這行沒有用到也可以運作 # source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback auto enp0s3 iface enp0s3 inet dhcp auto enp0s8 iface enp0s8 inet static address 1.2.3.4 netmask 255.255.255.0 gateway 1.2.3.254 dns-nameservers 8.8.8.8 168.95.1.1   # Only relevant if you make use of RESOLVCONF or similar...   dns-nameservers 1.1.1.1 1.0.0.1 ---------------------------------------- 啟用設定檔 $ sudo service networking resatart

php composer 的安裝方式更新

印象中 composer 很好裝的,怎麼官網的說明變得多了,卻也感覺讓一個簡單的安裝變得複雜,做為開源工具的使用者,又要開始游牧了,這種生態好像就像是開源工具使用者的 DNA ,自然就難以擺脫游魂一般的命運了 如果直覺的依據官網提供的裝法其實很簡單:把這裏的4行複製貼上到終端機的命令列中: https://getcomposer.org/download/ $cd --------- $php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" $php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" $php composer-setup.php $php -r "unlink('composer-setup.php');" --------- 又參考這個:https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-ubuntu-18-04 一步一步跟著作也可以裝好 But, 人就是懶又貪,還看到官網寫著,可以用程式來安裝,在這裏: https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md  得再多試幾次,我真是愛自找麻煩的傢伙 工作環境: Windows 10

composer 安裝 laravel error Permission denied

為了要安裝 laravel,因為對於 vagrant 、 docker 這些工具都不熟悉,只能手動建置平台,也就因此遇到一些前人已經處理完的問題,這次是權限問題 $composer global require laravel/installer   [ErrorException]   file_put_contents(./composer.json): failed to open stream: Permission denie   d 因為權限的問題,所以在本機用非 root 帳號使用 composer 時,出現了以上的錯誤訊息,但是 composer 也不建議用 root 帳號安裝,那麼得來處理一下這個權限問題。 $sudo chown -R $USER.$USER ~/.composer/ 再裝一次 laravel $composer global require laravel/installer 應該就可以了

laravel 的 apache2 伺服器和 VM 相關設定

除了要把 laravel 的網頁伺服器帶起來以外,還想在連線的時侯不要用記不起來的 ip 而用網址名稱來連線,所以調整 apache 的設定,以及網址的對應。 工作環境:   Windows 10 + virtualbox   guest: Ubuntu 18 server   Windows IP: 192.168.ooo.xxx laravel 安裝在   /home/your_name/your_laravel_path/public 網址與 IP 的對應檔案   C:\Windows\System32\drivers\etc\hosts 其中 apache 使用以名稱對應的虛擬網頁,ServerName 要和網址對應檔的名稱對應   ServerName      laravel.test    <====>    127.0.0.1    laravel.test 加上 virtualbox 的埠號對應(8080)   Windows 10 host 瀏覽器 > laravel.test:8080 > VM > 127.0.0.1:8080  laravel.test.conf NameVirtualHost *:8080 Listen  8080 <VirtualHost *:8080>     ServerName      laravel.test     ServerAlias     www.laravel.test     # The location of our projects public directory.     DocumentRoot    /home/your_name/your_laravel_path/public     # Useful logs for debug.     LogLevel        debug     CustomLog       ${APACHE_LOG_DIR}/access.laravel.test.log   combined     ErrorLog        ${APACHE_LOG_DIR}/error.laravel.test.log     # Rewrites

laravel 剛剛裝好無法進入

時至今日,真的很能體會關先生當初過五關、斬六將的辛苦,為了要把 laravel 裝起來,已經不知道過了幾關,斬的手都骨折了。好不容易,到了可以連到 laravel 的時侯了,帶著期待的心情,開啟瀏覽器,連到 laravel.test:8080,登!登!登!登! MMMMMMMMMmmmm......... 不是那個白底的 Laravel 的 welcome page 是那個俗稱亂碼的&^%$^&*(*&^%%&* 工作環境:   Windows 10 + virtualbox   guest: Ubuntu 18 server 好在左上方的訊息很清楚,長得像這樣子的 The stream or file "/path_to_laravel/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied ... 又是權限問題,那就簡單一些,谷溝大神說已經有人遇過了:   sudo chown -R $USER:www-data storage   chmod -R 775 storage 再連一次 laravel.test:8080 總算是還給我白皙首頁 開心 收工!

composer 安裝 laravel error ext-zip

試著不用 homestead, docker 這些工具,自行安裝 laravel, 之前已經安裝完成了 composer 接著就是要安裝 laravel 了,根據官網的說明,只要滿足一些套件就可以了,     PHP >= 7.1.3     OpenSSL PHP Extension     PDO PHP Extension     Mbstring PHP Extension     Tokenizer PHP Extension     XML PHP Extension     Ctype PHP Extension     JSON PHP Extension 工作環境:   Windows 10 + virtualbox   guest: ubuntu 18 server $composer global require laravel/installer error:   ext-zip * -> the requested PHP extension zip is missing from your system ... 應該是要安裝 php-zip 或是 phpVersion-zip ,但是,找不到 @@" 這時侯,請更新 /etc/apt/source.list (請記得先備份哦) $vim  /etc/apt/source.list 加上 universe 類別的套件  ---------- deb http://archive.ubuntu.com/ubuntu bionic main universe deb http://archive.ubuntu.com/ubuntu bionic-security main universe deb http://archive.ubuntu.com/ubuntu bionic-updates main universe  ---------- $sudo apt update $sudo apt install php-zip 再次 $composer global require laravel/installer 安裝成功了。 開心 收工!

設定 laravel 執行檔的路徑 以便日後使用

安裝完成 laravel 之後,laravel 的執行檔會在家目錄下的 .composer/vender/bin/ 的資料夾裏,所以,預設要執行 laravel 時,就要 .composer/vender/bin/laravel 才能執行,當然不能搞到這麼麻煩,所以,再來調整一下。 工作環境:   Windows 10 + virtualbox   guest: ubuntu 18 server   composer global   laravel global $vim .bashrc 在檔案最後方加上一行,真正的路徑請依你的實際狀況調整 export PATH="$PATH:$HOME/.composer/vendor/bin" $source .bashrc 此時 $laravel 會輸出 Laravel Installer 2.0.1 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   -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands:   help  Displays help for a command   list  Lists commands   new   Create a new Lara

Ubuntu 18 MySQL root 帳密設定

在 Ubuntu 18 server 安裝了 phpmyadmin 結果 root 帳密無法登入,會出現類似 root 帳號不能空白。 工作環境:   Windows 10 + virtualbox   guest: Ubuntu 18 server 用 root 登入 mysql: $ sudo su - $ mysql -uroot 確認你的使用者在資料庫中 mysql> SELECT User,Host FROM mysql.user; +------------------+-----------+ | User                  | Host      | +------------------+-----------+ | admin               | localhost | | root                  | localhost | 設定你的密碼 mysql> UPDATE user SET authentication_string=PASSWORD("YOUR_PASSWORD") WHERE User='root'; 改認證方式 mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root'; 最用權限 mysql> FLUSH PRIVILEGES; =================== 如果已經被改到進不去資料庫的解法 $ sudo service mysql stop $ sudo mkdir -p /var/run/mysqld $ sudo chown mysql:mysql /var/run/mysqld $ sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking & $ [1] #### $ jobs [1]+  Running     sudo / 用上面的程序改完之後: $ sudo pkill mysqld =================== 以下可

Mikrotik routerOS 的通透模式 transparent mode

人不是機器,一定得休息,網路設備,鐵打的,日以繼夜,吃電不喝水,難道真打不死?不是不是!撐得久點就是,時間到了,人該花的錢、人該做的工,跑不掉。 話說這次等著用電郵信箱,還等了很久的是 老 闆 本 人 ( 驚! ),這麼巧,偏偏機器老死在手邊一堆工作在趕的時侯,一開始還以為是伺服器的空間滿了,任務結束之後立馬去看了機器,不是空間滿了耶!!!奈啊捏!!暗暗叫( 罵 了 好 幾 聲 髒 話 )苦!那就不是一時半刻可以解決的了,查了查,辛勤工作10年以上的防火牆腦子燒了(CPU使用率100%),雖然看起來還能幫你指路,但是指的不好,還會放空(登入沒作幾個動作就給你一片空白的操作頁面),囧,「科技,始終沒有人性」,總在你最需要它的時侯拋棄你。一下子搞不定,先找高手,廠商的工程師人很好,登進去看了下,原來已經是前2代的機器,早就停產(順便表揚了一下勞苦功高的機器),閻王沒放手的,妙手果然還是留不住,還好手上有台新機,平時除了 NAT 用不到進階的功能,雖然有處置的方向,這新朋友和我也不是很熟啊~~(其實網路的東東和我都不熟啊~~嗚嗚嗚、哈哈哈),想讓新機上線還得先做些實驗,想就苦手,反正死馬當活馬醫,救得回來可以少花很多錢,這攤生意穩賺不賠,試試唄,萬分感謝老闆的耐性。 工作環境:   Mikrotik 路由器(routerOS)   應用伺服器 變動最少、最好的設定方式是以不變應萬變,設一台一般般、一模模一樣樣的防火牆來代替原本已經 RIP 的機器就是我的方針,依舊採用通透模式讓伺服器繼續服務。 拜了好一下股溝大神,還真難找到相符的文件,很難就表示得花很多時間找,再加很多時間拜讀不能達成目標的資料,總算找著好心人放了文件在網站上,圖說都有,超感動。 routerOS 上通透模式就是橋接( bridge ),再加上封包過濾( filter )。 特別的是橋接的時候不能用預設的 NAT 橋接設定,所以用了最後2個介面(eth4, eth5),我搞不懂,但是我懂得抄別人成功的。 在防火牆上把要提供的服務開放,透過封包過濾把服務的埠開通。 先在自已的桌上設好,試過,可以通,調成機器所在的環境設定,放到機櫃裏, Mmmmmmm……………………,連不上。最遠的距離莫過於機器就在面前卻怎麼也連不上。 讓設定生效: 只記得之前來裝機的工程師說,要讓

barcode printer 使用 php socket 列印

話說,條碼印表機實在很神秘,要讓它印個條碼非得透過特定應用程式不可,這次很幸運可以試著自已把東東印出來,透過之前從沒用過的 socket ,socket 這東東看了半天也看不懂是個什麼東西 ,不過本著一貫在不解中摸黑,只問結果不求甚解的鴕鳥心態,就……試試。 $cht_string = "我要用中文"; $cht_string = iconv(mb_detect_encoding($cht_string), "UTF-8", $cht_string); $cht_big5 = iconv(mb_detect_encoding($cht_string), "BIG-5", $cht_string); $host = "1.2.3.4"; $port    = 9100; //default listening port for printer $message = ' Hello, world'.$cht_string.$cht_big5.' '; // create socket // 0, IP // SOL_TCP = specify protocol of TCP, UDP, FTP ... $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if(!$socket){     $errorcode = socket_last_error();     $errormsg = socket_strerror($errorcode);     socket_close($socket);    die("Could not create socket: [$errorcode] $errormsg\n"); } // connect to server $result = socket_connect($socket, $host, $port); if(!$result){         $errorcode = socket_last_error();         $errormsg = socket_str

UEFI 開機時啟用新的硬體 及 USB 設備

這次還有個大魔王,UEFI 這種新型的 BIOS , 大致上來說,它擴充了傳統 BIOS 的功能(號稱),阻絕了,阻絕了,阻絕了一般的使用者透過 BIOS 來對電腦做一些進階的操作,但是也把原本很容易的維護工作,像是備份和還原系統變得很複雜。 調 BIOS 很煩,大致上來說只是為了要加入硬碟,要開 Boot -> BBS 把新的硬碟加進去,才能在 Boot -> Secure Boot -> 開機設備中選取新的硬碟,這裏可以定開機設備的順序。 如果 BIOS 還要從 USB 開機,要關閉 Boot -> Secure Boot ,Boot -> CSM(compability Support Module) 開啟相容支援模組,Boot -> CSM(compability Support Module) 其下的 可開機裝置控制 -> UEFI 和傳統韌體(legacy),之後其他的可以改成 傳統韌體優先,在 進階 -> USB configuration -> Legacy USB 支援 -> 開啟。 僥倖逃過大魔王的魔掌。 收工! 參考小弟過程中的血淚 和 網址: http://a7432186.pixnet.net/blog/post/343355806-asus-%E4%B8%BB%E6%A9%9F%E6%9D%BF-bios-uefi-%E9%96%8B%E6%A9%9F-%E6%94%B9%E5%82%B3%E7%B5%B1%E9%96%8B%E6%A9%9F-legacy

ubuntu 安裝了 docker 套件之後出現 docker is currently not installed

情境: 使用 apt-get 安裝 docker 之後,要確認 docker (docker -v)是否已經安裝完成,出現 docker is currently not installed 作業環境: windows 10  virtualbox host: ubuntu 14 解決: 裝 docker.io : sudo apt-get install docker.io   測試是否安裝完成: docker -v ,不再出現 docker is currently not installed 的訊息 網站上也有說直接用 docker 的來源安裝: sudo curl -sSL https://get.docker.com/ | sh 這個方法是原生的方式,大概是什麼版本的 linux 都行的吧,但是先跳過這個了。(未測) 收工