Git Product home page Git Product logo

heroku-buildpack-php's Introduction

Heroku buildpack: PHP CI

php

This is the official Heroku buildpack for PHP applications.

It uses Composer for dependency management, supports all recent versions of PHP as runtimes, and offers a choice of Apache2 or Nginx web servers.

Usage

You'll need to use at least an empty composer.json in your application.

$ echo '{}' > composer.json
$ git add composer.json
$ git commit -m "add composer.json for PHP app detection"

If you also have files from other frameworks or languages that could trigger another buildpack to detect your application as one of its own, e.g. a package.json which might cause your code to be detected as a Node.js application even if it is a PHP application, then you need to manually set your application to use this buildpack:

$ heroku buildpacks:set heroku/php

This will use the officially published version. To use the default branch from GitHub instead:

$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-php

Please refer to Dev Center for further usage instructions.

Custom Platform Repositories

The buildpack uses Composer repositories to resolve platform (php, ext-something, ...) dependencies.

To use a custom Composer repository with additional or different platform packages, add the URL to its packages.json to the HEROKU_PHP_PLATFORM_REPOSITORIES config var:

$ heroku config:set HEROKU_PHP_PLATFORM_REPOSITORIES="https://<your-bucket-name>.s3.<your-bucket-region>.amazonaws.com/heroku-20/packages.json"

To allow the use of multiple custom repositories, the config var may hold a list of multiple repository URLs, separated by a space character, in ascending order of precedence (meaning the last repository listed is handled first by Composer for package lookups).

Please note that Heroku cannot provide support for issues related to custom platform repositories and packages.

Disabling the Default Repository

If the first entry in the list is "-" instead of a URL, the default platform repository is disabled entirely. This can be useful when testing development repositories, or to forcefully prevent the use of any packages from the default platform repository.

Repository Priorities

It is possible to control Composer Repository Priorities for custom platform repositories: whether Composer should

  • treat a given repository as canonical;
  • exclude specific packages from a repository;
  • only allow specific packages from a repository.

These repository options (canonical, exclude and only) are controlled using the following query strings in the repository URL:

  • composer-repository-canonical (true or false; defaults to true)
  • composer-repository-exclude (comma-separated list of excluded package names)
  • composer-repository-only (comma-separated list of allowed package names)

For example, the following config var will allow only packages ext-igbinary and ext-redis from customrepo.com; all other packages are looked up in the default repository:

$ heroku config:set HEROKU_PHP_PLATFORM_REPOSITORIES="https://customrepo.com/packages.json?composer-repository-only=ext-igbinary,ext-redis"

Building Custom Repositories

For instructions on how to build custom platform packages (and a repository to hold them), please refer to the instructions further below.

Development

The following information only applies if you're forking and hacking on this buildpack for your own purposes.

Pull Requests

Please submit all pull requests against develop as the base branch.

Custom Platform Packages and Repositories

Please refer to the README in support/build/ for instructions.

heroku-buildpack-php's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heroku-buildpack-php's Issues

Unable to load apc and soap libraries

Hi,
When the compilation get to php, it throws the following errors.

PHP Warning: PHP Startup: Unable to load dynamic library '/app/php/ext/apc.so' - /app/php/ext/apc.so: cannot open shared object file: No such file or directory in Unknown on line 0

PHP Warning: PHP Startup: Unable to load dynamic library '/app/php/ext/soap.so' - /app/php/ext/soap.so: cannot open shared object file: No such file or directory in Unknown on line 0

I read on another issue that apc should be compiling with the latest version of this repo.

Any idea what could be the issue here?

Thanks in advance.

Do not pollute application composer dependencies

Currently this bulidpack is also a composer package, composer is for dependency management for php packages, therefor i do not think it is the best way to do this.

Would it be possible to download it? or if the buldpack is already accessible, just use its bin scripts directly?

HHVM requires PHP

Specifying a dependency on just HHVM compiles but the heroku-hhvm-apache2 script fails with the following error:

Unable to determine Composer vendor-dir setting; is 'composer' executable on path or 'composer.phar' in current working directory?

The issue is that this check is always false because the composer binary is identified as "data":

$ file --brief .heroku/php/bin/composer
data

This leads to composer being run directly (rather than with HHVM), which requires PHP:

$ .heroku/php/bin/composer config vendor-dir
/usr/bin/env: php: No such file or directory

