顯示具有 GCP 標籤的文章。 顯示所有文章
顯示具有 GCP 標籤的文章。 顯示所有文章

2020年9月24日 星期四

Ubuntu 18.04. 安裝php7.2, mysql


安裝php:

sudo apt update

安裝php相關套件:

sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath

查看php版本:

php -v

Ubuntu18.04的php會預設為php7.2版本。


安裝mysql

sudo apt install mysql-server 

sudo apt install mariadb-server-core(安裝在數莓派上要用這個)

安裝後預設密碼空白,需要修改mysql root 密碼

sudo mysql -uroot -p 

進入mysql後輸入以下指令來設定root帳號密碼

mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('pi&metrackPI');

ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('pi&metrackPI');


>flush privileges;


變更密碼指令:

SET PASSWORD FOR '[帳號]'@'localhost' = PASSWORD('[密碼]');


修改mySQL設定
- 預設MySQL是只允許本機存取,因此要修改成允許遠端存取
-  sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
-  將blind-address這一行的IP改成自己要遠端的IP,若不限制可以加上#註解掉
-在[mysqld]區塊中加上character-set-server=utf8 

啟動mySQL
-輸入指令:sudo systemctl start mysql
- 查看運作狀況service mysql status


安裝phpmyadmin

sudo apt install phpmyadmin

php7.2以後的phpmyadmin有些問題,因此都會出現錯誤訊息;小弟尚未查到完整修改的方式,

但因為不引響實際網站存取資料庫問題,因此就先不管了。

若朋友有解法分享,小弟萬分感謝。

設定phpmyadmin連結網址:

sudo ln -s /usr/share/phpmyadmin /var/www/html/[例:phpmyadmin]


設定mysql使用者允許遠端連線(視需求設定)

若mysql在遠端環境,則需要允許遠端連線,可將以下指令IP改為%,或指定特定IP,若為本機用戶則輸入localhost。

允許遠端連線帳號權限,進入mysql後

mysql>GRANT ALL PRIVILEGES ON *.* TO '[帳號]'@'IP' IDENTIFIED BY '[密碼]';

更新權限

mysql>flush privileges;


PS. 若是由程式讀取本機資料庫,使用者可設定為Localhost,程式端的資料庫位置也要localhost才行。


2020年6月2日 星期二

從MAC使用gcloud SDK傳輸檔案到GCP

為了建立在PC、MAC上都可以連到GCP測試站的開發環境;但若用GCP console的檔案傳輸需要透過Bucket或單個檔案上傳,實在有點麻煩。
所以就試著用gcloud SDK以終端機command line的方式來上傳檔案 。


安裝GCP套件需要安裝Python
-MAC中預設的是python2.7,而GCP套件目前可支援Python2.7,但未來會只支援Python3以上版本,所以就來研究一下怎麼安裝Python3囉。


開啟終端機進行Python3安裝
1) 要先安裝Brew,輸入以下指令
-ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2) 安裝Python3,輸入以下指令
-brew install python3


安裝GCP的套件
- 下載的檔案解壓縮後,放到想要的目錄中
- 在終端機中輸入 [目錄名稱]/google-cloud-sdk/install.sh
- 會問題要不要回報問題給GCP及重新設定路徑,可以選擇不輸入就略過
- 最後重新開啟終端機


安裝GCP SDK,在終端機中輸入以下指令
gcloud init
- 會開始在本機建立一個預設設定檔(default configuration)
- 接著會要求你登入Google帳號
- 會詢問要選擇哪個在GCP建立的專案,或新建專案
- 詢問要不要變更區域資料
- 設定後就安裝完成了

設定GCP專案中繼資料的區域資訊

設定專案中的中繼資料,需要設region=[選擇的區域]及-zone=[選擇的區域]

gcloud compute project-info add-metadata --metadata google-compute-default-region=asia-east1,google-compute-default-zone=asia-east1-b


設定Client預設設定檔中的區域資訊
再來要設定Client端社區域資訊,這樣使用指令時才不用每次都要輸入

gcloud config set compute/zone asia-east1-b

