Instalacja PHP
- Ściągnąć najnowszą wersję PHP (>= 5.2.5)
- Dla systemów x64 można ściągnąć wersję 64-bitową
- Read The Fucking Manual
- Rozpakować archiwum do docelowego katalogu, w moim przypadku
C:\Program Files\PHP
- Dodać do zmiennej
PATH
ścieżkę do katalogu PHP - Dodać nową zmienną systemową
PHPRC
, której wartością jest ścieżka do kataloguC:\Program Files\PHP
- wystarczy pobrać i odpalić phprc.reg
Stworzenie/edycja php.ini
- Stworzyć kopię pliku
php.ini-recommended
z głównego katalogu PHP jakophp.ini
- Jeżeli zainstaowano PHP w podkatalogu
Program Files
(lub innym, który zawiera spację), sprawdzić, czy wszystkie odwołania do plików lub katalogów są ujęte w cudzysłów, np:źle:extension_dir = C:/Program Files/PHP/ext/
dobrze:extension_dir = "C:/Program Files/PHP/ext/"
- Wszystkie ścieżki podawać w zapisie linuxowym - ze slashem, a nie backslashem
źle:
ServerRoot extension_dir = "C:\Program Files\PHP\ext\"
dobrze:extension_dir = "C:/Program Files/PHP/ext/"
- Sprawdzić, czy poprawna jest ścieżka do katalogu rozszerzeń (czyli to, co powyżej), zapis ma kończyć ukośnik:
extension_dir = "C:/Program Files/PHP/ext/"
- Włączyć odpowiednie moduły w sekcji
Windows Extensions
; najczęściej wykorzystywane są następujące:;extension=php_apd.dll ;extension=php_bcompiler.dll ;extension=php_bitset.dll ;extension=php_blenc.dll ;extension=php_bz2.dll ;extension=php_bz2_filter.dll ;extension=php_classkit.dll ;extension=php_cpdf.dll ;extension=php_crack.dll ;extension=php_curl.dll ;extension=php_cvsclient.dll ;extension=php_db.dll ;extension=php_dba.dll extension=php_dbase.dll ;extension=php_dbx.dll ;extension=php_dio.dll ;extension=php_docblock.dll ;extension=php_domxml.dll ;extension=php_event.dll ;extension=php_exif.dll ;extension=php_fdf.dll ;extension=php_fileinfo.dll ;extension=php_filepro.dll ;extension=php_fribidi.dll extension=php_gd2.dll ;extension=php_gettext.dll ;extension=php_gmp.dll ;extension=php_gopher.dll ;extension=php_http.dll ;extension=php_hyperwave.dll ;extension=php_ibm_db2.dll ;extension=php_id3.dll ;extension=php_ifx.dll ;extension=php_iisfunc.dll ;extension=php_imagick.dll ;extension=php_imap.dll ;extension=php_ingres.dll ;extension=php_interbase.dll ;extension=php_java.dll ;extension=php_ldap.dll ;extension=php_lzf.dll ;extension=php_mailparse.dll extension=php_mbstring.dll ;extension=php_mcrypt.dll ;extension=php_mcrypt_filter.dll ;extension=php_memcache.dll ;extension=php_mhash.dll ;extension=php_mime_magic.dll ;extension=php_ming.dll ;extension=php_msql.dll ;extension=php_mssql.dll extension=php_mysql.dll ;extension=php_mysqli.dll ;extension=php_netools.dll ;extension=php_ntuser.dll ;extension=php_oci8.dll ;extension=php_oggvorbis.dll ;extension=php_openssl.dll ;extension=php_operator.dll ;extension=php_oracle.dll ;extension=php_parsekit.dll ;extension=php_pdf.dll ;extension=php_pdo.dll ;extension=php_pdo_firebird.dll ;extension=php_pdo_mssql.dll ;extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll ;extension=php_pdo_oci8.dll ;extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll ;extension=php_pgsql.dll ;extension=php_phar.dll ;extension=php_phpdoc.dll ;extension=php_pop3.dll ;extension=php_printer.dll ;extension=php_pspell.dll ;extension=php_radius.dll ;extension=php_rar.dll ;extension=php_sdo.dll ;extension=php_shmop.dll ;extension=php_smtp.dll ;extension=php_snmp.dll ;extension=php_soap.dll extension=php_sockets.dll ;extension=php_sqlite.dll ;extension=php_ssh2.dll ;extension=php_stats.dll ;extension=php_stem.dll ;extension=php_svn.dll ;extension=php_swish.dll ;extension=php_sybase_ct.dll ;extension=php_threads.dll ;extension=php_tidy.dll ;extension=php_timezonedb.dll ;extension=php_translit.dll ;extension=php_win32ps.dll ;extension=php_win32scheduler.dll ;extension=php_win32service.dll ;extension=php_win32std.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll ;extension=php_yaz.dll ;extension=php_zip.dll ;extension=php_zlib_filter.dll
- Jeżeli po wywołaniu phpinfo(); okazuje się, że jakieś moduły jednak nie są załadowane,
warto skontrolować plik C:\Program Files\Apache\logs\error.log by sprawdzić, czy wszystko
jest w porządku. Trzeba jednak pamiętać, że błąd w rodzaju:nie oznacza, że takiego pliku nie ma (bo w większości przypadków jest), tylko że albo jest niezgodny z tą wersją PHP, albo brakuje jakiejś innej biblioteki. Np. poprawne załadowanie
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/Program Files/PHP/ext/php_mcrypt.dll' The specified module could not be found.\r\n in Unknown on line 0
php_mysql
wymaga obecności plikulibmysql.dll
w kataloguC:\Windows\System32
. Dlatego - dla zaoszczędzenia sobie nerwów - warto skopiować
wszystkie pliki DLL z kataloguC:\Program Files\PHP
doC:\Windows\System32
- Sprawdzić, czy poniższe linie mają wskazane poniższe wartości:
W ogóle i przede wszytkim:Wyłączenie rozpoznawania krótkich tagówengine = On
<?
[bezpieczeństwo]:Wyłączenie tybu "safe":short_open_tag = Off
Wyłączenie tablicsafe_mode = Off
$HTTP_*_VARS
[wydajność]Wyświetlanie błędów (w finalnej aplikacji lepiej jednak wyłączyć):register_long_arrays = Off
Logowanie błędów [bezpieczeństwo]:display_errors = On
Ustawienie 4 kB buforu wyjściowego [wydajność]log_errors = On
Wyłączenie zbednych, nadmiarowych zmiennych $argv i $argc [wydajność]output_buffering = 4096
Wyłączenie magic_quotes_gpc [wydajność]register_argc_argv = Off
Wyświetlanie wszystkich błędów [bezpieczeństwo, poprawność kodu]magic_quotes_gpc = Off
Wyłączenie odwołania do zmiennej przez referencję w wywołaniu funkcji:error_reporting = E_ALL
Katalog tymczasowy na uploadowane pliki:allow_call_time_pass_reference = Off
Katalog tymczasowy na pliki sesji:upload_tmp_dir = "c:/temp"
session.save_path = "c:/temp"
Edycja httpd.conf
- Załadowanie modułu php5_module (php5apache2.dll)
# # PHP: Hypertext Preprocessor (PHP) Support # LoadModule php5_module "C:/Program Files/PHP/php5apache2.dll"
- Dodanie obsługi rozszerzeń
AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml AddType application/x-httpd-php-source .phps
- Uwaga! Wykorzystanie oryginalnego pliku
php5apache2.dll
bardzo często powoduje podczas łądowania Apache'a następujący błądNie jest to wina złej konfiguracji, tylko błędu w tej bibliotece. W tej sytuacji należy ściągnąć najnowszą możliwą wersję PHP i skopiować z niej plikhttpd.exe: Syntax error on line 116 of C:/Program Files/Apache/conf/httpd.conf: Cannot load C:/Program Files/PHP/php5apache2.dll into server: The specified module could not be found.
php5apache2_2.dll
nadpisując nim oryginalnyphp5apache2.dll
. - Ścieżka do php.ini
PHPIniDir "%path_to_php.ini_folder%"
- Wreszcie dodanie dodanie domylnego pliku PHP do DirectoryIndex
<IfModule dir_module> DirectoryIndex index.php index.html index.htm </IfModule>
Edycja mime.types
- Dodanie obsługi rozszerzeń
application/x-httpd-php .php application/x-httpd-php .phtml application/x-httpd-php-source .phps
blog comments powered by Disqus