Error with phpize in SLES - php

I'm trying to run the phpize command, but i keep getting this error message:
Cannot find config.m4
Make sure that you run '/usr/bin/phpize in top level source directory of the module
I have already installed php5-dev.

Related

Install phpredis for PHP 5.6 on OSX does not work

I'm trying to install phpredis on mac using php 5.6.
I run the following commands:
1. git clone https://www.github.com/phpredis/phpredis.git
2. cd phpredis
3. phpize && ./configure && make && sudo make install
But when I run the command 3 I get the following error:
In file included from /Users/user1/phpredis/redis.c:25:
In file included from ./php_redis.h:20:
./common.h:12:10: fatal error: 'zend_smart_str.h' file not found
#include <zend_smart_str.h>
^~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [redis.lo] Error 1
There's another way to install it?
from github you can use ``pecl as another way to install it.
But it also define some command you could run if there is error when install link

PHP unable to load dynamic library

I'm trying to install libinjection from here
I'm trying to install the PHP module but I'm getting this error after make, make install, make test:
2/libinjection.so - /usr/lib/php5/20121212/libinjection.so: cannot
open shared object file: No such file or directory in Unknown on line
0 PHP Notice: Use of undefined constant LIBINJECTION_VERSION -
assumed 'LIBINJECTION_VERSION' in
/home/mohammed/libinjection/php/example.php on line 6
Using libinjection LIBINJECTION_VERSION PHP Fatal error: Call to undefined function new_libinjection_sqli_state() in
/home/mohammed/libinjection/php/example.php on line 9
In php.ini I added
extension=libinjection.so but I'm still getting the error.
Any advice?
Based on the error message
/usr/lib/php5/20121212/libinjection.so: cannot open shared object
file: No such file or directory
When you ran make install it did not install the extension to the path where PHP is looking for it.
Find where it installed the extension to, and copy libinjection.so to /usr/lib/php5/20121212 and then restart the web server (Apache, nginx etc) and try running your code again.
To build an extension in PHP,
you first need to run scripts/phpize in the PHP folder,
and ./configure with a prefix to find the correct folder.
Simply using ./configure && make && make install is not enough.
chmod +x /usr/local/src/php-5.6.9/scripts/phpize
/usr/local/src/php-5.6.9/scripts/phpize
./configure --prefix /usr/local/src/php-5.6.9 \
--with-libdir=/lib/x86_64-linux-gnu \
Use ./configure --help to get available options.

Error while building php extension on Ubuntu

