Commit 992aec2a authored by Carlos Torres's avatar Carlos Torres

Considering sc_pack:v2, first approach.

parent 75d202b1
Pipeline #9459 passed with stage
in 1 minute and 15 seconds
......@@ -11,9 +11,9 @@ It includes and configures the following programs:
- A Celery worker, that takes instructions from the cloud service.
- An update daemon, that can upon instructions download a new version of `sc_pack` and
install it.
- An image optimization service that, when enabled, submits image optimization jobs to
- An image optimization service (`usher`) that, when enabled, submits image optimization jobs to
our cloud service.
- Several utilities for synchronizing the configuration of a site across multiple
- Several utilities for synchronizing the configuration of a site across multiple
deployment sites.
## How everything runs
......@@ -37,4 +37,4 @@ To learn more about how to setup your `sc_pack` configuration, see [setup sc_pac
## Install `sc_pack`
To install `sc_pack`, please see the information on [Install sc_pack](../accelerator/install_sc_pack.md).
\ No newline at end of file
To install `sc_pack`, please see the information on [Install sc_pack](../accelerator/install_sc_pack.md).
......@@ -2,88 +2,73 @@
## Siloed deployments under a single directory
A deployment is a set of programs and configuration data under a single directory.
This way, it's easier to keep programs and their configuration compatible with each
other
A deployment is a set of programs and configuration data under a single directory.
This way, it's easier to keep programs and their configuration compatible with each
other
Here is how that hierarchy looks like:
```console
<install_dir>
-- sc_logs_agent
-- program
-- bin
sc_logs_agent
-- sc_logs_agent
-- data
sc_logs_agent.log
-- logs
current
-- shimmercat
-- program
-- bin
redis-server
shimmercat
-- lib
....
-- data
shimmercat.log
-- logs
current
-- shimmercat-scratch-folder
-- sni-certs
-- r-cache
tweaks.yaml
cert.pem
-- usher3
-- data
-- logs
current
-- redis
-- data
<redis dumps>
redis.log
-- daemon
-- data
-- supervisor
supervisor.conf
redis.conf
-- celery
-- data
-- logs
current
-- <views-dir>
-- <www>
-- <venv>
```
The parts between angle brackets are variable, and of special notice are
`www` and `views-dir`, of which we will talk a little bit more later.
There is also a little bit more to be said later about the `<venv>` folder.
Closely related to "deployment" is the notion of "deployment group".
A deployment group is a set of mirror deployments.
For example, if "www.mytestsite.com" uses several caching servers,
the deployments on each should be part of the same deployment group.
Closely related to "deployment" is the notion of "deployment group". A deployment group is a set of mirror deployments. For example, if "www.mytestsite.com" uses several caching servers, the deployments on each should be part of the same deployment group.
## Starting the accelerator at boot time
You can execute
$ sc_pack supervisord -f configuration/file/path/my_sc_pack_conf.yaml
in a boot script stanza. This command will show you a report of the packages of the `sc_pack` that are running and the problems that may be occurring, usually situations of denied permissions and repeated ports. It will also create the folder `/path/to/install_dir/shimmercat-scratch-folder`, where the certificate created for your website will be saved.
Notice that the command above doesn't demonize, and thanks to that it is relatively straightforward to include it as part of e.g. systemd boot sequence. You can get a `.service` file for systemd with the following command:
$ sc_pack extract -f configuration/file/path/sc_pack.conf.yaml \
--options user=shimmercat \
sc_pack.service.simple
just replace `user` with the user you want to use.
Or, if you want to restrict memory usage, you can use `sc_pack.service.quotas` in the line above, instead of `sc_pack.service.simple`.
Each deployment has a hidden folder `.sc_pack-rkt` with some files, one of them is the systemd service definition of the deploy: `sc-<install_dir>.service`.
Here is the whole sequence to get things configured with systemd:
Do a symlink (as root) of `<install_dir>/.sc_pack-rkt/sc-<install_dir>.service` to `/etc/systemd/system`
$ MY_SITE_ALIAS=www_mysite_com
$ sc_pack extract -f configuration/file/path/sc_pack.conf.yaml
--options user=sc_pack \
sc_pack.service.simple
```
$ sudo ln -s <install_dir>.sc_pack-rkt/sc-<install_dir>.service /etc/systemd/system
Please copy the result of the command above, and paste it below:
```
$ sudo vim /etc/systemd/system/${MY_SITE_ALIAS}.service
Reload the systemctl daemon:
```
$ sudo systemctl daemon-reload
```
and save the file. We used `vim` above to edit the file, but you could use any other way of doing it of course.
Start the services:
```
$ sudo systemctl start sc-<install_dir>.service
```
```console
$ systemctl daemon-reload && \
systemctl enable ${MY_SITE_ALIAS}.service && \
systemctl start ${MY_SITE_ALIAS}.service
Check the services statuses:
```
$ sudo systemctl status sc-<install_dir>.service
```
## Miscellaneous utilities
......@@ -97,9 +82,8 @@ $ systemctl daemon-reload && \
You can use any combination of them to apply any action to individual components, or to all of them at the same time.
For example you can restart `ShimmerCat` by typing:
For example you can restart `ShimmerCat` by typing: `$ sc_pack ctl reload shimmercat`
$ sc_pack ctl -f configuration/file/path/sc_pack.conf.yaml restart shimmercat
### Automatic updates of sc_pack
......@@ -118,95 +102,74 @@ For example you can restart `ShimmerCat` by typing:
## Edit mode
The `sc_pack` has an edit mode. It means that you can edit content on any `sc_pack` instance, and then later push those changes to the accelerator to have those changes synchronized. You can do that by typing:
$ sc_pack begin_edit
and once you finish editing:
The `sc_pack` has an edit mode. It means that you can edit content on any `sc_pack` instance, and then later push those changes to the accelerator to have those changes synchronized. You can do that by typing: ` $ sc_pack begin_edit` and once you finish editing: `$ sc_pack push_all`
$ sc_pack push
For instance suppose you need to edit the `devlove.yaml` to test something on the deployment `test`, and once you see those changes work push them to the accelerator platform. Then you just need to ssh to where `test` is deployed and type:
For instance suppose you need to edit the `devlove.yaml` to test something on the deployment `test`, and once you see those changes work
push them to the accelerator platform. Then you just need to ssh to where `test` is deployed, activate the virtual environment, and type:
$ sc_pack begin_edit
```
$ sc_pack begin_edit
then change some content on the `devlove.yaml`, and once you know they work do:
```
then change some content on the `devlove.yaml`, and once you know they work do:
$ sc_pack push
```
$ sc_pack push_all
```
While you are on edit mode we ensure that none is written automatically to that `sc_pack` instance, to avoid collisions.
Have into account that a `push` will sync those changes for this domain on all the deployment sites this domain is deployed.
Have into account that a `$ sc_pack push_all --sync_with_all_deployments` will sync those changes for this domain on all the deployment sites this domain is deployed.
## Enable a specific viewset
You can now list the viewsets, and enable one of them. It is useful because you can get back to a specific viewset version, as you do with a commit on git.
For instance, suppose that you edited a view by hand, and you did a `$ sc_pack push` and that this change brake the site on all the deployments.
For instance, suppose that you edited a view by hand, and you did a `$ sc_pack push_all --sync_with_all_deployments` and that this change brake the site on all the deployments.
You could then do:
$ sc_pack list_viewsets <domain_name>
```
$ sc_pack list_viewsets <domain_name>
```
see which was the previous viewset for this domain, and activate it again by doing:
```
$ sc_pack viewset <viewset_id> <domain_name>
$ sc_pack viewset <viewset_id> <domain_name>
```
## Clone
You can clone a domain for a specific deployment site. The `views`, `devlove file`, and the `certificates` for this domain will be pulled
from our accelerator platform and will be written on the sc_pack from where you are executing this command. The clone won't affect
any other deployment site associated to that domain.
$ sc_pack clone <domain_name>
```
$ sc_pack clone <domain_name>
```
## Version
You can show the sc_pack version that is installed by running:
$ sc_pack version
## Benchmark
You can easily find out the amount of RAM the server has, and some CPU stats with the `bench` command:
$ sc_pack bench
it will print an output like this below:
```console
{'RAM_memory': '15.68 GB', 'CPU_singlethreaded_score': 3559, 'CPU_count': 4, 'multithreaded_theoretical_CPU_score': '3559 * 4', 'CPU_percent_usage': 1.0}
```
$ sc_pack version
```
## Known issues
1. psutil installation when you install the sc_pack with pip:
error: command 'i686-linux-gnu-gcc' failed with exit status 1
Solution:
sudo apt-get install python3-dev gcc libdpkg-perl
2. sc_logs_agent issue when running the service:
## Known issues
libnuma.so.1: cannot open shared object file: No such file or directory
1. If you are using haproxy, as load balancer, and the site does not start to load
Solution
Possible solutions:
Make sure you have LARSI enabled. To do this open `<install_dir>/shimmercat-scratch-folder/tweaks.yaml` file, and should be as follows:
sudo apt-get install libnuma-dev
```
...
security:
enableLARSI: true
...
```
After making these changes restart the service: `$ sudo systemctl start sc-<install_dir>.service`
3. sc_pack certs run_staging/run_prod issue:
2. sc_pack certs run_staging/run_prod issue:
If you have problems when you try to generate the certificates like
a domain could not be validated then you are probably facing a timeout
issue we have seen while using that command.
If you have problems when you try to generate the certificates like a domain could not be validated then you are probably facing a timeout issue we have seen while using that command.
Possible solutions:
......@@ -221,4 +184,3 @@ it will print an output like this below:
Restart the `haproxy` and try again.
- If None of it works please contact us at [ops@shimmercat.com](mailto:ops@shimmercat.com) or through our <a href="https://shimmercatab.freshdesk.com/support/home" target="_blank">ticket system</a>.
......@@ -9,7 +9,8 @@
| `1-all-in-one.yml` | Responsible for doing "everything", and the result depends on the values associated with the variables defined in the file `group_vars/edges.yml`. |
| `2.0-install-requirements.yml` | Responsible for creating the user and group shimmercat, and uploads the sc_pack installer. |
| `2.1-create-deploys.yml` | Responsible for creating new [Deployment Sites](/explanation/accelerator/deployment_sites_and_domains/) instances on the Accelerator Platform database in the cloud (calling the accelerator_client). It installs and configures sc_pack and updates devlove.yml, sc_pack.conf.yaml, haproxy.cfg, and the views-dir. This is demonized. |
| `3.0-monitoring.yml` | Responsible for installing the haproxy exporter and prometheus node exporter. Optional. |
| `2.2-create-deploys-type-cdn.yml` | Responsible for creating new [Deployment Sites](/explanation/accelerator/deployment_sites_and_domains/) instances on the Accelerator Platform database in the cloud (calling the accelerator_client), to be used as images CDN. It installs and configures sc_pack and updates devlove.yml, sc_pack.conf.yaml, haproxy.cfg, and the views-dir. This is demonized. |
| `3.0-monitoring.yml` | Responsible for installing the haproxy exporter, prometheus node exporter and grok exporter. Optional. |
<!-- ### Summary of recipes
......@@ -27,4 +28,4 @@ We want to emphasize that the installation of <a href="https://prometheus.io/doc
<br>
<br>
\ No newline at end of file
<br>
......@@ -38,12 +38,12 @@ We are sharing most of the configuration we have done on the demo to guide you w
### The devlove.yaml file:
Most of the Magento applications will have similar content to the one below, but if you have any
questions or feedback, don't hesitate to contact us at [ops@shimmercat.com](mailto:ops@shimmercat.com)
questions or feedback, don't hesitate to contact us at [ops@shimmercat.com](mailto:ops@shimmercat.com)
or through our <a href="https://shimmercatab.freshdesk.com/support/home" target="_blank">ticket system</a>.
We used `fastcgi` as consultant on the <a href="https://demo-magento.shimmercat.com" target="_blank">Magento demo store</a>, as you can notice below.
In the `devlove.yaml` in the `install-dir` of your sc_pack, fill-in content similar to the
one below, taking care of changing the `connect-to` and the domain names after `elec`
In the `devlove.yaml` in the `install-dir` of your sc_pack, fill-in content similar to the
one below, taking care of changing the `connect-to` and the domain names after `elec`
with values that match your desired configuration:
```
......@@ -51,7 +51,7 @@ with values that match your desired configuration:
shimmercat-devlove:
domains:
elec demo-magento.shimmercat.com:
root-dir: /www/demo-magento.shimmercat.com
root-dir: www
views-dir: views-dir
consultants:
default: {application-protocol: fastcgi, connect-to: 'lookup(store-ip-address):port',document-root: /var/www/html/}
......@@ -68,12 +68,11 @@ shimmercat-devlove:
Important notes:
- `root-dir: /www/demo-magento.shimmercat.com`: It is where Magento files are stored; it can be a network
mount, a local folder or an HTTP fetch backend.
- `root-dir: www`: It is where Magento files are stored (relative to deploy folder); it can be a network mount, a local folder or an HTTP fetch backend.
- `document-root: /var/www/html/`: The value ShimmerCat should pass in `DOCUMENT_ROOT`; this is part of the
CGI specification, and it tells the PHP engine (PHP-FPM or HHVM) how to find a matching PHP file in
its local filesystem.
its local filesystem.
The fields `document-root` and `root-dir` should have the same value only if PHP and the edge's
deployment share the same view of the filesystem.
Note that this is not the case for network mounts for example.
......@@ -83,9 +82,9 @@ To know more about the fetch backends ShimmerCat supports take a look [here](../
### A set of views for Magento
Create all the directories, and files we list below under the sc_pack's `install-dir` + devlove.yaml's `views-dir` directory.
Create all the directories, and files we list below under the sc_pack's `install-dir` + devlove.yaml's `views-dir` directory.
For instance, if your sc_pack
installation directory is `/home/shimmercat/test/shimmercat-accelerator`
installation directory is `/home/shimmercat/test/shimmercat-accelerator`
and the devlove.yaml contains `views-dir: views-dir`, then the first view listed below
should be at `/home/shimmercat/test/shimmercat-accelerator/views-dir/target/+common/index.html`.
......@@ -146,7 +145,7 @@ If you want to know more about the rules and views we wrote above, please read:
To run the service, you can use the command:
```
$ sc_pack supervisord
$ sc_pack ctl reload shimmercat
```
You can also [start it at boot time](https://docs.accelerator.shimmercat.com/sc_pack/1.setup_sc_pack/#starting-the-accelerator-at-boot-time).
......@@ -155,10 +154,9 @@ As usual when testing a website locally:
- modify your `/etc/hosts` to have that line: `127.0.0.1 your-domain.com`
- open a browser and visit: https://your-domain.com:4043/, that port depends on what you set on the
- open a browser and visit: https://your-domain.com:4043/, that port depends on what you set on the
`sc_pack.conf.yaml` of course.
Again don't hesitate to contact us at [ops@shimmercat.com](mailto:ops@shimmercat.com) or through our <a href="https://shimmercatab.freshdesk.com/support/home" target="_blank">ticket system</a> if you need our help with that.
Thanks a lot for your time, and keep reading!
......@@ -74,7 +74,7 @@ backend shimmercat_deployments
# two ShimmerCat instances running in this very edge server
timeout server 3m
timeout connect 5s
server deployment_A 127.0.0.1:4030 check port 8030
server deployment_A 127.0.0.1:4030 check port 8030 send-proxy-v2
frontend to_application
bind *:4430
......@@ -91,7 +91,7 @@ backend example_application_servers
timeout connect 10s
timeout check 10s
server server_001 www.example.com:443 check port www.example:443 ssl verify none
server server_001 www.example.com:443 check port www.example:443 ssl verify none sni str("www.example.com")
```
Notes:
......@@ -181,7 +181,7 @@ If you want to know more about the rules and views we wrote above, please read:
To run the service, you can use the command:
```
$ sc_pack supervisord
$ sc_pack ctl reload shimmercat
```
You can also [start it at boot time](https://docs.accelerator.shimmercat.com/sc_pack/1.setup_sc_pack/#starting-the-accelerator-at-boot-time).
......
......@@ -172,7 +172,10 @@ $ celery redis shimmercat devlove.yaml sc_logs_agent shimmercat-scratch-folder
Do a symlink (as root) of `<install_dir>/.sc_pack-rkt/sc-<install_dir>.service` to `/etc/systemd/system`
`$ sudo ln -s <install_dir>.sc_pack-rkt/sc-<install_dir>.service /etc/systemd/system`
```
$ sudo ln -s <install_dir>.sc_pack-rkt/sc-<install_dir>.service /etc/systemd/system
```
Reload the systemctl daemon:
......
......@@ -104,14 +104,15 @@ Below are descriptions of the variables that can be configured in the file `grou
| `run_install_haproxy_exporter` | Task that installs the <a href="https://github.com/prometheus/haproxy_exporter" target="_blank">haproxy exporter</a>. Only necessary if you want to create alerts or view and visualize your metrics.|
| `run_install_accelerator_client` | Task that installs the [accelerator client](../../accelerator/accelerator_intro/), responsible for registering the domain and the deployment in the Accelerator Platform database, as well as updating the sc_pack configuration, i.e. the sc_pack.conf.yaml file. |
| `run_create_deploys` | Task that creates the new [Deployment Sites](../../accelerator/deployment_sites_and_domains/) instances on the Accelerator Platform database in the cloud (calling the accelerator_client). The task installs and configures sc_pack and updates devlove.yml, sc_pack.conf.yaml, haproxy.cfg, and the views-dir. This is demonized. |
| `create_deployment` | You can indicate whether or not you want to create a new deploy and link it to the existing domain. |
| <div style="width:250px">General Variables</div> | Description |
|----------|:-------------|
| `domains` | A list of all domains that will be served by ShimmerCat for all deployments.|
| `origin_cdn_host` | In case you are creating a domain to be used as an image CDN, this would be the origin of the images.|
| `api_access_token`| The <a href="https://docs.accelerator.shimmercat.com/getting_started/getting_started/#1-create-an-authentication-token" target="_blank">authentication token</a> received in the first step of the getting started tutorial.|
| `deployment_tags` | A comma separated string, e.g `"shimmercat,test"`, to identify deployments |
| `installers_dir` | Directory on the server where the executables to be installed will be uploaded. |
| `sc_pack_version` | Version of [sc_pack](../../sc_pack/intro_sc_pack) that will be installed by default. It doesn't need to be the latest version, during the installation process it's updated automatically.|
| `haproxy_auth_pass` | A password to haproxy that also the haproxy exporter will use. |
| `prometheus_node_exporter_port` | `9112`. Port for the prometheus node exporter. |
| `haproxy_exporter_port` | `9101`. Port for the haproxy exporter.|
......@@ -128,6 +129,8 @@ Below are descriptions of the variables that can be configured in the file `grou
| `enable_bots_blocking` | True or False. |
| `enable_images_optimization` | True or False. |
| `improve_images_quality` | True or False. |
| `images_optimization_with_aws` | True or False. |
| `enable_usher3` | True or False. |
| `google_recaptcha_site_key` | Your Google reCaptcha site key. Only needed if enable_bots_blocking is True. If needed you should get it from <a href="https://www.google.com/recaptcha/admin/" target="_blank">www.google.com/recaptcha/admin/</a>. |
| `google_recaptcha_site_secret` | Your Google reCaptcha site secret. Only needed if enable_bots_blocking is True. If needed you should get it from <a href="https://www.google.com/recaptcha/admin/" target="_blank">www.google.com/recaptcha/admin/</a>. |
| `transit_encryption_key` | This will be the encryption key to encrypt and decrypt data sent from the edge servers to the Accelerator Platform and vice versa. Among other things, it is used to synchronize the certificates and their private keys. Make sure to set the same key to all the deployments you would like to synchronize. You choose the key yourself.|
......
......@@ -95,7 +95,7 @@ Below are descriptions of the variables that can be configured in the file `grou
| <div style="width:250px">Task Variables</div>| Description |
|----------|:-------------|
| <i>The below variables can take the values `True` or `False` to define what to install.</i>| <i>We recommend to have all variables `True` in the first run. In subsequent runs you can set them to `False`, except for `run_create_deploys`.</i> |
| <i>The below variables can take the values `True` or `False` to define what to install.</i>| <i>We recommend to have all variables `True` in the first run. In subsequent runs you can set them to `False`, except for `run_create_deploys`.</i>|
| `run_install_packages` | Task that updates the server and installs certain packages, for example git, aptitude, python3, pip, and locale. |
| `run_install_requirements` | Task that creates the user and group shimmercat, and uploads the installer for [sc_pack](../../sc_pack/intro_sc_pack). |
| `run_install_haproxy` | Task that installs and configures the <a href="http://www.haproxy.org" target="_blank">haproxy load balancer</a>. This is demonized. |
......@@ -103,14 +103,15 @@ Below are descriptions of the variables that can be configured in the file `grou
| `run_install_haproxy_exporter` | Task that installs the <a href="https://github.com/prometheus/haproxy_exporter" target="_blank">haproxy exporter</a>. Only necessary if you want to create alerts or view and visualize your metrics.|
| `run_install_accelerator_client` | Task that installs the [accelerator client](../../accelerator/accelerator_intro/), responsible for registering the domain and the deployment in the Accelerator Platform database, as well as updating the sc_pack configuration, i.e. the sc_pack.conf.yaml file. |
| `run_create_deploys` | Task that creates the new [Deployment Sites](../../accelerator/deployment_sites_and_domains/) instances on the Accelerator Platform database in the cloud (calling the accelerator_client). The task installs and configures sc_pack and updates devlove.yml, sc_pack.conf.yaml, haproxy.cfg, and the views-dir. This is demonized. |
| `create_deployment` | You can indicate whether or not you want to create a new deploy and link it to the existing domain. |
| <div style="width:250px">General Variables</div> | Description |
|----------|:-------------|
| `domains` | A list of all domains that will be served by ShimmerCat for all deployments.|
| `origin_cdn_host` | In case you are creating a domain to be used as an image CDN, this would be the origin of the images.|
| `api_access_token`| The <a href="https://docs.accelerator.shimmercat.com/getting_started/getting_started/#1-create-an-authentication-token" target="_blank">authentication token</a> received in the first step of the getting started tutorial.|
| `deployment_tags` | A comma separated string, e.g `"shimmercat,test"`, to identify deployments |
| `installers_dir` | Directory on the server where the executables to be installed will be uploaded. |
| `sc_pack_version` | Version of [sc_pack](../../sc_pack/intro_sc_pack) that will be installed by default. It doesn't need to be the latest version, during the installation process it's updated automatically.|
| `haproxy_auth_pass` | A password to haproxy that also the haproxy exporter will use. |
| `prometheus_node_exporter_port` | `9112`. Port for the prometheus node exporter. |
| `haproxy_exporter_port` | `9101`. Port for the haproxy exporter.|
......@@ -127,6 +128,8 @@ Below are descriptions of the variables that can be configured in the file `grou
| `enable_bots_blocking` | True or False. |
| `enable_images_optimization` | True or False. |
| `improve_images_quality` | True or False. |
| `images_optimization_with_aws` | True or False. |
| `enable_usher3` | True or False. |
| `google_recaptcha_site_key` | Your Google reCaptcha site key. Only needed if enable_bots_blocking is True. If needed you should get it from <a href="https://www.google.com/recaptcha/admin/" target="_blank">www.google.com/recaptcha/admin/</a>. |
| `google_recaptcha_site_secret` | Your Google reCaptcha site secret. Only needed if enable_bots_blocking is True. If needed you should get it from <a href="https://www.google.com/recaptcha/admin/" target="_blank">www.google.com/recaptcha/admin/</a>. |
| `transit_encryption_key` | This will be the encryption key to encrypt and decrypt data sent from the edge servers to the Accelerator Platform and vice versa. Among other things, it is used to synchronize the certificates and their private keys. Make sure to set the same key to all the deployments you would like to synchronize. You choose the key yourself.|
......
......@@ -51,7 +51,7 @@ with values that match your desired configuration:
shimmercat-devlove:
domains:
elec demo-woocommerce.shimmercat.com:
root-dir: /www/demo-woocommerce.shimmercat.com
root-dir: www
views-dir: views-dir
consultants:
default: {application-protocol: fastcgi, connect-to: 'lookup(store-ip-address):port',document-root: /var/www/html/}
......@@ -73,8 +73,7 @@ shimmercat-devlove:
Important notes:
- For simplicity, and because it is common, we have assumed that the [pretty permalinks ](https://codex.wordpress.org/Settings_Permalinks_Screen) have been enabled (`i.e. https://demo-woocommerce.shimmercat.com/%postname%/ `). In another case with a small adjustment in the devlove file we can serve any other structure of the url.
- `root-dir: /www/demo-woocommerce.shimmercat.com`: It is where WooCommerce files are stored; it can be a network
mount, a local folder or an HTTP fetch backend.
- `root-dir: www`: It is where WooCommerce files are stored (relative to deploy folder); it can be a network mount, a local folder or an HTTP fetch backend.
- `document-root: /var/www/html/`: The value ShimmerCat should pass in `DOCUMENT_ROOT`; this is part of the
CGI specification, and it tells the PHP engine (PHP-FPM or HHVM) how to find a matching PHP file in
......@@ -191,7 +190,7 @@ If you want to know more about the rules and views we wrote above, please read:
To run the service, you can use the command:
```
$ sc_pack supervisord
$ sc_pack ctl reload shimmercat
```
You can also [start it at boot time](https://docs.accelerator.shimmercat.com/sc_pack/1.setup_sc_pack/#starting-the-accelerator-at-boot-time).
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment