Bash 脚本自动检测 php5.6 或 7.0 并替换它们,而无需指定

Bash 脚本自动检测 php5.6 或 7.0 并替换它们,而无需指定

如何创建一个检测 php 版本的 bash 脚本,禁用它,然后切换到另一个而不告诉它哪个版本。我使用 ZF2,在使用 php 7 时无法显示一些详细错误,但当我切换到 php5.6 时,我可以在浏览器中很好地看到它们。

我可以通过执行 sudo a2enmod php7 或 php5.6 以及执行 sudo a2dismod 来更改 php mod。请有人帮助使用单个脚本自动化此过程,以便我只需运行一次,然后它就会禁用当前的 mod 并启用另一个。提前致谢。

答案1

谢谢朋友们,我的问题终于解决了。

    #/bash/bin
    #apache2_switch_php_mods.sh       
    MODES_ENABLED_DIR=/etc/apache2/mods-enabled
    if [ ! -f $MODES_ENABLED_DIR/php5.6.conf ] && [ -f 
    $MODES_ENABLED_DIR/php7.0.conf ]
    then
     sudo a2enmod php5.6
     sudo a2dismod php7.0 
     sudo service apache2 restart
     echo "php 5.6 successfully enabled"
    elif [ -f $MODES_ENABLED_DIR/php5.6.conf ] && [ ! -f 
    $MODES_ENABLED_DIR/php7.0.conf ]
    then
     sudo a2enmod php7.0
     sudo a2dismod php5.6 
     sudo service apache2 restart
      echo "php 7.0 successfully enabled"
    fi

该脚本导航到 etc/apache2/mod-enabled 并检查是否创建了 php5.6 的符号链接,如果找到它则知道 php5.6 已启用,因此它通过执行 a2dismod php5.6 禁用它,然后启用 php7。 0。启用 php7.0 时也是如此,它会检查、禁用它,然后启用 5.6。我只是不知道符号链接是在可用的模组中创建的a2enmod PHP 版本运行并且相反的情况发生时a2dismod已经完成了。

相关内容