aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2019-01-06 00:46:48 +0100
committerGravatar GitHub <noreply@github.com> 2019-01-06 00:46:48 +0100
commit802c264574902ea44c2c76ae098a6f58911fe114 (patch)
treedb0082010f01f555244523adc2f2e0c27c363acc
parent20223b8b01f47fba0858d854c5744fad5900b9cc (diff)
Copy syslog to STDERR (#2208)
* Use openlog before syslog In order to have a copy on stderr when syslog is not available. * Take advantage of syslog for actualization Pipe cron job STDERR and syslog to Docker log Cf. https://github.com/FreshRSS/FreshRSS/pull/2202/commits/00bd467655b7c060cdae388519b2413d12d8cb0f
-rw-r--r--Docker/Dockerfile11
-rw-r--r--app/Models/Entry.php1
-rwxr-xr-xapp/actualize_script.php8
-rw-r--r--cli/_cli.php2
-rw-r--r--lib/favicons.php1
-rw-r--r--lib/lib_install.php1
-rw-r--r--lib/lib_rss.php7
-rwxr-xr-xp/i/index.php2
8 files changed, 24 insertions, 9 deletions
diff --git a/Docker/Dockerfile b/Docker/Dockerfile
index 2a25e567d..db034ff61 100644
--- a/Docker/Dockerfile
+++ b/Docker/Dockerfile
@@ -6,11 +6,10 @@ RUN apk add --no-cache \
php7-ctype php7-dom php7-fileinfo php7-iconv php7-json php7-session php7-simplexml php7-xmlreader php7-zlib \
php7-pdo_sqlite php7-pdo_mysql php7-pdo_pgsql
-ENV FRESHRSS_ROOT /var/www/FreshRSS
-RUN mkdir -p ${FRESHRSS_ROOT} /run/apache2/
-WORKDIR ${FRESHRSS_ROOT}
+RUN mkdir -p /var/www/FreshRSS /run/apache2/
+WORKDIR /var/www/FreshRSS
-COPY . ${FRESHRSS_ROOT}
+COPY . /var/www/FreshRSS
COPY ./Docker/*.Apache.conf /etc/apache2/conf.d/
RUN rm -f /etc/apache2/conf.d/languages.conf /etc/apache2/conf.d/info.conf \
@@ -21,8 +20,8 @@ RUN rm -f /etc/apache2/conf.d/languages.conf /etc/apache2/conf.d/info.conf \
/etc/apache2/httpd.conf && \
sed -r -i "/^\s*(CustomLog|ErrorLog|Listen) /s/^/#/" \
/etc/apache2/httpd.conf && \
- echo "17,37 * * * * php ${FRESHRSS_ROOT}/app/actualize_script.php 2>&1 | tee /tmp/FreshRSS.log" >> \
- /var/spool/cron/crontabs/www-data
+ echo "17,37 * * * * su apache -s /bin/sh -c 'php /var/www/FreshRSS/app/actualize_script.php' 2>> /proc/1/fd/2 > /tmp/FreshRSS.log" >> \
+ /var/spool/cron/crontabs/root
ENV CRON_MIN ''
ENTRYPOINT ["./Docker/entrypoint.sh"]
diff --git a/app/Models/Entry.php b/app/Models/Entry.php
index 985276734..f2f3d08fe 100644
--- a/app/Models/Entry.php
+++ b/app/Models/Entry.php
@@ -209,6 +209,7 @@ class FreshRSS_Entry extends Minz_Model {
$feed_timeout = empty($attributes['timeout']) ? 0 : intval($attributes['timeout']);
if ($system_conf->simplepie_syslog_enabled) {
+ prepareSyslog();
syslog(LOG_INFO, 'FreshRSS GET ' . SimplePie_Misc::url_remove_credentials($url));
}
diff --git a/app/actualize_script.php b/app/actualize_script.php
index ba9660a14..f1dec5640 100755
--- a/app/actualize_script.php
+++ b/app/actualize_script.php
@@ -12,6 +12,9 @@ if (defined('STDOUT')) {
fwrite(STDOUT, 'Starting feed actualization at ' . $begin_date->format('c') . "\n"); //Unbuffered
}
+prepareSyslog();
+syslog(LOG_INFO, 'FreshRSS Start feeds actualization...');
+
// Set the header params ($_GET) to call the FRSS application.
$_GET['c'] = 'feed';
$_GET['a'] = 'actualize';
@@ -64,7 +67,7 @@ foreach ($users as $user) {
if (!invalidateHttpCache()) {
Minz_Log::warning('FreshRSS write access problem in ' . join_path(USERS_PATH, $user, 'log.txt'), ADMIN_LOG);
if (defined('STDERR')) {
- fwrite(STDERR, 'Write access problem in ' . join_path(USERS_PATH, $user, 'log.txt') . "\n");
+ fwrite(STDERR, 'FreshRSS write access problem in ' . join_path(USERS_PATH, $user, 'log.txt') . "\n");
}
}
}
@@ -75,7 +78,8 @@ if (defined('STDOUT')) {
$end_date = date_create('now');
$duration = date_diff($end_date, $begin_date);
fwrite(STDOUT, 'Ending feed actualization at ' . $end_date->format('c') . "\n"); //Unbuffered
- fwrite(STDOUT, 'Feed actualizations took ' . $duration->format('%a day(s), %h hour(s), %i minute(s) and %s seconds') . ' for ' . count($users) . " users\n"); //Unbuffered
+ fwrite(STDOUT, 'Feed actualizations took ' . $duration->format('%a day(s), %h hour(s), %i minute(s) and %s seconds') . ' for ' . count($users) . " users\n"); //Unbuffered
}
echo 'End.', "\n";
ob_end_flush();
+syslog(LOG_INFO, 'FreshRSS feeds actualization done.');
diff --git a/cli/_cli.php b/cli/_cli.php
index 72629171c..e8fb6ae42 100644
--- a/cli/_cli.php
+++ b/cli/_cli.php
@@ -4,7 +4,7 @@ if (php_sapi_name() !== 'cli') {
}
require(__DIR__ . '/../constants.php');
-require(LIB_PATH . '/lib_rss.php');
+require(LIB_PATH . '/lib_rss.php'); //Includes class autoloader
require(LIB_PATH . '/lib_install.php');
Minz_Configuration::register('system',
diff --git a/lib/favicons.php b/lib/favicons.php
index fe2e65f1f..7a2d1187e 100644
--- a/lib/favicons.php
+++ b/lib/favicons.php
@@ -22,6 +22,7 @@ function isImgMime($content) {
}
function downloadHttp(&$url, $curlOptions = array()) {
+ prepareSyslog();
syslog(LOG_INFO, 'FreshRSS Favicon GET ' . $url);
if (substr($url, 0, 2) === '//') {
$url = 'https:' . $url;
diff --git a/lib/lib_install.php b/lib/lib_install.php
index d51a37e58..6e4df4e9c 100644
--- a/lib/lib_install.php
+++ b/lib/lib_install.php
@@ -81,6 +81,7 @@ function generateSalt() {
function checkDb(&$dbOptions) {
$dsn = '';
$driver_options = null;
+ prepareSyslog();
try {
switch ($dbOptions['type']) {
case 'mysql':
diff --git a/lib/lib_rss.php b/lib/lib_rss.php
index 168309563..738ccf641 100644
--- a/lib/lib_rss.php
+++ b/lib/lib_rss.php
@@ -202,12 +202,19 @@ function html_only_entity_decode($text) {
return strtr($text, $htmlEntitiesOnly);
}
+function prepareSyslog() {
+ return openlog("FreshRSS", LOG_PERROR | LOG_PID, LOG_USER);
+}
+
function customSimplePie($attributes = array()) {
$system_conf = Minz_Configuration::get('system');
$limits = $system_conf->limits;
$simplePie = new SimplePie();
$simplePie->set_useragent(FRESHRSS_USERAGENT);
$simplePie->set_syslog($system_conf->simplepie_syslog_enabled);
+ if ($system_conf->simplepie_syslog_enabled) {
+ prepareSyslog();
+ }
$simplePie->set_cache_location(CACHE_PATH);
$simplePie->set_cache_duration($limits['cache_duration']);
diff --git a/p/i/index.php b/p/i/index.php
index 5bc9c0d76..8a4f529d4 100755
--- a/p/i/index.php
+++ b/p/i/index.php
@@ -50,5 +50,7 @@ if (file_exists(DATA_PATH . '/do-install.txt')) {
echo '### Fatal error! ###<br />', "\n";
Minz_Log::error($e->getMessage());
echo 'See logs files.';
+ prepareSyslog();
+ syslog(LOG_INFO, 'FreshRSS Fatal error! ' . $e->getMessage());
}
}