To reproduce, run this Dockerfile.

Slim mcrypt error

I am trying to install "statamic" and Im getting an error after the buildpack has set up.
mcrypt_module_open(): Could not open encryption module

Do I need to configure php.ini with anything to get it running?

Here is the error stack trace:

Details

Type: ErrorException
Code: 2
Message: mcrypt_module_open(): Could not open encryption module
File: /app/www/_app/vendor/Slim/Http/Util.php
Line: 153
Trace

#0 [internal function]: Slim\Slim::handleErrors(2, 'mcrypt_module_o...', '/app/www/_app/v...', 153, Array)
#1 /app/www/_app/vendor/Slim/Http/Util.php(153): mcrypt_module_open('rijndael-256', '', 'cbc', '')
#2 /app/www/_app/vendor/Slim/Http/Util.php(227): Slim\Http\Util::decrypt('a:1:{s:10:"slim...', '7c9abae3aaea4eb...', '????m@?C3?j?K-?...', Array)
#3 /app/www/_app/vendor/Slim/Middleware/SessionCookie.php(135): Slim\Http\Util::decodeSecureCookie('1385854554|YTox...', 'CHANGE_ME', 'rijndael-256', 'cbc')
#4 /app/www/_app/vendor/Slim/Middleware/SessionCookie.php(115): Slim\Middleware\SessionCookie->loadSession()
#5 /app/www/_app/vendor/Slim/Middleware/PrettyExceptions.php(67): Slim\Middleware\SessionCookie->call()
#6 /app/www/_app/vendor/Slim/Slim.php(1174): Slim\Middleware\PrettyExceptions->call()
#7 /app/www/index.php(65): Slim\Slim->run()
#8 {main}

$_SERVER variable useless in nginx setup

Setup

The setup follows the steps documented in the Heroku DevCenter. The app named below is set up with exactly these three files in the repository.

nginx_app.conf

location / {
    # try to serve file directly, fallback to rewrite
    try_files $uri /index.php?$args;
}

location /index.php {
    fastcgi_pass_header Authorization;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_pass heroku-fcgi;
}

index.php

<?
$pageURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
} else {
  $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
}
echo $pageURL;

Procfile

web: vendor/bin/heroku-php-nginx -C nginx_app.conf

Issue

  • Expected output: http://sleepy-falls-1288.herokuapp.com/
  • Real output: http://:13345/

Reason

The nginx I'm starting with my Procfile is shielded by something other (the Heroku router I think) and does not know about the $server_name for example. So it is not passed to the FPM process and PHP produces a useless $_SERVER variable.

Possible fixes

  • Remove shielding of the nginx
  • Configure fastcgi_params not to use $server_name but values passed through ENV or something
  • Something other...

indexes error

I'm getting this error:

AH01276: Cannot serve directory /app/: No matching DirectoryIndex (index.php,index.html,index.htm) found, and server-generated directory index forbidden by Options directive

it worked using another buildpack from winglam.
I'm using Laravel, so my app root is app/public

GD Library support

Hi guys,

This maybe not an issue, but anyone has a future plans on adding GD library on this buildpack or other forked buildpack with this support?

Thanks

Unable to deploy Symfony application

The application cache files ( in /app/cache/prod/ ) are full of absolute paths pointing to the temporary build directory.
For instance my /app/cache/prod/appProdProjectContainer.php contains a lot of this

return $this->services['annotation_reader'] = new \Doctrine\Common\Annotations\FileCacheReader(
    new \Doctrine\Common\Annotations\AnnotationReader(), '/tmp/build_db41a582-b353-4a53-9ef4-837e2ccb9c62/app/cache/prod/annotations', false
);

I think this issue is because the app/console cache:clear command runs when the application code is located to the temporary build directory.

I suppose the flow is the following:

  1. Deploy the code to /tmp/build_XXX/
  2. Run all tasks (including cache:warmup)
  3. Move all the application code to /app

Procfile nginx customize config

Whether, if we are already using -C nginx_app.conf, determining the root document and all server config must be in the file as well?

for example in my Procfile file like this:

web: vendor/bin/heroku-php-nginx mydocroot -C nginx_app.conf

this is my nginx_app.conf

location / {
  index  index.php index.html index.htm;
  try_files $uri $uri/ /index.php?$args;
}

and it does not work.

I want to hide index.php and also specifies the root document.

Impossible to rewrite URL suffixed by .php?

