Re: [PHP] Shared Memory Problem
Yaswanth Narvaneni wrote: Hi! I found the solution to my prob. SELinux was enabled in the server which needs disabling. After disabling SELinux it was working great. Thanks for your help guys. Another small query though, is there anyway to enable SELinux and as well use shared memory between PHP and C++? I know using Zend engine the zend engine is free.. I think you mean 'Zend Some Product Name' instead :-) would solve the prob, but we need to buy zend which is very costly for me, any other solution is welcome. I have no idea if it either possible or efficient enough for your needs but you may be able to use pipes? http://php.net/proc_open Regards, Yaswanth On 11/16/05, Curt Zirzow [EMAIL PROTECTED] wrote: On Wed, Nov 16, 2005 at 03:33:22AM +0530, Yaswanth Narvaneni wrote: Hi! I have a server written in C++ and my webpages are in PHP. The PHP has to communicate with the server using shared memory. This was working fine on the server running FC-1 with php-4.3.8. We recently migrated to CentOS 4.1 (Equivalent to RHEL 4.1) running php-4.3.9. The error it displays is as follows: shmop_open(): unable to attach or create shared memory segment in /var/www/html/sharedmem.php on line 2 The server opens the shm in 666 (originally was 644) even then it was not working. I can see the shared mem open using 'ipcs' command. ... $shm_id = shmop_open($shm_key, a,0,0) or die(FATAL ERROR:: Unable to Access Shared Memory); You might want to try to open it within the same mode that the server created it in: 1) $shm_id = shmop_open($shm_key, a,0666,0); 2) are you 100% sure the key is valid? the error message you are getting seems to point in this direction since the shmop_open is failing on the C call to shmget(), wich usually fails when either you dont have enough memory to create it (which you arn't doing), some other creation problems, or that the key supplied wasn't found. Curt. -- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- In theory there is no difference between theory and practice. In practice there is. -- Fortune Cookie -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Shared Memory Problem
Hi Curt, These are my open shared memories in the server output of ipcs command. -- Shared Memory Segments keyshmid owner perms bytes nattch status 0x 18645001 gOLeM 600393216 2 dest 0x162e 18808842 root 66630 1 The last one the the sharedmem the php will be using. the key is 5678 and as you said I have modified my code to $shm_id = shmop_open(intval($shm_key), a,666,0) or die(FATAL ERROR:: $php_errormsg); U obtain the shm_key from a file. The key I am using is 5678 and it is getting that value from the file. I even hardcoded the value, but the error is not getting solved. Is this a proble with any of the server configs? Coz we have downloaded an example C file and this is also not working with the PHP. Where as if the server and client both written in C are able to communicate using the shared memory. Any clue any one?? Ok...just a crazy query...does it have anything to do with Notice: import_request_variables(): No prefix specified - possible security hazard in which occurs due to register_globals set to Off?? On 11/16/05, Curt Zirzow [EMAIL PROTECTED] wrote: On Wed, Nov 16, 2005 at 03:33:22AM +0530, Yaswanth Narvaneni wrote: Hi! I have a server written in C++ and my webpages are in PHP. The PHP has to communicate with the server using shared memory. This was working fine on the server running FC-1 with php-4.3.8. We recently migrated to CentOS 4.1 (Equivalent to RHEL 4.1) running php-4.3.9. The error it displays is as follows: shmop_open(): unable to attach or create shared memory segment in /var/www/html/sharedmem.php on line 2 The server opens the shm in 666 (originally was 644) even then it was not working. I can see the shared mem open using 'ipcs' command. ... $shm_id = shmop_open($shm_key, a,0,0) or die(FATAL ERROR:: Unable to Access Shared Memory); You might want to try to open it within the same mode that the server created it in: 1) $shm_id = shmop_open($shm_key, a,0666,0); 2) are you 100% sure the key is valid? the error message you are getting seems to point in this direction since the shmop_open is failing on the C call to shmget(), wich usually fails when either you dont have enough memory to create it (which you arn't doing), some other creation problems, or that the key supplied wasn't found. Curt. -- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- In theory there is no difference between theory and practice. In practice there is. -- Fortune Cookie -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Shared Memory Problem
Hi! There is a strange problem now. This is the error message my php file gives. kernel not configured for shared memory kernel not configured for semaphores kernel not configured for message queues The source is as follows: ?php $shm_id = shmop_open(5678, a, 0, 0); if (!$shm_id) { echo Couldn't create shared memory segment\n : $php_errormsg; } print br; print system(ipcs); ? when I logged into my machine as user apache and tried ipcs command it was working fine (I changed the shell of apache from /sbin/nologin to /bin/bash) Any clue?? Regards, Yaswanth On 11/16/05, Yaswanth Narvaneni [EMAIL PROTECTED] wrote: Hi Curt, These are my open shared memories in the server output of ipcs command. -- Shared Memory Segments keyshmid owner perms bytes nattch status 0x 18645001 gOLeM 600393216 2 dest 0x162e 18808842 root 66630 1 The last one the the sharedmem the php will be using. the key is 5678 and as you said I have modified my code to $shm_id = shmop_open(intval($shm_key), a,666,0) or die(FATAL ERROR:: $php_errormsg); U obtain the shm_key from a file. The key I am using is 5678 and it is getting that value from the file. I even hardcoded the value, but the error is not getting solved. Is this a proble with any of the server configs? Coz we have downloaded an example C file and this is also not working with the PHP. Where as if the server and client both written in C are able to communicate using the shared memory. Any clue any one?? Ok...just a crazy query...does it have anything to do with Notice: import_request_variables(): No prefix specified - possible security hazard in which occurs due to register_globals set to Off?? On 11/16/05, Curt Zirzow [EMAIL PROTECTED] wrote: On Wed, Nov 16, 2005 at 03:33:22AM +0530, Yaswanth Narvaneni wrote: Hi! I have a server written in C++ and my webpages are in PHP. The PHP has to communicate with the server using shared memory. This was working fine on the server running FC-1 with php-4.3.8. We recently migrated to CentOS 4.1 (Equivalent to RHEL 4.1) running php-4.3.9. The error it displays is as follows: shmop_open(): unable to attach or create shared memory segment in /var/www/html/sharedmem.php on line 2 The server opens the shm in 666 (originally was 644) even then it was not working. I can see the shared mem open using 'ipcs' command. ... $shm_id = shmop_open($shm_key, a,0,0) or die(FATAL ERROR:: Unable to Access Shared Memory); You might want to try to open it within the same mode that the server created it in: 1) $shm_id = shmop_open($shm_key, a,0666,0); 2) are you 100% sure the key is valid? the error message you are getting seems to point in this direction since the shmop_open is failing on the C call to shmget(), wich usually fails when either you dont have enough memory to create it (which you arn't doing), some other creation problems, or that the key supplied wasn't found. Curt. -- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- In theory there is no difference between theory and practice. In practice there is. -- Fortune Cookie -- In theory there is no difference between theory and practice. In practice there is. -- Fortune Cookie -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Shared Memory Problem
Hi! I found the solution to my prob. SELinux was enabled in the server which needs disabling. After disabling SELinux it was working great. Thanks for your help guys. Another small query though, is there anyway to enable SELinux and as well use shared memory between PHP and C++? I know using Zend engine would solve the prob, but we need to buy zend which is very costly for me, any other solution is welcome. Regards, Yaswanth On 11/16/05, Curt Zirzow [EMAIL PROTECTED] wrote: On Wed, Nov 16, 2005 at 03:33:22AM +0530, Yaswanth Narvaneni wrote: Hi! I have a server written in C++ and my webpages are in PHP. The PHP has to communicate with the server using shared memory. This was working fine on the server running FC-1 with php-4.3.8. We recently migrated to CentOS 4.1 (Equivalent to RHEL 4.1) running php-4.3.9. The error it displays is as follows: shmop_open(): unable to attach or create shared memory segment in /var/www/html/sharedmem.php on line 2 The server opens the shm in 666 (originally was 644) even then it was not working. I can see the shared mem open using 'ipcs' command. ... $shm_id = shmop_open($shm_key, a,0,0) or die(FATAL ERROR:: Unable to Access Shared Memory); You might want to try to open it within the same mode that the server created it in: 1) $shm_id = shmop_open($shm_key, a,0666,0); 2) are you 100% sure the key is valid? the error message you are getting seems to point in this direction since the shmop_open is failing on the C call to shmget(), wich usually fails when either you dont have enough memory to create it (which you arn't doing), some other creation problems, or that the key supplied wasn't found. Curt. -- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- In theory there is no difference between theory and practice. In practice there is. -- Fortune Cookie -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Shared Memory Problem
Hi! I have a server written in C++ and my webpages are in PHP. The PHP has to communicate with the server using shared memory. This was working fine on the server running FC-1 with php-4.3.8. We recently migrated to CentOS 4.1 (Equivalent to RHEL 4.1) running php-4.3.9. The error it displays is as follows: shmop_open(): unable to attach or create shared memory segment in /var/www/html/sharedmem.php on line 2 The server opens the shm in 666 (originally was 644) even then it was not working. I can see the shared mem open using 'ipcs' command. The source code of PHP is as follows: ?php /*Sem Key is read from this file*/ $SEMROUTE = /var/www/html/sharedmem/; $filename = $SEMROUTE.id; $handle = fopen($filename, r); $contents = fread($handle, filesize($filename)); fclose($handle); $contents = chop($contents); $shm_key = $contents; /*DEBUG:: The Contents of the file*/ print $shm_key.br; // These are fine # print $shm_key; $shm_id = shmop_open($shm_key, a,0,0) or die(FATAL ERROR:: Unable to Access Shared Memory); /*$shm_size = shmop_size($shm_id); DEBUG:: print (Shared Memory Block Size: . $shm_size.\n); */ // Now lets read the string back $data = shmop_read($shm_id, 0, $shm_size); if (!$data) { echo FATAL ERROR:: Couldn't read from shared memory\n; exit; } ? The PHPInfo of the servers are as follows (if it will help): - Server where its working fine - -- Start -- './configure' '--host=i386-redhat-linux' '--build=i386-redhat-linux' '--target=i386-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--enable-force-cgi-redirect' '--disable-debug' '--enable-pic' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-db4=/usr' '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-gd' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-ncurses' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-pspell' '--with-regex=system' '--with-xml' '--with-expat-dir=/usr' '--with-dom=shared,/usr' '--with-dom-xslt=/usr' '--with-dom-exslt=/usr' '--with-xmlrpc=shared' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-bcmath' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-safe-mode' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-discard-path' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--without-oci8' '--with-pear=/usr/share/pear' '--with-imap=shared' '--with-imap-ssl' '--with-kerberos' '--with-ldap=shared' '--with-mysql=shared,/usr' '--with-pgsql=shared' '--with-snmp=shared,/usr' '--with-snmp=shared' '--enable-ucd-snmp-hack' '--with-unixODBC=shared' '--enable-memory-limit' '--enable-bcmath' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--enable-mcal' '--enable-mbstring=shared' '--enable-mbstr-enc-trans' '--enable-mbregex' '--with-apxs2=/usr/sbin/apxs' -- End -- - Config of Server on which it Fails - -- Start -- './configure' '--build=i686-redhat-linux-gnu' '--host=i686-redhat-linux-gnu' '--target=i386-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--enable-force-cgi-redirect' '--disable-debug' '--enable-pic' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-db4=/usr' '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-gd=shared' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-ncurses=shared' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-pspell' '--with-xml' '--with-expat-dir=/usr' '--with-dom=shared,/usr' '--with-dom-xslt=/usr' '--with-dom-exslt=/usr' '--with-xmlrpc=shared' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-bcmath' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-pear=/usr/share/pear' '--with-imap=shared' '--with-imap-ssl' '--with-kerberos' '--with-ldap=shared' '--with-mysql=shared,/usr' '--with-pgsql=shared' '--with-snmp=shared,/usr' '--with-snmp=shared'
Re: [PHP] Shared Memory Problem
On Wed, Nov 16, 2005 at 03:33:22AM +0530, Yaswanth Narvaneni wrote: Hi! I have a server written in C++ and my webpages are in PHP. The PHP has to communicate with the server using shared memory. This was working fine on the server running FC-1 with php-4.3.8. We recently migrated to CentOS 4.1 (Equivalent to RHEL 4.1) running php-4.3.9. The error it displays is as follows: shmop_open(): unable to attach or create shared memory segment in /var/www/html/sharedmem.php on line 2 The server opens the shm in 666 (originally was 644) even then it was not working. I can see the shared mem open using 'ipcs' command. ... $shm_id = shmop_open($shm_key, a,0,0) or die(FATAL ERROR:: Unable to Access Shared Memory); You might want to try to open it within the same mode that the server created it in: 1) $shm_id = shmop_open($shm_key, a,0666,0); 2) are you 100% sure the key is valid? the error message you are getting seems to point in this direction since the shmop_open is failing on the C call to shmget(), wich usually fails when either you dont have enough memory to create it (which you arn't doing), some other creation problems, or that the key supplied wasn't found. Curt. -- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php