GithubHelp home page GithubHelp logo

cf-php-apache-buildpack's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cf-php-apache-buildpack's Issues

Add zlib support

Hi,

is it possible to add zlib support to the php binary. Or is there a way to do it myself?

I tried adding (compiled) zlib.so binaries to my /lib folder, but this does not work.

I also added the extension to the php.ini and enabled zlib, but no success.

default DOWNLOAD_URL returns 404

Uploading aphpdemo... OK Preparing to start aphpdemo... OK -----> Downloaded app package (4.0K) Initialized empty Git repository in /tmp/buildpacks/cf-php-apache-buildpack.git/.git/ Installing cf-php-apache-buildpack.git. Configuring HTTPD Version: 2.2.24 Traceback (most recent call last): File "/tmp/buildpacks/cf-php-apache-buildpack.git/bin/compile", line 112, in <module> os.path.join(BP_DIR, "default", "shasums", "%s.sha1" % httpd_bin_file)) File "/tmp/buildpacks/cf-php-apache-buildpack.git/bin/compile", line 30, in download_url res = urllib2.urlopen(url) File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen return _opener.open(url, data, timeout) File "/usr/lib/python2.6/urllib2.py", line 397, in open response = meth(req, response) File "/usr/lib/python2.6/urllib2.py", line 510, in http_response 'http', request, response, code, msg, hdrs) File "/usr/lib/python2.6/urllib2.py", line 435, in error return self._call_chain(*args) File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain result = func(*args) File "/usr/lib/python2.6/urllib2.py", line 518, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 404: NOT FOUND /var/vcap/packages/dea_next/buildpacks/lib/installer.rb:17:in compile': Buildpack compilation step failed: (RuntimeError)
from /var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:26:in block in compile_with_timeout' from /usr/lib/ruby/1.9.1/timeout.rb:68:in timeout'
from /var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:25:in compile_with_timeout' from /var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:16:in block in stage_application'
from /var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:12:in chdir' from /var/vcap/packages/dea_next/buildpacks/lib/buildpack.rb:12:in stage_application'
from /var/vcap/packages/dea_next/buildpacks/bin/run:10:in <main>' Checking status of app 'aphpdemo'...Application failed to stage

Due to https://dl.dropboxusercontent.com/u/186123235/binaries (DOWNLOAD_URL from the default folder) returning 404.

Staging error: cannot get instances since staging failed

