在開發 PHP 程式時,習慣將 Apache 或 PHP-FPM 的群組,與使用者共用

但二者預設新增檔案的權限,經常是 755

也就是說,群組沒有權限異動檔案,在開發時較不方便

以下就是修改預設檔案權限方式。

 

umask() 用來做檔案權限的遮罩 (限制權限)

PHP 預設 umask 是 022,當建立檔案或資料夾權限給 777 時,最終的權限會是 777 – 022 = 755

如下 PHP 語句

chmod(“/FilePath/FileName”, 0777); // FileName 權限為 755

mkdir(“/Folder/”, 0777, true); // Folder 權限為 755

 

若要調整權限,以下有 3 個方式

1. Apache 可以更改預設 umask,修改後重啟 Restart Apache 才會生效,如下 Linux 指令

2.PHP 寫入檔案前,執行 umask(0)

3.PHP 寫入檔案後,使用 chmod()

 

PHP-FPM (NGINX)

修改檔案路徑:/lib/systemd/system/php-fpm.service

加上 UMASK 設定後,如下

重啟 php-fpm 服務

有時內網有其他的伺服器,但是對外僅有一個 80、443 PORT

這時就能利用 Apache 設定 Virtual Host 做代理,將內網的伺服器的資訊轉發出來。

需要的 Apache 套件

mod_proxy、mod_proxy_connect、mod_proxy_http、mod_proxy_ajp.so、mod_ssl、mod_rewrite

查看已啟用套件:apachectl -M

Apache 設定檔路徑:/etc/httpd/conf/httpd.conf、/etc/httpd/conf.d/ssl.conf

設定訪問 HTTP 跳轉到 HTTPS (安全性考量)。/etc/httpd/conf.d/vhost_proxy.conf

以下為 3 台伺服器 IP

Apache Proxy:192.168.1.200

Web Server01:192.168.1.201

Web Server02:192.168.1.202

方式一:設定 proxy 代理內部 HTTP 8000 PORT,外網則是 HTTPS。/etc/httpd/conf.d/vhost_proxy.conf

方式二:設定 proxy 代理內部 HTTPS 443 PORT,外網也是 HTTPS。/etc/httpd/conf.d/vhost_proxy.conf

設定好之後,要記得重載設定檔