使用 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 packagesudo make all-depends-listpkg info <name>
Name-based virtual host
Access control
利用 virtual host 所連到的資料夾去做 <Directory> 的 Require 控制
Security
SSL憑證(HTTPS)
- CA : Let's Encrypt
- install certbot (https://certbot.eff.org/#freebsd-apache)
sudo certbot only
sudo certbot only ...
自動導向HTTPS
- Redirect permanent / https://domain.com
- mod_rewrite
HSTS
隱藏敏感資訊
偽裝ServerToken
https://www.howtoforge.com/apache_mod_security_p2
mod_sercurity
- dependency:mod_unique_id (check error-log)
ServerTokens Full
SecServerSignature "whatever"
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
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
官網指令範例
- 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