Free BSD

Як встановлювати PHP на FreeBSD

І так настала черга установки модуля PHP, для цього на початку треба встановити сам інтерпретатор php потрібно виконати наступні кроки. Ми розглядатимемо установку php версії 5, якщо вам з якихось причин потрібна версія 4, вам потрібно буде просто адаптувати ці інструкції. Здебільшого це зведеться до виправлення php5 на php4 у всіх командах. Налаштування опцій php5. % cd /usr/ports/lang/php5 % make config Опцію IPv6 можна зняти, а ось опцію APACHE обов'язково потрібно поставити.

1 + Options for php5 5.2.5 1 1Ш CLI Build CLI version 1 1Ш CGI Build CGI version 1 1Ш APACHE Build Apache module 1 [ ] DEBUG Enable debug 1 [Х ] SUHQSIH Enable Suhosin protection system (no for jails) 1 [ ] MULTIBYTE Enable zend multibyte support 1 [ ] IPV6 Enable ipv6 support 1 [ ] MAILHEAD Enable mail header patch 1 [ ] REDIRECT Enable force-cgi-redirect support (CGI only) 1 [ ] DISCARD Enable discard-path support (CGI only) 1 [X] FASTCGI Enable fastcgi support (CGI only) 1 [Х] PATHIHFO Enable path-info-check support (CGI only) [ OK ] Cancel

Після цього в цій директорії виконуєте команду make install. Вона скачає, скомпілює та встановить модуль php. Зокрема вона автоматично виправить і конфігурацію apache сервера, щоб включити цей модуль зі списку доступних модулів.

Як підключити модуль PHP в Apache

Після встановлення php вже дозволено в конфізі apache як модуль, але його неможливо використовувати. Для його використання необхідно пов'язати розширення файлів .php з правильним типом даних - щоб Apache знав би, для яких файлів запускати інтепретатор php. Відкрийте файл /usr/local/etc/apache/httpd.conf, знайдіть у ньому наступні рядки з конфігурацією php4 і php3додайте виділені курсором команди. Команди AddType пов'язують розширення файлу з інтерпретатором php - якщо вам потрібно, щоб і в .html файлах виконувалися php скрипти, то додайте ще один рядок AddType application/x-httpd-php .html. IfModule mod_php4.c AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps /IfModule AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps Directorylndex index.php index.html Опція Directorylndex показує, які файли потрібно виводити користувачеві, якщо він запросив не конкретний файл, а директорію. Дана настройка призведе до того, що при запиті директорії apache спочатку шукатиме файл index.php, якщо він буде знайдений, запустить його і виведе результат виконання користувачеві. Якщо такого файлу немає, тоді він спробує знайти файл index.html. Якщо такого файлу не знайдеться, то користувач отримає помилку - "Листинг директроії заборонений".

Розширення PHP

Вся основна сила php у його розширеннях, так що для повноцінної роботи нам необхідно буде поставити їх також. Якщо ви хочете працювати з MySQL з php, тоді вам потрібно відправитися в розділ "Як встановлювати MySQL і виконати всю установку, яка там описана, а потім вже тільки повертатися сюди.

Як встановлювати розширення PHP

% cd /usr/ports/lang/php5-extensions % make config На першому екрані варто увімкнути розширення CURL, GD, GETTEXT. CURL - це бібліотека, яка дозволяє відсилати HTTP запити з php скриптів, багато пакетів її використовують GD - це бібліотека для роботи з графікою, генерації картинок на льоту, зміни розмірів і так далі, якщо ви ставитимете якесь готове програмне забезпечення, яке працює з графікою - вам швидше за всезнадобиться це розширенняGETTEXT — це спеціальна бібліотека для підтримки багатомовності в додатках, якщо програма підтримує багатомовність і дозволяє перемикати мову свого інтерфейсу, швидше за все вона використовує gettext ] + Opt ions for php5

extensions 1.1 II [ ] ВСМАТН be style precision math functions II [ ] BZ2 bzip2 library support II [ ] CALEIMR calendar conversion support 1 1 [X] CTYPE ctype functions 1 1 [X] їж CURL support II [ ] DBA dba support II [ ] DBASE dBase library support 1 1 [X] DOM DOM support II [ ] EXIF ​​EXIF ​​support II [ ] FILEIHFO fileinfo support 1 1 [X] FILTER input filter support II [ ] FKIBIDI FriBidi support II [ ] FTP FTP support 1 1 [X] GD GD library support 1 1 [X] +______ GETTEXT (+)_______ gettext library support _______+

