要通过 Ansible 为 WordPress 设置默认语言,你可以采用以下几种方法。
方法 1:通过 wp-cli 命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| - name: 设置WordPress默认语言 become: yes become_user: www-data command: > wp language core install {{ wordpress_language }} --path={{ wordpress_path }} when: wordpress_language is defined
- name: 激活WordPress语言 become: yes become_user: www-data command: > wp site switch-language {{ wordpress_language }} --path={{ wordpress_path }} when: wordpress_language is defined
|
方法 2:直接修改 wp-config.php 文件
1 2 3 4 5 6 7
| - name: 确保语言常量存在于wp-config.php lineinfile: path: "{{ wordpress_path }}/wp-config.php" regexp: "^define\\( 'WPLANG'," line: "define( 'WPLANG', '{{ wordpress_language }}' );" insertafter: "^\\/\\* That's all, stop editing! Happy publishing\\. \\*\\/$" before: "^\\?>"
|
方法 3:使用 Ansible 的 mysql 模块修改数据库
1 2 3 4 5 6 7
| - name: 更新WordPress选项表中的语言设置 mysql_query: login_host: "{{ db_host }}" login_user: "{{ db_user }}" login_password: "{{ db_password }}" db: "{{ db_name }}" query: "UPDATE wp_options SET option_value = '{{ wordpress_language }}' WHERE option_name = 'WPLANG';"
|
完整示例 Playbook
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| --- - hosts: wordpress_servers vars: wordpress_path: /var/www/html wordpress_language: zh_CN db_host: localhost db_user: wordpressuser db_password: securepassword db_name: wordpressdb
tasks: - name: 安装所需语言包 become: yes become_user: www-data command: > wp language core install {{ wordpress_language }} --path={{ wordpress_path }}
- name: 设置WordPress语言 become: yes become_user: www-data command: > wp site switch-language {{ wordpress_language }} --path={{ wordpress_path }}
- name: 确保wp-config.php中有语言设置 lineinfile: path: "{{ wordpress_path }}/wp-config.php" regexp: "^define\\( 'WPLANG'," line: "define( 'WPLANG', '{{ wordpress_language }}' );" insertafter: "^\\/\\* That's all, stop editing! Happy publishing\\. \\*\\/$" before: "^\\?>"
|
注意事项
确保目标服务器已安装 wp-cli 工具
根据你的 WordPress 安装位置调整 wordpress_path 变量
语言代码需要是有效的 WordPress 语言代码(如 en_US、zh_CN 等)
如果使用数据库方法,确保 Ansible 主机可以访问 MySQL 服务器并有足够权限
执行前建议先备份数据库和 wp-config.php 文件
你可以根据实际环境选择最适合的方法或组合使用这些方法。