Skip to content
View in the app

A better way to browse. Learn more.

Froxlor Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Update 2.2: In ConfigParser.php line 106: File not readable

Featured Replies

Hallo,

Ich habe heute das Update auf 2.2 anstossen wollen. Ich habe mich für rspamd entschieden und sollte in Schritt 2 folgenden Befehlt eigeben:
 

/var/www/html/froxlor//bin/froxlor-cli froxlor:config-services -a '{"http":"x","dns":"x","smtp":"x","mail":"x","antispam":"rspamd","ftp":"x","distro":"bullseye","system":[]}'

Leider quitiiert der Server das mit folgender Fehlermeldung:

 

In ConfigParser.php line 106:
                     
  File not readable  
                     

froxlor:config-services [-c|--create] [-a|--apply APPLY] [-l|--list] [-d|--daemon DAEMON] [-i|--import-settings IMPORT-SETTINGS] [-A|--yes-to-all]

 

Wie finde ich denn heraus welche Datei er da glaubt nicht lesen zu können ?

 

Deine distribution steht auf bullseye also sucht er lib/configfiles/bullseye.xml

Den Befehl führst du auch als angemeldeter root-user aus?

  • Author

Ja, ich bin root und ich habe eine bullseye.xml.

 

root@mail:/var/www/html/froxlor# ls -lisah lib/configfiles/
total 696K
659724 4.0K drwxr-xr-x 2 www-data www-data 4.0K Sep  8 08:09 .
659586 4.0K drwxr-xr-x 7 www-data www-data 4.0K Sep  8 08:09 ..
688657 116K -rw-r--r-- 1 www-data www-data 115K Aug 30 10:13 bookworm.xml
688658 180K -rw-r--r-- 1 www-data www-data 178K Aug 30 10:13 bullseye.xml
688659 148K -rw-r--r-- 1 www-data www-data 145K Aug 30 10:13 focal.xml
688660    0 -rw-r--r-- 1 www-data www-data    0 Aug 30 10:13 index.html
688661 148K -rw-r--r-- 1 www-data www-data 145K Aug 30 10:13 jammy.xml
688662  96K -rw-r--r-- 1 www-data www-data  93K Aug 30 10:13 noble.xml
root@mail:/var/www/html/froxlor# 

 

Spoiler
root@mail:/var/www/html/froxlor# cat build.xml 
<?xml version="1.0" encoding="UTF-8"?>