I am attempting to move an application from a different host to Heroku using your new buildpack but am stumbling on an issue.

I use PHP 5.5.12 + Apache 2.4.9 and do nothing special in my app.
The issue is that we have legacy URLs pointing from search engines / forums that have been moved which we have historically used mod_rewrite to correct

In our .htaccess we e.g. specify:

RewriteRule ^legacy-url.php$ http://example.org/new-url R=301,END]

However, it seems that this is never run (or maybe run but overridden for any URL ending in .php by your specified rules).

I've been trying to troubleshoot and found that in https://github.com/heroku/heroku-buildpack-php/blob/master/conf/apache2/heroku.conf#L58 you set RewriteOptions InheritDown and a RewriteRule pushing everything ending in .php to the fastcgi PHP handler.

Even though I try to end processing using "END" (tried "L" as well, no difference) it does not seem to affect inherited rules.

Visting /legacy-url.php I get a 404 which is natural since legacy-url.php does not exist and in log it says:
app/web.1: [Tue May 13 09:07:43.348175 2014] [proxy_fcgi:error] [pid 59:tid 139829708883712] [client 10.239.23.27:36093] AH01071: Got error 'Primary script unknown\n'

I am not sure what the best way to go about fixing this would be?

Thanks in advance!

Have some way to raise the kern.ipc.shmmax Kernel value

I have been debugging "Unable to allocate memory for pool" errors on my PHP app (a Wordpress install) running on Heroku.

2013-05-30T13:31:04.503389+00:00 app[web.1]: [Thu May 30 13:31:04 2013] [error] [client 10.87.123.203] PHP Warning:  include_once(): Unable to allocate memory for pool. in /app/www/wp-settings.php on line 198

The built-in APC cache raises these errors when it exhausts the available memory for caching, which is determined through the apc.shm_size config setting, and is at 32MB by default.

The kern.ipc.shmmax kernel value actually sets a ceiling on any attempts to raise apc.shm_size -- This kernel value is set to 32MB on the Heroku PHP dynos:

~ $ cat /proc/sys/kernel/shmmax
33554432

In order to raise this value, you have to be root.

Is there any way to allow configuration of shmmax to a higher value somehow?

php CLI busted; recompile w/LD_RUN_PATH

When executing PHP on the CLI I'm getting the following message:
/app/php/bin/php: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory

app crashing with this buildpack

this just started happening a day ago.

2014-07-09T12:07:41.529496+00:00 heroku[web.1]: Starting process with command vendor/bin/heroku-php-apache2 public
2014-07-09T12:08:42.016103+00:00 heroku[web.1]: Stopping process with SIGKILL
2014-07-09T12:08:42.015790+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

Logs written to STDOUT end up on STDERR polluted with warning prefix

According to heroku manual on app logs, log entries appended to stdout should appear in loggregator output

when trying to write into stdout or stderr using the following php code:

file_put_contents('php://stdout', "Hello world!\n"); //just for try Loggregator

then logs obtained using cf logs app --recent, are:

2014-07-07T09:57:03.17+0200 [App/0]   ERR [07-Jul-2014 07:57:03] WARNING: [pool www] child 100 said into stdout: "Hello world!"

So i tried to find why it's doing this, it's appear that's come from php-fpm even when you do a fatal error you have this.
Maybe parse this output could solve this issue?

Meaning of code in README.md

Could you please explain the meaning of code in "Pre-compiling binaries" section of README.md file?

It looks like initial environment initialization, but I'm not sure it's executed properly.
There's lines related to installation of PEAR and, then, APC, but I can't find APC in the list of installed PHP extensions.

Thanks

Intermittent "httpd (pid 72) already running" error crashes app

Running the buildpack with progrium/buildstep I intermittently get a crash like this:

httpd (pid 72) already running
Process exited unexpectedly: httpd
Going down, terminating child processes...
vendor/bin/heroku-php-apache2: line 185:    70 Terminated              tail -qF -n 0 /tmp/heroku.*.$PORT.log 1>&2

I see that the call to sleep has to do with an issue with fpm timing, so I don't know if anyone else has seen this or could postulate as to why the timing would be different in a docker container vs on heroku.

Build fails with python error in release v22

After reverting to v21 everything works, but in v22 I'm seeing an error:

