Install inside a hosting-panel account¶
Without a command line: upload the release package¶
A panel's file manager is enough:
- Create the domain and set its PHP version to 8.4. Create a MySQL database and a user for it in the panel.
- Download
pnlcs-X.Y.Z.tar.gzfrom the latest release. It carries everything PNLCS needs to run,vendor/and the built assets: no Composer and no Node. - Upload it next to the webroot (
~/example.com/, not insidepublic_html) and extract it there: you get apnlcsfolder. - Point the domain's document root at
pnlcs/public, in the panel's domain settings or with the same-owner symlink from the command-line steps below. - Open
https://example.com/: the install wizard starts by itself. It writes.env, asks for the database, creates the tables with a progress bar (a minute or two), then your administrator account and the site settings. - The wizard's last page shows one cron line: add it as a cron job for the account.
The pnlcs folder must be writable by the user the site's PHP runs as; on
panels that run PHP as the account user, an upload already is.
With a command line¶
If the server runs a control panel, you do not need root or any of step 0 - the panel already carries PHP, MySQL and (on Panelica) Node. This is the exact shape our own production installs use:
- Create the hosting account and its domain in the panel, and set the
domain's PHP version to 8.4 - this is the step that bites: if the
site's PHP-FPM stays at 8.3 while you ran composer with a 8.4 CLI, every
request answers
500 - Composer detected issues in your platform. - Create the MySQL database and user from the panel. Panels prefix names
(
account_pnlcs) - put the prefixed name in.env. - As the account user, clone into the site directory - next to the
webroot, not inside it:
cd ~/example.com && git clone https://github.com/Panelica/pnlcs.git pnlcs composer install,.env,key:generate,migrate --forceas in steps 2-6 of the server installation, using the panel's PHP 8.4 binary (on Panelica:php84). If MySQL listens on a socket, addDB_SOCKET=with the panel's socket path.- Build the assets with the panel's Node (on Panelica, install one under
Node.js Versions and use its
npm). - Point the webroot at
pnlcs/publicwith a same-owner symlink:mv public_html public_html.default && ln -s pnlcs/public public_html. A symlink owned by the same account passes the panel'sdisable_symlinks if_not_ownerprotection. - Add the cron line from step 13 as a panel cron job for the account.
- Open
https://example.com/installand finish the wizard.