cgi-bin
In de cgi-bin-directory van mijn diverse omgevingen heb ik een aantal tools/scripts staan:
.htaccess
De directory is beveiligd via het control panel van
!DirectAdmin:
Uw Account > Beveiligde mappen: kies dan een map en ken gebruikersnaam en wachtwoord toe.
fileman.cgi
heeft ook source files in public_html/fileman
File manager van GossamerThreads:
https://www.gossamer-threads.com
- met installer
- recentste versie (3.0.0) dateert al van 2008, maar…
- … heeft eigen login-beveiliging
- … biedt de mogelijkheid om rechtstreeks vanuit de file manager bestanden te bewerken door erop te klikken, zelfs met de keuze tussen TEXT en WYSIWYG (!TinyMCE, eveneens versie uit 2008)
- biedt naast klassieke opties (search / replace, upload, new file/Folder) ook andere mogelijkheden:
- shell commands
- beveiliging
- owner & group worden in plain text getoond (niet met hun identifier)
- permissions worden "symbolic" getoond (bv. rwx r-x r-x), en niet "octal" (bv. 755)
Issues waren/zijn er met:
- bepalen van de Root Directory
- installatiebestanden rechtstreeks in cgi-bin zetten
- install.cgi moet rwxr--r-- zijn, anders start het installatiescript niet
- luna_core.css moet naar public_html/fileman/luna/
- owner- en permissions-kolommen overlappen
- slechts 1 paneel
User/Password wijzigen:
- user zit opgeslagen in: ~/cgi-bin/private/fileman.conf
- password kan vanuit de applicatie zelf gewijzigd worden: Settings > Change Password
FileManager.php
File manager van Dull Dusk:
https://www.dulldusk.com/phpfm/
- gewoon 1 PHP-file
- dropdown met verschillende roots, als open_basedir aanwezig is
- kan via de Config ook met een wachtwoord beveiligd worden (niet geprobeerd)
- heeft ook editor, maar enkel in TEXT
- daarnaast wel een VIEWER
- twee panelen, zoals in Explorer: een navigatiepaneel links, en de inhoud daarvan dan rechts
- extra mogelijkheden: copy / move, select all / none, compress
Issues waren/zijn er met:
- soms worden bestanden niet gedeselecteerd als je een ander bestand aanklikt
- niet alle omgevingen hebben een waarde in de php.ini voor Open Basedir (open_basedir): dan krijg je geen dropdown met mogelijke roots:
dan maar handmatig de basedir gezet:
// $open_basedir_ini = trim(str_replace(DIRECTORY_SEPARATOR,'/',@ini_get("open_basedir")));
$open_basedir_ini = '/home/domain/:/tmp:/var/tmp:/usr/local/lib/:/usr/local/lib/php/:/usr/local/php55/lib/php/:/usr/local/php71/lib/php/';
- geen WYSIWYG editor
- shell commands werken niet: je krijgt altijd de melding '[RPC]' Exec functions disabled
- owner en group worden middels hun identifier getoond
- permissions staan default "octal", maar kunnen via de knop "Resolve IDs" vertaald worden naar "symbolic"
lamp.pl - lamp.cgi
scriptje om vast te stellen welke versies er geïnstalleerd zijn van:
- Linux
- Apache
- !MySQL
- PHP / Per
- diff & grep
Met de overgang van PHP 5.5 naar 7.1 ook de twee versies opgehaald - met dank aan de
open_basedir die op kunststudio-livingart geactiveerd staat:
$title = "1st PHP version (phpversion())";
print "<html><head><title>$title</title></head><body>";print "<h1>$title</h1>\n";
my $output = `/usr/local/php71/bin/php phpv.php`;
print "\n$output\n";
$command=`php -v`;
$title = "2nd PHP version (php -v)";
print "<html><head><title>$title</title></head><body>";print "<h1>$title</h1>\n";
print $command;
Op HostingSquad wordt .pl niet erkend als extensie (bestand wordt als text getoond) - gewoon de extensie wijzigen in .cgi volstaat
phpinfo.php - phpinfo()
het klassieke script om alles over de PHP-installatie te weten te komen: versies, OS, build date, paden enz.
phpv.php - phpversion()
toont uitsluitend het versienummer van php
sizes.php
Geen idee waar ik het script precies vandaan heb, maar het is gebaseerd op:
https://stackoverflow.com/questions/7121479/listing-all-the-folders-subfolders-and-files-in-a-directory-using-php#answer-7121809
Toont de boomstructuur vanaf een bepaalde root met de bestandsgrootte.
Heel handig om grote bestanden op te sporen voor opkuisdoeleinden!
Eigen wijziging:
- datum van laatste wijziging toegevoegd:
$fileModTime = date ("d/m/Y H:i:s", filemtime($fileName));
Issue:
- is niet bruikbaar out of the box, je moet eerst nog de $root zetten, hoewel dat niet duidelijk is bij het eerste gebruik of ook nergens vermeld staat:
- dus je kunt zeggen:
<span style='background-color: transparent;'>$root = "../../..";</span>
- jaloers als ik was van de dropdown van FileManager.php, heb ik zelf een dropdown gemaakt (zie c9 Webdesign > .trials):
<body>
<form action="" method="post">
<select name="root" onchange="this.form.submit();">
<option value="" selected disabled hidden>Choose here</option>
<option value="/home/domain/domains">/home/domain/domains</option>
<option value="/tmp">/tmp/</option>
<option value="/var/tmp">/var/tmp/</option>
<option value="/usr/local/lib/php">/usr/local/lib/php/</option>
<option value="/usr/local/php71/lib/php">/usr/local/php71/lib/php/</option>
</select>
</form>
<?php
$root = $_POST['root'];
- als het echt te groot wordt, wordt de sizes.php onbruikbaar - de output duurt zo lang dat hij onvolledig wordt afgebroken - in dat geval kun je via de command prompt volgende commando lanceren:
- ls -sR / > filesAndSizes.txt
of
- find / -exec ls -lh {} \;
FileRun
Buiten de cgi-bin-directory heb ik ook nog twee andere file managers geïnstalleerd, FileRun is er een van.
Het is wel een file manager voor niet-servergerelateerde files - een cloud-dienst als Pydio eigenlijk.
Server Requirements Output:
Server requirements
Please check the following results and fix any possible problem before continuing.
For optimizing your server's PHP configuration for
FileRun, please check this
page.
Requirement | Status | Notes |
PHP Version | 7.1.17 | OK |
PHP extension: PDO/MySQL | Loaded | OK |
PHP configuration: open_basedir | | OK |
PHP extension: OpenSSL | Loaded | OK |
PHP configuration: memory_limit | 256M | OK |
PHP configuration: display_errors | 0 | You will not be able to see eventual error messages. You will only see blank pages instead. |
PHP configuration: error_reporting | 22519 | OK |
PHP configuration: "exec" | Disabled | You will not be able to use any third-party programs (like ImageMagick for example) with this function disabled. |
PHP extension: mbstring | Loaded | OK |
PHP extension: zlib | Loaded | OK |
PHP extension: GD | Loaded | OK |
PHP extension: Exif | Not loaded | EXIF data will not be read from image files. Please read here how to enable the PHP Exif extension in your PHP installation. |
File permissions | Writable | OK |
KodExplorer
Buiten de cgi-bin-directory heb ik ook nog twee andere file managers geïnstalleerd, FileRun is de andere,
en heb ik bij een opruimactie echt wel leren appreciëren:
- context-menu zoals in Windows
- prullenbak zoals in Windows
Issues:
- heel gebrekkige vertaling (copy=exemplaar, knippen=scheren, …)