пятница, 29 сентября 2017 г.

Установка двух версий PHP на сервер CentOS.

Установка двух версий PHP на сервер CentOS.

На сервере CentOS7 по умолчанию после выполнения команды yum install php
будет установлен php версии 5.4
# php -v
PHP 5.4.16 (cli) (built: Nov  6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

Установим еще одну версию php. Версию 7.

Устанавливаем дополнительные пакеты:
# yum install gcc make
# yum install libxml2-devel
# yum install mysql-devel httpd-devel gd-devel libmcrypt-devel mcrypt bison-devel mhash-devel libcurl-devel
# yum install bison

Скачиваем исходный код php7 с GIT 
# cd /usr/src/
# git clone https://github.com/php/php-src.git
# cd php-src/

Выполняем сборку конфигуратора:
# ./buildconf --force 
При этом может быть ошибка:
buildconf: checking installation...
buildconf: autoconf version 2.63 found.
           You need autoconf version 2.64 or newer installed
           to build PHP from Git.
make: *** [buildmk.stamp] Ошибка 1
Ошибка говорит о том, что нужно обновить autoconf
# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
# tar xvfvz autoconf-2.69.tar.gz
# cd autoconf-2.69
# ./configure
# make
# make install
Новая версия установилась в /usr/local/bin/autoconf, тогда как текущая версия находиться в директории /usr/bin/

# ./buildconf --force
Нормальный вывод:
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding aclocal.m4
rebuilding configure
rebuilding main/php_config.h.in
Или:
#  ./buildconf --force
Forcing buildconf
Removing configure caches

Проводим конфигурирование:
# ./configure --bindir=/usr/local/bin/ --with-config-file-path=/usr/local/etc/ --with-curl --with-mhash --with-mysqli --with-gd --with-pdo-mysql  --enable-mbstring --with-openssl --with-pcre-regex --enable-soap --with-apxs2 --with-zlib
Здесь директория для бинарника - /usr/local/bin/
Директория для поиска конфигурационных файлов (php.ini) - /usr/local/etc/

Компилируем и устанавливаем:
# make
# make test
На следующий вопрос с предложением отправить отчет об ошибках отвечаем «n»
You may have found a problem in PHP.
This report can be automatically sent to the PHP QA team at
http://qa.php.net/reports and http://news.php.net/php.qa.reports
This gives us a better understanding of PHP's behavior.
If you don't want to send the report immediately you can choose
option "s" to save it.  You can then email it to qa-reports@lists.php.net later.
Do you want to send this report now? [Yns]: n
# make install

Подготавливаем файл php.ini
# cp /usr/src/php-src/php.ini-production /usr/local/etc/php.ini

Теперь можно использовать php7 запуская его с указанием полного пути:
# /usr/local/bin/php -v
PHP 7.3.0-dev (cli) (built: Sep 22 2017 12:52:17) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2017 Zend Technologies


суббота, 19 августа 2017 г.

RubyOnRails. Взаимодействие с Apache в CentOS 7.

Сводка недоступна. Нажмите эту ссылку, чтобы открыть запись.

SSH туннель


SSH туннель.

Задача: Получить доступ к WEB-серверу 10.11.90.25 к которому напрямую доступа нет.



Вот, что мы должны увидеть на web-сервере 10.11.90.25


Пробрасываем туннель с ip 10.10.49.162 c порта 3000 на удаленный сервер 10.11.90.25 через 10.10.50.252

# ssh -L 10.10.49.162:3000:10.11.90.25:80 root@10.10.50.252

Теперь в консоли локального сервера пробуем посмотреть web ответ сервера apache.
links http://10.10.49.162:3000
Получаем ответ сервера Apache на машине


Обратившись к ресурсу http://10.10.49.162:3000/ с машины 10.10.50.240 мы так же попадем на удаленный хост


Туннель закроется, как-только мы выйдем из удаленной консоли (exit)
Закрыть туннель можно так же через убийство процесса
# ps ax | grep ssh
Узнав PID, завершаем процесс
# kill -9 PID