發表文章

目前顯示的是有「Linux」標籤的文章

[好文][Linux] awk 入門教程(簡中)

awk 入門教程

[Linux] Ubuntu 的 log 管理

有時 server 掛掉是因為 log 檔把硬碟空間吃滿,所以如何管理 log 檔就變成一件重要的工作,簡單說一下 Linux 的 log 管理機制: 1. 系統預設會跑一些 cron 工作 (每小時、每日、每週、每月) #vim /etc/crontab 2. 在每日的工作項目中有一項是 log 管理 (也就是說,系統每天會進行一次 log 管理) #vim /etc/cron.daily/logrotate 3. 管理的方式就是透過設定檔 (/etc/logrotate.conf 以及 /etc/logrotate.d/個別設定檔),依內容定義的規則進行管理。 4. 舉 /etc/logrotate.d/apache2 這個設定檔來說 #vim /etc/logrotate.d/apache2 daily: 用"天"來分log檔 rotate 14: 保留14份log檔 其他詳見  用logrotate管理每日增長的日誌

[Redis][Linux] 超簡單! 在 ubuntu 安裝 Redis server

Step 1. 安裝 $sudo apt-get install redis-server 先用 apt-get 裝 redis server Step 2. 設定 $sudo vim /etc/redis/redis.conf 然後 設定主機IP (預設是127.0.0.1) 設定檔中搜尋"bind 127.0.0.1" 找到後改成主機的IP (eg. bind 172.31.0.99) *port 預設是 6379 如果要改請搜尋 port Step 3. 測試 $sudo service redis-server restart $redis-cli -h 172.31.0.99 -p 6379 重啟服務後 就可以使用 redis-cli 指令來操作測試看看了 備註: 假設有其他台web主機,要連過來用 Redis,以 PHP 7.2 來說,web主機要先安裝 PHP 的 Redis 套件 $sudo apt-get install php7.2-redis $sudo service apache2 restart 然後建立一支測試程式 redis_test.php 內容如下: <?php $redis = new Redis(); $redis->connect('172.31.0.99', 6379); $redis->set("foo", "bar"); echo $redis->get("foo");

[Laravel][Linux][好文] Installing Laravel PHP Framework on Ubuntu 18.04 LTS for Apache (架設正式網站步驟)

Installing Laravel PHP Framework on Ubuntu 18.04 LTS for Apache

[Linux][架站] Ubuntu 16.04 apache 如何設定反向代理(Reverse Proxy)

假設我們有兩個網址 https://site1.myweb.com 及 https://site2.myweb.com, 我們希望使用者連到 site1 時,顯示 site2 的內容,就可以使用反向代理(Reverse Proxy)來達成。 什麼情形會需要這樣的設定呢?舉例來說:site2 是舊版本的 apache 只支援到 TLS 1.0,在無法升級 site2 主機的前提下,可以透過反向代理,來讓擁有新版 apache(支援 TLS 1.1 & 1.2) 的 site1 當作 site2 的入口。 反向代理(Reverse Proxy) 的設定如下...

[Linux] Ubuntu 如何使用 root 連 ssh 或 scp

Ubuntu 安裝過程中,系統會要求建立一個管理者(eg. sean0704),架好後當我們要用SSH連到這台主機時,指令為 $ssh sean0704@192.168.0.100 如果我們需要使用 root 身份連 ssh 或操作 scp 時,直接下 $ssh root@192.168.0.100 是會執行失敗的,原因是 1. root 還沒設定密碼 2. ubuntu 16.04 預設不開放使用 root 身份 login 所以,要做的事請如下...

[Linux][架站] Ubuntu 16.04 如何啟用SSL 讓網址支援 https://

參考  [Linux][架站] ubuntu 16.04 如何設定 apache 的 VirtualHost 可以架起 http:// 的網站,如果將 url 改成 https:// 會出現"無法連上這個網站"的畫面,因為 server 目前沒有監聽 443 port (可用 #netstat -nlpt 查看 有沒有443),這時需先啟用 ssl,如下: $sudo su - #a2enmod ssl #service apache2 restart 檢查一下 server 有沒有監聽 443 port。 #netstat -nlpt 應該就會看到 443 了,這時url輸入 https:// 會出現跟剛剛不一樣的訊息 "這個網站無法提供安全連線",那是因為我們沒有憑證。 申請憑證需要費用,以 GoDaddy 的憑證為例,付費後會得到三個檔案(兩個crt、一個key),需要放在 server 指定位置上,如下: /etc/ssl/certs/myweb.com.crt /etc/ssl/certs/gd_bundle-g2-g1.crt /etc/ssl/private/myweb.com.key (可以用從別台已經有SSL的主機,用SCP將憑證複製過去 舉例: #scp /etc/ssl/certs/myweb.com.crt  root@172.31.0.99:/etc/ssl/private/  PS.因為需要用root來執行scp 請先參考  Ubuntu 如何使用 root 連 ssh 或 scp  ) 有這三個檔案後才能正式進入設定的階段,步驟如下...

