php-imap mit SSL Support

Status
Für weitere Antworten geschlossen.

Loewe81

Benutzer
Mitglied seit
29. Jul 2010
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Zunächst möchte ich mich kurz entschuldigen, dass ich in einem "fremden" Forum poste, ich besitze nämlich ein QNAP TS-109 Pro II. Aber da beide Systeme IPKG benutzen, wollte ich mal schauen, ob mir vielleicht hier jemand helfen kann. Außerdem freut sich hier vielleicht auch der ein oder andere über eine entsprechende Lösung.
Also bisher habe ich über IPKG den Apache2 und PHP installiert, da man den Standardwebserver nicht weiter modifizieren kann. Das hat soweit auch alles problemlos geklappt. Danach habe ich noch diverse Module (curl, gd, imap, mysql, xml...) nachinstalliert und aktiviert. Das war dann zwar schon etwas schwieriger, konnte ich aber auch noch alles lösen.
Mein Problem ist jetzt, dass in der phpinfo zwar IMAP als Modul aufgelistet wird:
Rich (BBCode):
IMAP c-Client Version    2007a
ich aber zusätzlich noch den SSL Support benötige. Ich vermute, dass das jetzt nicht mehr so einfach mit installieren und konigurieren geht, sondern tiefer in die Materie, sprich neu kompilieren, eingegriffen werden muss.
Wie auch immer die Lösung aussieht, kann mir jemand von euch hier helfen oder hat das gar schon gemacht?
Danke!

Ciao Stefan :)
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wenn das PHP keinen IMAP-SSL Support drin hat, dann wirst du nicht umherkommen, das PHP Paket selber zu kompillieren.
Oder du kaufst dir eine DS, denn die kann das von Haus aus ohne zusätzliche Pakete :D
 

Loewe81

Benutzer
Mitglied seit
29. Jul 2010
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Wenn das PHP keinen IMAP-SSL Support drin hat, dann wirst du nicht umherkommen, das PHP Paket selber zu kompillieren.
Wie kann ich das denn überprüfen? Muss das im "Configure Command" auf der phpinfo-Seite mit aufgeführt sein?
Ok, gehen wir mal davon aus, dass es nicht dabei ist, wie kann ich denn PHP mit den entsprechenden Modulen neu kompilieren? Kann ich das direkt auf dem QNAP machen oder brauche ich da ein extra "echtes" Linuxsystem?
Kann mir da vielleicht jemand ne kurze Anleitung geben oder zumindest mal grob die Punkte/Reihenfolge erklären?
Danke!

Ciao Stefan :)
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Hallo Stefan,

ob du das auf der phpinfo-Seite unter "Configure Command" sehen kannst kann ich dir gerade zwar leider auch nicht beantworten, allerdings kannst du es weiter unten unter "imap" sehen. Da gibt es dann den Punkt "SSL Support" (siehe Anhang).

Dank IPKG solltest du direkt auf deiner QNAP alles kompilieren können, dies ist aber vor allem für den Apache inkl. PHP (und SSL Support) nicht ganz so einfach, da du eine ganze Menge an Modulen mit kompilieren musst (SERF, NEON, PHP, OPEN SSL usw. usf.). Da solltest du dir selbst jedenfalls einige Zeit zum Recherchieren einplanen. ;)

Grüße,
Brian
 

Anhänge

  • imap.jpg
    imap.jpg
    10,1 KB · Aufrufe: 83

Loewe81

Benutzer
Mitglied seit
29. Jul 2010
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Da gibt es dann den Punkt "SSL Support" (siehe Anhang).
Ganz genau und das fehlt bei mir.
OpenSSL ist bei PHP mitinstalliert worden, kannst du mir denn wenigstens ein paar nützliche Seiten/Links nennen, wo was zu dem Thema kompilieren speziell für das IPKG-System steht?
Danke!

Ciao Stefan :)
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Hmm... schwierig. Also eine sehr gute Anlaufstelle ist natürlich dieses Hervorragende Forum und das dazugehörige wiki. ;)
Dort gibt es bisher zwar nur einen Beitrag zum kompilieren, aber sich diesen anzuschauen lohnt auf jeden Fall!

Des weiteren gibt es i.d.R. auf den Webseiten der Entwickler (www.apache.org, www.php.net etc.) jede menge Dokumentationen zum kompilieren.

Für den Apache zum Beispiel hier.

