aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2019-08-22 20:04:26 +0200
committerGravatar GitHub <noreply@github.com> 2019-08-22 20:04:26 +0200
commit6cedeeeae51f5e5220d7f786fb801951811bb743 (patch)
treee9315d2b0c6df48d2a26d6eeeec49dcf94f6929f
parent48dda9a803d4c461b6e8b1d2484aaa803ee25462 (diff)
Minz: New environment variable to control development mode (#2508)
* New environment variable to control development mode Suggestion of new enviromnent variable, as discussed https://github.com/FreshRSS/FreshRSS/pull/2492#issuecomment-523613920 * Update Docker/README.md Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com> * Update Docker/README.md Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com> * Update Docker/README.md Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com> * Declare ENV in Dockerfile Tested
-rw-r--r--Docker/Dockerfile2
-rw-r--r--Docker/Dockerfile-Alpine2
-rw-r--r--Docker/Dockerfile-QEMU-ARM2
-rw-r--r--Docker/README.md16
-rw-r--r--app/install.php2
-rw-r--r--lib/Minz/FrontController.php35
6 files changed, 43 insertions, 16 deletions
diff --git a/Docker/Dockerfile b/Docker/Dockerfile
index 8693bb0f7..1d2ead96e 100644
--- a/Docker/Dockerfile
+++ b/Docker/Dockerfile
@@ -49,6 +49,8 @@ RUN sed -r -i "/^\s*(CustomLog|ErrorLog|Listen) /s/^/#/" /etc/apache2/apache2.co
ENV COPY_SYSLOG_TO_STDERR On
ENV CRON_MIN ''
+ENV FRESHRSS_ENV ''
+
ENTRYPOINT ["./Docker/entrypoint.sh"]
EXPOSE 80
diff --git a/Docker/Dockerfile-Alpine b/Docker/Dockerfile-Alpine
index b8ef72988..3b1f1a394 100644
--- a/Docker/Dockerfile-Alpine
+++ b/Docker/Dockerfile-Alpine
@@ -45,6 +45,8 @@ RUN rm -f /etc/apache2/conf.d/languages.conf /etc/apache2/conf.d/info.conf \
ENV COPY_SYSLOG_TO_STDERR On
ENV CRON_MIN ''
+ENV FRESHRSS_ENV ''
+
ENTRYPOINT ["./Docker/entrypoint.sh"]
EXPOSE 80
diff --git a/Docker/Dockerfile-QEMU-ARM b/Docker/Dockerfile-QEMU-ARM
index 4d81a23f0..ea1f98798 100644
--- a/Docker/Dockerfile-QEMU-ARM
+++ b/Docker/Dockerfile-QEMU-ARM
@@ -61,6 +61,8 @@ RUN rm /usr/bin/qemu-* /var/www/FreshRSS/Docker/qemu-*
ENV COPY_SYSLOG_TO_STDERR On
ENV CRON_MIN ''
+ENV FRESHRSS_ENV ''
+
ENTRYPOINT ["./Docker/entrypoint.sh"]
EXPOSE 80
diff --git a/Docker/README.md b/Docker/README.md
index 32024c829..9de1d5033 100644
--- a/Docker/README.md
+++ b/Docker/README.md
@@ -238,6 +238,22 @@ docker run -d --restart unless-stopped --log-opt max-size=10m \
crond -f -d 6
```
+## Development mode
+
+To contribute to FreshRSS development, you can use one of the Docker images to run and serve the PHP code,
+while reading the source code from your local (git) directory, like the following example:
+
+```sh
+cd /path-to-local/FreshRSS/
+docker run --rm -p 8080:80 -e TZ=Europe/Paris -e FRESHRSS_ENV=development \
+ -v $(pwd):/var/www/FreshRSS \
+ freshrss/freshrss:dev
+```
+
+This will start a server on port 8080, based on your local PHP code, which will show the logs directly in your terminal.
+Press <kbd>Control</kbd>+<kbd>c</kbd> to exit.
+
+The `FRESHRSS_ENV=development` environment variable increases the level of logging and ensures that errors are displayed.
## More deployment options
diff --git a/app/install.php b/app/install.php
index 8e14d14c0..a4d1d0af9 100644
--- a/app/install.php
+++ b/app/install.php
@@ -61,7 +61,7 @@ function initTranslate() {
}
function get_best_language() {
- $accept = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
+ $accept = empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? '' : $_SERVER['HTTP_ACCEPT_LANGUAGE'];
return strtolower(substr($accept, 0, 2));
}
diff --git a/lib/Minz/FrontController.php b/lib/Minz/FrontController.php
index 066278b7c..e09b022fc 100644
--- a/lib/Minz/FrontController.php
+++ b/lib/Minz/FrontController.php
@@ -115,21 +115,26 @@ class Minz_FrontController {
}
private function setReporting() {
- $conf = Minz_Configuration::get('system');
- switch($conf->environment) {
- case 'production':
- error_reporting(E_ALL);
- ini_set('display_errors', 'Off');
- ini_set('log_errors', 'On');
- break;
- case 'development':
- error_reporting(E_ALL);
- ini_set('display_errors', 'On');
- ini_set('log_errors', 'On');
- break;
- case 'silent':
- error_reporting(0);
- break;
+ $envType = getenv('FRESHRSS_ENV');
+ if ($envType == '') {
+ $conf = Minz_Configuration::get('system');
+ $envType = $conf->environment;
+ }
+ switch ($envType) {
+ case 'development':
+ error_reporting(E_ALL);
+ ini_set('display_errors', 'On');
+ ini_set('log_errors', 'On');
+ break;
+ case 'silent':
+ error_reporting(0);
+ break;
+ case 'production':
+ default:
+ error_reporting(E_ALL);
+ ini_set('display_errors', 'Off');
+ ini_set('log_errors', 'On');
+ break;
}
}
}