[PHP][Linux] Ubuntu 16.04 裝 PHP 7.1 (致敬 hojc)

$sudo su - #apt-get update #apt-get install -y apache2 #apt-get install -y php7.0 libapache2-mod-php7.0 php7.0-cli php7.0-common php7.0-mbstring php7.0-gd php7.0-intl php7.0-xml php7.0-mysql php7.0-mcrypt php7.0-zip #apt-get install -y python-software-properties #add-apt-repository -y ppa:ondrej/php #apt-get update -y #apt-get install -y php7.1 libapache2-mod-php7.1 php7.1-cli php7.1-common php7.1-mbstring php7.1-gd php7.1-intl php7.1-xml php7.1-mysql php7.1-mcrypt php7.1-zip #a2enmod php7.1 #a2dismod php7.0

[Linux][架站] Ubuntu 16.04 如何設定 apache 的 VirtualHost

當我們剛建好 ubuntu 16.04 的 apache server 時,預設網站目錄在 /var/www/html 下,假設我們想要將網站目錄放在 /var/www/site.myweb.com 下,設定方式如下...

[Linux] Ubuntu 16.04 內網 Server IP 設定

$sudo su - #vim /etc/network/interfaces 註解掉dhcp 然後往下加內容 #iface eth0 inet dhcp iface eth0 inet static  address 172.31.40.99  netmask 255.255.192.0  gateway 172.31.0.254  dns-nameservers 172.31.0.10 172.31.0.20  network 172.31.0.0 存檔後重開 IP就設定好了

[Linux] 開機後自動 mount 的方法

方法一: #vim /etc/rc.loc mount //172.31.0.1/lab /var/www/lab -o username=myid,password=mypw 方法二: #vim /etc/fstab //172.31.0.1/lab /var/www/lab cifs defaults,user=myid,password=mypw 0 0 補充: 1. 查看目前的mount #df 2. 移除目前的mount #umount /var/www/lab

[Linux] 找出之前輸入過的指令

