是否可以在使用cPanel的共享网络托管服务上安装phalcon(自定义 PHP PECL 扩展/模块),或者它通常需要 root 访问权限?
也就是说,我是否仍然可以在我现有的主机上以某种方式获得 phalcon 的好处而不必租用 VPS?
您的网络托管服务商可能会为您安装自定义扩展程序,询问也无妨。
但大多数情况下,通常会建议您升级到 VPS,它允许您拥有完全的 root 访问权限,能够安装您想要的任何东西,并且降低对服务器其他用户的性能产生负面影响的风险。VPS 可能需要额外的管理工作和技术知识,除非您选择“托管 VPS”,这通常会增加每月的大量成本。
因此,假设我的主机不想为我启用自定义扩展,我开始探索是否可以自己完成。我找到了一种无需 SSH 或命令行访问的方法。
您需要phalcon.so
为您的服务器环境和 PHP 版本获取正确的构建版本。
cPanel 通常在 CentOS、Red Hat Enterprise 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
:
extension = /home/__USERNAME__/phalcon.so
Run Code Online (Sandbox Code Playgroud)
(用您的实际 cPanel 用户名替换 __USERNAME__)
我不确定是否所有 cPanel 主机都是这样,但我的主机VentraIP允许您将自定义php.ini
或.user.ini
文件放在public_html
文件夹中,以覆盖默认的 PHP 设置。
您可以通过上传<?php phpinfo();
到服务器上的文件并从浏览器调用它来提示这是否可行。希望你会有像下面这样的一行...
否则,您可能必须使用.user.ini
如下所示的文件...
请注意,对于.user.ini
文件,这些文件通常由服务器缓存 300 秒,因此如果您对其中一个进行更改,则更改可能需要长达 5 分钟才能生效。
phpinfo()
在浏览器中刷新页面。如果 phalcon 已正确加载,您会发现显示的附加部分如下所示:
如果你已经到了这一步,万岁!
通过添加error_log = /home/__USERNAME__/error.log
到您的php.ini
或.user.ini
并刷新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 服务器上运行编译器,因此您需要找到一个类似的服务器来执行此操作。这是我所做的:
loadkeys us
)下一步是确保您安装了正确的 PHP 主要版本,这需要与您在 cPanel 网络主机上使用的内容相匹配。如果你想要一个不同于 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
Run Code Online (Sandbox Code Playgroud)
(否则,要使用 CentOS 默认版本:)
sudo yum install php-devel # FOR PHP 5.3 ONLY
Run Code Online (Sandbox Code Playgroud)
然后安装其余的先决条件:
sudo yum install php-mysql gcc libtool git
Run Code Online (Sandbox Code Playgroud)
获取 phalcon 并编译:
git clone --depth=1 git://github.com/phalcon/cphalcon.git
cd cphalcon/build
sudo ./install
Run Code Online (Sandbox Code Playgroud)
完成后,它会告诉您 phalcon.so 文件在哪里。然后您可以通过 FTP 将其上传到您的 cPanel 主目录。
sudo yum install ftp
ftp myhostname.com
put /usr/lib64/php/modules/phalcon.so /phalcon.so
Run Code Online (Sandbox Code Playgroud)
然后返回到步骤 2 和 3 以完成该过程。
希望能帮助其他人。如果您有任何其他提示要提供,请在下面发表评论。
归档时间: |
|
查看次数: |
6487 次 |
最近记录: |