apache - PHP and RAW SOCKETS on linux


Is it enough to do a

sudo setcap cap_net_raw=eip /usr/bin/php5

to be able to use RAW SOCKETS in PHP (not CLI) in Linux ?

If yes, well it is not working (but started to work in CLI but not using Apache)

So I guess I have to give those permissions to Apache as well, but I couldn't find out how.

Can you help me?

errors from the PHP script :Warning: socket_create(): Unable to create socket [1]: Operation not permitted in

the php script :

$package = "\x08\x00\x7d\x4b\x00\x00\x00\x00PingHost";
        $socket = socket_create(AF_INET, SOCK_RAW, 1);
        if ($socket !== false) {
            socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 10, 'usec' => 0));
            echo 'Creating PING Socket !';

            socket_connect($socket, gethostbyname('noczone.com'), null);
            socket_send($socket, $package, strLen($package), 0);
            if (socket_read($socket, 255)) {
                $result = microtime(true) - $ts;
            } else {
                echo 'Error Code : No PING';
        } else {
            echo 'Failed Creating PING Socket !';



Have you tried:sudo setcap cap_net_raw=eip $(which httpd) ?

What's the error you're getting?




Most likely the PHP interpreter is implemented as a module in Apache (you can see this from php_sapi_name() or the PHP_SAPI constant in PHP, or from the httpd ini file).

In this case you need to give the httpd executable the capability.

People are also looking for solutions to the problem: php - Sort a 2d array by its name column but ignoring the names' prefixes


Didn't find the answer?

Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.

Ask a Question

Write quick answer

Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.

Similar questions

Find the answer in similar questions on our website.