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

2025年2月19日 星期三

Ubuntu Apache SSL設定紀錄問題檢查常用指令

環境面:

- DNS需要設定IPV4, IPV6指向

- LightSail只有預設IPV6的443防火牆規則,需要另外新增IPV4的規則


Apache設定

- path: etc/apache2/

- port.cong: 

    要確認有Listen 443, Listen  [::]:443

- /sites-available/default-ssl.conf (預設設定檔)

    修改ServerAdmin、ServerName、DocumentRoot

    SSLEngine on

    憑證檔:

    SSLCertificateFile:預設路徑/etc/ssl/certs/

    SSLCertificateKeyFile:預設路徑/etc/ssl/private

    SSLCertificateChainFile:預設路徑/etc/ssl/certs/

    *apache 80預設值在000-default.conf中,不需異動

- 確認憑證讀取權限

    - 將檔案上傳預設路徑時會需要異動讀取權限,上傳後再改回來

    - sudo chmod 644 憑證.crt

    - sudo chmod 600 key.pem

    - sudo chmod 755 目錄

    - sudo chown www-data:www-data 憑證.pem

    - sudo chown www-data:www-data key.pem


異常檢查指令:

-查看Apache運行錯誤

 sudo tail -n 50 /var/log/apache2/error.log


-查看Apache設定錯誤

 sudo apachectl configtest



-強制關閉、清除、啟動、重啟

 sudo systemctl stop apache2 

 sudo killall apache2

 sudo systemctl start apache2

 sudo systemctl restart apache2


-檢查是否有其他應用程式在使用443,80port

 sudo netstat -tulnp | grep -E "80|443"


- 檢查443是否正確讀取:

  sudo netstat -tulnp | grep ":443"

  顯示為tcp6       0      0 :::443                  :::*                    LISTEN      485/apache2 
  

-測試SSL憑證鍊
 openssl s_client -connect d0works.com:443 -showcerts

-測試https網址

2020年6月2日 星期二

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年5月17日 星期日

網站摸索筆記: Mac 的php上傳設定

Mac上已經有預設php、Apache了,所以主要針對php檔案上傳問題進行調整。

1) 問題卡關點: php檔案上傳路徑權限
- 因為預設的apache目錄有權限的問題,所以在使用php move_upload_file()時會出現permission deny的錯誤訊息
- 解決方式是從終端機進入網站目錄,在使用指令 chmod 777 [檔案目錄名稱],就解決了。
例:檔案目錄為sites/upload_img/,在終端機中進入sites目錄,輸入 chmod 777 upload_img


2) php.ini 上傳檔案相關設定
- mac 預設php.ini設定在/etc/ 目錄中,但我只有看到php.ini.default;所以就複製一個另外命名為php.ini

幾個設定的欄位:
- file_uploads= on (預設就是on了)
- upload_tmp_dir= "/privat/tmp_dir/"(若要變更上傳的暫存路徑可以設定這個參數,前面;記得拿掉才會啟用所設定的目錄)
- upload_max_filesize= 20M (最大上傳檔案大小)
- max_file_uploads= 20(對大上傳檔案數量)
- post_max_size=20M (Post上傳的對大檔案大小,若小於upload_max_filesize,上傳時會取最小的)

重啟服務
sudo apachectl restart



2020年4月13日 星期一

網站摸索筆記:windows啟動Apache錯誤- 找不到VCRUNTIME140.dll

啟動apache時出現 "找不到VCRUNTIME140.dll"的錯誤訊息。

Apache下載時會需要安裝Visual C++ Redistributable for Visual Studio 2015-2019
- 在Apache下載官網上還附上下載連結了。
    vc_redist_x64下載

- 安裝後再重應該就可以正常啟動了


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月11日 星期六

網站摸索筆記:win10 安裝Apache、PHP

想在本機建立網站開發環境,需要安裝php、Apache;

下載Apache
-可以根據作業系統下載對應版本(我是下載64bit)
-下載時要根據支援性再去下載對應的php版本,如下圖就要下載或VC15/14的php
-另外記得還要下載對應的 vc_redist_x64