<project name="froxlor" default="build">

        <!-- Use this when the tools are managed by Composer in ${basedir}/vendor/bin -->
        <property name="pdepend" value="${basedir}/vendor/bin/pdepend" />
        <property name="phpcpd" value="${basedir}/vendor/bin/phpcpd" />
        <property name="phpcs" value="${basedir}/vendor/bin/phpcs" />
        <property name="phploc" value="${basedir}/vendor/bin/phploc" />
        <property name="phpmd" value="${basedir}/vendor/bin/phpmd" />
        <property name="phpunit" value="${basedir}/vendor/bin/phpunit" />

        <target name="full-build"
                depends="prepare,composer,static-analysis,phpunit,-check-failure"
                description="Performs static analysis, runs the tests, and generates project documentation" />

        <target name="full-build-parallel"
                depends="prepare,composer,static-analysis-parallel,phpunit,-check-failure"
                description="Performs static analysis (executing the tools in parallel), runs the tests, and generates project documentation" />

        <target name="quick-build"
                depends="prepare,composer,lint,phpunit-no-coverage,-check-failure"
                description="Performs a lint check and runs the tests (without generating code coverage reports)" />

        <target name="static-analysis"
                depends="composer,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcompat-ci,phpcpd-ci"
                description="Performs static analysis" />

        <!-- Adjust the threadCount attribute's value to the number of CPUs -->
        <target name="static-analysis-parallel"
                description="Performs static analysis (executing the tools in parallel)">
                <parallel threadCount="2">
                        <sequential>
                                <antcall target="pdepend" />
                                <antcall target="phpmd-ci" />
                        </sequential>
                        <antcall target="lint" />
                        <antcall target="phpcpd-ci" />
                        <antcall target="phpcs-ci" />
                        <antcall target="phpcompat-ci" />
                        <antcall target="phploc-ci" />
                </parallel>
        </target>

        <target name="clean" unless="clean.done"
                description="Cleanup build artifacts">
                <delete dir="${basedir}/build/api" />
                <delete dir="${basedir}/build/coverage" />
                <delete dir="${basedir}/build/logs" />
                <delete dir="${basedir}/build/pdepend" />
                <property name="clean.done" value="true" />
        </target>

        <target name="prepare" unless="prepare.done" depends="clean"
                description="Prepare for build">
                <mkdir dir="${basedir}/build/api" />
                <mkdir dir="${basedir}/build/coverage" />
                <mkdir dir="${basedir}/build/logs" />
                <mkdir dir="${basedir}/build/pdepend" />

                <property name="prepare.done" value="true" />
        </target>

        <target name="composer"
                description="Installing composer dependencies" depends="prepare">
                <exec executable="composer" failonerror="true">
                        <arg value="install" />
                        <arg value="--prefer-dist" />
                        <arg value="--no-progress" />
                </exec>
        </target>

        <target name="lint" unless="lint.done"
                description="Perform syntax check of sourcecode files">
                <apply executable="php" taskname="lint">
                        <arg value="-l" />

                        <fileset dir="${basedir}/lib/Froxlor">
                                <include name="**/*.php" />
                                <modified />
                        </fileset>

                        <fileset dir="${basedir}/tests">
                                <include name="**/*.php" />
                                <modified />
                        </fileset>
                </apply>

                <property name="lint.done" value="true" />
        </target>

        <target name="phploc" unless="phploc.done"
                description="Measure project size using PHPLOC and print human readable output. Intended for usage on the command line.">
                <exec executable="${phploc}" taskname="phploc">
                        <arg value="--count-tests" />
                        <arg path="${basedir}/lib/Froxlor" />
                        <arg path="${basedir}/tests" />
                </exec>

                <property name="phploc.done" value="true" />
        </target>

        <target name="phploc-ci" unless="phploc.done" depends="prepare"
                description="Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment.">
                <exec executable="${phploc}" taskname="phploc">
                        <arg value="--count-tests" />
                        <arg value="--log-csv" />
                        <arg path="${basedir}/build/logs/phploc.csv" />
                        <arg value="--log-xml" />
                        <arg path="${basedir}/build/logs/phploc.xml" />
                        <arg path="${basedir}/lib/Froxlor" />
                        <arg path="${basedir}/tests" />
                </exec>

                <property name="phploc.done" value="true" />
        </target>

        <target name="pdepend" unless="pdepend.done" depends="prepare"
                description="Calculate software metrics using PHP_Depend and log result in XML format. Intended for usage within a continuous integration environment.">
                <exec executable="${pdepend}" taskname="pdepend">
                        <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" />
                        <arg
                                value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" />
                        <arg
                                value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" />
                        <arg path="${basedir}/lib/Froxlor" />
                </exec>

                <property name="pdepend.done" value="true" />
        </target>

        <target name="phpmd" unless="phpmd.done"
                description="Perform project mess detection using PHPMD and print human readable output. Intended for usage on the command line before committing.">
                <exec executable="${phpmd}" taskname="phpmd">
                        <arg path="${basedir}/lib/Froxlor" />
                        <arg value="text" />
                        <arg path="${basedir}/phpmd.xml" />
                </exec>

                <property name="phpmd.done" value="true" />
        </target>

        <target name="phpmd-ci" unless="phpmd.done" depends="prepare"
                description="Perform project mess detection using PHPMD and log result in XML format. Intended for usage within a continuous integration environment.">
                <exec executable="${phpmd}" taskname="phpmd">
                        <arg path="${basedir}/lib/Froxlor" />
                        <arg value="xml" />
                        <arg path="${basedir}/phpmd.xml" />
                        <arg value="--reportfile" />
                        <arg path="${basedir}/build/logs/pmd.xml" />
                </exec>

                <property name="phpmd.done" value="true" />
        </target>

        <target name="phpcs" unless="phpcs.done"
                description="Find coding standard violations using PHP_CodeSniffer and print human readable output. Intended for usage on the command line before committing.">
                <exec executable="${phpcs}" taskname="phpcs">
                        <arg value="--standard=${basedir}/phpcs.xml" />
                        <arg value="--extensions=php" />
                        <arg path="${basedir}/lib/Froxlor" />
                        <arg path="${basedir}/tests" />
                </exec>

                <property name="phpcs.done" value="true" />
        </target>

        <target name="phpcs-ci" unless="phpcs.done" depends="prepare"
                description="Find coding standard violations using PHP_CodeSniffer and log result in XML format. Intended for usage within a continuous integration environment.">
                <exec executable="${phpcs}" output="/dev/null" taskname="phpcs">
                        <arg value="--report=checkstyle" />
                        <arg
                                value="--report-file=${basedir}/build/logs/checkstyle-standard.xml" />
                        <arg value="--standard=${basedir}/phpcs.xml" />
                        <arg value="--extensions=php" />
                        <arg path="${basedir}/lib/Froxlor" />
                        <arg path="${basedir}/tests" />
                </exec>

                <property name="phpcs.done" value="true" />
        </target>

        <target name="phpcompat" unless="phpcompat.done"
                depends="composer"
                description="Find php violations using PHP_CodeSniffer and print human readable output. Intended for usage on the command line before committing.">
                <exec executable="${phpcs}" taskname="phpcompat">
                        <arg
                                line="--standard=PHPCompatibility --runtime-set testVersion 5.6 ${basedir}/lib/Froxlor ${basedir}/tests" />
                </exec>

                <property name="phpcompat.done" value="true" />
        </target>

        <target name="phpcompat-ci" unless="phpcompat.done"
                depends="composer"
                description="Find php violations using PHP_CodeSniffer and log result in XML format. Intended for usage within a continuous integration environment.">
                <exec executable="${phpcs}" output="/dev/null"
                        taskname="phpcompat">
                        <arg
                                line="--standard=PHPCompatibility --runtime-set testVersion 5.6 --report=checkstyle --report-file=${basedir}/build/logs/checkstyle-compat.xml ${basedir}/lib/Froxlor ${basedir}/tests" />
                </exec>

                <property name="phpcompat.done" value="true" />
        </target>

        <target name="phpcpd" unless="phpcpd.done"
                description="Find duplicate code using PHPCPD and print human readable output. Intended for usage on the command line before committing.">
                <exec executable="${phpcpd}" taskname="phpcpd">
                        <arg path="${basedir}/lib/Froxlor" />
                </exec>

                <property name="phpcpd.done" value="true" />
        </target>

        <target name="phpcpd-ci" unless="phpcpd.done" depends="prepare"
                description="Find duplicate code using PHPCPD and log result in XML format. Intended for usage within a continuous integration environment.">
                <exec executable="${phpcpd}" taskname="phpcpd">
                        <arg value="--log-pmd" />
                        <arg path="${basedir}/build/logs/pmd-cpd.xml" />
                        <arg path="${basedir}/lib/Froxlor" />
                </exec>

                <property name="phpcpd.done" value="true" />
        </target>

        <target name="phpunit-prepare" unless="phpunit-prepare.done" depends="composer"
                description="prepare xdebug unit tests">
                <exec executable="${phpunit}" resultproperty="result.phpunit-prepare"
                        taskname="phpunit">
                        <arg value="--configuration" />
                        <arg path="${basedir}/phpunit.xml" />
                        <arg value="--dump-xdebug-filter" />
                        <arg path="${basedir}/tests/xdebug-filter.php" />
                </exec>

                <property name="phpunit-prepare.done" value="true" />
        </target>

        <target name="phpunit" unless="phpunit.done" depends="phpunit-prepare"
                description="Run unit tests with PHPUnit">
                <exec executable="${phpunit}" failonerror="true" resultproperty="result.phpunit"
                        taskname="phpunit">
                        <arg value="--configuration" />
                        <arg path="${basedir}/phpunit.xml" />
                        <arg value="--testsuite" />
                        <arg value="froxlor" />
                        <arg value="--prepend" />
                        <arg path="${basedir}/tests/xdebug-filter.php" />
                </exec>

                <property name="phpunit.done" value="true" />
        </target>

        <target name="phpunit-no-coverage" unless="phpunit.done"
                depends="composer"
                description="Run unit tests with PHPUnit (without generating code coverage reports)">
                <exec executable="${phpunit}" failonerror="true" resultproperty="result.phpunit"
                        taskname="phpunit">
                        <arg value="--configuration" />
                        <arg path="${basedir}/phpunit.xml" />
                        <arg value="--testsuite" />
                        <arg value="froxlor" />
                        <arg value="--no-coverage" />
                </exec>

                <property name="phpunit.done" value="true" />
        </target>

        <target name="-check-failure">
                <fail message="PHPUnit did not finish successfully">
                        <condition>
                                <not>
                                        <equals arg1="${result.phpunit}" arg2="0" />
                                </not>
                        </condition>
                </fail>
        </target>
