Linux 設定修改時區

Linux 上時間分成兩個部分, Universal Time 與 Local Time, Universal Time 一直會維持為 UTC 時間, 而 Local Time 則是使用者所在的時區時間, 通常我們在安裝 Linux 的時候就會完成時區的設定, 但是在 Cloud 上預設都維持在 UTC +0 時區, 當我們機房跨足不同時區時可能會有同步的問題, 因此正確的設定時區是非常重要的.

檢查時區

當主機還沒有設定時區時, 輸入指令 date 系統返回的時間會是 UTC, 若主機已經有設定時區 UTC 會變成其他時區

$ date
Sat Jun 17 15:28:00 UTC 2017

設定時區

我們可以透過以下指令進行時區設定

sudo dpkg-reconfigure tzdata

系統會跳出視窗要求你選擇所在的地理區

接著選擇時區

當設定完成後, 系統會顯示目前的設定

Current default time zone: 'Asia/Taipei'
Local time is now:      Sat Jun 17 23:51:12 CST 2017.
Universal Time is now:  Sat Jun 17 15:51:12 UTC 2017.

指令 date 所顯示的時間變成帶有時區的時間了!

Sat Jun 17 23:51:55 CST 2017

這樣一來就完成時區的設定了, 若要修改時區只要把上面的步驟在做一次就可以了.

在 Debian 8 上安裝 Nginx + PHP7-FPM

Nginx 在 Web Server 領域有著極為優異的表現, 如果搭配 PHP-FPM 可以讓網站的速度更上一層樓, 本篇文章將與各位分享如何在 Debian 8 上安裝 Nginx 與 PHP-FPM

環境資訊

Debian 8 (Jessie) 請注意OS版本, 本文針對 Debian 8 做說明
Nginx 1.6.2
PHP 7.0

安裝 nginx

sudo apt-get install nginx -y

安裝 PHP7-FPM

本文章為濃縮版, 指令細節可以參考 在 Debian 8 (Jessie) 上安裝 Apache + PHP 7

echo "deb http://mirrors.teraren.com/dotdeb/ stable all" | sudo tee --append /etc/apt/sources.list
echo "deb-src http://mirrors.teraren.com/dotdeb/ stable all" | sudo tee --append /etc/apt/sources.list
wget -qO - https://www.dotdeb.org/dotdeb.gpg | sudo apt-key add -
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install php7.0-fpm php7.0-common -y
sudo apt-get install php7.0-zip php7.0-mysql php7.0-mcrypt php7.0-mbstring php7.0-json php7.0-imagick php7.0-gmp php7.0-curl php7.0-dom php7.0-gd -y

調整 PHP-FPM 設定

我們必須調整 php 的設定, 使得 php 更加安全

sudo vim /etc/php/7.0/fpm/php.ini

將本來由 ;註解掉的設定

;cgi.fix_pathinfo=1

修改為

cgi.fix_pathinfo=0

重新啟動 PHP-FPM

sudo systemctl restart php7.0-fpm

連接 Nginx 與 PHP

sudo vim /etc/nginx/sites-available/default

將下方設定檔寫入其中

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.html index.htm index.php index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

        location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    }
}

重新啟動 Nginx

sudo systemctl restart nginx

測試

將測試用檔案寫入 Nginx 預設目錄

echo "<?php phpinfo();" | sudo tee /var/www/html/info.php

打開瀏覽器前往 http://你的IP/info.php


當你看到這個畫面就代表PHP成功運行, 紅框的部分顯示 FPM/FastCGI 代表我們的 PHP 確實是使用 PHP-FPM 模式運行

由於 phpinfo 會透露很多詳細資訊, 為了安全起見, 欣賞完畢要順手把 info.php 刪除

sudo rm /var/www/html/info.php

在 Debian 8 上安裝 MariaDB 10.1

