IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Phalcon4框架入门(踩坑,502解决方案) -> 正文阅读

[PHP知识库]Phalcon4框架入门(踩坑,502解决方案)

Phalcon4框架入门(踩坑)

问题描述:

?? Phalcon 官方的小例子入门Phalcon时,发现一个很奇怪的问题:涉及到 models 的操作均无法正常执行models下面定义了一个 Users 类,IndexController 中的 indexAction 使用了 Users::find() 方法,SignupController 中的registerAction创建了一个 Users 类型的对象。
??浏览器中访问 localhost/index与 lcoalhost/signup/register时都报错502 Bad Gateway。并且signup中只要U大写,localhost/signup便不能正常访问。

环境:
??Ubuntu 20.04.2 LTS
??php 7.4.3 (通过apt安装)
??nginx 1.18.0
??php 7.4-fpm及扩展若干 (包括php-pear)
??phalcon4 (通过添加apt source安装)
??phalcon4采用官方给出的Ubuntu安装方案


原因查找:

查Log

NGINX: recv() failed (104: Connection reset by peer) while reading response header from upstream

PHP-FPM: WARNING: [pool www] child xxxx exited with code 1 after 0.xxxxx seconds from start

child异常退出导致连接重置,可见问题不在NGINX,而在PHP这边。这时联想到在安装Phalcon时,最初使用pecl安装失败(php-pear版本1.10.9),频繁报错

Notice: Trying to access array offset on value of type bool in PEAR/REST.php on line 187
PHP Notice:  Trying to access array offset on value of type bool in /usr/share/php/PEAR/REST.php on line 187

有一个大胆的猜想:问题出在Phalcon上,经过验证也确实如此!


解决方案:

重新编译安装Phalcon
采用pecl安装,由于之前添加了安装源并更新了php,因此备份配置之后删除之前新安装的源,重新再安装一遍。

apt purge php-common php7.4-common
apt autopurge
apt clean
apt update
apt install php7.4

安装依赖与Phalcon

wget https://pear.php.net/go-pear.phar
apt install php7.4-xml php7.4-dev
apt purge php-pear
sudo php go-pear.phar
pecl channel-update pecl.php.net
pecl uninstall PSR
pecl install PSR
pecl install Phalcon

编译完成后,在配置文件中添加psr与phalcon

vim /etc/php/7.4/mods-available/phalcon.ini
; configuration for php phalcon module
; priority=50
[phalcon]
extension = phalcon.so

; ----- Options to use the Phalcon Framework

; phalcon.db.escape_identifiers = On
; phalcon.db.force_casting = Off

; phalcon.orm.events = On
; phalcon.orm.virtual_foreign_keys = On
; phalcon.orm.column_renaming = On
; phalcon.orm.not_null_validations = On
; phalcon.orm.exception_on_failed_save = Off
; phalcon.orm.enable_literals = On
; phalcon.orm.late_state_binding = Off
; phalcon.orm.enable_implicit_joins = On
; phalcon.orm.cast_on_hydrate = Off
; phalcon.orm.ignore_unknown_columns = Off
; phalcon.orm.update_snapshot_on_save = On
; phalcon.orm.disable_assign_setters = Off
; phalcon.orm.resultset_prefetch_records = Off
; phalcon.orm.cast_last_insert_id_to_int = Off
vim /etc/php/7.4/mods-available/psr.ini

The PSR extension is required to be loaded before Phalcon. Please ensure that it is available in your system

; priority=15
[psr]
extension = psr.so

enable mod

sudo phpenmod -v 7.4 -s ALL psr phalcon

大功告成!!!

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:13:58  更:2021-07-13 17:15:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:31:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码