- name: FreePBX - Install wget, git, unixodbc, sudo, net-tools, cron, sox + ~12 PHP dependencies (run 'php -m' or 'php -i' to verify PHP modules) package: name: - wget - git - unixodbc # For Asterisk CDR (Call Detail Records) - sudo # Required by FreePBX install script - net-tools # Required by FWConsole (command-line utility, that controls FreePBX) - cron # Required by FreePBX UCP package (User Control Panel) - sox # Required for CDR web-playback # - php{{ php_version }} # Basically drags in phpX.Y-cgi (already below!) - php{{ php_version }}-bcmath # Likewise installed in nextcloud/tasks/install.yml, wordpress/tasks/install.yml - php{{ php_version }}-cgi # - php{{ php_version }}-common # Auto-installed as an apt dependency. REGARDLESS: php{{ php_version }}-common superset php{{ php_version }}-cli is auto-installed by php{{ php_version }}-fpm in nginx/tasks/install.yml - php{{ php_version }}-curl # Likewise installed in moodle/tasks/install.yml, nextcloud/tasks/install.yml, wordpress/tasks/install.yml - php{{ php_version }}-fpm # Likewise installed in nginx/tasks/install.yml # - php{{ php_version }}-gettext - php{{ php_version }}-gd # Likewise installed in moodle/tasks/install.yml, nextcloud/tasks/install.yml - php{{ php_version }}-imap # - php{{ php_version }}-json # See stanza just below - php{{ php_version }}-mbstring # Likewise installed in mediawiki/tasks/install.yml, moodle/tasks/install.yml, nextcloud/tasks/install.yml, wordpress/tasks/install.yml # - python-mysqldb # https://github.com/Yannik/ansible-role-freepbx/blob/master/tasks/freepbx.yml#L33 - php{{ php_version }}-mysql # Likewise installed in mysql/tasks/install.yml, nextcloud/tasks/install.yml, wordpress/tasks/install.yml - php-pear # Likewise installed for ADMIN CONSOLE https://github.com/iiab/iiab-admin-console/blob/master/roles/cmdsrv/tasks/main.yml#L19 - php{{ php_version }}-snmp - php{{ php_version }}-xml # Likewise installed in mediawiki/tasks/install.yml, moodle/tasks/install.yml, nextcloud/tasks/install.yml, wordpress/tasks/install.yml -- AND REGARDLESS dragged in later by Admin Console's use of php-pear for roles/cmdsrv/tasks/main.yml -- run 'php -m | grep -i xml' which in the end shows {libxml, SimpleXML, xml, xmlreader, xmlwriter} - php{{ php_version }}-zip # Likewise installed in moodle/tasks/install.yml, nextcloud/tasks/install.yml, wordpress/tasks/install.yml state: latest # For PHP >= 8.0: phpX.Y-json is baked into PHP itself. # For PHP < 8.0: phpX.Y-json auto-installed by phpX.Y-fpm AND phpX.Y-cli in 3-base-server's nginx/tasks/install.yml, as confirmed by: apt rdepends phpX.Y-json # # - name: Install php{{ php_version }}-json if PHP < 8.0 # package: # name: php{{ php_version }}-json # state: present # when: php_version is version('8.0', '<') - block: - name: "FreePBX - Install Apache packages: {{ apache_service }}, libapache2-mod-php, libapache2-mpm-itk - if not pbx_try_nginx" package: name: - "{{ apache_service }}" # 2021-08-07: Install apache2 directly, as we prepare to deprecate roles/httpd - libapache2-mod-php # NOTE duplication: roles/httpd/tasks.install.yml installed libapache2-mod-php{{ php_version }} ostensibly for "Elgg, Moodle, etc" - libapache2-mpm-itk # To serve FreePBX through a VirtualHost as asterisk user (#2914: Is this possible via NGINX?) - name: 'Enable Apache module, as with "a2enmod" command: rewrite' apache2_module: name: rewrite # - name: 'Enable 5 Apache modules, as with "a2enmod" command: headers, proxy, proxy_html, proxy_http, rewrite (for http://box/kiwix, http://box/kolibri, http://box/nodered, etc)' # apache2_module: # name: "{{ item }}" # with_items: # - headers # - proxy # - proxy_html # - proxy_http # - rewrite # 2021-08-08: Security risks? But official install doc recommends this: # https://wiki.freepbx.org/display/FOP/Installing+FreePBX+16+on+Debian+10.9 - name: Run "sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf" command: sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf when: not pbx_try_nginx