MariaDB 是 MySQL 的移植版本, 不僅保有 MySQL 原本的功能, 也新增很多 MariaDB 獨有的功能, 使用上相容於 MySQL 函數庫以及相關工具, 是非常棒的MySQL替代品, 本文章將介紹如何透過 apt-get 將 MariaDB 10.1 安裝在我們的 Debian 8 主機上

新增 MariaDB 官方套件庫

sudo apt-get install software-properties-common -y
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.ubuntu-tw.org/mirror/mariadb/repo/10.1/debian jessie main'

在 IPv6 的環境下, 第二行指令可能會連線失敗, 改用 IPv4 連線就可以解決這個問題

更新套件庫

sudo apt-get update

安裝 MariaDB

sudo apt-get install mariadb-server -y

設定 MariaDB Root 密碼

安裝過程會詢問 root 密碼, 連續輸入兩次即可

啟動 MariaDB

sudo service mysql start

強化 MariaDB 安全性

mysql_secure_installation

依照提示回答下列問題

Enter current password for root (enter for none): 輸入 root 密碼

Change the root password? [Y/n] n
安裝時已經設定過 root 密碼, 因此無須更換 root 密碼

Remove anonymous users? [Y/n] Y
移除匿名使用者

Disallow root login remotely? [Y/n] Y
禁止 root 遠端登入

Remove test database and access to it? [Y/n] Y
移除多餘不必要的資料庫

Reload privilege tables now? [Y/n] Y
立刻重新載入權限表

測試

我們可以透過以下指令嘗試連接資料庫

mysql -u root -p

輸入 root 密碼後 按下 enter, 若畫面出現 Welcome to the MariaDB monitor. Commands end with ; or \g. 就代表我們成功安裝了 MariaDB 到我們的 Debian 主機上

控制 MariaDB

啟動

sudo service mysql start

停止

sudo service mysql stop

重新啟動

sudo service mysql restart

在 Debian 8 (Jessie) 上安裝 Apache + PHP 7

環境

Debian 8 (Jessie) 請注意OS版本, 本文針對 Debian 8 做說明
Apache 2.4
PHP 7.0

加入 dotdeb 資源

新增套件來源

新增 dotdeb.org 資源庫, 此為 PHP7 的套件來源

echo "deb http://mirrors.teraren.com/dotdeb/ stable all" | sudo tee --append /etc/apt/sources.list
echo "deb-src http://mirrors.teraren.com/dotdeb/ stable all" | sudo tee --append /etc/apt/sources.list

由於我的主機在日本, 因此我選擇日本的鏡像點, 你也可以從 https://www.dotdeb.org/mirrors/ 尋找比較適合的鏡像點

加入 dotdeb.org 的 GPG Key

新的套件來源都必須加入 GPG Key 來確保完整性, 我們可以透過下列指令匯入 dotdeb 的 GPG Key

wget -qO - https://www.dotdeb.org/dotdeb.gpg | sudo apt-key add -

更新主機套件資訊以及升級過期套件

sudo apt-get update && sudo apt-get upgrade -y

安裝 Apache + PHP 7

安裝 Apache

sudo apt-get install apache2 -y

安裝 PHP 7

sudo apt-get install php7.0 php7.0-common -y

安裝 PHP 7 常用函數庫

我們可以透過 apt-cache 列出所有可以安裝的 php7.0 函數庫

apt-cache search php7.0

這邊我就只安裝常用的套件, 各位可以依照需求自行補充安裝

sudo apt-get install php7.0-zip php7.0-mysql php7.0-mcrypt php7.0-mbstring php7.0-json php7.0-imagick php7.0-gmp php7.0-curl php7.0-dom php7.0-gd -y

連接 Apache 與 PHP 7

sudo apt-get install libapache2-mod-php7.0 -y && sudo service apache2 restart

測試結果

在 Web 目錄中建立一個 test.php 來確認是否能夠正常執行 php

echo "<?php phpinfo();" | sudo tee /var/www/html/test.php

打開瀏覽器 前往 http://[你的IP]/test.php

若出現以上面的畫面就代表 Apache 與 PHP 7 成功運作