</project>

 

 

die build.xml hat absolut nix damit zu tun.

Pflege mal folgende Änderungen ein und dann versuchen wir das ganze einzugrenzen:
 

diff --git a/lib/Froxlor/Config/ConfigParser.php b/lib/Froxlor/Config/ConfigParser.php
index 874b1053..ded1694a 100644
--- a/lib/Froxlor/Config/ConfigParser.php
+++ b/lib/Froxlor/Config/ConfigParser.php
@@ -103,7 +103,7 @@ class ConfigParser
        public function __construct($filename)
        {
                if (!is_readable($filename)) {
-                       throw new Exception('File not readable');
+                       throw new Exception('File not readable ('.$filename.')');
                }
 
                $this->xml = simplexml_load_file($filename);

Dann wissen wir genau,welche Datei er da lesen will und nicht kann

  • Author

Komisch, für die Verzeichnisübersicht im Post oben habe ich in das Froxlor Verzeichniss gewechselt, wenn ich den Befehl hier eingebe läuft das durch....

Ah, ja dann weiß ich vllt was es sein könnte, dann wird ggfls nicht immer der komplette pfad zur config-xml datei mitgegeben, schau ich mir mal an

Ich kann es leider nicht reproduzieren, der Befehl lässt sich wunderbar auch außerhalb des froxlor-verzeichnisses ausführen und tut was er soll.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.