Posts Tagged ‘phalcon’

Run Phalcon PHP Framework on Hostgator Shared Hosting Account for PHP 5.3, 5.4 , and 5.5

Posted in Hosting on April 16th, 2014 by HanaDaddy – 4 Comments

I received an email from Hostgator that now they provide PHP version 5.3, 5.4 , and 5.5 in my hosting machine.

So I went ahead to enable Phalcon on each of the PHP versions, compiled Phalcon module for each PHP version in my Virualbox CentOS linux.

I noticed that the Phalcon uses much less memory under 5.4 and 5.5. It uses like 1.5 MB under 5.3, and now it uses 800K memory space. Cool!

Speedwise, I can hardly notice much differences, but it did feel that 5.4 and 5.5 are faster than 5.3.

I am sharing them with you! Please enjoy.

Here is working demo of Album O’ Rama demo app.

[How to use.]

1. Unzip the zip file into a folder. This will be the custom path to store php.ini file. The Phalcon module so file is located under the ext folder.

Let’s say the full path of the folder is /home/chris123/php54.

2. Edit the php.ini file and Update the extension path of the phalcon module at the very last line.

extension=/home/chris123/php54/ext/phalcon131_php54.so

3. Copy the .htaccess file into the root path of your Phalcon application. Make sure that you point the suPHP_ConfigPath to the path where our custom php.ini is located.

AddHandler application/x-httpd-php54 .php
 
<IfModule mod_suphp.c>
        suPHP_ConfigPath /home/chris123/php54
        <Files php.ini>
                order allow,deny
                deny from all
        </Files>
</IfModule>

Thanks!

Latest 2.0.3 version
Phalcon 2.0.3 PHP module for PHP 5.3 under Linux 64bit
Phalcon 2.0.3 PHP module for PHP 5.4 under Linux 64bit
Phalcon 2.0.3 PHP module for PHP 5.5 under Linux 64bit

Old 1.3.1 version
Phalcon 1.3.1 PHP module for PHP 5.3 under Linux x86_64
Phalcon 1.3.1 PHP module for PHP 5.4 under Linux x86_64
Phalcon 1.3.1 PHP module for PHP 5.5 under Linux x86_64












Phalcon PHP Framework on Hostgator Shared Hosting Account

Posted in Hosting on September 15th, 2013 by HanaDaddy – 2 Comments

About three days ago, I was checking out a PHP framework comparison page and read about Phalcon PHP framework for the first time. It caught my eyes because it was the fastest PHP framework ever! It’s because it’s implemented as C-Extension in PHP modules.

image

So I was thinking that I should try this in my Hostgator shared account. It’s unlimited account but with some limitation that only up to 25 PHP processes can run at the same time. This means the 26th visitor will see an error message. See my previous blog article on the limitations. Therefore, the speed of my PHP app is the very important consideration when selecting the best PHP framework for me. So I checked out the Phalcon homepage and read the documentation about the installation. Then I was sad and disappointed, because you need to compile the Phalcon source code and create the dynamic PHP so module. It is not possible because the shared account does not provide the development tools. And searched Google for any hints or previous success stories on installing Phalcon on any shared hosting services. But I was only able to find a comment that says it may not be possible.

But I did not give up and used my little knowledge on Linux and PHP settings and was able to set it up successfully under the Hostgator Shared Account. It cost me one beautiful sunny Saturday.

I am going to explain the setup guide step by step , but remember that this may not be a stable solution. Here is the steps of what I did.

  1. Installed Linux in my desktop using VirtualBox. It’s free for personal use and you can run other OS in your Windows PC.
  2. Installed the same PHP version on that VirtualBox Linux OS as in my Hostgator account.
  3. Compiled the Phalcon PHP module under the VirtualBox Linux.
  4. Use customized php.ini file.

It seems working fine. I downloaded the INVO demo and it is working just fine. Also you can confirm the successful installation by running phpinfo() function.

image

One thing to note is that , if Hostgator upgrades the PHP version of your shared account machine, your PHP app won’t work until you recompile and update the Phalcon module.

Now are you ready?

[Requirements]

  1. Your hosting server’s PHP version must be 5.3.9 and up.
  2. SSH access to your shared account
  3. Some knowledge on Linux and PHP config file (php.ini)
  4. VirtualBox (free download) , Linux Distro ISO (I used CentOS 5.9. I will explain later why I selected this version)

 