gcloud config set compute/region asia-east1


連線GCP VM,在終端機輸入以下指令
gcloud compute ssh [Instance_name]
- 輸入passphrase後,就會產生SSH public key跟Private Key並存在電腦中
- 之後就可以從終端機輸入gcloud compute ssh [Instance_name] 連線到GCP的VM了

設定SSH 中繼資料
- 產生後的SSH Key會存在 預設路徑user/[使用者名稱]/.ssh/
- 目錄中會有兩個檔案*.pub是public key, 另一個沒有副檔名的是private key 
- 將public key用文字檔打開並複製
- 進入GCP console compute engine > 中繼資料 > 安全殼層金鑰
- 新增,然後將複製的public Key貼上後儲存 
- 這樣用完成SSH的設定了
- 這個Key就會是root帳號的Key,以下傳輸檔案時就可以帶root作為帳號來進行操作


傳輸檔案
先確認目前終端機是在本地不是連到VM上 (輸入指令回傳找不到目錄好幾次,才發現原來已經SSH連到VM了.. Orz)

整個目錄上傳指令: gcloud compute scp --recurse [本地目錄] [帳號]@[VM_名稱]:[VM目錄]
- 在輸入兩次passphrase,就會開始上傳了。
* 在前面的SSH Key設定中沒有帳號,這個步驟可以帶root;回到GCP console中的中繼資料中看,會多一個root的金鑰

- 單一檔案上傳指令: gcloud compute scp [本地目錄] [帳號]@[VM_名稱]:[VM目錄]


GCP連線相關問題

ERROR: (gcloud.compute.scp) Could not fetch resource:

 - Insufficient Permission: Request had insufficient authentication scopes.

需要重新驗證身份
指令-sudo gcloud auth login
輸入後再重新登入Google 帳號就可以了

ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255]

專案可能有instance或區域重新設定:需要更新SSH 金鑰
指令-sudo gcloud compute config-ssh
出現這問題時,不一定靠更新SSH可以排除... 還需研究






Ubuntu 安裝php、mysql、phpmysdmin

記錄常用的Ubuntu安裝動作,
將安裝php、mySQL、phpmyadmin

安裝PHP、Apache
sudo apt-get update
sudo apt-get install apache2 php libapache2-mod-php
安裝後網站路徑為/var/www/html/

修改php.ini設定
設定檔路徑:
sudo vi /etc/php/7.0/apache2/php.ini

extension設定

-extension=php_mbstring.dll

-extension=php_mysqli.dll
檔案上傳設定
-upload_file_maxsize=20MB
-upload_max_filesize = 20M
開發時錯誤顯示,避免發生錯誤時只顯示空白畫面
-display_errors=On

安裝mySQL
$ sudo apt-get install mysql-server
//$ sudo apt-get install mysql-client
//以下為資安考量安裝可省略
//$mysql_secure_installation 
- 會開始設定root的密碼,以及密碼安全性的檢核程度;建議根據已設定密碼的強度來選擇
- 選擇是否要允許遠端;視情況囉
- 選擇是否要移除測試資料庫;建議移除
- 確認重新載入權限表

修改mySQL設定
- 預設MySQL是只允許本機存取,因此要修改成允許遠端存取
-  sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
-  將blind-address這一行的IP改成自己要遠端的IP,若不限制可以加上#註解掉
-在[mysqld]區塊中加上character-set-server=utf8 

