A humble PHP framework & CMS
Clone this repo
git clone https://github.com/micah1701/humblee .
Configure environment. Open ~/humblee/configuration/env_dev.php
and add your database credentials. You can also make copies of this file for different environments, such as development, QA and production. To use a different configuration, link to the file in ~/humblee/configuration/config.php
Run Composer in the ~/humblee
directory to install the required and optional vendor libraries
$ cd ~/humblee
$ composer install
Composer will create a vendor
folder containing the following libraries by default:
Run NPM to install Javascript and CSS libraries
$ cd ~/public
$ npm install
NPM will create a node_modules
folder containing the following required libraries:
Run the installer to create database tables and master user. In your browser, navigate to //your-site.tld/humblee/install. On first run, this page will install the necessary tables and default content then prompt you to create a user account.
Note that the install file lives in the sub-directory humblee
of the ~/public
directory. While all of the application folders reside in your site's webroot directory, the .htaccess
file in the root Humblee application directory forwards all traffic to the public folder, effectively making it the root.
Running PHP in CGI/FastCGI mode
Humblee is configured out of the box to run on Apache's mod_php
module. If you see the message No input file specified
it is more than likely that you are running PHP in CGI or FastCGI mode. There are two simple steps to configure Humblee to work in this environment.
~/public/.htaccess
(note, this is different then the .htaccess
file in the root of the application.)#comment out or remove this line:
#RewriteRule ^(.*)$ index.php/ [L]
#replace with these two lines:
RewriteRule . /index.php [L]
RewriteRule ^index.php/(.*)$ [L]
~/humblee/controllers/core.php
/* comment out or remove these two lines: */
// $uri = (!isset($_path_info) || $_path_info == "" || $_path_info == "public") ? "" : ltrim($_path_info,"/");
// return $uri;
// uncomment these two lines:
$_path_info = preg_split("/\?|\&/",$_path_info); // check for ? or & in url
return (!isset($_path_info[0]) || $_path_info[0] == "") ? "" : ltrim($_path_info[0],"/");
Folder permissions
Depending on how you installed the application, you may encounter folder permission issues when the application is attempting to save a file to the server. There are two areas where you may need to use chown
or chmod
to update folders necessary for the proper functionality of the system.
~/humbleee/configuration/
and add a file with the site's encryption key. If the installation file throws an error, you may need to temporarily change that folder's permissions. You can (and should) change it back to at least 755
after the installation has created the file.~/storage
folder in the root of the application. This folder must be writable by the website.