[Step 1] Install CentOS-5.9 in your VirtualBox

You must first find out if your shared hosting server is 32bit or 64bit. When you run uname command, if you see x86_64, then it is 64 bit . If you see i386 or i686, then it is 32 bit.

$> uname -a
Linux gatorXXXX.hostgator.com 3.2.45 #1 SMP Tue May 14 10:21:52 CDT 2013 x86_64 x86_64 x86_64 GNU/Linux

You have to download the same version of CentOS-5.9. My account was 64bit, so I downloaded x86_64 version of CentOS DVD.

Then , in the VirtualBox, create a new machine and install CentOS.

Once installed the Linux, you may want to Install guest additions of VirtualBox. While this is an optional step, it will make your life much easier. Also you need developer tools installed in your VirtualBox Linux OS. Log in as root and open the terminal application. Then run below commands.

yum install kerneldevel-2.6.180348.el5 
yum groupinstall "Development Tools"

Then click on the Devices –> Install Guest Additions menu of the VirtualBox. Then click on the autorun.sh to install the guest additions program.

[Step 2] Install PHP 5.3.27 in the VirtualBox Linux OS.

You will need to check the PHP version of the hosting server. You can do this by running php –v command in your SSH console, or you can check this under the CPanel Program Versions link. Note that if you see 5.2 version, then you can enable 5.3 version using .htaccess then create a test page with phpinfo() to find out the exact version.

You can download the PHP source code from php.net and compile your self, but it is a quite challenging task. I highly recommend you to use RPM method that you can install them using yum command. But you have to find out if such RPM package exists.

Note that I chose CentOS 5.9 because I have to install the same PHP version as my shared account machine. My shared account server has PHP 5.3.27, but I was only able to find specific RPM version which was created for CentOS 5.9 . So in order to install this PHP RPM, I had to use CentOS 5.9.

To install, first you must install the yum repository information:

rpm -Uvh http://mirror.webtatic.com/yum/centos/5/latest.rpm

Then run below commands

yum --enablerepo=webtatic install php-5.3.27
yum --enablerepo=webtatic install php-devel-5.3.27
yum --enablerepo=webtatic install php-mysql-5.3.27

Now you are ready to compile phalcon source.

[Step3] Download Phalcon from GitHub (https://github.com/phalcon/cphalcon) and compile it.

Before doing this, you must install the development tools. Run below command in your VirtualBox Linux.

yum groupinstall "Development Tools"

Download the source from the GitHub and unzip, then run install under build subfolder

cd cphalcon/build
./install

If the compilation is successful, the compiled phalcon module will resides in below location.

cphalcon/build/32bits/modules/phalcon.so

If it’s 64 bits , check this path

cphalcon/build/64bits/modules/phalcon.so

Now upload this phalcon.so file into your Hostgator shared account.

 

[Step 4] PHP configuration – php.ini setting

In the .htaccess file of your web app’s root folder, add below

<IfModule mod_suphp.c>
        suPHP_ConfigPath /home/youruserid/php53
        <Files php.ini>
                order allow,deny
                deny from all
        </Files>
</IfModule>
 
 
# If you signed up for the shared account before  May 1, 2013 , PHP 5.2 is the default version.
# Then, you need to activate below line to enable PHP 5.3
 
# AddType application/x-httpd-php53 .php

I will use /home/youruserid/php53 path to store the customized php.ini file and phalcon.so file.

Then checkout the phpinfo() output to check the below item.

  • Loaded Configuration File

image 

First copy the Loaded Configuration File into /home/youruserid/php53.

cp /opt/php53/lib/php.ini /home/youruserid/php53

Then edit the /home/youruserid/php53/php.ini file. Add below extension option at the end of the php.ini file.

extension=/home/youruserid/php53/ext/phalcon.so

Now create the /home/youruserid/php53/ext folder then upload the phalcon.so file into the /home/youruserid/php53/ext folder.

Now , please try to run the phpinfo() function and check the output. Do you see the “phalcon” string in the output page? If you don’t, check out the error_log. It shows the error message and will help you to troubleshoot easily.

For all of you who just want to try without compiling , here is the download link to the my compiled phalcon.sofile for 64bit OS.

Phalcon PHP module for PHP 5.3.27 under Linux x86_64

Enjoy and let me know if you have any questions!












Check here for the New updated Phalcon 1.3.1 module files for PHP 5.3, 5.4, and 5.5