下載PHP
-https://windows.php.net/download/
-版本很多不確定差異在哪,所以就下載了vc15 x64 Thread Safe的版本




安裝Apache------------------------------------------
將解壓縮Apache檔案放到預計的路徑中
- 這個路徑會影響httpd.conf檔案中的對應設定(我是放到F:\中)

設定httpd.conf檔案
Define SRVROOT "F:\Apache24" (存放解壓縮Apache檔案夾的路徑)
- 預設會將此路徑套用到以下資料參數 "ServerRoot"、"DocumentRoot "、"Directory "、"ScriptAlias"

安裝Apache服務
- 以管理者權限進入命令提示字元
- 輸入指令:[資料夾路徑]\bin\httpd.exe -k install -n apache 
(例:>F:\Apache24\bin\httpd.exe -k install -n apache)

以下是安裝成功的訊息,雖然有個我不知道是什麼的error;若有高手知道也請不吝告知。

這是第一次安裝出現的錯誤訊息,原因是SRVROOT <=這個參數設定錯誤,導致路徑不對。


啟動Apache服務
- 輸入指令:[資料夾路徑]\bin\httpd.exe -k start -n apache 
  (例:F:\Apache24\bin\httpd.exe -k start -n apache)
-在瀏覽器中輸入測試網址:http://localhost:8080, 或http://127.0.0.1:8080
若成功就會開啟原本在Apache安裝包中的測試頁,顯示It works!
(網址後的:8080<- 這個Port號設定可自訂)


*(補充) Port的設定在httpd.cong檔案中,有一個Listen 的參數
預設是80,但若本機有安裝IIS,80port就會被占用,所以要換成8080。

*(補充) 網站位置的設定預設為<Directory "${SRVROOT}/htdocs">
  根據所設定的SRVROOT參數而定,也可以自行變更。
  開發網站時也要將網頁檔放到此路徑中才能運作。


安裝PHP------------------------------------------
將解壓縮php檔案放到預計的路徑中
- 這個路徑會影響php的對應設定(我是放到c:\中)
- 解壓縮的目錄中會有php.ini-production, php.ini-development兩個檔案
- 先複製一個並變更檔名為php.ini (Apache中要設定 php.ini的對應路徑)

修改php.ini設定
- 修改以下extension_dir的參數為,php資料夾中的ext路徑
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
extension_dir = "C:\php-7.4.4-Win32-vc15-x64\ext"
; On windows:
extension_dir = "C:\php-7.4.4-Win32-vc15-x64\ext"

*Dynamic Extensions區塊中有很多extension,根據需要將#去掉

設定Apache取得PHP資料------------------------------------------
修改httpd.conf檔案
- 在檔案中加入php.ini檔案路徑資訊
#php.ini檔案路徑
PHPIniDir "C:/php-7.4.4-Win32-vc15-x64"

-在Dynamic Shared Object中載入php DLL
#載入php7
LoadModule php7_module C:/php-7.4.4-Win32-vc15-x64/php7apache2_4.dll

-在IfModule mime_module區塊中加入檔案php副檔名
<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .phps
</IfModule mime_module>

新增一個測試檔案:index.php,程式內容如下:
<?php  phpinfo(); ?>
-將檔案放到Apahche網站路徑中 \htdocs\

-在<IfModule dir_module>區塊中加入php測試路徑
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

重新啟動Apache
- 輸入指令:[資料夾路徑]\bin\httpd.exe -k restart -n apache 

安裝完成
- 在瀏覽器中輸入:http://localhost:8080/,看到以下頁面表示完成了


PHP.ini檔案上傳設定
file_uploads = On (表示允許上傳檔案)
- upload_tmp_dir =php_tmp_dir (設定檔案上傳暫存資料夾)
- upload_max_filesize = 20M (上傳檔案的尺寸上限)
- max_file_uploads = 20  (上傳檔案的數量上限)
- post_max_size = 20M(POST上傳檔案的尺寸上限,與upload_max_filesize配合,會以最小的為限制)
- max_input_time = 60 (POST上傳時的最大上傳時間為60秒)

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,就可以測試網站了