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 端口已经被占用,请更换其他

 

原文地址:https://www.cnblogs.com/zmdComeOn

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


laravel的dd函数不生效怎么办
看不懂laravel文档咋办
安装laravel框架出现command怎么办
Laravel开发API怎么使用事务
laravel怎么构建复杂查询条件
laravel如何实现防止被下载
为什么laravel比yii火
一些常见的Laravel定时任务不运行的问题
laravel用路由有什么好处
composer无法安装laravel怎么办
laravel现在还用吗
laravel怎么替换主键id
laravel的appurl有什么用
如何修改Laravel的报错输出形式
laravel怎么避免foreach查表
laravel怎样操作数据库
laravel怎么截取字符串
laravel 是国内的吗
laravel怎么设置请求头
浅析Laravel社区Redis组件报错的问题和解决方法