Ставим сборку LAMP: Apache 2.2 / PHP 5.6 / mySQL 5.1
Категория: / DEV Блог
/ Сервер (FreeBSD)
2. Обновление LAMP apache22/php5.4/mysql.5.1 до актуальных версий
Для моего случая переопределяю дефолтные версии в make.conf (значения можно посмотреть в /usr/ports/Mk/bsd.default-versions.mk)
DEFAULT_VERSIONS=php=5.6 mysql=5.1 apache=2.2
Несмотря на переопределение в make.conf хочет установить apache24, но мне нужен 2.2
# система зачем-то подтянула вайн, но он нам не нужен
pkg remove i386-wine-devel
Смотрим все ли хорошо
В завершении рестартим apache и mysql
Обновление PHP 5.3.10 -> 5.4.7 через порты
LAMP - акроним Linux/Apache/Mysql/PHP.
Если у вас windows и вам нужен тестовый сервер, воспользуйтесь готовыми решениями.
Например - денвер (www.denwer.ru)или xampp (www.apachefriends.org/en/xampp.html).
Рассмотрим установку на ОС FreeBSD 5 и выше.
Приступим!
Устанавливать софт в системе FreeBSD проще и удобнее из коллекции портов (portage).
Это нативный менеджер пакетов, который поможет вам в дальнейшем и возьмет на себя
разбор с зависимостями между библиотеками при обновлении системы.
"Продакш" или user-free серверу обычно не нужны X11, чтобы не цеплять лишних тяжелых зависимостей,
добавляем в /etc/make.conf строку WITHOUT_X11=yes.
Обновляем порты
Если у вас уже установлен PHP, его необходимо удалить, чтобы изберажть конфликта версий.
выполнив make deinstall либо pkg_delete php5-*
Далее переходим к коллекции портов
Ставим нужные галки в конфигураторе пакетов и жмем "далее".
Компиляция (сборка) может занять продолжительное количество времени.
Для быстрой установки расширений php, можно установить готовые пакеты вместо их сборки:
Сессии, библиотека работы с изображениями GD и поддержка mysql не добавляются по умолчанию?
Добавляем поддержку apc
curl:
Добавляем автозапуск сервисов:
В настройках апача назначаем файлам *.php установленный интерпритатор php
Обновление сервера
Самой непонятной задачей для неопытного админа является - обновление установленного сервера.
Не нужно паниковать, за вас все уже сделали! Ставим portupgrade из тех же портов, и обнаружив, что
используете не самую сежую версию apache/php/mysql/... набираете команду
Проверка актуальности портов
Дополнительно
Ротация логов httpd по маске *.log
Apache на два сетевых интерфейса (через alias)
rc.conf
В httpd.conf
Устанавливаем safe_mode и open_basedir для виртуальных хостов
Для моего случая переопределяю дефолтные версии в make.conf (значения можно посмотреть в /usr/ports/Mk/bsd.default-versions.mk)
DEFAULT_VERSIONS=php=5.6 mysql=5.1 apache=2.2
pkg install mysql51
pkg install apache22
pkg install php56 php56-php56-extensions php56-mysql php56-pdo_mysql php56-openssl php56-mcrypt php56-curl
pkg install php56-zlib php56-gd pecl-memcache pecl-APCu
pkg install mod_php56
Несмотря на переопределение в make.conf хочет установить apache24, но мне нужен 2.2
cd /usr/ports/www/mod_php56
make config && make && make install
# система зачем-то подтянула вайн, но он нам не нужен
pkg remove i386-wine-devel
Смотрим все ли хорошо
mysql --version
..Distrib 5.1.73
httpd -t
..Syntax OK
httpd -M
..php5_module
php -v
..PHP 5.6.7 (cli) (built: Apr 9 2015 16:15:38
# модули php
php -m
В завершении рестартим apache и mysql
service apache22 restart
service mysql-server restart
Обновление PHP 5.3.10 -> 5.4.7 через порты
LAMP - акроним Linux/Apache/Mysql/PHP.
Если у вас windows и вам нужен тестовый сервер, воспользуйтесь готовыми решениями.
Например - денвер (www.denwer.ru)или xampp (www.apachefriends.org/en/xampp.html).
Рассмотрим установку на ОС FreeBSD 5 и выше.
Приступим!
Устанавливать софт в системе FreeBSD проще и удобнее из коллекции портов (portage).
Это нативный менеджер пакетов, который поможет вам в дальнейшем и возьмет на себя
разбор с зависимостями между библиотеками при обновлении системы.
"Продакш" или user-free серверу обычно не нужны X11, чтобы не цеплять лишних тяжелых зависимостей,
добавляем в /etc/make.conf строку WITHOUT_X11=yes.
Обновляем порты
portsnap fetch update
Если у вас уже установлен PHP, его необходимо удалить, чтобы изберажть конфликта версий.
выполнив make deinstall либо pkg_delete php5-*
Далее переходим к коллекции портов
cd /usr/ports/www/apache22
make install clean
cd /usr/ports/databases/mysql40-server
make install clean
cd /usr/ports/lang/php5
make install clean
cd /usr/ports/lang/php5-extensions
make install clean
Ставим нужные галки в конфигураторе пакетов и жмем "далее".
Компиляция (сборка) может занять продолжительное количество времени.
Для быстрой установки расширений php, можно установить готовые пакеты вместо их сборки:
pkg_add -r php5-extensions
pkg_add -r php5-mysqli
pkg_add -r php5-session
pkg_add -r php5-gd
Сессии, библиотека работы с изображениями GD и поддержка mysql не добавляются по умолчанию?
Добавляем поддержку apc
pkg_add -r pecl-APC
portupgrade -P pecl-APC
pkg_info | grep APC
curl:
pkg_add -r php5-curl
php -r "var_dump(function_exists('curl_init'));"
# bool(true)
Добавляем автозапуск сервисов:
echo mysql_enable="YES" >> /etc/rc.conf
echo apache22_enable="YES" >> /etc/rc.conf
В настройках апача назначаем файлам *.php установленный интерпритатор php
#/usr/local/etc/apache22/httpd.conf
LoadModule php5_module libexec/apache22/libphp5.so
...
<IfModule dir_module>
DirectoryIndex index.html index.php index.htm
</IfModule>
...
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Обновление сервера
Самой непонятной задачей для неопытного админа является - обновление установленного сервера.
Не нужно паниковать, за вас все уже сделали! Ставим portupgrade из тех же портов, и обнаружив, что
используете не самую сежую версию apache/php/mysql/... набираете команду
# обновляем php со всеми связями
portupgrade -Rr php*
# Для того, чтобы не компилировать лишнего - можно пользовать пакеджи
portupgrade -P "php*"
Проверка актуальности портов
portversion -v -l "<"
Дополнительно
Ротация логов httpd по маске *.log
#/etc/newsyslog.conf
/var/log/httpd/*.log 600 7 * $D3 JG /var/run/httpd.pid
Apache на два сетевых интерфейса (через alias)
rc.conf
ifconfig_em0="inet 187.42.72.161 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 183.22.3.50 netmask 255.255.255.0"
В httpd.conf
NameVirtualHost 187.42.72.161:80
NameVirtualHost 183.22.3.50:80
Устанавливаем safe_mode и open_basedir для виртуальных хостов
<location />
php_admin_flag safe_mode on
php_admin_value open_basedir "/www/path.ru/:/tmp"
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.ru"
php_admin_value upload_tmp_dir "/home/user/mod-tmp"
php_admin_value session.save_path "/home/user/mod-tmp"
php_value safe_mode_gid 1
php_value safe_mode_include_dir 1
php_value magic_quotes_gpc 0
php_value magic_quotes_runtime 0
php_value magic_quotes_sybase 0
php_value file_uploads 1
php_value display_errors 1
php_value short_open_tag 1
php_value register_globals 0
php_value register_long_arrays 0
</location>
41 pkg_add -r php5-ctype
44 pkg_add -r php5-dom
45 pkg_add -r php5-gd
46 pkg_add -r php5-gettext
47 pkg_add -r php5-hash
48 pkg_add -r php5-iconv
49 pkg_add -r php5-json
50 pkg_add -r php5-mbstring
51 pkg_add -r php5-mysql
52 pkg_add -r php5-mysqli
53 pkg_add -r php5-simplexml
54 pkg_add -r php5-tidy
55 pkg_add -r php5-xml
56 pkg_add -r php5-zlib
57 pkg_add -r php5-zip
59 pkg_add -r php5-spl
60 pkg_add -r php5-pcre
и проверить
58 php -m
#/etc/newsyslog.conf
/var/log/httpd/*.log 600 7 * $D3 JG /var/run/httpd.pid
Объясните, пожалуйста, что это значит.
pkg_add -r apache22
pkg_add -r php5
pkg_add -r php5-extensions
Идеально было бы ставить так.
Жаль что теперь пакет php5 не устанавливает модуль php для апача.
cvsup -L 2 /etc/ports-supfile
portupgrade -rR 'php5*'
>> http://www.opennet.ru/base/sys/cleaning_up_ports.txt.html
Affected package: php5-5.2.1
Type of problem: php -- multiple vulnerabilities.
Reference: <http://www.FreeBSD.org/ports/portaudit/7fcf1727-be71-11db-b2ec-000c6ec775d9.html>