{"id":36629083,"url":"https://github.com/pdsinterop/php-solid-server","last_synced_at":"2026-01-12T09:35:22.845Z","repository":{"id":45052111,"uuid":"271742435","full_name":"pdsinterop/php-solid-server","owner":"pdsinterop","description":"Standalone Solid Server written in PHP by PDS Interop","archived":false,"fork":false,"pushed_at":"2025-03-12T18:35:51.000Z","size":455,"stargazers_count":49,"open_issues_count":15,"forks_count":7,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-12T19:33:36.483Z","etag":null,"topics":["ldp","linked-data","linked-data-platform","php","php-solid-server","solid","solid-server","solid-servers","standalone-solid-server"],"latest_commit_sha":null,"homepage":"https://pdsinterop.org/php-solid-server/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pdsinterop.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-12T07:58:47.000Z","updated_at":"2025-02-28T20:12:31.000Z","dependencies_parsed_at":"2025-03-12T19:27:16.817Z","dependency_job_id":"a99be9f5-2da2-411c-927f-941c4429ea13","html_url":"https://github.com/pdsinterop/php-solid-server","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/pdsinterop/php-solid-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdsinterop%2Fphp-solid-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdsinterop%2Fphp-solid-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdsinterop%2Fphp-solid-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdsinterop%2Fphp-solid-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pdsinterop","download_url":"https://codeload.github.com/pdsinterop/php-solid-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdsinterop%2Fphp-solid-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337728,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ldp","linked-data","linked-data-platform","php","php-solid-server","solid","solid-server","solid-servers","standalone-solid-server"],"created_at":"2026-01-12T09:35:22.766Z","updated_at":"2026-01-12T09:35:22.826Z","avatar_url":"https://github.com/pdsinterop.png","language":"PHP","readme":"# Standalone PHP Solid Server\n\n[![Project stage: Development][project-stage-badge: Development]][project-stage-page]\n[![License][license-shield]][license-link]\n[![Latest Version][version-shield]][version-link]\n![Maintained][maintained-shield]\n\n[![PDS Interop][pdsinterop-shield]][pdsinterop-site]\n[![standard-readme compliant][standard-readme-shield]][standard-readme-link]\n[![keep-a-changelog compliant][keep-a-changelog-shield]][keep-a-changelog-link]\n\n_Standalone Solid Server written in PHP by PDS Interop_\n\n## Table of Contents\n\n\u003c!-- toc --\u003e\n\n- [Background](#background)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Docker images](#docker-images)\n  - [Local environment](#local-environment)\n    - [Built-in PHP HTTP server](#built-in-php-http-server)\n- [Security](#security)\n- [Running solid/webid-provider-tests](#running-solidwebid-provider-tests)\n- [Available Features](#available-features)\n- [Development](#development)\n  - [Project structure](#project-structure)\n  - [Testing](#testing)\n- [Contributing](#contributing)\n- [License](#license)\n\n\u003c!-- tocstop --\u003e\n\n## Background\n\nThe Solid specifications defines what makes a \"Solid Server\". Parts of\nthose specifications are still likely to change, but at the time of this writing,\nthey define:\n\n- Authentication\n- Authorization (and access control)\n- Content representation\n- Identity\n- Profiles\n- Resource (reading and writing) API\n- Social Web App Protocols (Notifications, Friends Lists, Followers and Following)\n\n## Installation\n\nTo install the project, clone it from GitHub and install the PHP dependencies\nusing Composer:\n\n```sh\ngit clone git://github.com/pdsinterop/php-solid-server.git \\\n    \u0026\u0026 cd php-solid-server \\\n    \u0026\u0026 composer install --no-dev --prefer-dist\n```\nAt this point, the application is ready to run.\n\n## Usage\n\nThe PHP Solid server can be run in several different ways.\n\nThe application can be run with a Docker image of your choice or on a local\nenvironment, using Apache, NginX, or PHP's internal HTTP server. The latter is\nonly advised in development.\n\nFor security reasons, the server expects to run on HTTPS (also known as HTTP+TLS).\n\nTo run insecure, for instance when the application is run behind a proxy or in a\nPHP-FPM (or similar) setup, set the environment variable `PROXY_MODE`.\nThis will allow the application to accept HTTP requests.\n\n### Docker images\n\nWhen running with your own Docker image, make sure to mount the project folder\nto wherever the image expects it to be, e.g. `/app` or `/var/www`.\n\nFor instance:\n\n```\nexport PORT=8080 \u0026\u0026        \\\ndocker run                 \\\n   --env \"PORT=${PORT}\"    \\\n   --expose \"${PORT}\"      \\\n   --network host          \\\n   --rm                    \\\n   --volume \"$PWD:/app\"    \\\n   -it                     \\\n   php:7.3                 \\\n   php --docroot /app/web/ --server \"localhost:${PORT}\" /app/web/index.php\n```\nOr on Mac:\n```\nexport PORT=8080 \u0026\u0026        \\\ndocker run                 \\\n   --env \"PORT=${PORT}\"    \\\n   --expose \"${PORT}\"      \\\n   -p \"${PORT}:${PORT}\"    \\\n   --rm                    \\\n   --volume \"$PWD:/app\"    \\\n   -it                     \\\n   php:7.3                 \\\n   php --docroot /app/web/ --server \"localhost:${PORT}\" /app/web/index.php\n```\n\n\n### Local environment\n\nHow to run this application in an Apache, NginX, or other popular HTTP servers\nfalls outside the scope of this project.\n\nFor development purposes, the internal PHP HTTP server _is_ explained below.\n\n#### Built-in PHP HTTP server\n\nFor development purposes a Composer `serve-dev` command has been provided. This will\nrun the application using PHP internal HTTP server.\n\nTo use it, run `composer serve-dev` in the project root.\n\n**!!! FOR SECURITY REASONS, DO NOT USE THIS METHOD IN PRODUCTION !!!**\n\nBy default, the application is hosted on `localhost` port `8080`.\nSo if you visit http://localhost:8080/ with your browser, you should see \"Hello, World!\".\n\nBoth the `HOST` and `PORT` can be configured before running the command by\nsetting them in the environment, for instance:\n\n```sh\nHOST='solid.local' PORT=1234 composer serve-dev\n```\n\nThis command can also be run through a docker container, for instance:\n\n```\nexport PORT=8080 \u0026\u0026     \\\ndocker run              \\\n   --env \"PORT=${PORT}\" \\\n   --expose \"${PORT}\"   \\\n   --network host       \\\n   --rm                 \\\n   --volume \"$PWD:/app\" \\\n   -it                  \\\n   composer:latest      \\\n   serve\n```\n\n\u003c!-- @TODO: Set up email addresses for security and community outreach\n\n## Security\n\nIf you discover any security related issues, please email \u003csecurity@pdsinterop.org\u003e instead of using the issue tracker.\n\n--\u003e\n\n## Running solid/webid-provider-tests\nDue to https://github.com/pdsinterop/php-solid-server/issues/8 you should run, in one terminal window:\n```sh\nHOST=127.0.0.1 composer serve-dev\n```\nand in another you run the [webid-provider-test](https://github.com/solid/webid-provider-tests) as:\n```sh\nSERVER_ROOT=http://localhost:8080 ./node_modules/.bin/jest test/surface/fetch-openid-config.test.ts\n```\nThe current `dev` branch of php-solid-server should pass roughly 7 out of 17 tests.\n\n## Available Features\n\nBased on the specifications, the features listed below _should_ be available.\n\nThe checkboxes show which features _are_, and which ones _are not_.\n\nThe underlying functionality for these features is provided by:\n\n- \u003csup\u003e[auth]\u003c/sup\u003e = [`pdsinterop/solid-auth`](https://github.com/pdsinterop/php-solid-auth)\n- \u003csup\u003e[crud]\u003c/sup\u003e = [`pdsinterop/solid-crud`](https://github.com/pdsinterop/php-solid-crud)\n- \u003csup\u003e[p/s]\u003c/sup\u003e = [`pdsinterop/solid-pubsub-server`](https://github.com/pdsinterop/php-solid-pubsub-server)\n- \u003csup\u003e[rdf]\u003c/sup\u003e = [`pdsinterop/flysystem-rdf`](https://github.com/pdsinterop/flysystem-rdf)\n\n1. User\n   - [x] Authentication \u003csup\u003e[auth]\u003c/sup\u003e (since **v0.3**)\n   - [x] Identity (since **v0.2**)\n   - [x] Profiles (since **v0.2**)\n2. Data storage\n   - [x] Content representation \u003csup\u003e[rdf]\u003c/sup\u003e (since **v0.4**)\n   - [x] Resource API\n     - [x] HTTP REST API \u003csup\u003e[crud]\u003c/sup\u003e (since **v0.4**)\n     - [x] Websocket API \u003csup\u003e[p/s]\u003c/sup\u003e (since **v0.6**)\n3. Web Acces Control List\n   - [x] Authorization (and Access Control) \u003csup\u003e[crud]\u003c/sup\u003e (since **v0.6**)\n4. Social web apps\n   - [ ] Calendar\n   - [ ] Contacts\n   - [ ] Friends Lists (Followers, Following)\n   - [ ] Notifications\n\n## Development\n\nThe easiest way to develop this project is by running the environment provided\nby the `docker-compose.yml` file. This can be done by running `docker-compose up`.\n\nThis will start the application and a pubsub server in separate docker containers.\n\n### Project structure\n\nThis project is structured as follows:\n\n```\n  .\n  ├── bin/          \u003c- CLI scripts\n  ├── config/       \u003c- Empty directory where server configuration is generated\n  ├── docs/         \u003c- Documentation\n  ├── src/          \u003c- Source code\n  ├── tests/        \u003c- Test fixtures, Integration- and unit-tests\n  ├── vendor/       \u003c- Third-party and vendor code\n  ├── web/          \u003c- Web content\n  ├── composer.json \u003c- PHP package and dependency configuration\n  └── README.md     \u003c- You are now here\n```\n\n### Testing\n\nThe PHPUnit version to be used is the one installed as a `dev-` dependency via composer. It can be run using `composer test` or by calling it directly:\n\n```sh\n$ ./bin/phpunit\n```\n\n## Contributing\n\nQuestions or feedback can be given by [opening an issue on GitHub][issues-link].\n\nAll PDS Interop projects are open source and community-friendly.\nAny contribution is welcome!\nFor more details read the [contribution guidelines][contributing-link].\n\nAll PDS Interop projects adhere to [the Code Manifesto](http://codemanifesto.com)\nas its [code-of-conduct][code-of-conduct]. Contributors are expected to abide by its terms.\n\nThere is [a list of all contributors on GitHub][contributors-page].\n\nFor a list of changes see the [CHANGELOG][changelog] or [the GitHub releases page][releases-page].\n\n## License\n\nAll code created by PDS Interop is licensed under the [MIT License][license-link].\n\n[changelog]: CHANGELOG.md\n[code-of-conduct]: CODE_OF_CONDUCT.md\n[contributing-link]: CONTRIBUTING.md\n[contributors-page]: https://github.com/pdsinterop/php-solid-server/contributors\n[issues-link]: https://github.com/pdsinterop/php-solid-server/issues\n[releases-page]: https://github.com/pdsinterop/php-solid-server/releases\n[keep-a-changelog-link]: https://keepachangelog.com/\n[keep-a-changelog-shield]: https://img.shields.io/badge/Keep%20a%20Changelog-f15d30.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNmZmYiIHZpZXdCb3g9IjAgMCAxODcgMTg1Ij48cGF0aCBkPSJNNjIgN2MtMTUgMy0yOCAxMC0zNyAyMmExMjIgMTIyIDAgMDAtMTggOTEgNzQgNzQgMCAwMDE2IDM4YzYgOSAxNCAxNSAyNCAxOGE4OSA4OSAwIDAwMjQgNCA0NSA0NSAwIDAwNiAwbDMtMSAxMy0xYTE1OCAxNTggMCAwMDU1LTE3IDYzIDYzIDAgMDAzNS01MiAzNCAzNCAwIDAwLTEtNWMtMy0xOC05LTMzLTE5LTQ3LTEyLTE3LTI0LTI4LTM4LTM3QTg1IDg1IDAgMDA2MiA3em0zMCA4YzIwIDQgMzggMTQgNTMgMzEgMTcgMTggMjYgMzcgMjkgNTh2MTJjLTMgMTctMTMgMzAtMjggMzhhMTU1IDE1NSAwIDAxLTUzIDE2bC0xMyAyaC0xYTUxIDUxIDAgMDEtMTItMWwtMTctMmMtMTMtNC0yMy0xMi0yOS0yNy01LTEyLTgtMjQtOC0zOWExMzMgMTMzIDAgMDE4LTUwYzUtMTMgMTEtMjYgMjYtMzMgMTQtNyAyOS05IDQ1LTV6TTQwIDQ1YTk0IDk0IDAgMDAtMTcgNTQgNzUgNzUgMCAwMDYgMzJjOCAxOSAyMiAzMSA0MiAzMiAyMSAyIDQxLTIgNjAtMTRhNjAgNjAgMCAwMDIxLTE5IDUzIDUzIDAgMDA5LTI5YzAtMTYtOC0zMy0yMy01MWE0NyA0NyAwIDAwLTUtNWMtMjMtMjAtNDUtMjYtNjctMTgtMTIgNC0yMCA5LTI2IDE4em0xMDggNzZhNTAgNTAgMCAwMS0yMSAyMmMtMTcgOS0zMiAxMy00OCAxMy0xMSAwLTIxLTMtMzAtOS01LTMtOS05LTEzLTE2YTgxIDgxIDAgMDEtNi0zMiA5NCA5NCAwIDAxOC0zNSA5MCA5MCAwIDAxNi0xMmwxLTJjNS05IDEzLTEzIDIzLTE2IDE2LTUgMzItMyA1MCA5IDEzIDggMjMgMjAgMzAgMzYgNyAxNSA3IDI5IDAgNDJ6bS00My03M2MtMTctOC0zMy02LTQ2IDUtMTAgOC0xNiAyMC0xOSAzN2E1NCA1NCAwIDAwNSAzNGM3IDE1IDIwIDIzIDM3IDIyIDIyLTEgMzgtOSA0OC0yNGE0MSA0MSAwIDAwOC0yNCA0MyA0MyAwIDAwLTEtMTJjLTYtMTgtMTYtMzEtMzItMzh6bS0yMyA5MWgtMWMtNyAwLTE0LTItMjEtN2EyNyAyNyAwIDAxLTEwLTEzIDU3IDU3IDAgMDEtNC0yMCA2MyA2MyAwIDAxNi0yNWM1LTEyIDEyLTE5IDI0LTIxIDktMyAxOC0yIDI3IDIgMTQgNiAyMyAxOCAyNyAzM3MtMiAzMS0xNiA0MGMtMTEgOC0yMSAxMS0zMiAxMXptMS0zNHYxNGgtOFY2OGg4djI4bDEwLTEwaDExbC0xNCAxNSAxNyAxOEg5NnoiLz48L3N2Zz4K\n[license-link]: ./LICENSE\n[license-shield]: https://img.shields.io/github/license/pdsinterop/php-solid-server.svg\n[maintained-shield]: https://img.shields.io/maintenance/yes/2022.svg\n[pdsinterop-shield]: https://img.shields.io/badge/-PDS%20Interop-7C4DFF.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii01IC01IDExMCAxMTAiIGZpbGw9IiNGRkYiIHN0cm9rZS13aWR0aD0iMCI+CiAgICA8cGF0aCBkPSJNLTEgNTJoMTdhMzcuNSAzNC41IDAgMDAyNS41IDMxLjE1di0xMy43NWEyMC43NSAyMSAwIDAxOC41LTQwLjI1IDIwLjc1IDIxIDAgMDE4LjUgNDAuMjV2MTMuNzVhMzcgMzQuNSAwIDAwMjUuNS0zMS4xNWgxN2EyMiAyMS4xNSAwIDAxLTEwMiAweiIvPgogICAgPHBhdGggZD0iTSAxMDEgNDhhMi43NyAyLjY3IDAgMDAtMTAyIDBoIDE3YTIuOTcgMi44IDAgMDE2OCAweiIvPgo8L3N2Zz4K\n[pdsinterop-site]: https://pdsinterop.org/\n[project-stage-badge: Development]: https://img.shields.io/badge/Project%20Stage-Development-yellowgreen.svg\n[project-stage-page]: https://blog.pother.ca/project-stages/\n[standard-readme-link]: https://github.com/RichardLitt/standard-readme\n[standard-readme-shield]: https://img.shields.io/badge/-Standard%20Readme-brightgreen.svg\n[version-link]: https://packagist.org/packages/pdsinterop/php-solid-server\n[version-shield]: https://img.shields.io/github/v/release/pdsinterop/php-solid-server?sort=semver\n","funding_links":[],"categories":["Servers"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdsinterop%2Fphp-solid-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpdsinterop%2Fphp-solid-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdsinterop%2Fphp-solid-server/lists"}