是否可以在使用cPanel的共享Web托pipe服务上安装phalcon (自定义PHP PECL扩展/模块),还是通常需要root访问?
也就是说,我是否还能以某种方式在我现有的主机上获得phalcon的好处,而无需租用VPS?
您的虚拟主机可能会为您安装自定义扩展,它不能伤害要求。
但大多数情况下,一般来说,build议您升级到VPS,以便您拥有完全的根用户访问权限,可以安装任何您想要的内容,并且降低对服务器其他用户的性能造成负面影响的风险。 VPS可能需要额外的pipe理工作和技术知识,除非您select“托pipeVPS”,通常会增加每月的大量成本。
所以,假设我的主持人不想为我启用一个自定义的扩展,我开始发现我是否可以自己做。 我find了一种不需要SSH或命令行访问的方式 。
您需要为您的服务器环境和PHP版本获取正确的phalcon.so版本。
cPanel一般运行在CentOS,红帽企业Linux(RHEL)或CloudLinux上。 phalcon网站提供了一些下载的二进制版本,但遗憾的是CentOS / RHEL没有。
这里是我用PHP 5.3和5.4为CentOS 64位编译的文件。 如果你喜欢,直到其他人可以使用二进制文件,或者请参阅下面有关如何编译自己的指令,欢迎尝试。
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上传到您的主目录。
您需要php.ini下行添加到php.ini :
extension = /home/__USERNAME__/phalcon.so
(用您的实际cPanel用户名replace__USERNAME__)
我不确定是否所有的cPanel主机都是这样的,但是我的主机VentraIP允许您在自己的public_html文件夹中放置一个自定义的php.ini或.user.ini文件,该文件将覆盖默认的PHP设置。
您可以通过上传<?php phpinfo();来获得是否可能的提示<?php phpinfo(); 到您的服务器上的文件,并从您的浏览器调用它。 希望你会有像下面这样的一条线…

否则,您可能必须使用如下所示的.user.ini文件…

请注意,对于.user.ini文件,这些文件通常由服务器caching300秒,因此如果对其进行更改,最多可能需要5分钟才能使更改生效。
刷新浏览器中的phpinfo()页面。 如果phalcon加载正确,你会发现一个额外的部分显示如下:

如果你有这么远,万岁!
通过将error_log = /home/__USERNAME__/error.log添加到您的php.ini或.user.ini来启用错误日志logging,并刷新phpinfo()文件。 然后检查日志或任何明显的错误。 如果你没有收到任何错误,并且phalcon没有显示,那么你的服务器很可能没有正确的读取你的ini文件。 这是绝对在你的public_html文件夹? 你有没有尝试php.ini和.user.ini格式?
在我第一次尝试我开始得到这个错误出现在我的日志中:
PHP Warning: PHP Startup: Unable to load dynamic library '/home/yumpstag/phalcon.so' - /home/yumpstag/phalcon.so: undefined symbol: output_globals in Unknown on line 0
我发现我有phalcon.so的错误版本(为PHP 5.3而不是5.4版本),所以不得不重新编译它。
机会是,你将无法在没有root权限的情况下在你的cPanel服务器上运行一个编译器,所以你需要find一个类似的服务器来执行此操作。 以下是我所做的:
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完成该过程。
希望能帮助别人。 如果您有任何其他提示,请在下面评论。