Deploying 64 bit xoJo app on centOS 7 64 bit

Seems like centos 7 64 bit and xojo 64 bit should be a good option to use for deployment.

I want to deploy cgi xojo app.

I have looked thru the docs but not understanding what i need to do to deploy it.

It is on a dedicated server

Thanks

It may be easiest to build one and then launch the app and/or use ldd to find what your missing dependencies are.

I can try to do that. I guess I’m not sure what needs to be changed in Apache to point my domain to it, etc, but let me build the app and test it in stand alone mode, then see what I can do with CGI.

You might also want to look at:

http://developer.xojo.com/system-requirements

and see if there’s anything missing from your system.

I wanted to try the Stand Alone first, so I copied the App to the server in Binary mode. and ran it from the Linux prompt. It is running and I see no errors. I used port 9000, but when I open the address and use Port 9000, it doesn’t show the app.

I have also used ldd on the app executable and also all the .so’s in the Libs directory. I don’t know what else to try.

I turned off the Firewall I believe so I don’t think that’s the issue.

Any ideas?

SELinux? SELinux

Ok, looks like the build was set to CGI which is wrong. I have now changed it to Stand Alone. When I run the app now, it runs but when I use the URL to get to the app, it doesn’t go to the app. It just sits there.

If I stop the App, it immediately says the app stopped in the browser.

So I’m getting a bit closer, but still not working.

Thoughts?

SELinux is disabled based on what I see. Thanks for the suggestion though

Ok, so for now I’ve given up on Stand Alone, going to try CGI.

I already see a .cgi file for a test in my www/cgi-bin directory and if I go to www.domain.com/cgi-bin/test/test.cgi it shows the info that it’s supposed to display, so I think cgi is setup and running properly on my server.

I rebuild my app in cgi mode, then copy all the files in the Linux 64 bit\myapp directory in binary mode to my httpdocs/cgi-bin directory, and then try www.mydomain.com/cgi-bin/myapp.cgi.

I get the following error in the browser:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Just a check but you have set the permissions on the .so files in the Libs directory and the .cgi and other files?

I think I do, but what should the permissions be so I can verify. I believe I set the .so’s to 777, but not sure if it would be best to be 755.

I have the .cgi and executable at 755, and all files in the Libs directory set to 755.

I left the .htaccess file alone as Xojo created it.

From memory here but I recall setting all the files in the Lib directory to 755 (making sure the directory was 755 also) and .cgi + app 755 and .cfg as 666

Brian, That is what I have the permissions set to now, but no happiness, same error.

I checked the error_log on the server, but no errors are being logged there.

Just for a test try setting .cfg to 755 or 777 but make sure to set back to 666 after testing

That did not help. I feel like I’m so close but yet so far away… lol

:smiley: just takes some time and investigation

With a Linux OS and running Apache + many other configurations to consider it just takes time

Is it easier in Windows and IIS?

Alan,

That depends on many factors but I tried IIS before with cgi and no luck but the stand alone worked great.

There is a reason for everything so don’t give up on your current problem

There was a test.cgi file that Plesk created on my server and that worked, however when I created your test.cgi file, I get the same error.

I did verify that perl is located at /usr/bin/perl

This is the test.cgi that does work:
#!/usr/bin/perl

print <<HTML;
Content-type: text/html

HTML

my $class;

foreach (sort keys %ENV) {
next unless /^HTTP_|^REQUEST_/;
$class = ($class ne ‘normal’)? ‘normal’: ‘alt’;
print <<HTML;

HTML }

print <<HTML;

Name Value
$_ $ENV{$_}
HTML

yes that is a more advanced script :smiley:

But good news is that the Plesk test.cgi worked