klickfrei navigieren
I    
 I    
Win64 Apache24 mit php soll ebenso Python enthalten, alles portable und ohne framework.
 Win64 Apache24 mit php soll ebenso Python enthalten, alles portable und ohne framework.
 
Diese Webseite hier erfordert sonst nichts. Auf den server wird es als einziges index.php oder index.html übertragen. Mit der Struktur passt beliebig viel in ein html-file. 20 vertikale tabs mit jeweils 20 Seiten reichen mir. Das mehrfach mit so einem kleinen Ausgangsfenster. Enthält dann auch alle weblinks, links auf beliebige Anwendungen, Texte, Videos, images usw. auf SSD und Festplatte. Ist zugleich wie ein Startmenu, lässt alles auf dem Desktop und in Symbolleisten samt icons im browser starten. Die Webseite aktualisiert es mit php. Python dürfte wie php kompletten Zugriff auf alle Datenträger ermöglichen.
Zusätzlich zu *.php geht es dann in Notepad++ um *.cgi oder *.py, nehme ich an.

Apache24 portable:

php portable:

So ist php sehr einfach integrierbar:


Nun soll aus Neugierde Python analog dem php Ordner hinzu kommen, weil es weitaus verbreiteter ist.
python portable:

php.ini im Ordner php erfordert nur ein paar Zeilen. Was muss in conf dem httpd.conf hinzugefügt werden? Wie geht das bitte zusätzlich zu php mit einem Ordner python?

Das bringt den PC immer aktuell in den browser - wäre interessant, wie sowas in python aussieht:
function to_txtfiles()  //Backtick-Operator  ` `
{ $i=-1;
  foreach (func_get_args () as $arr) { ++$i; if(count($arr) != 2) { echo "to_txtfiles hat bei Argument ".$i." kein Doppelarray"; exit; }
	if(!realpath($arr[0])) { echo "to_txtfiles() !realpath(".$arr[0].") fehlt was in path: i: ".$i; exit; }
	`dir   /S /A:-S /A:-D /T:W /O:-S  /-C "$arr[0]" > "$arr[1]" `;  } 
}
php ermöglicht per Backtick-Operator ` ..... ` DOS, womit beim Starten der Webseite immer wieder alles neu 
in Textfiles geschrieben wird, die bereits beim weiteren Seitenaufbau von php ausgewertet werden:
to_txtfiles(["Ordner auf dem Datenträger","Zielordner mit Angabe des zu erzeugenden oder zu überschreibenden Textfilenamen"],
              ["X:/irgendwo/.../Startordner","Y:/egal wo/.../Ordnertext.txt"],[...], ... das beliebig oft ... ,[...]);
php wartet ja, bis die jeweilige function abgearbeitet wurde. Python wohl auch.
Die Textfiles enthalten alles Nützliche, was sich so auf den Datenträgern findet. Icons von Programmen oder weblinks gibts in dazu angelegten Ordnern. php kann alle Dateien auswerten und alle Programme bzw. Anwendungen starten. Wäre mal abwechslungsreich, dazu Python zu verwenden. Daraus resultiert wie hier ein immer wieder neu gespeichertes html-file, das als index.html von jedem server aus im web zugänglich sein sollte, wohl sogar ohne Apache dort.

Mit php-*.zip wird php immer wieder überschrieben und das php.ini beibehalten.
 Mit php-*.zip wird php immer wieder überschrieben und das php.ini beibehalten.
 
Immer wieder alles einfach vom neuesten zip in den php-Ordner reinkopiert und das nicht überschriebene php.ini unverändert gelassen. Die mit ; beginnenden Kommentare sind entfernt. "Ordnerzugang" meint z.B. G:\irgendwo oder so.
Egal, was das alles soll, aber es flutscht eben:

[PHP]
;;;;;;;;;;;;;;;;;;;
; About php.ini   ;
;;;;;;;;;;;;;;;;;;;
engine = On
short_open_tag = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = -1
disable_functions =
disable_classes =
zend.enable_gc = On
;;;;;;;;;;;;;;;;;
; Miscellaneous ;
;;;;;;;;;;;;;;;;;
expose_php = On
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
html_errors = On
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
auto_prepend_file =
auto_append_file =
default_charset = "UTF-8"
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
doc_root =
user_dir =
extension_dir = "Ordnerzugang\Apache24\php\ext\"
enable_dl = Off
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
extension="Ordnerzugang\Apache24\php\ext\php_gd2.dll"
extension="Ordnerzugang\Apache24\php\ext\php_pdo_mysql.dll"
extension="Ordnerzugang\Apache24\php\ext\php_mysqli.dll"
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
cli_server.color = On
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
bcmath.scale = 0
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.sid_length = 26
session.trans_sid_tags = "a=href,area=href,frame=src,form="
session.sid_bits_per_character = 5
zend.assertions = -1
tidy.clean_output = Off
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
ldap.max_links = -1

Mit httpd-*.zip wird Apache 24 immer wieder überschrieben und dort in conf das httpd.conf durch das hier ersetzt.
 Mit httpd-*.zip wird Apache 24 immer wieder überschrieben und dort in conf das httpd.conf durch das hier ersetzt.
 
"Ordnerzugang" meint z.B. G:/irgendwo oder so. Wieder ohne Kommentare, die in httpd.conf mit # beginnen:
ServerRoot "Ordnerzugang/Apache24"
Listen 80
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
<IfModule unixd_module>
User daemon
Group daemon
</IfModule>
ServerAdmin admin@example.com
ServerName localhost:80
<Directory />
    AllowOverride none
    Require all denied
</Directory>
DocumentRoot "Ordnerzugang/Apache24/htdocs"
<Directory "Ordnerzugang/Apache24/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<Files ".ht*">
    Require all denied
</Files>
ErrorLog "logs/error.log"
LogLevel warn
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access.log" common
</IfModule>
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "Ordnerzugang/Apache24/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "Ordnerzugang/Apache24/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>
<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
LoadModule php7_module "Ordnerzugang/Apache24/php/php7apache2_4.dll"
AddType application/x-httpd-php php php4 php3 html htm
AddHandler application/x-httpd-php .php
PHPIniDir "Ordnerzugang/Apache24/php"

Kurzform
 Kurzform
 
Den Ordner python so einfach wie den Ordner php in Apache einfügen und Konfigurationsfiles ergänzen bzw. herstellen. python37.zip kann bleiben, stört nicht.
Alles funktioniert ohne Eingriff in das
python-3.7.2.post1-embed-amd64.zip, error.log von Apache24 hätte ich sofort angucken müssen.
*.py und *.php laufen im browser parallel einwandfrei.
Alles ist in einer Minute aus den 3 zip files in den Ausgangsordner Apache24 und in die beiden Subordner entpackt, damit sehr einfach auf die jeweils neuesten Versionen aktualisierbar. Nichts muss installiert werden. Schlanker und einfacher gehts nicht. Nur das httpd.conf wird immer durch die Veränderung ersetzt, während das php.ini nicht überschrieben wird, weil es so nicht im zip existiert. So wünscht man es sich, um es nebenher ohne Beiwerk komplett portable zu nutzen.