I installed php5-dev, get php source, placed hello_world extension in
<php_source>/ext/hello.
I run this commands in hello dir:
phpize
./configure --enable-hello
make
But I have error: php.h not found :(
I tried to run ./configure in php source path, placed files from Zend/, TSRM/, main/ dirs to /ext/hello dir, but after running make I have many-many compiling errors. What I am doing wrong?
Try with
./configure --with-php-config=/path/to/php/bin/php-config --enable-hello

"Cannot find config.m4." while running phpize in the installation of apd using pecl

I'm trying to get access to rename_function in PHP, and for that I need PECL APD. I'm running Ubuntu 14.04 LTS.
I'm trying to run sudo pecl install apd, but I'm getting:
downloading apd-1.0.1.tgz ...
Starting to download apd-1.0.1.tgz (36,643 bytes)
..........done: 36,643 bytes
15 source files, building
running: phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of
the module
If the command failed with 'phpize: not found' then you need to install php5-dev package. You can do it by running 'apt-get install php5-dev' as a root userERROR: `phpize' failed
Should I be running this command from a certain directory?
This time I tried it with verbose options turned on, in case there is a clue in the logs:
sudo /usr/bin/pecl -vvvvv install apd
Warning: file_exists(): Unable to find the wrapper "channel" - did you forget to enable it when you configured PHP? in PEAR/Downloader/Package.php on line 1518
Warning: is_file(): Unable to find the wrapper "channel" - did you forget to enable it when you configured PHP? in PEAR/Downloader/Package.php on line 1528
Warning: is_file(): Unable to find the wrapper "channel" - did you forget to enable it when you configured PHP? in PEAR/Downloader/Package.php on line 1528
Downloading "http://pecl.php.net/get/apd-1.0.1.tgz"
downloading apd-1.0.1.tgz ...
Starting to download apd-1.0.1.tgz (36,643 bytes)
..........done: 36,643 bytes
+ cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/LICENSE /usr/share/php/doc/apd/.tmpLICENSE
adding to transaction: chmod 664 /usr/share/php/doc/apd/.tmpLICENSE
adding to transaction: rename /usr/share/php/doc/apd/.tmpLICENSE /usr/share/php/doc/apd/LICENSE
adding to transaction: installed_as LICENSE /usr/share/php/doc/apd/LICENSE /usr/share/php/doc /apd
+ cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/README /usr/share/php/doc/apd/.tmpREADME
adding to transaction: chmod 664 /usr/share/php/doc/apd/.tmpREADME
adding to transaction: rename /usr/share/php/doc/apd/.tmpREADME /usr/share/php/doc/apd/README
adding to transaction: installed_as README /usr/share/php/doc/apd/README /usr/share/php/doc /apd
+ cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/pprofp /usr/bin/.tmppprofp
+ chmod +x /usr/bin/.tmppprofp
adding to transaction: chmod 775 /usr/bin/.tmppprofp
adding to transaction: rename /usr/bin/.tmppprofp /usr/bin/pprofp
adding to transaction: installed_as pprofp /usr/bin/pprofp /usr/bin /
+ cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/pprof2calltree /usr/bin/.tmppprof2calltree
+ chmod +x /usr/bin/.tmppprof2calltree
adding to transaction: chmod 775 /usr/bin/.tmppprof2calltree
adding to transaction: rename /usr/bin/.tmppprof2calltree /usr/bin/pprof2calltree
adding to transaction: installed_as pprof2calltree /usr/bin/pprof2calltree /usr/bin /
15 source files, building
building in /tmp/pear/temp/pearf7LGca
running: phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
If the command failed with 'phpize: not found' then you need to install php5-dev packageYou can do it by running 'apt-get install php5-dev' as a root userrolling back 12 file operations
+ rm /usr/share/php/doc/apd/.tmpLICENSE
+ rm /usr/share/php/doc/apd/.tmpREADME
+ rm /usr/bin/.tmppprofp
+ rm /usr/bin/.tmppprof2calltree
ERROR: `phpize' failed
Warning: unlink(/tmp/glibctestRdKE0K): No such file or directory in System.php on line 214
Warning: unlink(/tmp/pear/temp/pearf7LGca): No such file or directory in System.php on line 214
This will be a short summary of everything to is a precondition to run APD as a PHP profiler, I hope it will help your needs. This summary applies for PHP 5.6.2 APD 1.0.1 and might be incorrect for other versions.
First of all do not start it if you didn't ensure these two:
Deactivate Zend platform or any other PHP optimizer. In general you need to disable all Zend extensions.
Install a debugging enabled version of PHP (--enable-debug)
If you have a working PEAR setup you need to setup APD like in this article. Don't forget to try out distribution packages either. Otherwise APD's build as following:
Extract tarball.
Change directory in tarball.
Run <apache root>/bin/phpsize
Run ./configure (Add --with-php-config=<apache root>/bin/php-config if configure fails.)
Compile and install everything using
make
make install
Edit php.ini and add at least
zend_extension=/apd.so
apd.statement=1
apd.tracedir=/tmp/apd-traces
Create the output directory specified in php.ini
Now you'll need to restart Apache but before you do, check that the APD extension works fine. To do simply run PHP
/bin/php
No warning should be given if extension is loaded properly. If you get error message something like the "apd.so" extension couldn't be loaded there is a problem. Check if you compiled against the correct Apache/PHP version and using the same right now.
If PHP doesn't complain about anything enter:
<?php phpinfo(); ?>
and check for some lines about APD. If you find them you are done.
You'll also need some traces so to start tracing you need to your Apache to allow the PHP module to load APD. Next you'll need to identify the script to trace. Add the APD call at the top of the script:
apd_set_pprof_trace();
Then make some requests and remove the statement again to avoid causing further harm.
Now have a look at the trace directory. You should find files with a naming scheme of pprof[0-9]*.[0-9] here. Decode them using the pprofp tool from your APD source tarball. Example:
/bin/php /pprofp -u
Redirect stdout if necessary. Use -t instead of -u (summary output) to get calling trees. When you create traces with -t you get a summary output too, but it doesn't contain the per-call durations. I suggest to always create both a call tree and a summary trace.
Hope that helps, I recommend you hardly to read the link mentioned above.
EDIT:
The phpize command is meant to be run at the top level of an extension source dir (this source dir should contain a file name config.m4). See this for more info.
As per error:
If the command failed with phpize: not found then you need to install php5-dev package.
You can do it by running apt-get install php5-dev as a root user
I think you should install module development for PHP via:
sudo apt-get install php5-dev
This should provide you with phpize binary necessary to compile the Pecl extension sources. And make sure it's in your PATH.

How to compile php with sqlite3 support

I want to compile php sqlite3 with custom compile option. to do that I followed following steps
wget http://be.php.net/distributions/php-5.3.10.tar.gz
tar -xvf php-5.3.10.tar.gz
cd php-5.3.10/ext/sqlite3
Run phpize
But I am getting error:
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
How can I solve this problem ?
Seems like already reported bug
https://bugs.php.net/bug.php?id=53571&edit=1.

Categories