設定mySQL root密碼
- 預設mySQL root 密碼為空白需變更,
-sudo mysql -uroot -p
- 進入mysql開始變更root帳號密碼
- >UPDATE mysql.user SET authentication_string=PASSWORD('[密碼]'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
- >flush privileges;
- exit;


啟動mySQL
-輸入指令:sudo systemctl start mysql
- 查看運作狀況service mysql status

安裝php-MySQL套件
- 輸入指令:sudo apt install php-mysql

安裝phpMyAdmin
$ sudo apt-get install phpmyadmin
//$ sudo apt-get install php-mbstring

//$ sudo apt-get install php-gettext
- 安裝後會出現設定phpmyadmin的密碼

phpmyadmin設定
設定檔路徑
$sudo vi /etc/dbconfig-common/phpmyadmin.conf
dbc_dbuser='[帳號]'
dbc_dbpass='[密碼]'


在www中設定連結
$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

啟動apache
- 輸入指令:sudo apachectl start
*如有變更php.ini或mysql設定,需要重新啟動 sudo apachectl restart

測試:
1) php執行: 輸入 [localhost/ip]/
2) phpmyadmin: [localhost/ip]/phpmyadmin
3) 檢查mySQL語系設定,確認是否有非UTF8的語系 
-show variables where Variable_name like '%character_set%'
utf8mb4 兼容UTF8



2020年4月13日 星期一

網站摸索筆記:從windonws傳輸檔案到GCP

從本機傳輸多個檔案到Google Cloud Platform,
可以透過SCP FTP來傳輸,步驟如下:

