Есть машина с gentoo на борту. Требуется поднять на ней "сервер" с последним apache и php7 на борту. Не могу понять как.
Php5 в своем время ставил по wiki. Все было нормально. А вот где найти документацию по php7? По сети валяются отрывочные советы по настройке, причем в основном перемешанные с php5.
Если кто имел уже подобный опыт - отзовитесь пожалуйста!
[РЕШЕНО] PHP7 (Как поставить?)
Модератор: /dev/random
Re: [РЕШЕНО] PHP7
PHP7 уже есть в Portage. Возникли какие-то трудности?
Попробовал сейчас его поставить (система свежая) -- отличий в процессе установки от пятой верси не обнаружил. Процесс выглядит примерно так:
в portage/package.use дописываем "dev-lang/php apache2" (и другие необходимые модули PHP. При сборке на десктопе система попросит включить gd);
в portage/package.accept_keywords дописываем "www-servers/apache ~amd64", если действительно нужна последняя версия Apache;
пробуем поставить: emerge -av php:7.0
Будет предложено ещё отредактировать конфиги -- соглашаемся (Enter, dispatch-conf), ставим (emerge -av php:7.0 ещё раз).
После установки надо включить PHP в конфигах Apache: в файле /etc/conf.d/apache2 добавить " -D PHP" в переменную APACHE2_OPTS.
Далее, как любой демон: /etc/init.d/apache2 start; rc-update add apache2 default -- должно работать.
Попробовал сейчас его поставить (система свежая) -- отличий в процессе установки от пятой верси не обнаружил. Процесс выглядит примерно так:
в portage/package.use дописываем "dev-lang/php apache2" (и другие необходимые модули PHP. При сборке на десктопе система попросит включить gd);
в portage/package.accept_keywords дописываем "www-servers/apache ~amd64", если действительно нужна последняя версия Apache;
пробуем поставить: emerge -av php:7.0
Будет предложено ещё отредактировать конфиги -- соглашаемся (Enter, dispatch-conf), ставим (emerge -av php:7.0 ещё раз).
После установки надо включить PHP в конфигах Apache: в файле /etc/conf.d/apache2 добавить " -D PHP" в переменную APACHE2_OPTS.
Далее, как любой демон: /etc/init.d/apache2 start; rc-update add apache2 default -- должно работать.
Re: [РЕШЕНО] PHP7
В portage это есть уже давно. Ставится без проблем.
Это то как раз вполне работает. Непонятно, как настраивать всякие Если оставить так как есть, то php код просто не отрабатывается.
Проблема именно в полной настройки всего. Точнее в разнице между настройкой php5 и php7. Или я не там смотрю...
P.S. Допустим ранее (в php5) в APACHE2_OPTS ставили "-D PHP5" а теперь получается, что надо просто "-D PHP"? Хотя, если сопоставить, то вроде как должно быть "-D PHP7" Явно где то должна быть внятная документация по всему этому. Но я ее не вижу.
Это то как раз вполне работает. Непонятно, как настраивать всякие
Код: Выделить всё
<IfModule mod_php.c>
Проблема именно в полной настройки всего. Точнее в разнице между настройкой php5 и php7. Или я не там смотрю...
P.S. Допустим ранее (в php5) в APACHE2_OPTS ставили "-D PHP5" а теперь получается, что надо просто "-D PHP"? Хотя, если сопоставить, то вроде как должно быть "-D PHP7" Явно где то должна быть внятная документация по всему этому. Но я ее не вижу.
Re: [РЕШЕНО] PHP7
Проблема решена! Как всегда дело в моей невнимательности.
Просто надо обращать внимание на deprecated функции. В какой-то момент они отключаются совсем (я про mysql_connect и иже с ними).
В моем случае решением было: в APACHE2_OPTS прописать "-D PHP" вместо "-D PHP5" и для сайта указание mysqli вместо mysql
Просто надо обращать внимание на deprecated функции. В какой-то момент они отключаются совсем (я про mysql_connect и иже с ними).
В моем случае решением было: в APACHE2_OPTS прописать "-D PHP" вместо "-D PHP5" и для сайта указание mysqli вместо mysql
Re: [РЕШЕНО] PHP7
Сделал сегодня emerge -vuND world и система предложила обновить php5.6 на php7.0
1. Прописал в make.conf
Переключил
Меняю в APACHE2_OPTS "-D PHP5.6" на "-D PHP"
Перезапускаю Apache и в его логах вижу, что он работает до сих пор с php 5.6
Что не так? Сайты которые крутятся на сервере работают.
1. Прописал в make.conf
Код: Выделить всё
PHP_TARGETS="php5-6 php7-0"
PHP_INI_VERSION="production"
Переключил
Код: Выделить всё
mail ~ # eselect php list cli
[1] php5.6
[2] php7.0 *
Меняю в APACHE2_OPTS "-D PHP5.6" на "-D PHP"
Перезапускаю Apache и в его логах вижу, что он работает до сих пор с php 5.6
[Mon Feb 20 20:16:05.016525 2017] [mpm_prefork:notice] [pid 1318] AH00163: Apache/2.4.25 (Unix) OpenSSL/1.0.2k PHP/5.6.30-pl0-gentoo mod_wsgi/4.5.7 Python/3.4 configured -- resuming normal operations
[Mon Feb 20 20:16:05.016622 2017] [core:notice] [pid 1318] AH00094: Command line: '/usr/sbin/apache2 -D PHP -D WSGI -D PROXY -D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -d /usr/lib64/apache2 -f /etc/apache2/httpd.conf'
Что не так? Сайты которые крутятся на сервере работают.
Re: [РЕШЕНО] PHP7
Разобрался. Забыл переключить
Но теперь не работает roundcube
Код: Выделить всё
eselect php set apache2 2
Но теперь не работает roundcube
Код: Выделить всё
[Mon Feb 20 20:47:43.936078 2017] [:error] [pid 4274] [client 172.16.0.39:51577] PHP Warning: Declaration of rcmail::get_instance($env = '') should be compatible with rcube::get_instance($mode = 0, $env = '') in /var/www/localhost/htdocs/roundcube/program/include/rcmail.php on line 30, referer: https://mail.gb2bel.ru/?_task=mail&_mbox=INBOX
Re: [РЕШЕНО] PHP7
ad infinitum