Before proceeding, ensure the following requirements are satisfied:
Install the CMS package via Composer:
composer require neuron-php/cms
The CMS provides an interactive installation command that configures the complete system:
./vendor/bin/neuron cms:install
The installer executes the following operations:
resources/views/app/Initializers/config/The installation process requires the following information:
Database Configuration
Application Settings
America/New_York)Administrative User
After installation, the following directory structure will exist:
project-root/
├── app/
│ ├── Controllers/ # Application-specific controllers
│ ├── Events/ # Custom event definitions
│ ├── Initializers/ # Bootstrap initializers
│ ├── Jobs/ # Background job classes
│ ├── Listeners/ # Event listener implementations
│ ├── Models/ # Extended or custom models
│ ├── Repositories/ # Custom repository implementations
│ └── Services/ # Business logic services
├── config/
│ ├── auth.yaml # Authentication configuration
│ ├── event-listeners.yaml # Event-to-listener mappings
│ ├── neuron.yaml # Primary application configuration
│ └── routing.yaml # Routing configuration (URL rewrites, controller paths)
├── db/
│ ├── migrate/ # Phinx migration files
│ └── seed/ # Database seeding scripts
├── public/
│ ├── index.php # Front controller
│ └── icon.png # Default favicon
├── resources/
│ └── views/ # Template files
│ ├── admin/ # Administrative interface
│ ├── auth/ # Authentication views
│ ├── blog/ # Public blog templates
│ ├── content/ # Content page templates
│ ├── emails/ # Email templates
│ ├── home/ # Home page templates
│ ├── http_codes/ # Error page templates
│ ├── layouts/ # Layout templates
│ └── member/ # Member area templates
├── storage/
│ ├── cache/ # Application cache
│ ├── logs/ # Log files
│ └── database.sqlite3 # SQLite database (if applicable)
└── vendor/ # Composer dependencies
Navigate to the public directory and start PHP's built-in web server:
php -S localhost:8000 -t public
The following endpoints are now available:
http://localhost:8000/adminhttp://localhost:8000/loginhttp://localhost:8000/bloghttp://localhost:8000/registerhttp://localhost:8000/member (requires authentication)Access the administrative interface at http://localhost:8000/login using the credentials created during installation.
If utilizing the job queue or scheduled tasks, start the job processor:
./vendor/bin/neuron jobs:run
This command initiates both the scheduler (for cron-like tasks) and the queue worker (for asynchronous job processing).
Alternatively, run components separately:
# Scheduler only
./vendor/bin/neuron jobs:schedule
# Queue worker only
./vendor/bin/neuron jobs:work
To verify successful installation:
/admin/admin/users/admin/posts/create./vendor/bin/neuron cms:user:create
./vendor/bin/neuron cms:user:list
./vendor/bin/neuron cms:maintenance:enable "System updates in progress"
./vendor/bin/neuron cms:maintenance:status
config/neuron.yaml and config/auth.yamlSQLite: Verify the storage directory exists and has write permissions (755 or 775).
MySQL/PostgreSQL: Confirm the database exists, credentials are correct, and the database server is accessible from the application host.
Ensure the storage directory has appropriate write permissions. Session data is stored in the system's default session directory unless configured otherwise.
Verify that view templates were published to resources/views/ during installation. Re-run cms:install if necessary, or manually copy templates from vendor/neuron-php/cms/resources/views/.
If migrations fail to execute, manually create the database and verify connection parameters in config/neuron.yaml. Ensure the database user has sufficient privileges (CREATE, ALTER, INSERT, UPDATE, DELETE, SELECT).