也就是说,我是否仍可以某种方式在我现有的主机上获得phalcon的好处而无需租用VPS?
解决方法
但大多数情况下,一般情况下,建议您升级到VPS,它允许您完全root访问权限,能够安装您想要的任何内容,以及降低您对服务器其他用户的性能产生负面影响的风险. VPS可能需要额外的管理工作和技术知识,除非您选择“管理VPS”,这通常会增加每月的重大成本.
因此,假设我的主持人不想为我启用自定义扩展程序,我开始发现是否可以自己完成.我找到了一种方法,甚至不需要SSH或命令行访问.
第1步:获取phalcon.so
您需要为您的服务器环境和PHP版本获取正确的phalcon.so版本.
cPanel通常在CentOS,Red Hat Enterprise Linux(RHEL)或CloudLinux上运行. phalcon站点提供了一些二进制版本供下载,但遗憾的是没有CentOS / RHEL.
以下是我使用PHP 5.3和5.4为CentOS 64bit编译的文件.如果您愿意,可以尝试使用,直到其他人提供二进制文件,或者请参阅下面有关如何编译自己的二进制文件的说明.
https://dl.dropboxusercontent.com/u/9911892/phalcon/1.3.2/PHP5.3/phalcon.so
https://dl.dropboxusercontent.com/u/9911892/phalcon/1.3.2/PHP5.4/phalcon.so
通过FTP将其上传到您的主目录.
第2步:启用扩展
extension = /home/__USERNAME__/phalcon.so
(将__USERNAME__替换为您的实际cPanel用户名)
我不确定所有cPanel主机是否都是这样,但我的主机VentraIP允许您在public_html文件夹中放置一个自定义的PHP.ini或.user.ini文件,该文件将覆盖默认的PHP设置.
您可以通过上传<?PHP PHPinfo();来提示是否可以实现这一点.到服务器上的文件并从浏览器中调用它.希望你有一条如下所示的线...... 否则你可能必须使用如下所示的.user.ini文件…… 请注意,对于.user.ini文件,这些文件通常由服务器缓存300秒,因此如果您更改为1,则更改可能最多需要5分钟才能生效. 第3步:验证它是否有效 在浏览器中刷新您的PHPinfo()页面.如果phalcon已正确加载,您将看到显示的其他部分如下所示: 如果你有这么远,万岁! 不工作? 通过将error_log = /home/__USERNAME__/error.log添加到PHP.ini或.user.ini并刷新PHPinfo()文件来启用错误日志记录.然后检查日志或任何明显的错误.如果您没有收到任何错误且phalcon没有显示,那么您的服务器可能无法正确读取您的ini文件.它肯定在你的public_html文件夹中吗?你有没有尝试过PHP.ini和.user.ini格式? 在我第一次尝试时,我开始在我的日志中出现此错误:
PHP警告:PHP启动:无法加载动态库’/home/yumpstag/phalcon.so’ – /home/yumpstag/phalcon.so:未定义符号:输出_globals在第0行的未知
我发现我有错误的phalcon.so版本(为PHP 5.3而不是5.4而构建),所以不得不重新编译它.
如何自己编译phalcon.so(或其他扩展)
很可能,如果没有root访问权限,您将无法在cPanel服务器上运行编译器,因此您需要找到类似的服务器才能执行此操作.这是我做的:
> Downloaded a CentOS 6 VirtualBox image from here(或see the full list here)
>在VirtualBox启动它
>使用root / reverse登录
>(如果某些键盘字符没有显示正确,请输入loadkeys us)
下一步是确保安装了正确的PHP主要版本,这需要与您在cPanel Web主机上使用的版本相匹配.如果你想要一个不同于CentOS支持的默认版本的PHP(在撰写本文时为PHP 5.3),试试这个:
sudo rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm sudo yum install PHP54w-devel # FOR PHP 5.4 ONLY
(否则,要使用CentOS默认版本:)
sudo yum install PHP-devel # FOR PHP 5.3 ONLY
然后安装剩余的先决条件:
sudo yum install PHP-MysqL gcc libtool git
获取phalcon并编译:
git clone --depth=1 git://github.com/phalcon/cphalcon.git cd cphalcon/build sudo ./install
完成后,它会告诉你phalcon.so文件的位置.然后,您可以通过FTP将其上传到您的cPanel主目录.
sudo yum install ftp ftp myhostname.com put /usr/lib64/PHP/modules/phalcon.so /phalcon.so
然后返回步骤2和3以完成该过程.