-----> Removing .DS_Store files
-----> Fetching custom git buildpack... done
-----> PHP app detected
Traceback (most recent call last):
  File "<string>", line 9, in <module>
  File "/usr/local/lib/python2.7/json/__init__.py", line 290, in load
    **kw)
  File "/usr/local/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python2.7/json/decoder.py", line 365, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/lib/python2.7/json/decoder.py", line 383, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

 !     ERROR: Could not parse composer.json; make sure it's valid!


 !     Push rejected, failed to compile PHP app

Composer autoloader not generated unless composer.lock file committed.

I don't think this issue is a bug, more something that might need to be documented somewhere.

I have a project that does not (yet) have any external dependencies, but it does use the autoloader provided by composer.

However, in order to get the buildpack to actually run composer (so the autoloader script gets generated) I also need to commit my composer.lock file. I did not see this documented anywhere and it isn't really intuitive.

I figured out what went wrong by looking around on the heroku machine and reading the code in the buildpack. It didn't take much time, but I can imagine others might not be so lucky.

Compiling buildpack fails with bob-builder 0.0.6

I'm working on making the ssh2 extension available, but when I push the buildpack to Heroku I get the an error:

-----> Installing dependencies using Pip (1.5.4)
       Downloading/unpacking bob-builder==0.0.6 (from -r requirements.txt (line 1))
         Could not find a version that satisfies the requirement bob-builder==0.0.6 (from -r requirements.txt (line 1)) (from versions: 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5)
       Cleaning up...
       No distributions matching the version for bob-builder==0.0.6 (from -r requirements.txt (line 1))

I fixed the problem by changing 0.0.6 to 0.0.5, but I assume 0.0.6 must work. Is it possible to fix this problem?

Support for other PHPextensions (e.g. mssql)

Suppose I'd like to add support for another extension: how should I approach this?

Take the mssql extension for example: is this something that could be added to the main repository (I could open a PR), or should I maintain this in a fork of this buildpack? If the latter is the case: it doesn't look like the buildpack supports multiple S3 buckets, so this would mean all binaries should be deployed to a separate (private) S3 bucket?

Disable HTTP TRACE/better HTTP config settings

Per various automated security scanners, HTTP TRACE should be disabled by default in the Apache config. Concurrent with this, users should be able to easily specify additional httpd.conf and php.ini files that'll get pulled into their apps.

Failing to write to Symfony's cache dir

Hi there,

When I try to clear the cache or try to access the application from the web. The following error pops up:

[RuntimeException]                                                              
Unable to write in the "/app/app/app/cache/prod/../../../cache/prod" directory

Any ideas? Or do I need to configure temporary directories?

this buildpack is available?

I tried to use this buildpack, but I was facing "an unrecognized error".
Did anybody see same probrem?

$ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php.git -a pure-stone-6102
Adding config vars and restarting pure-stone-6102... done, v4
BUILDPACK_URL: https://github.com/heroku/heroku-buildpack-php.git
$ git push heroku masterCounting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (15/15), 1.32 KiB, done.
Total 15 (delta 3), reused 0 (delta 0)

-----> Heroku receiving push
-----> Fetching custom buildpack... done

! Heroku push rejected due to an unrecognized error.
! We've been notified, see http://support.heroku.com if the problem persists.

To [email protected]:pure-stone-6102.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:pure-stone-6102.git'

Move builds into Vulcan

Currently compiling the build artifacts is a bunch of pain and manual steps enumerated in the readme. Those artifacts should be generated in Vulcan.

Support for Compilation From Source

It seems from the README that one should be able to maintain an S3 bucket with their own binaries, but bin/compile.sh seems to be hardcoded to use a particular bucket. Is the idea to add a check for an extant value for S3_URL and just use it straight up if it does? If so, I'll happily submit a PR, I just wanted to make sure I wasn't missing something.

The reason I ask is because I need LDAP support, and there doesn't seem to be a way to make that a separate extension -- one must compile php with ldap directives.

Need multiple port bindings w/ PHP-FPM & Apache 2.4

For an update to this buildpack, I'm trying to set it up to run PHP-FPM with Apache 2.4. However, Apache 2.4's recommended way to access FPM is to run FPM on a different port and then use mod_proxy_fcgi to proxy PHP requests to it. However, trying to bind a separate process to anything but the defined port for the dyno kills the whole thing. mod_fastcgi support for 2.4 is limited to almost non-existent, so using PHP-FPM over Unix Sockets doesn't seem to be a supported option for this. Are there any ways to bind to another port to make this work?

