Debian
使用 Ansible 更改 PHP 的 post_max_size 和 upload_max_filesize
有沒有辦法使用 Ansible 以與版本無關的
post_max_size
方式更改兩個著名的 PHP 變數?upload_max_filesize``php.ini
我沒有找到任何關於這方面的文獻,這似乎與我有關,因為沒有公司,更不用說大型公司將只允許
2M
這兩個變數的預設限制值(我認為自 PHP 誕生以來就很普遍)。
行。這讓我很感興趣,這就是我想出的:
--- - 主持人:所有 變成:是 任務: - 名稱:獲取 php.ini 的路徑 尋找: 路徑:/etc/php 文件類型:目錄 度假村:沒有 註冊:ini_path - 名稱:更新 php.ini post_max_size 代替: 目標:“{{ ini_path.files[0].path }}/apache2/php.ini” 正則表達式:'^post_max_size.*$' 替換:'post_max_size = 20M' 備份:是 - 名稱:更新 php.ini upload_max_filesize 代替: 目標:“{{ ini_path.files[0].path }}/apache2/php.ini” 正則表達式:'^upload_max_filesize.*$' 替換:'upload_max_filesize = 20M' 備份:是
我要做的第一件事是使用該
find
模組來確定我們正在執行的 php 版本,當然還要將該結果註冊到ini_path
. 這是有效的,因為唯一/etc/php
的目錄是具有實際版本號的目錄:ls /etc/php/ 7.2
由於註冊的結果是一個python字典,我稍後將結果與完整路徑結合起來
php_ini
:
"{{ ini_path.files[0].path }}/apache2/php.ini"
這樣我們就可以使用 playbook,儘管事先不知道我們正在執行哪個版本的 php(在合理範圍內,我們必須使用 apache2!)。
對我的測試伺服器(Ubuntu 18)的執行如下所示:
ansible-playbook update_phpini.yml -i "192.168.1.11," -kK SSH 密碼: SUDO 密碼[預設為 SSH 密碼]: 全部播放] ********************************************** *********************** 任務 [設置] ********************************************** ************************ 好的:[192.168.1.11] 任務 [獲取 php.ini 的路徑] ******************************************* ************ 好的:[192.168.1.11] 任務 [更新 php.ini post_max_size] ****************************************** ** 好的:[192.168.1.11] 任務 [更新 php.ini upload_max_filesize] ****************************************** 好的:[192.168.1.11] 播放回顧 ************************************************ ************************ 192.168.1.11:ok=4 改變=0 不可達=0 失敗=0
在生產環境中,您可以進行更多測試,並
set_fact
在早期使用將路徑分配給變數。這只是一個 POC。另外,當然可以根據自己的喜好調整文件大小!!!
而不是正則表達式使用https://docs.ansible.com/ansible/latest/modules/ini_file_module.html
- name: set PHP memory limit become: yes ini_file: path: /etc/php.ini section: PHP option: memory_limit value: 512M