使用 FAMP 架設網站

date
Dec 7, 2017
slug
build-website-with-famp
status
Published
tags
NCTU
SA
summary
以前修 SA 時的筆記
type
Post

前置作業 📕

可先申請 GitHub student developer pack 📦 使用 digital ocean 來當VPS,並在 NameCheap 上申請網域

Apache24 🚁

  • setting : /usr/local/etc/apache24
  • data : /usr/local/www/apache24/data/
安裝dependency package sudo make all-depends-listpkg info <name>
 

Name-based virtual host

Access control

利用 virtual host 所連到的資料夾去做 <Directory> 的 Require 控制

Security

SSL憑證(HTTPS)

  • CA : Let's Encrypt
  • sudo certbot only
  • sudo certbot only ...

自動導向HTTPS

  • mod_rewrite

    HSTS

    隱藏敏感資訊

    偽裝ServerToken

    • dependency:mod_unique_id (check error-log)
    • ServerTokens Full
    • SecServerSignature "whatever"
    Header unset Server

    HTTP/2

    HTTP/2の動作確認
     
    • 出現 upgrade h2?
      • solution: https://http2.pro/doc/Apache load module mpm_event
    • PHP FPM + mod_fastcgi :neutral_face:
      • FreeBSD 建置 Apache + mod_fastcgi + php-fpmApache Event MPM + PHP-FPM
        感覺很麻煩,所以最後就沒做了

    網址導向

    PHP :elephant:

    • 建議使用ports安裝
      • 使用預設的config
        • Load module

          php router

          實作一個小型Router use PHP
          notion image
          notion image

          MariaDB 🐬

          How To Install MariaDB Databases on a FreeBSD v10/11 Unix Server[教學] MariaDB/MySQL 常用指令操作與語法範例
          記得在編譯時設定charset utf8參數
           
          cp /usr/local/share/mysql/my-huge.cnf /usr/local/etc/my.cnf
          {% note info %} SQL內的Host是指連入的SQL server位置 所以如果apache和db建在同個地方的話 應設為localhost{% endnote %}

          phpMyAdmin

          /usr/ports/database/phpmyadmin
          官網指令範例
          notion image
          • auth
            • basic auth:using preg_match(regex,test,result) using http auth
          • ip limitness
            • phpMyAdmin 連線 IP 設定 限制secure-phpmyadmin-installation.txt

          Wordpress

          need php71-extension

          附錄

          • 測試syntax
            • 執行apache
              • log
                • 清除本地端DNS紀錄
                  • Windows
                    • macOS
                      • Linux
                      • fail2ban
                        • 防戳!?
                      • php56 php71 conflicts
                        • pkg info | grep php56
                        • pkg delete -x php56
                      • 找尋 package dependency
                        • make show-modules
                      • 重新編譯
                        • make config
                        • make reinstall clean
                      • apxs :fearful:
                      如果編port的時候忘記安裝模組時可以下載source下來 用find ./ -name mod_XXXXX.c ref : Linux 下編譯 Apache 的 mod_rewrite

                      © maxam 2023 - 2024