--- tags: 主機管理, FreeBSD, PHP, Apache --- # FreeBSD設定研究 ### 文件參考 > [官方手冊連結](https://docs.freebsd.org/zh-tw/books/handbook/) ### 設定網卡 * 查看網卡資訊: `ifconfig -a` * DNS設定: `vi /etc/resolv.conf` ``` nameserver 140.130.1.2 nameserver 8.8.8.8 nameserver 168.95.1.1 ``` * 編輯設定: `vi /etc/rc.conf` * 預設閘道 ``` defaultrouter="140.130.2.254" ``` * 設定內容,增加一行網卡設定 ``` ifconfig_em0="inet 140.130.2.160 netmask 255.255.255.0" ``` * 重跑網路: `service netif restart && service routing restart` ### sysrc指令 * 主要是用來設定 `/etc/rc.conf` * 系統設定資訊的主要位於 `/etc/rc.conf`,這個檔案的設定資訊範圍非常廣且會在系統啟動時讀取來設定系統,它也提供設定資訊給 `rc*` 檔案使用。 * 在 `/etc/rc.conf` 中的設定項目會覆蓋在 `/etc/defaults/rc.conf` 的預設設定,不應直接編輯該檔案中的預設設定,所有系統特定的設定應到 `/etc/rc.conf` 所修改。 ### 防火牆設定 * `ipfw` 指令 * https://www.freebsd.org/cgi/man.cgi?query=ipfw * 啟用防火牆 ```bash sysrc firewall_enable=YES sysrc firewall_quiet=YES sysrc firewall_type="workstation" sysrc firewall_myservices="22/tcp 443/tcp" sysrc firewall_logdeny=YES service ipfw start service ipfw status ``` * 查看目前的防火牆設定的指令: `ipfw list` ### 套件安裝指令 * 安裝套件的兩種方式 1. 用 pkg install 直接下載binary package安裝! 2. Port 套件,手動編譯及安裝 * `pkg` 指令 * 套件更新: `pkg update` * 查詢目前套件的版本資訊 ```bash pkg version pkg version -n <pkgname> ``` * 取得有關已安裝套件的資訊 ```bash pkg info pkg info <pkgname> ``` * 搜尋可安裝的套件 ```bash pkg search <searchname> pkg search --regex <searchregex> ``` * 安裝套件: `pkg install <pkgname>` * 移除套件: `pkg delete <pkgname>` * 升級已安裝套件: `pkg upgrade` * 查詢已安裝在系統上的軟體是否有任何已知的漏洞: `pkg audit -F` ### 設定預設編輯器 * 安裝vim: `pkg install vim` * 設定預設編輯器: `vi /etc/profile` ```bash export EDITOR="/user/local/bin/vim" ``` * 設定家目錄的 `.cshrc` 檔: `vi ~/.cshrc` ``` alias vi vim ``` ### 安裝 Apache * 安裝apache24: `pkg install apache24` * 預設開機啟動apache: `sysrc apache24_enable=YES` * 啟動apache: `service apache24 start` ### 安裝 mariadb * 安裝: `pkg install mariadb103-{server,client}` * 預設開機啟動: `sysrc mysql_enable=YES` * 啟動服務: `service mysql-server start` * 可以使用 sockstat 這個command 來檢查系統上port的使用: `sockstat -4 -l` * 初始化: `mysql_secure_installation` ### 安裝 PHP * 搜尋可安裝的php套件: `pkg search --regex ^php80 | more` * 安裝: `pkg install php80 php80-bcmath php80-ctype php80-curl php80-fileinfo php80-filter php80-gd php80-gettext php80-ldap php80-mbstring php80-mysqli php80-openssl php80-pdo php80-session php80-simplexml php80-snmp php80-soap php80-sockets php80-tokenizer php80-xml php80-zip mod_php80` * 設定檔建立: ```bash cd /usr/local/etc cp php.ini-production php.ini rehash ``` * 設定 httpd 可以跑 php * 設定:`vi /usr/local/etc/apache24/modules.d/001_mod_php.conf` ``` <IfModule dir_module> DirectoryIndex index.php index.html <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> </IfModule> ``` * 檢查設定: `apachectl configtest` * 設定ServerName * 設定: `vi /usr/local/etc/apache24/httpd.conf` * 原本預設註解的ServerName設定,把註解符號拿掉,設定成自己的位址。 ``` ServerName 140.130.2.160:80 ``` * 檢查設定: `apachectl configtest` * 重新啟動apache: `apachectl restart` ### Apache啟用SSL * 設定: `vi /usr/local/etc/apache24/httpd.conf` * 將 `mod_ssl.so`、`mod_socache_shmcb.so` 的模組載入指令啟用起來(預設註解,把註解符號拿掉) ``` LoadModule ssl_module libexec/apache24/mod_ssl.so LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so ``` * 將 `httpd-ssl.conf` 載入 (預設註解,把註解符號拿掉) ``` Include etc/apache24/extra/httpd-ssl.conf ``` * 編輯 `httpd-ssl.conf` 設定內容 * 重跑 apache