Eine weitere schöne Anleitung zum kompilieren des Apache Webserver mit PHP gibt es auch hier.

In den meisten Fällen können die Anweisungen auf der DS (bzw. wohl auch auf deiner QNAP) eins zu eins übernommen werden und wenn mal was fehlt kann es i.d.R. per IPKG einfach nachinstalliert werden.

Ich kann dich nun noch, zumindest ein wenig, beruhigen: ich habe da heute Mittag in der Eile etwas durcheinander gewürfelt, das kompilieren des Apache Webserver ist doch nicht sooo aufwendig, ich hatte mir mal SVN kompiliert - und DAS wurde sehr aufwendig! ;)... dabei musste ich dann u.A. auch nochmal den Apache mit kompilieren (sowie serf, neon, openssl, libxml, sqlite, usw., alles um dann anschließend für den DS eigenen Apache Module wie mod_proxy_html zu kompilieren...).

Grüße,
Brian
 

Loewe81

Benutzer
Mitglied seit
29. Jul 2010
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Ist jetzt vielleicht ne blöde Frage, aber wenn ich z.B. PHP per IPKG installiere, dann wird das entsprechende Paket ja runtergeladen (ggf. noch diverse Abhängigkeiten) und dann sehe ich auf der Konsole ein configure php. Entspricht dieses configure dem configure beim Kompilieren? Weil wenn ja, dann müsste in dem Paket ja hinterlegt sein, mit welchen Parametern konfiguriert werden soll. Könnte man dann einfach diese Informationen innerhalb des Paketes editieren? Ich vermute aber mal, dass es nicht so einfach ist.

Ciao Stefan :)
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ein Tipp ... es liest sich so als würdest sowas noch nie gemacht haben ... deswegen der Vorschlag, mach erstmal eine Trockenübung auf dem PC: Versuche auf dem PC das was du vorhast zu kompilieren. Wahrscheinlich findest dazu viel mehr Informationen und Unterstützung (auch in PC-Foren). Wenn das geklappt hat, dann weißt zumindest auf was du dich da einläßt ;) und wenn du auch alles gut mitschreibst, dann wird es auch auf deiner Qnap einfacher ...

Itari
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Ist jetzt vielleicht ne blöde Frage, aber wenn ich z.B. PHP per IPKG installiere, dann wird das entsprechende Paket ja runtergeladen (ggf. noch diverse Abhängigkeiten) und dann sehe ich auf der Konsole ein configure php. Entspricht dieses configure dem configure beim Kompilieren? Weil wenn ja, dann müsste in dem Paket ja hinterlegt sein, mit welchen Parametern konfiguriert werden soll. Könnte man dann einfach diese Informationen innerhalb des Paketes editieren? Ich vermute aber mal, dass es nicht so einfach ist.

Ciao Stefan :)

