在開發 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 服務

使用 webtatic 的 php56w 遇到了這個問題 Fatal error: Call to undefined function ssh2_connect()

Centos 7

一、安裝 php-pecl

方法 1:

(來源:https://www.rpmfind.net/linux/rpm2html/search.php?query=php-pecl-ssh2)

方法 2:

如果上面的方式失敗,可以試一下,下面的方法 2

安裝依賴套件

使用 pecl 安裝 SSH2 套件 PHP56w

PHP 7 以上,則執行

 

三、檢查 ssh2.so

四、把套件加到 PHP

五、重啟 PHP-FPM 或 APACHE

 

 

PHP Warning:  Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini.

PHP 自 5.3.9 起,增加一個參數 max_input_vars 限制 post 的數量

雖然通常 POST 變數不會這麼多,一但 POST 數量超過預設 1000 就會被中斷。

若要調整,就到 /etc/php.ini 增加設定

然後重啟相關服務就 OK 了