cc: @tmaher @pedro

Include APCu for lightweight local caching

Often it's very useful to cache some variables on the dyno itself to avoid network requests, and due to PHP's "Shared nothing" concept, we just can't do this in-process like in other languages.

Therefore I would propose using APCu, which is a drop-in replacement of the popular APC, but works with Opcache in PHP 5.5. I also use APCu in my own, relatively popular PHP build pack to great success.

Writing access_log and error_log to filesystem

The buildpack currently writes the access_log and error_log to the file system, eventually this will fill up the disk quota and cause the app to crash. Instead of writing the logs to disk, is there a way they can be written to standard out and error?

MaxClients default setting is very small

Our app crashed the other day because it exceeded the MaxClients limit, which currently has a default setting of 1. Isn't this a little bit small? Should it be set to a higher value by default?

Include ext-bcmath

ext-bcmath isn't included in the php runtime, which makes it impossible to install libraries such as php-amqplib, a RabbitMQ client.

image magick install defaults wrong

I'm not sure if you are using an old verision of image magick or if there is some other problem. but images processed are not using the default 75% quality setting. I have a 6k image and process it on my local box and get about the same, but on heroku it results in a 24k image. massive.

original: http://taramandala.org/wp-content/uploads/2011/05/bauer4721-edit-189x280.jpg
6k

processed: http://prod.retreat.guru.s3-us-west-2.amazonaws.com/RetreatGuru/Teacher/photos/423/small/bauer4721-edit.jpg
24k

Composer Clone HTTP Repository Fails During Slug Compile: "libcurl.so.4: no version information available"

I'm using the HHVM 3.2.0 runtime from this buildpack for a Hack/HHVM project. The project is split into a framework component and application code-- both in separate, private Bitbucket repositories.

Because the app must pull the framework with Composer from the private git repository, I embedded the credentials of a read-only Git user that only has access to the framework repository so that I can clone over HTTPS. Normally I'd use SSH deployment keys, but as far as I know Heroku doesn't support fixed deployment keys.

The issue is, when cloning the framework, I get the following error during build time:

         - Installing wizardapps/*** (dev-master f2ffa78)
           Cloning f2ffa78b3f6876e7105b3e154c7300d78a2a7a99



  [RuntimeException]                                                                                                                                                                                                                                                                                                                                                                                                    
  Failed to execute git clone --no-checkout 'https://***:***@bitbucket.org/wizardapps/***.git' '/tmp/build_ff663ef4-bfa2-46d1-a644-20f774fb4390/vendor/wizardapps/***' && cd '/tmp/build_ff663ef4-bfa2-46d1-a644-20f774fb4390/vendor/wizardapps/***' && git remote add composer 'https://***:***@bitbucket.org/wizardapps/***.git' && git fetch composer  
  git-remote-https: /app/.heroku/php/usr/lib/hhvm/libcurl.so.4: no version information available (required by git-remote-https)                                                                                                                                                                                                                                                                                         
  fatal: Not a git repository: '.'                                                                                                                                                                                                                                                                                                                                                                                      



install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [packages1] ... [packagesN]



 !     Push rejected, failed to compile PHP app

To [email protected]:***-api-us.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:***-api-us.git'

ext-bcmath not working?

Hi,

I just tried to enable bcmath and hhvm today, but when i am running composer update it says ext-bcmath cannot be found.

any idea how can i get this enabled, or am i missing something? i was able to enable memcached and xsl - the shared ones. i just can't get bcmath to work.

regards

HHVM fails to download when STACK set to cedar-14

Enabling HHVM when deploying a PHP app with STACK=cedar-14 is currently broken as it tries to download the following non-existent URL:

https://lang-php.s3.amazonaws.com/dist-cedar-14-master/hhvm-3.2.0.tar.gz

This URL is defined here, and setting STACK=cedar leads to a HHVM tarball which does exist:

https://lang-php.s3.amazonaws.com/dist-cedar-master/hhvm-3.2.0.tar.gz

error missing GD

I get this error:
the requested PHP extension gd is missing from your system.
seems like such a common item, can you add it?

apache mod_rewrite not working?

hi,

i am trying to push my app with the beta buildpack, and mod rewrite doesn't seem to me working, my .htaccess is there, but i am getting a 404 error from CI when trying to rewrite the url's

any ideas?

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.