按下 Ctrl + r 會進入 指令歷史記錄的查詢介面,可以輸入關鍵字來搜尋 (reverse-i-search)`': 如果關鍵字的歷史記錄有好幾筆 可以再按 Ctrl + r 來切換

[Linux][PHP][架站][Laravel] ubuntu 16.04 上安裝 PHP 7.2 以及 Lavarel (5.5~6.X)

圖片
Step 1. 安裝最基本的 ubuntu 16.04 預設值安裝即可 (可以直接選裝 OpenSSH server 或 之後自己手動安裝也可以) Step 2. 更新 及 安裝zip (之後所有安裝步驟都在家目錄即可) $sudo apt-get update $sudo apt-get dist-upgrade $sudo apt-get install zip unzip Step 3. 加入軟體相依性 因為 Ubuntu 的專案庫並未提供最新版的PHP,所以我們必需利用社群維護的專案庫(PPA)來額外擴充,其中提供最新版 PHP 的 PPA 名為 ppa:ondrej/php 在這之前,我們必需先確認 add-apt-repository 執行檔可以被使用 $sudo apt-get install python-software-properties 加入最新版 PHP 的軟體來源到專案庫 $sudo add-apt-repository ppa:ondrej/php 專案庫更新 $sudo apt-get update Step 4. 安裝 PHP $sudo apt-get install php7.2 確認 PHP 版本 $php -v Step 5. 安裝 PHP extension 因為 PHP 7.2 可以安裝 Laravel 6.X 以下的版本,所以可以在建立 Laravel 專案時,視需求指定 Laravel 版本,但要注意每個版本需搭配的 PHP 元件(extension) 有些許差異,舉例來說, Laravel 官網文件 5.6 的安裝必需條件 如下 可先用 phpinfo() 來檢查哪些 extension 還沒安裝,沒意外的話 除了 mbstring 及 xml 以外,應該都已經安裝且 enabled,所以只要把 mbstring 及 xml 再加上 zip 裝起來,就可以了。 $sudo apt-get install php7.2-mbstring php7.2-xml php7.2-zip mysql 預設是沒有安裝的,如果會用到請再執行。 $sudo apt-get install php7.2-mysql 重啟 apache $sudo systemc...

[MAC][Linux][架站] 如何利用 AB (ApacheBench) 進行網站壓力測試

圖片
AB (ApacheBench) 是一個非常方便的網站壓力測試工具,MAC 本身已有內建,所以可以直接用終端機下指令來使用,使用方式如下: #ab -n 10000 -c 10 -k http://localhost/hello.php Server 能力 主要是看下兩點: Requests per second (平均每秒可回應多少要求) (越高越好) Time per request (平均每個要求所花費的時間) (越低越好) 其他可以參考 保哥的文章

[Linux][架站][好文] Step By Step Ubuntu 17.04 (Zesty Zapus) LAMP Server Setup

Step By Step Ubuntu 17.04 (Zesty Zapus) LAMP Server Setup

[Linux][Laravel][架站] ubuntu 16.04 上安裝 Laravel

Step1. 安裝最基本的 ubuntu 16.04 預設值安裝即可 Step2. 更新 $sudo apt-get update $sudo apt-get dist-upgrade Step3. 安裝 SSH $sudo apt-get install openssh-server Step4. 安裝 Zip $sudo apt-get install zip unzip Step5. 安裝 LAMP $sudo tasksel install lamp-server Step6. 安裝 PHP extension $sudo apt-get install php-curl php-mcrypt php-mbstring php-gettext php-zip Step7. E nable mods $sudo phpenmod mcrypt $sudo phpenmod mbstring $sudo phpenmod zip $sudo a2enmod rewrite Step8. 重啟 apache $sudo systemctl restart apache2 Step9. 安裝 composer $curl -sS https://getcomposer.org/installer | php $sudo mv composer.phar /usr/local/bin/composer Step10. 安裝 laravel $composer global require "laravel/installer" Step 11. 修改環境變數 $vim ~/.bashrc 在最下面加上 export PATH="$PATH:$HOME/.config/composer/vendor/bin" Step 12. 讓變數生效 $source ~/.bashrc  Step 13. 建立網站資料夾 $cd /var/www/html/ $sudo mkdir laravel $sudo chmod -R 777 laravel Step 14. 新增專案 ...

[Linux] ubuntu $PATH 的設定方法

假設我們要加一個在任何地方都可以用的指令,我們必需加在$PATH裡,在 ubuntu 系統我們要載哪裡修改呢?為了不影響其他使用者,可以在兩個地方修改: 第一個地方 ~/.profile 第二個地方 (建議) ~/.bashrc 建議改第二個地方,因為 .profile 其實本來就會去執行 .bashrc ,所以改第二個地方,比較不會遺漏。 舉例來說,我們要將 composer 的 vendor/bin 放到$PATH,方法如下: $vim ~/.bashrc 在最下面加上 export PATH="$PATH:$HOME/.composer/vendor/bin" 存檔退出後,使用下面語法就可以使其立即生效 source ~/.bashrc

[Linux] 解決 使用 VirtualBox 安裝 ubuntu 桌面版 發生解析度不足、無法使用剪貼簿的問題、無法輸入中文(安裝新酷音) (ubuntu 16.04 64bit 桌面版為例)

先簡單說明一下 我使用 VirtualBox 安裝 ubuntu 時的設定值 (只是給大家參考,不一定要跟我一樣): 1. 記憶體大小 4096 MB 2. 立即建立虛擬硬碟 3. 硬碟檔案類型 VDI 4. 動態配置 5. 虛擬硬碟大小 100 GB 開始進入主題: Q1. 安裝完成重開機進入系統後,卻發現解析度太小,怎麼辦? Ans. 點選 VirtualBox 選單的 裝置 (Devices) ,裡面有一個 插入 Guest Additions CD 映像 (Insert Guest Additions CD image),執行後回到 ubuntu 系統會自動執行,等程式跑完會出現請你重開機的訊息,然後執行重開機,再次進入 ubuntu 後就會發現解析度的問題解決了。 Q2. ubuntu 無法跟外面的OS共用剪貼簿內容,怎麼辦? Ans.  點選 VirtualBox 選單的 裝置 (Devices) ,裡面有一個 共用剪貼簿 (Shared Clipboard) ,選擇 雙向 (bidirectional),就可以讓剪貼簿的內容共用了。 Q3. 無法輸入中文,怎麼辦? Ans. 請依下列步驟,安裝新酷音輸入法 1. 點右上角的 系統設定值 > 語言支援,點進去後進行更新安裝 2. 重開機 3. 點右上角的小鍵盤圖示,點"ConfigureFcitx"。 4. 開啟輸入法設定畫面,在第一個輸入法頁籤,按"+"圖示。 5. 新增"新酷音",這樣就搞定了。(切換輸入法的方式 Ctrl + 空白鍵) 

[Linux] 如何用 wget 執行 batch download 一次下載多個檔案 (使用 -i 參數)

先建立一個文字檔 假設是 url.txt 內容如下 http://www.web.com/a1.jpg http://www.web.com/a2.jpg http://www.web.com/b1.mp3 儲存後關閉,在命令列輸入 wget -i url.txt 就會開始下載文件中所有的檔案囉

[Docker][Linux] 快速安裝

安裝環境為 ubuntu 14.04 之後的版本 #curl -sSL https://get.docker.com/ | sudo sh 裝好了