Установка php5 з портів на FreeBSD для веб-сервера apache

Стаття присвячена встановленню PHP5 на FreeBSD та налаштуванню, щоб можна було створювати сторінки на php.

1. Запускаю конфігурацію перед встановленнямphp :

# cd /usr/ports/lang/php5 # make clean # make configure

Налаштування такі:

установка

# make install clean

2. Далі встановлюємо з портів додатковімодулі дляphp :

# cd /usr/ports/lang/php5-extensions/ # make clean # make configure

У налаштуваннях обов'язково включити підтримку наступних модулів:

DOM GD ICONV MBSTRING MYSQL SESSION XML ZLIB

Тепер виконуємо безпосередньо встановлення

# make install clean

Викликавши ще разmake configure бачимо список встановлених модулів:

# make configure ===> Vulnerability check disabled, database not found ===> Наданий збережений параметр для php5-extensions-1.1 ===> Extracting for php5-extensions-1.1 ===> Patching for php5-extensions-1.1 ===> php5-extensions-1.1 depends on file: /usr/local/include/php/main/php.h - found ===> php5-extensions-1.1 depends on file: /usr/local/lib/php/20060613/ctype.so - found ===> php5-extensions-1.1 depends on file: /usr/local/lib/php/20060613/dom.so - found ===> php5-extensions-1.1 depends on file: /usr/local/lib/php/20060613/filter.so - found ===> php5-extensions-1.1 depends on file: /usr/local/lib/php/20060613/gd.so - found ===> php5-extensions-1.1 depends on file: /usr/local/lib/php/20060613/hash.so - found ===> php5-extensions-1.1 depends on file: /usr/local/lib/php/20060613/iconv.so - found ===> php5-extensions-1.1 depends on file: /usr/local/lib/php/20060613/json.so - found ===> php5-extensions-1.1 depends on file:/usr/local/lib/php/20060613/mbstring.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/mysql.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/pcre.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/pdo.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/pdo_sqlite.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/posix.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/session.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/simplexml.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/spl.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/sqlite.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/tokenizer.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/xml.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/xmlreader.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/xmlwriter.so - знайдено ===> php5-extensions-1.1 залежить від файлу: /usr/local/lib/php/20060613/zlib.so - знайдено ===> Налаштування для php5-extensions-1.1 #

3. Підключаємоphp доapache. Для того щобphp підключився доHttpd сервера зупиняємо його (остановлюємоapache ):

Перевіряю в процесах , що він остановлен

# ps -axgrep httpd

Перевіряю файлhttpd.conf :

Там іде довгий список ізLoadModule ищем сторінку, присвяченуphp5 - ця сторінка післяустановкиphp5 з'явилася в ньому сама:

LoadModule php5_module libexec/apache22/libphp5.so

4. Підключаємо обробкуphp тільки для тих сайтів, в яких він використовуватиметься, наприклад:

У цьому файлі можна налаштувати папки із сайтами – віртуальні хости на одному сервері. Наприклад так:

ServerName 192.168.18.55 DocumentRoot /usr/local/www/apache22/data/howtoes ErrorLog /var/log/httpd_howtoes.log DirectoryIndex index.html index.htm #Ось цей шматок вставляємо щоб цей сайт (директорія) обробляв PHP 5 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

5. Тепер робимо перевірку, чи зароблять сторінкиphp на нашому сервері. Створюю наступнийphp приклад у папці на яку налаштований апач:

6. Перевіряємо коректно ми задали конфіги для апач:

# apachectl configtest Syntax OK

Тепер рестартуємоapache22

Тепер перевіряємо працездатність нашого сервера за допомогою php сторінок:

установка

7. Налаштовуємоphp.ini (цей пункт за бажанням, може когось влаштовують і налаштування за замовчуванням)

Спочатку просто копіюємоphp.ini :

# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

Тепер правимо рядки( цифри – це номери рядків): Щоб виводилися лише помилки:

362 error_reporting = E_ALL &

Щоб виводилися помилки у браузер:

381 display_errors = On

Реєстрування змінних PHP:

462 variables_order = "EGPCS"

Відключення автоматичної обробки лапок, наприклад, необхідно для коректної роботи Joomla:

499 magic_quotes_gpc = On

Дозвіл на завантаження файлів:

599file_uploads = On

Робимо тимчасову папку для завантажених файлів

603 upload_tmp_dir = /tmp

Налаштовуємо максимальний розмір файлу, що закачується:

606 upload_max_filesize = 5M

Вказуємо порт, на якому слухає Mysql:

815 mysql.default_port = 3306

Вказуємо хост за замовчуванням

822 mysql.default_host = localhost

Зберігати файли сесії:

1022 session.save_handler = files

Вказуємо шлях у якому зберігати файли сесії:

1050 session.save_path = "/tmp/session"

1143 session.use_trans_sid = 1

Перезапускаємоapache22 і пробуємо1.php знову