На другому екрані можна увімкнути розширення ICONV, IMAP, MYSQL. ICONV - це розширення відповідає за перекодування текстів з одного кодування в інше, скажімо з СР1251 (Windows кириличне кодування) в UTF-8 - Юнікод. IMAP - ця бібліотека реалізує протоколи доступу до пошти IMAP і РОРЗ, так що якщо ви писатимете або встановлюватимете webmail інтерфейс на php, то вам вона знадобиться. MYSQL - це інтерфейс з бази даних MySQL, перед тим як вибирати цю опцію, переконайтеся, що MySQL у вас вже інстальовано.

+________ ______+ 1 Opt ions for php5

На третьому екрані переконайтеся, що у вас не відключено розширення SESSION, яке забезпечує підтримку сесій користувача в php. Без нього гарантовано не працюватиме багато програм. Ще переконайтеся в наявності PCRE - розширення забезпечує можливість використання регулярних виразів, сумісних з Perl, з інтерпретатора php - дуже багато скрипти покладаються нанаявність цього розширення. Options for php5

II [ ] ODBC unixODBC support II [ ] OPEHSSL OpenSSL support II [ ] PCITL pcntl support (CLI only) 1 1 [X] PCRE Perl Compatible Regular Expression support II [ ] PDF PDFlib support (implies GD) 1 1 [X] PDO PHP Data Objects Interface (PDO) 1 1 [X] PDQ_SQLITE PDO sqlite driver

II [ ] PGSQL PostgreSQL support 1 1 [X] POSIX POSIX-like функцій II [ ] PSPELL pspell support II [ ] READLIIE readline support (CLI only) II [ ] RECODE recode support 1 1 [X] SESSIOH session support II [ ] SHMOP shmop support 1 1 [X] SIMPLEXML simplexml support [ OK ] Cancel

На четвертому екрані можна відзначити розширення SOCKETS, яке дозволяє РНР підключатися скриптам по мережі до інших сервісів. Скрипти, які підключаються до інших серверів для отримання інформації, можуть використовувати це розширення (зазвичай використовують або SOCKETS або CURL, залежно від того, що доступно).

1 Opt ions for php5

II [ ] simp SIM support II [ ] SOAP SOAP support 1 1 [X] sockets sockets support 1 1 [X] SPL Standard PHP Library 1 1 [X] SQLITE sqlite support II [ ] SYBASE_CT Sybase database support II [ ] STSMSG System message support II [ ] STSSEM System semaphore support II [ ] STSSHM System shared memory support II [ ] TIDY TIDY support 1 1 [X] TOKEHIZER tokenizer support II [ ] WDDX WDDX support (implies XML) 1 1 [X] XML XML support 1 1 [X] XMLREADER XMLReader support II [ ] XMLRPC XMLRPC-EPI support

[ OK ] Cancel На п'ятому екрані можна відзначити розширення ZLIB, яке використовується для стиснення даних. Скрипти (зокрема phpMyAdmin), використовують цю бібліотеку, щоб стискати вихідні дані та щоб зменшитиобсяг даних, що передаються по мережі.

1 Opt ions for php5

II [ ] SYBASE_CT Sybase database support II [ ] SYSMSG System message support II [ ] SYSSEM System semaphore support II [ ] SYSSHM System shared memory support II [ ] TIDY TIDY support 1 1 [X] TOKEHIZER tokenizer support II [ ] WDDX WDDX support (implies XML) 1 1 [X] XML XML support 1 1 [X] XMLREADER XMLReader support II [ ] XMLRPC^EPI support 1 1 [X] XMLWRITER XMLWriter support II [ ] XSL XSL support (Implies DOM) II [ ] YAZ YAZ support (ANSI/NISO Z39.50) II [ ] ZIP ZIP support 1 1 [X] ZLIB ZLIB support

[ OK ] Cancel Після того, як ви вибрали список розширень, достатньо запустити % make install Ця команда викличе скачування та компіляцію всіх розширень, які були позначені в конфігурації. Насправді, php5-expressions сам не вміє встановлювати жодних розширень php :) просто викликає компіляцію відповідних портів. Насправді ці порти мають вигляд рhр5-суг1-номер-версії, php5-gd-номер-версії, php5-mysql-номер-версії та їх можна знайти в колекції портів. Ви можете ставити їх самостійно потім, без використання php5-expressions. Наприклад для встановлення розширення ВСМАТН потрібно зробити % cd /usr/ports/*/php5-bcmath % make install

після чого воно саме скачає необхідні файли, встановиться та активізує себе в конфізі php інтерпретатора. При деінсталяції пакета з розширенням php він автоматично видаляє себе з конфіга інтерпретатора php.

Після встановлення розширень php

Якщо ви поставили або видалили розширення php, вам необхідно перезапустити apache за допомогою apachectl restart.