Home
 

Customer Support

Search for keywords:

Browse by category:

I need the virtual() function and it is not
available.

When PHP runs as a cgi, that function is not available. However, you do not need it to accomplish your goals, which is having some other program executed at the same time as your php script, likely with output emitted as part of the html returned by the php script.

In order to do this, you must first set in the PHP script whatever environmental variables your second script needs to use, such as REQUEST_METHOD and QUERY_STRING. Then, you execute the secondary script with a shell command with PHP.

For example, suppose you want your PHP script to display the output of a perl script that you wanted to run like:

virtual('/cgi-bin/myscript.pl?arg=value');


Instead of the above in your PHP, you would do this:


putenv('REQUEST_METHOD=GET');
putenv('QUERY_STRING=arg=value');
passthru("/htdocs/www/cgi-bin/myscript.pl");


Notice that when using virtual() you refer to the script to be executed by a path that begins at the Apache DOCUMENT_ROOT, which is in most cases /htdocs/www on the physical filesystem. However, when exec'ing the script from a shell, you refer to it using the entire path starting at your home directory, which is "/".

Also, myscript.pl must have executable permissions such as chmod 755.

The only change you need to make to myscript.pl would be to get rid of any content type header that it output when called by virtual(), such as:

print "Content-type: text/html\n\n";


Any line such as the above is now no longer needed when you exec your script through a shell as described in this document and it should therefore be deleted or commented out, otherwise you will get that output printed in your PHP page.

User-Contributed Notes

add a note
There are no user-contributed notes for this topic.

Related Questions:


How do I set PHP include_path?

How do I change timezone for PHP?

What PHP modules are available and how do I load them?

Can I run a PHP script on cron?

How do I do html form file uploads?

Why does a PHP function give an error that it is undefined?

Why does my PHP script throw an Internal Server Error 500?

Why does PHP HTTP authentication not work?

What version of PHP are you running and can I see a phpinfo()?

I can't upload a file larger than 8MB through a PHP script

Can you change session cookie timeout in php.ini for me?

Do you have a quick form mail script?

Where is the php_error_log?

Can I use a PHP extension like PDFlib that I have personally purchased a license to use?

How do I get different character sets within my PHP page to display correctly?

What's the difference between running PHP as a cgi or as a module in safe mode?

Do you offer PHP5 with MySQLi?

Can I have all .html pages parsed as PHP?

My PHP session is lost whenever I go to a secure URL using the shared SSL certificate.

The PHP curl module doesn't work.

Where can I download free PHP scripts?

Do you provide PEAR?

Do I need to set any 777 permissions in order for my PHP scripts to create files and directories?

What is CAPTCHA? How can I use it?

How do I execute my .php files as PHP 5?

How do I use the url_rewriter.tags setting for PHP?

The PDFlib extension gives a UPR description error.

Can I use Smarty Templates?

Why does flush() not flush the data to my browser?

Why does PHPLIB sessions give me a MySQL Database error?

Will IonCube encoded files work?

Will my Zend Encoded files work?

The pfpro pfpro_process() function keeps giving me Error 31

Why does getallheaders() say undefined function?

Can I talk over SSL when opening an IMAP connection with the PHP imap_open() function?

How do I configure PHP?

How can one PHP file transparently handle all search-engine friendly URLs?

How do I put PHP sessions into a database instead of the default files-based method?

My PHP script needs a newer version of Zend Optimizer. What do I do?

I need to execute my cron job with PHP5.2

I need a newer version of PHP to run certain software

Can I use the pfpro extension in PHP 5.2?

Browse Categories:

Getting Started, FTP, Telnet/SSH, Moving Domains, E-mail, Traffic Reports, Mailing Lists, Apache, PHP, CGI, Other Server-Side Scripting, MySQL Database, Imaging Libraries, Other Software, Billing & Terms, Control Panel, E-commerce, Pre-Sales


Modwest PHP Hosting      Copyright 2000-2009 by Modwest, Inc.      About    |    Blog    |    Community    |    Design    |    Jobs    |    Contact