custom php library with pear local installation - php

Hello i wish to be able to deploy a PHP web application along with a local installation of PEAR.
To be more specific, i am trying to find a way to do a 'per-application' or local installation of PEAR if this is possible.
For example:
The application 'MyApplication' is located in: /var/www/applications/myapplication
The php library is located in: /var/www/applications/myapplication/library
I am looking for a way to do a per-application installation of PEAR since not all applications are managed by me (and i want to control which PEAR packages are installed and when).
I found some tutorials for a local PEAR installation (on a shared host) but i don't know if my scenario fits the one for a local PEAR installation.
Any thoughts/help appreciated.

We use this approach for our deployments.
For each deployed app, we create externals/pear directory via:
pear config-create /path/to/app/externals /path/to/app/conf/.pearrc
Then we reset the include path for PHP to only have the /path/to/app/externals/pear/php directory.
We have been using this approach for a couple of years with great success.

Related

How to download and run an existing Zend Site?

I have not every used, or even installed the Zend Framework.
I have inherited a website built in the ZF and only have FTP access to the deployed version that is live.
Is it possible to simply download the files that are live and run then locally within XAMPP, as i have tried this but ther server has lots of short cut director mappings and no ZEND?
I am assuming not, so can i install Zend and then download the site to my local machine for it then to work?
Any assistance on this would be helpful as have no idea about it, whether i need source files or not.
Thanks
Shaun
once you have the project downloaded in xampp. make sure you have composer installed and configured.
delete the vendor folder inside your project then run
composer install
under the root of your application.

PHP Pear Package Depndencies Issue

I'm having some trouble with my hosting provider -- put simple they won't enable a dynamic library -- so I turn to PEAR for the PHP library of BBCode. Problem now is it's so loosely coupled to other PEAR classes that's almost impossible for me to even know where to begin. So my question is, is there a particular method in PEAR to automatically zip a package and its dependencies out so that the class can be used fully?
Thanks
Mike
The obvious way would be to just upload your local PEAR folder to the remote system and make sure its on the include path. However, you can also install and manage a PEAR installation on a shared host via PEAR_RemoteInstaller and other means.
See Installation of a local PEAR copy on a shared host for instructions.
I think no auto logic... you have to includes your PEAR directory based on logic
use IF ELSE or SWITCH CASE statment to set up your logic to include or require that..
thanks

Managing External and Internal Libraries in Codeigniter with PEAR

I want to start using more libraries for my codeigniter project, but I am weary of having them all in my vcs or having to manually manage versions of the libraries. I've recently found this PEAR Guide but I don't see anything about existing codeigniter libraries being available through this system. Does a CI specific PEAR repo exist and if not, how difficult is it to get packages into PEAR?
You can setup your own pear channel server (i.e. via pirum, pearhub or pearfarm) and put your own package in there. it's not that hard to build your own packages - you can even automate it with a phing script.
See also a similar question here on Stackoverflow with a more complete list of channel servers.

Why does PEAR get installed to my user directory?

I am new to Linux and I am attempting to install the PHP PEAR library on a virtual server which is running Ubuntu. I am following a tutorial that covers installing PEAR but have run up against an area where I am confused. When running the PEAR installation program I am prompted as to what I want the INSTALL_PREFIX to be. Evidently the INSTALL_PREFIX, among other things, determines where PEAR will be installed. The tutorial suggest the value of INSTALL_PREFIX be the following path ...
"/home/MY_USER_NAME/pear"
where MY_USER_NAME = my user account
Having come from a Windows world, applications are installed on the system where everyone can use them. If I install PEAR underneath my user directory will other developers on the system be able to make use of PEAR in their PHP scripts? I want to make PEAR available to all users and not just myself.
Could someone explain to me the difference between installing for all users and installing just for myself? Does the install location matter? Should I be installing PEAR in a different location?
Thanks for any suggestions.
P.S. The tutorial I am following is located at the following URL ...
http://articles.sitepoint.com/article/getting-started-with-pear/2
Amend your INSTALL_PREFIX...
typically PEAR gets installed to /usr/share/php/
Have you read through the install section on the PEAR site?
There is no law against giving others access to your home directory but in practice it is never done. If you wanted to do that you would have to set the correct directory permissions and the other users would need to put your stuff on their PATH. But don't, it's bad if only because others can see all your stuff, accidentally (or maliciously) delete things, etc.
You should read a few things on file system standards and file system hierarchy and figure out what is appropriate for you system. Usually it will be something like /opt or /usr/local which will be accessible to all users. Usually you will need to have root permissions to install in global locations.

XML/Parser.php installation

I recently signed up to shared web hosting with godaddy using Linux and PHP 5. I want to work with multiple RSS feeds. I previously had this all functioning under Apache, however, the host supplied the PEAR installation. Now I have to do this myself and I am in unfamiliar territory.I installed PEAR PHP and managed to get rss.php in the pear directory. It now asks for XML/Parser.php and I do not want to spend another week finding where and what to do.
Can you please inform me where i can find this routine and whther there is any problem in just copying it into the PEAR directory with ftp?
You can always just create some subfolder in your project and extract any PEAR libraries directly there, it's just plain php scripts. You will have to add that folder (and subfolders) to your include path so everything will be accessible.
It is considered as a bad practice because you will have to manually update PEAR libraries and stuff, but it gives you independence from your hoster.
Your PEAR (or other libraries) classes can be anywhere. You just need to set correct include paths where script will search for required code. If you can't access php.ini, you can get include paths by using get_include_path() function and set them using set_include_path();
I highly recommend SimplePie feed parser over the PEAR::XML_Feed_Parser. Usually the PEAR libraries are great but they don't support several common types of feeds (I believe Atom 0.3 among several others). Also there is very little documentation about how to use it and (clearly) how to install it.
Simply include the SimplePie library and point it at your feed and it does the rest. It's easy to query for any data you want regardless of schema differences. It's also very fast, we're using it to aggregate hundreds of feeds over at http://www.feedscrub.com.
Hope that helps!
echo ini_get('include_path');
This should show the include the path to PEAR on the original host environment, from there if its not to big just wrap the entire mess up with tar -cjzf devPear.tar.bz path2pear/ .
Copy this tar file over to GoDaddy, extract to a safe location... then in .htaccess or at the start point of your application scripts, add this pear package into your include_path.
Alternatively:
If you have administrative rights, I believe there is a pear.php command called "installed" that shows all installed pear packages. If you also have pear administrative rights on the new environment, you can go down the line doing copy and paste of the package names you need to pear --install "package" name.
The second is a little cleaner, but the first will be faster... just accept these packages will be effectively stranded from the pear system and unable to be updated.

Categories