Installation
Information for installing this PECL extension may be found in the manual chapter titled Installation of PECL extensions. Additional information such as new releases, downloads, source files, maintainer information, and a CHANGELOG, can be located here: » http://pecl.php.net/package/paradox
Make sure you have pxlib installed before. If you install pxlib from an rpm or debian package, do not forget to install the development package as well.
Коментарии
You will need 'pecl' and 'phpize'. Make sure the php-pear (for pecl) and php-devel (for phpize) packages are installed.
Download pxlib package from pxlib.sourceforge.net. expand/config/make/make install. No tricks there.
pecl install paradox
Edit php.ini or, preferably, create /etc/php.d/paradox.ini to contain:
extension=paradox.so
'php --info | grep paradox' to verify the configuration is read properly and there are no errors. You should see something like...
/etc/php.d/paradox.ini,
paradox
service httpd restart
This was my experience in Ubuntu distro. I install everything from console. Type:
sudo aptitude install php-pear
sudo aptitude install php5-dev
sudo aptitude install pxlib1
sudo aptitude install pxlib-dev
sudo pecl install paradox
Display your php config by using the phpinfo() and
find the path shown at "Scan this dir for additional .ini files"
In my case I found "/etc/php5/apache2/conf.d"
At this path create a file name "paradox.ini" with this content:
extension=paradox.so
Then type "php --info | grep paradox" to verify the configuration is read properly and there are no errors. You should see something like...
/etc/php.d/paradox.ini,
paradox
service httpd restart. In my case:
sudo /etc/init.d/apache2 restart
FreeBSD users BEWARE, this extension will not compile and install with the "pecl install paradox" command.
The configure script fails because it tries to use a library (libdl.a) that is available by default in Linux but not on FreeBSD. I had to alter the configure script and install the package manually.
I have reported this on the package page as a bug, but there does not seem to be any movement in maintaining this package, so I am posting this here for anyone having trouble trying to install this package on FreeBSD.
If you try on newer versions of php (like 5.5 and above) it is not working with pecl, so you need to do it manually. Get package, untar it and then apply this patch:
--- paradox-1.4.3/paradox.c 2007-09-25 15:12:42.000000000 +0300
+++ paradox.c 2015-04-22 16:42:13.399878251 +0300
@@ -48,7 +48,7 @@
*
* Every user visible function must have an entry in paradox_functions[].
*/
-function_entry paradox_functions[] = {
+zend_function_entry paradox_functions[] = {
PHP_FE(px_new, NULL)
PHP_FE(px_open_fp, NULL)
PHP_FE(px_create_fp, NULL)
@@ -89,7 +89,7 @@
};
/* }}} */
-function_entry paradox_funcs_db[] = {
+zend_function_entry paradox_funcs_db[] = {
PHP_ME_MAPPING(__construct, px_new, NULL, 0)
PHP_ME_MAPPING(open_fp, px_open_fp, NULL, 0)
PHP_ME_MAPPING(create_fp, px_create_fp, NULL, 0)
@@ -283,7 +283,7 @@
ALLOC_HASHTABLE(intern->zo.properties);
zend_hash_init(intern->zo.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
- zend_hash_copy(intern->zo.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
+ object_properties_init((zend_object*) &(intern->zo), class_type);
intern->ptr = PX_new2(px_custom_errorhandler, px_emalloc, px_erealloc, px_efree);
retval->handle = zend_objects_store_put(intern, paradox_object_dtor, NULL, NULL TSRMLS_CC);
then to compile it with
phpize
./configure
make
make install
You could do make test also, but some tests are broken.