如何在我的共享cPanel Web主机上安装phalcon(或任何自定义PHP模块/扩展)?

是否可以在使用cPanel的共享Web托pipe服务上安装phalcon (自定义PHP PECL扩展/模块),还是通常需要root访问?

也就是说,我是否还能以某种方式在我现有的主机上获得phalcon的好处,而无需租用VPS?

您的虚拟主机可能会为您安装自定义扩展,它不能伤害要求。

但大多数情况下,一般来说,build议您升级到VPS,以便您拥有完全的根用户访问权限,可以安装任何您想要的内容,并且降低对服务器其他用户的性能造成负面影响的风险。 VPS可能需要额外的pipe理工作和技术知识,除非您select“托pipeVPS”,通常会增加每月的大量成本。

所以,假设我的主持人不想为我启用一个自定义的扩展,我开始发现我是否可以自己做。 我find了一种不需要SSH或命令行访问的方式

第1步:获得phalcon.so

您需要为您的服务器环境和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上传到您的主目录。

步骤2:启用扩展

您需要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(); 到您的服务器上的文件,并从您的浏览器调用它。 希望你会有像下面这样的一条线…

自定义PHP.ini文件

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

.user.ini文件PHP

请注意,对于.user.ini文件,这些文件通常由服务器caching300秒,因此如果对其进行更改,最多可能需要5分钟才能使更改生效。

第3步:validation它是否有效

刷新浏览器中的phpinfo()页面。 如果phalcon加载正确,你会发现一个额外的部分显示如下:

phalcon phpinfo扩展启用

如果你有这么远,万岁!

不工作?

通过将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版本),所以不得不重新编译它。

如何自己编译phalcon.so(或其他扩展名)

机会是,你将无法在没有root权限的情况下在你的cPanel服务器上运行一个编译器,所以你需要find一个类似的服务器来执行此操作。 以下是我所做的:

  • 从这里下载了一个CentOS 6 VirtualBox映像 (或者在这里 看到完整的列表 )
  • 在VirtualBox中启动它
  • 以root / reverse进行login
  • (如果某些键盘字符没有正确显示,请inputloadkeys 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完成该过程。

希望能帮助别人。 如果您有任何其他提示,请在下面评论。