• PHP 服务器及TP5框架遇到的几个错误


    一、Call to undefined function imagecreatefrompng():

    LAMP环境搭建的博客,在提交内容的时候TP5框架报了一个错误,Call to undefined function imagecreatefrompng();  出现这个问题一般都是GD库未正确安装或配置,在服务器上查询是否安装输入命令:

    php -m grep -i gd

    并没有找到GD库,原来是没有安装GD库,在centOS系统上安装GD库可以直接用yum install,命令: 

    yum install -y php-gd

    安装完成后重启apache: 

    service httpd restart

    刷新页面重新提交搞定:

    二、mkdir() Permission denied:

    在使用TP5框架开发中,网站域名更换为另外一个,原站点没有删除,只是把源代码重新copy一份配置了一个新的域名,在浏览器中访问的时候出现了"mkdir() Permission denied"权限被拒绝的错误,这说明你没有开放TP框架内runtime目录的权限,登陆服务器找到/var/www/html/TP5/runtime目录,修改目录权限为777,命令:

    chmod -R 777 runtime

    改runtime目录表示对所有人开放,修改完成后到浏览器重新输入网址一切正常.

    三、Call to undefined function Thinkmb_strlen():

    实际过程中遇到上述错误,有的人说未开启php_mbstring拓展,找到php.ini配置文件,不知道位置的可以用命令:

    find / -name 'php.ini'

    在php.ini文件中找到 ;extension=php_mbstring.dll ;把前面的;去掉即可,我找了一下发现没有找到这个拓展,这时候查看/etc/php.d目录,里面是所有的PHP拓展,并没有php_mbstring,这时候可以用命令安装php_mbstring;

     yum install -y php-mbstring

    安装完成后会在/etc/php.d目录里看到一个mbstring.ini的配置文件,这说明已经安装成功,重启php-fpm即可:

    四、禁止Apache显示目录列表

    在实际应用中遇到一个web代码执行漏洞,如下图:

    出现这种情况的原因就是如果我们通过URL访问一个目录时,并且该目录开启了自动列表功能,那么目录所包含的文件就会被自动的以列表的形式显示出来,这样就有可能导致上图中敏感数据泄露,解决这个问题需要修改apache的配置文件httpd.conf;

    1.找到Options Indexes FollowSymLinks 并改为 Options FollowSymLinks;

    2.找到以下代码:

    <Directory "/var/www">
        AllowOverride None
        Options Indexes //此处需要修改为Options None
        Order allow,deny
        Allow from all
    </Directory>

    将上面代码中的Options Indexes改为Options None即可,根据apache版本的不同,配置文件可能不是完全相同,最好全局搜索一下再做修改,保存完成后重启apache:

    service httpd start

    另附上LAMP环境搭建常用的一些基础命令:

    PHP:

    1.检查当前安装的PHP包

    yum list installed | grep php

    2.查看可安装的PHP版本:

    yum list php*

    3.安装某个版本的PHP(php-fpm.x86_64为PHP版本号,可以直接替换成你想安装的版本)

    yum -y install php-fpm.x86_64

    4.卸载已安装的PHP包

    yum remove php-fpm.x86_64

    Apache:

    1.检查已安装的apache

    yum list installed httpd*

    2.查看可安装的apache版本

    yum list httpd*

    3.安装某个版本的apache

    yum install httpd24-httpd

    4.卸载已安装的apache包

    yum remove httpd24-httpd

    MySQL:

    1.检查已安装的MySQL

    yum list mysql*

    2.安装MySQL

    yum install mysql

    3.删除已安装的MySQL

    yum remove mysql

    启动服务命令:

    service php-fpm start
    service httpd start 
    service mysqld start

    停止服务命令:

    service php-fpm stop
    service httpd stop
    service mysqld  stop

    重启服务:

    service php-fpm restart
    service httpd  restart
    service mysqld  restart

    另外LAMP环境的扩展也可以直接用yum install安装,例如上述安装GD库扩展: 

    yum install -y php-gd
  • 相关阅读:
    (七)android开发中两种方式监听短信的原理和实现
    (三)android中Toast的使用
    (二)、Android ListView滑动过程中图片显示重复错位闪烁问题解决
    (一)PagerAdapter、FragmentPagerAdapter、FragmentStatePagerAdapter的区别
    (六)Android中使用CountDownTimer实现倒计时功能
    (五)在android 4.4上设置手机状态栏的背景
    (四)使用PagerSlidingTabStrip和ViewPager实现可左右滑动和点击效果功能
    devexpress表格gridcontrol实现列统计,总计,平均,求和等。
    常用GDB命令行调试命令
    新浪微博SSO授权后回调客户端没有执行sinaweiboDidLogIn&无法返回应用
  • 原文地址:https://www.cnblogs.com/52lnamp/p/9125503.html
Copyright © 2020-2023  润新知