Also wenn ich dich richtig verstehe, dann beziehst du dich hierauf:
Rich (BBCode):
DS> ipkg install php
Installing php (5.2.14-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/php_5.2.14-1_powerpc.ipk
Installing libxslt (1.1.26-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/libxslt_1.1.26-1_powerpc.ipk
Installing pcre (8.10-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/pcre_8.10-1_powerpc.ipk
Configuring libxslt
Configuring pcre
Configuring php
Successfully terminated.

Dieses "Configuring" hat allerdings nichts mit dem "configure" vor einem "make" bei der Kompilierung zu tun. An dieser stelle werden nicht die Compiler Parameter eingestellt sondern ggf. Pfade/Umgebungsvariablen/Datei Konfigurationen angepasst.

Wenn du über die Konsole erfahren möchtest wie der Hauseigene Apache kompiliert wurde geht das wie folgt:

Rich (BBCode):
DS> httpd -V
Server version: Apache/2.2.13 (Unix)
Server built:   Mar 13 2010 01:50:59
Server's Module Magic Number: 20051115:23
Server loaded:  APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D BIG_SECURITY_HOLE
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr/syno/apache"
 -D SUEXEC_BIN="/usr/syno/apache/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Eine liste der mit einkompilierten Module gibts so:

Rich (BBCode):
DS> httpd -l
Compiled in modules:
  core.c
  mod_authn_file.c
  mod_authn_default.c
  mod_authz_host.c
  mod_authz_groupfile.c
  mod_authz_user.c
  mod_authz_default.c
  mod_auth_basic.c
  mod_include.c
  mod_filter.c
  mod_log_config.c
  mod_env.c
  mod_mime_magic.c
  mod_setenvif.c
  prefork.c
  http_core.c
  mod_mime.c
  mod_status.c
  mod_autoindex.c
  mod_asis.c
  mod_cgi.c
  mod_negotiation.c
  mod_dir.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_so.c

Und bei PHP gibt es alle Informationen die man sich nur vorstellen kann (da steht wirklich ALLES drin ;)) wie folgt:
Rich (BBCode):
DS> php -i
phpinfo()
PHP Version => 5.2.12

System => Linux BDS 2.6.24 #1141 Sat Mar 13 00:50:14 CST 2010 ppc
Build Date => Mar 13 2010 02:13:31
Configure Command =>  './configure.syno'  '--host=powerpc-unknown-linux' '--target=powerpc-unknown-linux' '--build=i686-pc-linux' '--prefix=/usr/syno/php' '--with-apxs2=/usr/local/apache/bin/apxs' '--disable-cgi' '--disable-ipv6' '--with-config-file-path=/usr/syno/etc' '--with-libxml-dir=/source/libxml2-2.6.32' '--with-zlib-dir=/usr/local/powerpc-linux-gnuspe' '--enable-bcmath' '--enable-calendar' '--with-curl=/usr/syno' '--enable-dba' '--enable-dbase' '--enable-exif' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/local/powerpc-linux-gnuspe' '--with-png-dir=/usr/local/powerpc-linux-gnuspe' '--with-freetype-dir=/usr/syno' '--enable-gd-native-ttf' '--with-iconv=/usr/syno/libiconv' '--with-imap=/source/imap-2007e' '--enable-mbstring' '--with-mysql=/usr/syno/mysql' '--with-mysqli=/usr/syno/mysql/bin/mysql_config' '--with-openssl=/usr/syno' '--with-pdo-mysql=/usr/syno/mysql' '--with-pdo-pgsql=/usr/syno/pgsql' '--with-pgsql=/usr/syno/pgsql' '--enable-shmop' '--enable-soap' '--enable-sockets' '--enable-wddx' '--with-xmlrpc' '--enable-zip' '--with-gettext'
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /usr/syno/etc
Loaded Configuration File => /usr/syno/etc/php.ini
Scan this dir for additional .ini files => (none)
additional .ini files parsed => (none)
PHP API => 20041225
PHP Extension => 20060613
Zend Extension => 220060519
Debug Build => no
Thread Safety => disabled
Zend Memory Manager => enabled
IPv6 Support => disabled
Registered PHP Streams => https, ftps, compress.zlib, php, file, data, http, ftp, zip
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filters => zlib.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed


This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies


 _______________________________________________________________________


Configuration

PHP Core

Directive => Local Value => Master Value
allow_call_time_pass_reference => On => On
allow_url_fopen => On => On
allow_url_include => Off => Off
always_populate_raw_post_data => Off => Off
arg_separator.input => & => &
arg_separator.output => & => &
asp_tags => Off => Off
auto_append_file => no value => no value
auto_globals_jit => On => On
auto_prepend_file => no value => no value
browscap => no value => no value
default_charset => no value => no value
default_mimetype => text/html => text/html
define_syslog_variables => Off => Off
disable_classes => no value => no value
disable_functions => no value => no value
display_errors => STDOUT => STDOUT
display_startup_errors => Off => Off
doc_root => no value => no value
docref_ext => no value => no value
docref_root => no value => no value
enable_dl => On => On
error_append_string => no value => no value
error_log => no value => no value
error_prepend_string => no value => no value
error_reporting => 6135 => 6135
expose_php => On => On
extension_dir => /lib/php/extensions => /lib/php/extensions
file_uploads => On => On
highlight.bg => <font style="color: #FFFFFF">#FFFFFF</font> => <font style="color: #FFFFFF">#FFFFFF</font>
highlight.comment => <font style="color: #FF8000">#FF8000</font> => <font style="color: #FF8000">#FF8000</font>
highlight.default => <font style="color: #0000BB">#0000BB</font> => <font style="color: #0000BB">#0000BB</font>
highlight.html => <font style="color: #000000">#000000</font> => <font style="color: #000000">#000000</font>
highlight.keyword => <font style="color: #007700">#007700</font> => <font style="color: #007700">#007700</font>
highlight.string => <font style="color: #DD0000">#DD0000</font> => <font style="color: #DD0000">#DD0000</font>
html_errors => Off => Off
ignore_repeated_errors => Off => Off
ignore_repeated_source => Off => Off
ignore_user_abort => Off => Off
implicit_flush => On => On
include_path => .:/usr/syno/php/lib/php => .:/usr/syno/php/lib/php
log_errors => Off => Off
log_errors_max_len => 1024 => 1024
magic_quotes_gpc => On => On
magic_quotes_runtime => Off => Off
magic_quotes_sybase => Off => Off
mail.force_extra_parameters => no value => no value
max_execution_time => 0 => 0
max_file_uploads => 20 => 20
max_input_nesting_level => 64 => 64
max_input_time => -1 => -1
memory_limit => 128M => 128M
open_basedir => [cut]
output_buffering => 0 => 0
output_handler => no value => no value
post_max_size => 32M => 32M
precision => 12 => 12
realpath_cache_size => 16K => 16K
realpath_cache_ttl => 120 => 120
register_argc_argv => On => On
register_globals => Off => Off
register_long_arrays => On => On
report_memleaks => On => On
report_zend_debug => Off => Off
safe_mode => Off => Off
safe_mode_exec_dir => /usr/syno/bin => /usr/syno/bin
safe_mode_gid => Off => Off
safe_mode_include_dir => no value => no value
sendmail_from => no value => no value
sendmail_path =>  -t -i  =>  -t -i
serialize_precision => 100 => 100
short_open_tag => On => On
SMTP => localhost => localhost
smtp_port => 25 => 25
sql.safe_mode => Off => Off
track_errors => Off => Off
unserialize_callback_func => no value => no value
upload_max_filesize => 32M => 32M
upload_tmp_dir => no value => no value
user_dir => no value => no value
variables_order => EGPCS => EGPCS
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off
y2k_compliance => On => On
zend.ze1_compatibility_mode => Off => Off

[cut]

imap

IMAP c-Client Version => 2007e

[cut]

(Bei dem hier präsentierten Ausschnitt der Ausgabe handelt es sich auch um eine PHP Version ohne SSL Unterstützung für IMAP...)

Grüße,
Brian
 

Loewe81

Benutzer
Mitglied seit
29. Jul 2010
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Dieses "Configuring" hat allerdings nichts mit dem "configure" vor einem "make" bei der Kompilierung zu tun. An dieser stelle werden nicht die Compiler Parameter eingestellt sondern ggf. Pfade/Umgebungsvariablen/Datei Konfigurationen angepasst.
Danke Brian, sowas habe ich schon "befürchtet", wäre ja auch zu einfach uns schön gewesen.
Ich hätte dann aber doch noch eine kleine Frage, damit ich weiß wo ich anfangen muss. Ansich habe ich doch die zwei Möglichkeiten:
  • ein Modul direkt in PHP mit hineinzukompilieren
  • seperat als Extension (modul.so) per php.ini einzubinden
Jetzt ist allerdings die Frage, ob der SSL Support im imap.so Modul integriert oder doch eine seperate Option beim kompilieren von PHP ist (--with-imap-ssl)?
Und wenn ich letztendlich PHP auf dem NAS kompiliere, dann läuft das doch nicht unter Optware, oder? Kann ich auch das bestehenden PHP Paket modifizieren bzw. ein neues IPKG-Paket erstellen?
Danke!

Ciao Stefan :)
 

Brian!

Benutzer
Mitglied seit
29. Mrz 2009
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Jetzt ist allerdings die Frage, ob der SSL Support im imap.so Modul integriert oder doch eine seperate Option beim kompilieren von PHP ist (--with-imap-ssl)?
Und wenn ich letztendlich PHP auf dem NAS kompiliere, dann läuft das doch nicht unter Optware, oder? Kann ich auch das bestehenden PHP Paket modifizieren bzw. ein neues IPKG-Paket erstellen?
Danke!

Du kannst dir auch hier den PHP Sourcecode runter laden, dir auf deiner QNAP entpacken und im Unterverzeichnis imap-2007e/ nur imap mit ssl support als Modul neu kompilieren (mit ./configure --with-imap-ssl).

Hierbei ist allerdings darauf zu achten, dass du den passenden PHP Sourcecode zu der lokal installierten PHP Version nimmst!

Zumindest theoretisch solltest du dann das imap.so Modul in deiner php.ini mit einbinden können.

Grüße,
Brian
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Da dies nun nicht wirklich etwas mit einer DS zu tun hat, schiebe ich das mal ins OffTopic ;)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat