Установка 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 знову