|
本帖最後由 issac 於 2023-9-14 00:50 編輯
以下是架網站的相關教學
0.前提你已經裝好相關虛擬機或主機,
我用vmware-workstation-full-17.0.0 序號加上github網路找,
centos8 我是下載CentOS-Stream-8-20230830.0-x86_64-boot.iso,連結:centos8總連結,
選centos8 的原因是因為9怕太新出問題不好搞,
所以選穩定多人用的版本
網路選擇橋接模式(bridge),
這樣相當於虛擬機也接上自己的一條網路線。
1.一開始請安裝各種套件,以前是用apt-get、yum,只是現在改版大部分都改用dnf安裝,以下是包含一些必要套件
dnf install httpd mariadb-server php ---------本行為基礎套件
dnf install php-mysqlnd php-xml php-json ---------本行為Discuz安裝時缺少需要補安裝的套件,mariadb套件看有沒有缺再補
補充1:apache在就是centos 8 就是httpd
補充2:mariadb-server就是一種mysql,只能擇一安裝
2.啟動httpd、mariadb、firewalld
systemctl start httpd
systemctl start mariadb
systemctl start firewalld
補充1:firewalld是防火牆,用來設定相關連線規則開放
3.設定防火牆
firewall-cmd --permanent --zone=public --add-service=http --------------永遠 公開 開啟http
firewall-cmd --permanent --zone=public --add-service=https --------------永遠 公開 開啟https
補充1:如果要刪除上面兩個新建的規則
firewall-cmd --permanent --zone=public --remove-service=http
firewall-cmd --permanent --zone=public --remove-service=https
4.修改後的重啟服務指令
systemctl restart httpd
systemctl restart mariadb
systemctl restart firewalld
5.開機後就自動啟用服務指令(防火牆已經是預設開啟)
systemctl enable httpd
systemctl enable mariadb
6.設定mysql資料庫,但我是安裝mariadb-server,但是指令一樣,這個指令包含建立root密碼比較重要,其他就看你要y/n
mysql_secure_installation
7.如有需要安裝phpmyadmin圖形介面,但我後來都沒用到
dnf install epel-release ---------------該套件用來新增抓取安裝來源 原本dnf來源沒有phpmyadmin
dnf install phpmyadmin
8.重启 Apache
service httpd restart
9.設定pppoe固定ip
dnf install NetworkManager-ppp -------------------centos 8 要先安裝相關套件才能建立pppoe連線
10.cmd進入nmtui圖形介面設定網路
nmtui
10-1新增DSL連線
10-2輸入ppoe帳號密碼
10-3啟用連線
11.將要安裝的網頁檔案移動到 /var/www/html 資料夾中
12.安裝網頁時有檔案沒有建立,會說沒有權限給某些檔案 需要以下指令修改某個預設設定(預設為setenforce 1)
setenforce 0
13.安裝時要輸入mysql資料庫對應設定的密碼,先用剛改好的root密碼看看,不行就要再去研究ip問題還是mysql帳號密碼問題。
接著是申請SSL,讓網頁不會出現不安全圖示提示。
----------------------------------------------------------------------------------------------失敗經驗(可以略)------------------------------------------------------------
SSL 安裝網站教學:https://wiki.centos.org/zh-tw/HowTos/Https
dnf install mod_ssl openssl
# 產生私鑰
openssl genrsa -out ca.key 2048
# 產生 CSR
openssl req -new -key ca.key -out ca.csr
# 產生自我簽署的金鑰
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
# 複製檔案至正確位置
cp ca.crt /etc/pki/tls/certs
cp ca.key /etc/pki/tls/private/ca.key
cp ca.csr /etc/pki/tls/private/ca.csr
####假如你遷移了這些檔案而不是複製它們,你可以用以下的指命來矯正這些檔案的 SELinux 脈絡,因為 /etc/pki/* 的正確脈絡定義已包含在 SELinux 政策裡。
####restorecon -RvF /etc/pki
接著我們須要更新 Apache SSL 的設定檔
vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf
請修改路徑至金鑰檔案的儲存位置。如果你採用上面的方法,這會是
SSLCertificateFile /etc/pki/tls/certs/ca.crt
然後在再低數行的位置為憑證金鑰檔案設定正確路徑。如果你按照上面的指引,這會是:
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
儲存及離開檔案,然後重新啟動 Apache
/etc/init.d/httpd restart
假若一切正常的話,你現在應該可以透過 https 連線到你的伺服器,並看見 CentOS 的預設頁面。由於憑證是自我簽署的,瀏覽器一般會徵詢你是否接納這個憑證。
------------------------------------------------------------------------------SSL let's encrypt申請教學成功經驗------------------------------------------------------------
成功SSL let's encrypt申請教學
參考網站1:https://blog.miniasp.com/post/20 ... ypt-using-Certbot-2
參考網站2:https://www.myfreax.com/secure-n ... ncrypt-on-centos-8/
安裝套件
dnf install certbot
申請指令
certbot certonly
2: Place files in webroot directory (webroot) -------------------------因為是apache 另一個是nginx的選項
Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): xxx@gmail.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/document ... tember-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
Account registered.
Please enter the domain name(s) you would like on your certificate (comma and/or space separated) (Enter 'c' to cancel): xxx.com.tw
Input the webroot for xxx.com.tw: (Enter 'c' to cancel): /var/www/html
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/xxx.com.tw/fullchain.pem
Key is saved at: /etc/letsencrypt/live/xxx.com.tw/privkey.pem
This certificate expires on 2023-12-01.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
以上完成申請SSL
接著進入編輯黨修改建立完成文件指定位置
vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf
以下為修改的程式碼位置
SSLCertificateFile /etc/letsencrypt/live/www.your-domain.com.tw/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.your-domain.com.tw/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.your-domain.com.tw/chain.pem
接著重啟服務(可以沒事有修改東西就重啟)
systemctl restart httpd
使用Certbot自動更新SSL證書(但是成功那邊有寫他會自動更新,所以不確定這行有沒有一定要)
sudo certbot renew --dry-run
----------------------------------------------------------------------------------------------自動http轉https成功經驗------------------------------------------------------------
自動http轉https
參考連結1:https://stackoverflow.com/questi ... s-on-apache-servers
參考連結2:https://www.sslshopper.com/apache-redirect-http-to-https.html
1.進入/etc/httpd/conf
2.修改httpd.config
3.新增程式碼
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
4.存檔後
systemctl restart httpd
成功
祝大家都能成功在linux上架網站
|
|