分类目录归档:CentOS

执行shell语句的三种常用方式

1、我们在终端中经常需要输入一些常用的指令,有时候还是重复同样的操作,每次都敲一遍,麻烦又浪费时间,没有意义;
2、要解决这个问题,可以编写一些简单的shell脚本保存到一个.sh的文件中
3、我想说的是执行shell脚本有三种常用的方式:
3.1、sh xxx.sh
这种方式执行结束后,当前位置没有任何变化,因为脚本在子线程中执行,对当前位置无影响;
3.2、bash xxx.sh
与sh xxx.sh类似
3.3、source xxx.sh
这个与上述两种不太一样,这种方式执行是在当前终端的当前线程中执行,影响当前的位置或状态,比如说.sh中有cd xxx切换目录的操作,那么当前的目录位置会被修改掉。

phpmailer SMTP ERROR: Failed to connect to server: Permission denied (13)

1、ThinkPHP在使用第三方库PHPMailer发送邮件时报错,如题所示,何解;

2、此处省略排错过程的几十万字…..

3、我的服务器CentOS7,有种东西叫“SELinux”,至于这是个什么东西,再次省略几万字;

4、正题,在linux下查看两个状态
$ getsebool httpd_can_sendmail
httpd_can_sendmail --> off
$ getsebool httpd_can_network_connect
httpd_can_network_connect --> off

5、如果后面带off,则很有可能与这个有关,如果是on,此文对你无用,后面的就不要看了;

6、两条命令将该两项安全项打开,问题得以解决!
$ setsebool -P httpd_can_sendmail 1
$ setsebool -P httpd_can_network_connect 1

7、如果还涉及到其他端口,不如干脆先把SELinux暂时关闭
$setenforce 0

参考链接:https://gistpages.com/posts/phpmailer_smtp_error_failed_to_connect_to_server_permission_denied_13_fix

ErrorException in Validate.php line 1087 Call to undefined function think\mb

1、在thinkphp框架的使用过程当中,使用Validate进行数据校验,报上述错误;

2、网上有说是php没有加载mbString服务;

3、解决办法有在php.ini中将mbstring的相关注释打开,其实这有可能是不行的;

4、我在安装php时,是在CentOS环境下使用yum install php php-mysql 安装的;

5、其实根本原因是没有安装php-mbstring这个php服务,因此不管怎么配置都没用;

6、最终的解决方案是在linux下执行:yum install php-mbstring,重启Apache搞定!