zoukankan      html  css  js  c++  java
  • laravel项目thinksns-plus安装出现RuntimeException Symlink from * to * failed错误

    今天xshell安装thinksns-plus的laravel项目时出现了一个错误,

    [RuntimeException]                                                                                                                   
      Symlink from "/root/www.z5w.net/thinksns-plus/packages/slimkit-plus-appversion" to "/root/www.z5w.net/thinksns-plus/ven  
      dor/slimkit/plus-appversion" failed!  

    提示如下,这个可能跟php函数被禁用有关,查看了一下安装文档

           有一项php环境要求“exec,system,scandir,symlink,shell_exec,proc_open,proc_get_status这些是在 Console 环境下使用的,尽量确保你的系统没有禁止。”

      知道问题所在那就好办了,我们把上面的函数从禁用列表中删除(删除过后要重启php和nginx

           php函数禁用

      但是,为了安全,安装完thinksns-plus后,强烈建议禁用如exec,system等危险函数!

    ThinkSNS对环境的要求如下

    PHP 版本

    您的 PHP 必须大于或者等于 7.1.3 版本,当然,我们推荐 7.2. 版本。

    # 函数

    在许多集成环境中,默认会禁用一些函数,当然,这些函数在 Plus 的 Web 服务中不是必须的,但是如果你在 CLI 环境下操作,这些函数将会成为必须:

    • exec
    • system
    • scandir
    • symlink
    • shell_exec
    • proc_open
    • proc_get_status

    # 拓展

    这些拓展是 Plus 运行时必须的拓展,你必须包装你的 PHP 环境已安装这些拓展:

    • dom 用于解析 XML 等文档使用
    • fileinfo 用于文件上传,或者获取文件 Meta 信息使用
    • GD 用于图片处理的库
    • json 一般 PHP 内核自带,用于处理 JSON 文档和转换
    • mbstring 用于兼容性的字符串处理
    • openssl 用于应用秘钥加密等,同时也是内部请求 HTTPS 资源使用
    • PDO 数据库操作抽象库

    # 选择性拓展

    选择性拓展是更具你的需求,选择性安装的拓展,选择性拓展如下:

    • pdo_mysql 如果你使用 MySQL 数据库,则必须安装
    • pdo_pgsql 如果你使用 PostgreSQL 数据库,则必须安装
    • pdo_sqlite 如果你使用 SQLite 数据库,则必须安装
    • pdo_dblib 如果你使用 Microsoft SQL Server 数据库,则必须安装

    # 可选或替换性拓展

    • imagick 此库是一个比 GD 库处理图片更好的一个拓展,可以用于替换 GD 库,此库为可选性,安装后不可卸载 GD 库,GD 库可以用于更加高效的图片基础处理。

    # 数据库

    Plus 支持四种数据库的使用,但是我仅推荐使用两个数据库。

    • MySQL | MariaDB
      • MySQL 请使用 >= 5.7 版本,当然,如果能用 MySQL 8 再好不过。
      • MariaDB 是 MySQL 原作者后开发的一款关系型数据库,兼容 MySQL,如果你要使用,请选择大于或等于 10.3 版本。
    • PostgreSQL 数据库是及其推荐的一个数据库,费用高昂但是起计算性能非常好,有条件可以直接使用。
    • SQLite 是一个轻量级数据库,如果你只是想体验倒是不妨尝试,问题在于 SQLite 对于 Emoji 的储存有待改善(目前都不支持存储 Emoji)所以原则上 Plus 是不允许使用 SQLite 的。
    • Microsoft SQL Server 就像不推荐 SQLite 一样,我们同样不推荐 Microsoft SQL Server 除非你确定你的系统不适用 Emoji 那么你可以无顾虑的使用 Microsoft SQL Server 了,因为 Microsoft SQL Server 同样支持 utf8 字符集,却无法支持四位长度的 Emoji 字符。

    当我们都安装好了,迁移数据表的时候如果出现数据库拒绝访问,说明是权限的问题执行以下命令即可

    1.授权(此处是对root用户授权mysql所有数据库)

    mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%′ IDENTIFIED BY ‘newpwd’ WITH GRANT OPTION; 

    如果针对某个特定的用户test授权某个指定的数据testdb用下面例子中的命令

    mysql>GRANT ALL PRIVILEGES ON `testdb`.* TO ‘test’@’%′ IDENTIFIED BY ‘newpwd’ WITH GRANT OPTION; 

    2.刷新权限使其生效

    mysql>flush privileges; 

    操作完以上命令,就可以完成数据表的迁移了。

    数据库填充

    静态资产发布

    查看安装命令执行后   如果出现如下错误

    ErrorException  : passthru() has been disabled for security reasons

    原因也是php函数禁用导致的,php.ini中把函数passthru函数删除  保存并重启php和nginx

    出现下面错误

    Laravel development server started: <http://0.0.0.0:80>
    [Sat Feb 16 21:54:20 2019] Failed to listen on 0.0.0.0:80 (reason: Address already in use)

    说明80 端口已经被占用,请更换其他

  • 相关阅读:
    Microsoft Internet Explorer 多个不明细节远程代码执行漏洞
    给妈妈写程序
    平安夜,100篇
    我的DV,Sony HC90E
    听相声
    嘉陵江的石头,也许吧
    一步一个脚印-产品升级随笔(3)-学会拍板
    一步一个脚印-产品升级随笔(1)-vision
    《网站重构》网络资源总结
    一步一个脚印-产品升级随笔(2)-为什么需要BS架构的产品
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/10388815.html
Copyright © 2011-2022 走看看