1) 建立Key:
     - 可以使用Putty來建立Private Key、Public Key(Putty下載https://www.putty.org/)
     - Private Key用於傳輸時進行驗證
     - Public Key則要加在GCP的VM SSH設定中

2) 透過winSCP進行連線
    - 安裝winSCP (winSCP下載https://winscp.net/download/WinSCP-5.17.3-Setup.exe)
    - 連線時選擇Private Key


下載Putty建立Key
https://www.putty.org/
-安裝後到目錄中,執行puttygen.exe


儲存Private Key
- 在如下畫面中,在key comment中輸入用戶名稱(這個名稱會在FTP連線時使用)
- 然後按儲存Private Key(這個Key也會在FTP連線時使用)


複製Public Key 如下Public Key文字


進入GCP的中繼資料SSH設定頁面
- 按下編輯,並貼上複製的Public Key到金鑰欄位


- 按下儲存就新增完成了


開啟winSCP輸入連線資料
- 檔案協定選擇SCP
- 輸入主機名稱
- 輸入使用者名稱(這使用者名稱要與建立Key時相同)
- 然後點擊進階

- SCP/Shell 中選擇sudo su,使用最高權限才可直接上傳檔案到想要的目錄中

- 身分核對中選擇資料的檔案


- 完成設定後回到連線畫面,按下登入,就可以連線到GCP的VM中了





2020年4月12日 星期日

網站摸索筆記:GCP 安裝MySQL與設定

GCP VM安裝php, Apache後,再來安裝MySQL;
並讓開發的遠端可以連到MySQL中,這樣開發完成後再把網頁放到VM就上線了。

安裝MySQL
-輸入指令:sudo apt-get install mysql-server 

設定MySQL連線
-輸入指令:mysql_secure_installation 
- 會開始設定mysql的帳號root的密碼
- 以及密碼安全性的相關設定

啟動MySQL
-輸入指令:sudo systemctl start mySQL

確認MySQL服務
- 輸入指令:systemctl status mysql.service
- 出現如下Active 的資訊就表示服務啟動了


修改MySQL設定
- 預設MySQL是只允許本機存取,因此要修改成允許遠端存取
-  sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
- 將blind-address這一行的IP改成自己要遠端的IP,若不限制可以加上#註解掉



重新啟動MySQL
-輸入指令:sudo systemctl restart mySQL

嘗試登入SQL
- 輸入指令:mysql -u root -p
- 再輸入root帳號的密碼,看到以下畫面表示登入成功
- 輸入exit; 離開SQL


安裝php-MySQL套件
- 輸入指令:sudo apt install php-mysql
- 這動作安裝後php存取mysql的程式才能正常運作


接著設定VM的防火牆連線3306
- 因為會在本機開發,連到GCP上的資料庫,所以要調整VM設定
- 點擊GCP選單中的VPC網路>防火牆規則


-新增防火牆規則


-防火牆設定
 輸入名稱、說明,流量方向要選輸入

- 設定目標標記來建立VM跟防火牆規則的關連
  如下在VM中的網路標記就要加上dbserver,VM就會套用這個防火牆規則

測試telnet 
- 完成設定後可以從本機命令提示字元telnet [IP] 3306來測試
- 看到以下畫面就表示可以從本機連線到GCP的資料庫了


測試PHP 存取資料庫
- 以下PHP範例可測試資料庫連線
- sudo vi /var/www/html/dbconnect.php
<?php
$dbhost='localhost:3306';
$dbuser='root';
$dbpass='[root帳號的密碼]';
$link=mysqli_connect($dbhost,$dbuser,$dbpass);
if(! $link) {
    die ('DB連線失敗'. mysqli_error($link));
}
echo 'DB連線成功';
?>
- 出現DB連線成功就表示完成PHP與MySQL的環境設定


接下來就可以在不同電腦上開發程式,然後都連GCP的資料庫了。

2020年4月6日 星期一

網站摸索筆記:GCP VM安裝 Apache、php服務,網頁檔案上傳

建立GCP VM完成後,再來繼續安裝網站VM應有的服務。

VM執行個體頁:
點擊VM個體的名稱。

點擊SSH,開啟SSH連線視窗:


點擊SSH,開啟SSH連線視窗:
接下來要在這視窗輸入安裝服務的指令,
指令來自Google的教學,也有其他作業系統的設定方式。



安裝Apache, PHP:
sudo apt-get update
sudo apt-get install apache2 php libapache2-mod-php

測試安裝結果
可以從VM清單中直接用瀏覽器開啟IP位置,
就會顯示已安裝的Apache預設頁面



(上傳方法1)使用SSH上傳網站檔案:
SSH視窗有一個上傳檔案的功能,上傳後檔案會在路徑Home之下,
但是Apache的服務站台路徑為 /var/www/html/,所以就要再將檔案搬到對的路徑中。



輸入移動檔案的指令:
sudo mv GCP_test1.html /var/www/html/
IP位置後加上檔案名稱,就可以開啟網頁了。



(上傳方法2)
從選單中找使用 Storage功能

Storage設定頁:
建立值區(英文是Bucket明明很清楚 )

Storage建立頁:
設定的內容就先用預設的。
Storage管理頁:
設定完後,就可以上傳檔案了。


從VM中下載Storage的檔案
sudo gsutil cp -r gs://web1_storage/ /var/www/html/
複製整個目錄檔案的指令 sudo gsutil cp -r gs://[bucket_name] [目標路徑]
如果只要複製一個檔案指令為 sudo gsutil cp gs://[bucket_name]/[檔名] [目標路徑]
可參考gsutil/commands

測試網站
從IP路徑下/bucket_name/page_name.html,就可以測試網站了




2020年4月5日 星期日

網站摸索筆記:建立Google Cloud Platform VM

聽說Google Cloud Platform的服務有VM、Firewall、DB,還有很多API可以使用,
只是對於初心者來說,從基本的建立VM開始吧。

只要有Google 帳號的都可以使用Google Cloud Platform,


進入GCP顯示如下畫面:
由於使用專案方式來管理各項服務,所以要先建立一個專案


選擇專案視窗:
可以從選擇專案的地方來新增專案


新增專案畫面:
輸入專案名稱,位置的部分我不清楚有甚麼影響,所以就沒選擇了。

專案Dashboard畫面:
新增完成後會看到以下畫面。


功能選單:
建立專案後,在來就要建立專案下的VM;
Compute Engine中,點擊VM執行個體


因為還沒有VM執行個體,所以需要先建立。

建立執行個體畫面:
- 沒特別想設定的名稱,就用預設的
- VM區域選擇台灣,應該會快一點
- 機器類型 選擇f1-micro,這部分主要影響費用,所以先選一個便宜的。
- 開機磁碟 是選擇VM作業系統,我是選擇Ubuntu,這可以看個人需求來設定。
- 防火牆 通訊方式允許http來連線,因為預計要放個網站;若要綁定網域且設定SSL,則要勾選https
- 接這按下建立,就完成囉。


VM執行個體頁 (完成):
建立後在VM執行個體中就可以看到剛新增的VM了。



*開機磁碟可以選擇以下作業系統: