Seitenhierarchie
Zum Ende der Metadaten springen
Zum Anfang der Metadaten

 

Zusammenfassung

Für den Produktivbetrieb wird ein 64bit Linux-Server empfohlen. Auf dieser Seite wird die Installation und Konfiguration von PHP auf Windows, besonders in Hinblick auf eine Entwicklungsumgebung, beschrieben. Die Beschreibung bezieht sich auf die Version 5.5.15. 

 


Beschreibung

Installation

Die Windows-Binaries können von windows.php.net geladen und in ein Verzeichnis entpackt werden.

Konfiguration

Nach der Installation müssen weitere Einstellungen durchgeführt werden. 

Speicher

Für eine optimale Verarbeitung auch großer Datenmengen sollte die Speicherbegrenzung auf einen möglichst großen Wert gesetzt werden. Optimalerweise sollte die Begrenzung mit -1 ganz deaktiviert werden.

memory_limit = -1

Laufzeit

Die maximale Laufzeit von PHP-Skripten müssen Sie an Ihre Anwendung anpassen. Für reine Webseiten ist ein kleinerer Wert von Vorteil.

max_execution_time = 30

 

Zeitzone

PHP Verlangt eine Zeitzone in der der Server steht und die PHP für die Zeitfunktionen benutzen kann. Für Deutschland sieht der Eintrag folgendermassen aus.

date.timezone = EUROPE/BERLIN

Für andere Länder muss der Eintrag entsprechend angepasst werden

Entwicklung

Für die Entwicklung und das Deployment ist es wichtig, das PHP Phar-Archive schreiben kann. Aus diesem Grund muss dies in der php.ini erlaubt werden.

phar.readonly = Off

Das debugging erfolgt meistens über xdebug. Hierzu erstellt man eine php-Datei mit der folgendne Anweisung

<?php
 
phpinfo();

Die Ausgabe der Datei kopoert man in den von XDebug bereitgestellten Wizard unter http://xdebug.org/wizard.php Der Wizard zeigt die zu ladende Datei und die Anweisungen in PHP an.

[xdebug]
zend_extension = .\php_xdebug-<version>.dll
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

Soll ein Prfiling durchgeführt werden, können die Anweisungen noch um folgene Werte ergänzt werden

xdebug.profiler_enable=on
xdebug.profiler_output_dir="C:\xdebug\"

 

Erweiterungen

Die Erweiterungen liegen in einer Standardinstallation im Verzeichnis ext. 

extension_dir = "./ext"

MultiByte

Alvine2 ist komplett in UTF-8 koiert und verwendet auch für die interne Datenhaltung UTF-8. Aus diesem Grund muss die MultiByte Erweiterung eingeschalten sein. Der Wert der Einstellung mbstring.substitute_character  sorgt dafür, das nicht erkannte Zeichen nicht durch ? oder ähnliche Zeichen ersetzt werden. 

default_charset = "UTF-8"
zend.multibyte = On
zend.script_encoding = UTF-8
 
[mbstring]
mbstring.language = UTF-8
mbstring.internal_encoding = UTF-8
mbstring.substitute_character = none;
mbstring.func_overload = 0

MongoDB

Für den Einsatz von MongoDB als Storage-Provider muss die Erweiterung installiert werden. Die Bibliothek kann vom diesem S3-Server heruntergeladen werden und in das ext-Verzeichnis gespeichert werden.

extension=php_mongo-<version>.dll

SSH

Für die SSH2 Erweiterung muss vom PECL-Server das entsprechende Zip-Verzeichnis geladen werden. Die Datei php_ssh2.dll kommt in das ext Verzeichnis und die libssh2.dll in das PHP-Hauptverzeichnis

extension=php_ssh2.dll

OAuth

Für die OAuth Erweiterung muss vom PECL-Server das ZIP geladen und in das entsprechende Verzeichnis (.ext) entpackt werden. In der php.ini muss noch folgender Eintrag hinzugefügt werden.

extension=php_oauth.dll

Memcache

Auf dem PECL-Service befindet sich auch die Biliothek für Memcache die in das ext-Verzeichnis gespeichert werden muss. 

extension=php_memcache.dll

Weitere Erweiterungen

Desweiteren benötigt das Framework folgende Erweiterungen

extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_intl.dll
extension=php_imap.dll
extension=php_ldap.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
extension=php_xsl.dll

 

Beispiele einer Konfiguration

Die Beispielkonfiguration muss noch mit den lokalen Einstellungen und den Versionen der Bibilotheken ergänzt werden.

php.ini - Entwicklung
[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
disable_functions =
disable_classes =
zend.enable_gc = On
zend.multibyte = On
zend.script_encoding = UTF-8
expose_php = Off
max_execution_time = -1
max_input_time = 60
memory_limit = -1
error_reporting = E_ALL 
display_errors = On
display_startup_errors = On
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = On
html_errors = On
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_mimetype = "text/html"
default_charset = "UTF-8"
include_path = ".;.\pear"
doc_root =
user_dir =
extension_dir = "./ext"
enable_dl = Off
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_intl.dll
extension=php_imap.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_mongo-<version>.dll
extension=php_ssh2.dll
extension=php_memcache.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
extension=php_xsl.dll
extension=php_zip.dll
[CLI Server]
cli_server.color = On
[Date]
date.timezone = EUROPE/BERLIN
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
phar.readonly = Off
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
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]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = On
[PostgreSQL]
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
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[Session]
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.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
mssql.secure_connection = Off
[mbstring]
mbstring.language = UTF-8
mbstring.internal_encoding = UTF-8
mbstring.substitute_character = none; 
mbstring.func_overload = 0
[Tidy]
tidy.clean_output = Off
[ldap]
ldap.max_links = -1
[opcache]
opcache.enable=1
opcache.enable_cli=1
[xdebug]
zend_extension = .\php_xdebug-<version>.dll
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_log="C:\xdebug\debug.log"
xdebug.profiler_enable=on
xdebug.profiler_output_dir="C:\xdebug\"

 


Ressourcen

 


Feedback

Waren diese Informationen hilfreich?

 


Historie

Version Datum Kommentar
Aktuelle Version (v. 1) 01.Jan.2017 18:22 Volker Schukai

 

Schreiben Sie einen Kommentar...