Hello, I'm not sure if this is a problem with the buildpack, cloud foundry, or something on our end; however, we haven't changed anything recently and it looks like there were some changes committed recently to this buildpack so I thought I would start here (I apologize in advance if I'm in the wrong spot :-) )

Here is the error that we are getting when we try to push a new app to cloud foundry:

...
Initialized empty Git repository in /tmp/buildpacks/cf-php-apache-buildpack/.git/
Started: [2014-01-25 01:12:51.242728]
Custom config found, overriding default options
Configuring HTTPD Version: 2.2.26
Downloading [http://test.repo.standingcloud.net/repo/apps/cloudfoundry/cf-php-apache-buildpack/httpd/2.2/httpd-2.2.26-bin.tar.gz]
Downloaded [/tmp/cache/httpd-2.2.26-bin.tar.gz]
Configuring PHP Version: 5.4.24
Downloading [http://test.repo.standingcloud.net/repo/apps/cloudfoundry/cf-php-apache-buildpack/php/5.4/php-5.4.24-bin.tar.gz]
Checking status of app 'test18'...>>>
REQUEST: GET https://api.run.pivotal.io/v2/apps/89612b80-9b7b-40a7-a177-2b64ad414d0c/instances
REQUEST_HEADERS:
  Accept : application/json
  Authorization : [PRIVATE DATA HIDDEN]
  Content-Length : 0
RESPONSE: [400]
RESPONSE_HEADERS:
  connection : keep-alive
  content-length : 8852
  content-type : application/json;charset=utf-8
  date : Sat, 25 Jan 2014 01:12:57 GMT
  server : nginx
  x-content-type-options : nosniff
  x-vcap-request-id : cea950dd-293d-4fe9-a420-667463de3633
RESPONSE_BODY:
{
    "backtrace": [
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/app/controllers/runtime/instances_controller.rb:11:in `instances'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/lib/cloud_controller/rest_controller/base.rb:95:in `dispatch'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/lib/cloud_controller/rest_controller/routes.rb:16:in `block in define_route'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1540:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1540:in `block in compile!'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:950:in `[]'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:950:in `block (3 levels) in route!'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:966:in `route_eval'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/agent/instrumentation/sinatra.rb:133:in `route_eval_with_newrelic'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:950:in `block (2 levels) in route!'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:987:in `block in process_route'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:985:in `catch'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:985:in `process_route'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/agent/instrumentation/sinatra.rb:116:in `process_route_with_newrelic'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:948:in `block in route!'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:947:in `each'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:947:in `route!'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1059:in `block in dispatch!'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1041:in `block in invoke'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1041:in `catch'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1041:in `invoke'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1056:in `dispatch!'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/agent/instrumentation/sinatra.rb:151:in `dispatch_and_notice_errors_with_newrelic'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/agent/instrumentation/sinatra.rb:146:in `block in dispatch_with_newrelic'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:339:in `perform_action_with_newrelic_trace'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/agent/instrumentation/sinatra.rb:145:in `dispatch_with_newrelic'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:882:in `block in call!'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1041:in `block in invoke'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1041:in `catch'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1041:in `invoke'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:882:in `call!'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:870:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/rack/error_collector.rb:50:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/rack/browser_monitoring.rb:23:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/rack/agent_hooks.rb:28:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.5.0/lib/rack/protection/xss_header.rb:18:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.5.0/lib/rack/protection/path_traversal.rb:16:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.5.0/lib/rack/protection/json_csrf.rb:18:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.5.0/lib/rack/protection/base.rb:49:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.5.0/lib/rack/protection/base.rb:49:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-protection-1.5.0/lib/rack/protection/frame_options.rb:31:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-1.5.2/lib/rack/nulllogger.rb:9:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:175:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:1949:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:138:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-1.5.2/lib/rack/urlmap.rb:65:in `block in call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-1.5.2/lib/rack/urlmap.rb:50:in `each'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-1.5.2/lib/rack/urlmap.rb:50:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-1.5.2/lib/rack/commonlogger.rb:33:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sinatra-1.4.3/lib/sinatra/base.rb:212:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:138:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/thin-1.5.1/lib/thin/connection.rb:81:in `block in pre_process'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/thin-1.5.1/lib/thin/connection.rb:79:in `catch'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/thin-1.5.1/lib/thin/connection.rb:79:in `pre_process'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:1037:in `call'",
        "/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:1037:in `block in spawn_threadpool'"
    ],
    "code": 170001,
    "description": "Staging error: cannot get instances since staging failed",
    "error_code": "CF-StagingError",   
    "types": [
        "StagingError",
        "Error"
    ]
}
<<<
Application failed to stage

Application failed to stage

When running the command cf push --buildpack=https://github.com/dmikusa-pivotal/cf-php-apache-buildpack.git everything seems to be going fine, but I am given an error that states Checking status of app 'xxxxxxx'...Application failed to stage When browsing the site after that it just shows a 404.

Thinking I was doing something wrong I tried using the php example application cf-ex-php-info but I get the same errors. Any idea why I am getting this error?

$_SERVER['REMOTE_HOST'] and REMOTE_ADDR incorrectly set

As HTTP traffic for the apps on CloudFoundry are served by a chain[1], then the X-FORWARDED-HOST and X-FORWARDED-PROTO headers should be used to properly fill the $_SERVER variable for php apps.

Currently php apps most likely see the gorouter IP in REMOTE_X variables, and the DEA IP and port into SERVER_PORT and SERVER_ADDR

https://php-info.cfapps.io/info.php
_SERVER["REMOTE_ADDR"] 10.10.16.16
_SERVER["REMOTE_PORT"] 14456

[1] Current request chain is:

Simple phpinfo app failure

I have an index.php file which simply executes phpinfo() (no other content, short <? tags)

I put it in an htdocs/ folder and push with this buildpack.

PHP never appears to operate on the file and the browser source shows the unpreprocessed phpinfo() call.

What am I doing wrong?

I'm not able to start any php application on either bosh-lite or Pivotal CF.

Logs from cf apps cf-php-demo

2014-02-24T00:16:53.11+0800 [STG] OUT Configuring HTTPD Version: 2.2.26
2014-02-24T00:16:53.11+0800 [STG] OUT Cached [/tmp/cache/httpd-2.2.26-bin.tar.gz]
2014-02-24T00:16:53.12+0800 [STG] OUT Configuring PHP Version: 5.4.25
2014-02-24T00:16:53.12+0800 [STG] OUT Cached [/tmp/cache/php-5.4.25-bin.tar.gz]
2014-02-24T00:16:53.12+0800 [STG] OUT Finished: [2014-02-23 16:16:52.956140]
2014-02-24T00:17:00.27+0800 [STG] OUT -----> Uploading droplet (36M)
2014-02-24T00:17:06.26+0800 [DEA] OUT Registering app instance (index 0) with guid 993e76c9-e89d-457b-97b0-e332271192c1
2014-02-24T00:19:38.54+0800 [DEA] OUT Instance (index 0) failed to start accepting connections
2014-02-24T00:19:48.61+0800 [DEA] OUT Removing crash for app with id 993e76c9-e89d-457b-97b0-e332271192c1
2014-02-24T00:19:48.65+0800 [DEA] OUT Removing app instance (index 0) with guid 993e76c9-e89d-457b-97b0-e332271192c1
2014-02-24T00:20:02.09+0800 [DEA] OUT Registering app instance (index 0) with guid 993e76c9-e89d-457b-97b0-e332271192c1
2014-02-24T00:22:34.30+0800 [DEA] OUT Instance (index 0) failed to start accepting connections
2014-02-24T00:22:39.64+0800 [DEA] OUT Removing crash for app with id 993e76c9-e89d-457b-97b0-e332271192c1
2014-02-24T00:22:39.64+0800 [DEA] OUT Removing app instance (index 0) with guid 993e76c9-e89d-457b-97b0-e332271192c1
2014-02-24T00:22:52.11+0800 [DEA] OUT Registering app instance (index 0) with guid 993e76c9-e89d-457b-97b0-e332271192c1

Application failed to stage

Hi i have tried to deploy the phpmyadmin using the cf-php buildpack but it is failed to stage on my private cloud foundry instance.

$_SERVER['HTTPS'] not set when php page accessed from HTTPS

As described into http://fr2.php.net/manual/en/reserved.variables.server.php when a php script is handling an HTTPS request, the $_SERVER['HTTPS'] is expec ted to be set.

This is not currently the case as shown on the sample php-info running from the cf-php-apache-buildpack:

https://php-info.cfapps.io/info.php

When an app is running within the cf-php-apache-buildpack, the load balancer before the gorouter (AWS ELB for run.pivotal.io or HAProxy or Nginx such as in https://github.com/cloudfoundry-community/sslproxy-boshrelease) converts the received HTTPS traffic into HTTP and adds the x-forwarded-proto header and x-forwarded-for.

A possible workaround for php apps is to perform the test themselves:

if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){
    $_SERVER['HTTPS']='on'; 
}

Some standard apps already perform such tests (e.g. https://drupal.org/node/313145 ), however others may break when accessed from https as they will detect that incoming traffic comes from HTTP, and may try to redirect to HTTPS urls, resulting into infinite redirection loops.

It would be great to have the cf-php-apache-buildpack automatically process the HTTP_X_FORWARDED_PROTO, in a similar way the java-buildpack does it with the RemoteIpValve cf https://github.com/cloudfoundry/java-buildpack/blob/master/resources/tomcat/conf/server.xml and http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html

I searched for a similar apache module but only found so far:

  • http://httpd.apache.org/docs/trunk/en/mod/mod_remoteip.html#processing which only deals with the remote ip and not remote protocol (I'll open a second issue for the remote ip not being properly exposed to php apps)
  • mod_rpaf seems to support X-FORWARDED-PROTO see gnif/mod_rpaf#11 This needs testing and it does not seem to be included into recent apache distributions. Also needs a further patch to remove XHTTPS header support that cloudfoundry would not skip if present in the https request.

If some php instructions could be included by the php interpreter prio to every HTTP request handling then the php snipnet above could be added.

Add support for outputing apache access and error logs to loggregator

The CloudFoundry recommended way to collect HTTP access logs is to have apps dump them on stdout, in order for the loggregator to collect them.

See https://docs.google.com/document/d/1zTbS9f6s1Y8WYMhJv5lu6G1bf1ktXA-y-itc3ZOhVAA/edit?disco=AAAAAGhrT_w# for more details.

Current httd-logging.conf is:

ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" common
</IfModule>

It would be great to have the cf-php-apache-buildpack configure apache to dump access logs to stdout, with a prefix added on each line in order to distinguish these logs from app-generated logs.

Suggesting to add the prefix "s=access" for a concise short-cut for source=apache_access_logs

In terms of implementation, it is not clear whether standard apache config is able to generate logs on stdout, see http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#customlog may be though piped streams ?

This php heroku buildpack was instead tailing the access file on disk, see http://labs.enru.co.uk/phponheroku/#17 However, this might lack some additional logrotate to avoid filling up the disk ?

The same holds for error logs which could be output to stderr with the "s=apache_err" prefix

Invalid JSON in VCAP_SERVICES environment variable

It seems that the VCAP_SERVICES environment variable has invalid JSON now (it used to work correctly)?

I created test.php with the following:

<?php
echo $_ENV['VCAP_SERVICES'];
?>

It returns the following (http://nshwptest.testcfapp.standingcloud.com/test.php):

{
    "cleardb-n/a": [
        {
            "name": "cleardb-c14b5",
            "label": "cleardb-n/a",
            "tags": [
                "mysql",
                "relational"
            ],
            "plan": "spark",
            "credentials": {
                "jdbc

It didn't used to do this; any suggestions? Could it be a newer version of PHP or HTTPD that's breaking things?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.