Как установить mcrypt для php 7.x

Содержание

  • Apache 1.3.x на системах Unix
  • Apache 2.x на Unix системах
  • Установка Nginx 1.4.x на систему Unix
  • Установка PHP на Lighttpd 1.4 на Unix-системах
  • Веб-серверы Sun, iPlanet и Netscape на ОС Sun Solaris
  • Веб-сервер LiteSpeed/OpenLiteSpeed на системах Unix
  • Установка с интерфейсами CGI и командной строки
  • Инструкции по установке для ОС HP-UX
  • OpenBSD, замечания по установке
  • Инструкции по инсталляции для ОС Solaris
  • Инструкции по установке на Debian GNU/Linux

Этот раздел описывает установку и настройку PHP на Unix-системах.
Пожалуйста, прочитайте все разделы, касающиеся вашей платформы
или веб-сервера, прежде чем вы приступите к установке.

Как сказано в разделе Общие указания по
установке, в этом разделе в основном мы описываем
установку PHP, ориентированную на веб, однако мы также затрагиваем
установку PHP для использования в командной строке.

Есть несколько способов установки PHP на Unix платформы.
Один из них — процесс конфигурирования и компиляции исходников, другой —
установка из пакетов. Этот документ сфокусирован на установке из
исходных кодов. Много Unix-подобных систем имеют различные системы установки программ из пакетов.
Они могут помочь при установке стандартных конфигураций, но если вам необходимы другие варианты
(такие как безопасный сервер или другой драйвер базы данных), вам может
потребоваться скомпилировать PHP и/или ваш веб-сервер.
Если вы незнакомы с компилированием собственного программного обеспечения,
то, может быть, стоит поискать готовый пакет PHP с нужными вам возможностями,
собранный кем-нибудь еще.

Для компиляции PHP из исходных кодов вам потребуется следующее:

  • Базовые знания Unix (способность обращаться с «make» и компилятором C)

  • Компилятор ANSI C

  • Веб-сервер

  • Любые компоненты, специфичные для отдельных модулей PHP (такие как библиотеки GD,
    PDF и т.д.)

При сборке непосредственно из исходников Git или после ручных
изменений вам может также понадобиться:

  • autoconf: 2.59+ (для PHP >= 7.0.0), 2.64+ (для PHP >= 7.2.0)

  • automake: 1.4+

  • libtool: 1.4.x+ (кроме версии 1.4.2)

  • re2c: 0.13.4+ (для PHP > 7.0.0), 0.13.7+ (для PHP > 8.0.0)

  • bison:

    • PHP 7.0 — 7.3: 2.4 и выше (включая Bison 3.x)

    • PHP 7.4: > 3.0

Общая (или начальная) конфигурация PHP задается параметрами скрипта
configure. Вы можете просмотреть список допустимых
параметров вместе с их кратким пояснением при помощи команды
./configure —help.
Различные опции документированы в данном руководстве отдельно, список основных параметров
можно просмотреть в приложении Основные параметры конфигурации,
тогда как параметры, специфичные для различных расширений, описаны на страницах документации,
посвященных этим расширениям.

Когда PHP сконфигурирован, все готово к сборке модулей и/или
исполняемых файлов. Об этом должна позаботиться команда
make. Если что-то не получилось и вы не можете
понять почему, смотрите раздел Проблемы установки.

Установка MariaDB (MySQL)

Убедимся что система обновлена и установим пакет MariaDB.

:: Найдено 2 поставщика для mysql::: Репозиторий extra   1) mariadb:: Репозиторий community   2) percona-server

Подтверждаем выбор репозитория вводом или по умолчанию . Будут установлены необходимые пакеты и их зависимости.

По завершении будет предложено инициализировать каталог данных MariaDB:

:: You need to initialize the MariaDB data directory prior to starting   the service. This can be done with mysql_install_db command, e.g.:   mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

По умолчанию MySQL работает от пользователя, который запустил сервис. Для того, чтобы изменить это используем ключ .

mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Запускаем сервис.

systemctl start mysqld

Добавляем в автозапуск.

systemctl enable mysqld

Базовая конфигурация MySQL

Запускаем скрипт базовой настройки.

mysql_secure_installation

Или так:

/usr/bin/mysql_secure_installation

Выполняем все шаги настройки.

Enter current password for root (enter for none): Set root password? [Y/n] yRemove anonymous users? [Y/n] yDisallow root login remotely? [Y/n] yRemove test database and access to it? [Y/n] yReload privilege tables now? [Y/n] y

Подключаемся к базе для проверки работоспособности.

Enter password: Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 11Server version: 10.1.17-MariaDB MariaDB ServerCopyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB >

Теперь внесем некоторые изменения в конфигурационный файл

В секции раскомментируем опцию и :

— опция указывает MySQL-серверу не использовать внешние блокировки при работе с базой. Внешние блокировки необходимы в ситуациях, когда несколько серверов работают с одними и теми же файлами данных, т.е. имеют одинаковую , что на практике не используется.

— интерфейс, который будет слушать сервер. В целях безопасности рекомендуется установить здесь , если не планируется использовать внешние соединения с сервером. Если требуется доступ из внешней сети, то указываем соответствующие значения и не забываем настроить фильтры.

Отвязываемся от консоли

Мы научились запускать процессы в режиме ожидания, теперь необходимо чтобы процесс смог самостоятельно работать и не быть «привязанным к консоли». Запуская свои программы в консоли мы можем заметить пока программа выполняется, другие программы запускать в консоли не получается. Есть несколько способов запустить программу в фоновом режиме.

Первый способ:

Используйте символ «&» (Амперса́нд) после набора команды. Пример:

Консоли бывают разные (bash, tcsh, zsh и др.) и некоторые консоли (но не tcsh) при закрытии отправляют процессам специальный сигнал «SIGHUP», после чего программы завершают своё выполнение. Чтобы этого избежать используйте программу «nohup», она гарантирует что после закрытия консоли программы не закроются.

Второй способ:

После запуска программы нажмите сочетание клавиш «Ctrl + Z» и далее команду «bg». Сочетаниями клавиш мы ставим процесс на «паузу» и командой «bg» «будим» процесс и он продолжает работать работать в фоне.

Третий способ:

Ещё один способ подразумевает что запущенный процесс (родительский процесс) «склонирует» себе подобный процесс (дочерний процесс) т.е. «форкнется» и завершиться. Родительский процесс завершиться, а дочерний процесс продолжит работу, к тому же он усыновляется процессом «init» и перестаёт быть зависимым от консоли. Я считаю этот способ более предпочтительным, т.к. нам теперь нет необходимости на конце писать символ «&» и следить не закроется ли он после закрытия консоли.

MariaDB и база данных для Paperwork

Начать стоит с MariaDB, здесь я не буду описывать ее установку и настройку, весь процесс подробно описан в отдельной статье.

Допустим что MariaDB уже стоит, в таком случае нам нужно создать базу данных, которую Paperwork будет использовать в своей работе.

Сейчас мы создадим базу данных — paperwork, если имя не устраивает, можно задать свое, изменив его в вводимых командах. То же касается пользователя базы и его пароля, в командах я буду использовать ‘username’ и ‘password’ соответственно.

# Войти в консоль mariadb
mysql -u root -p

# Создаем пользователя базы и пароль
create user 'username@localhost' identified by 'password';

# Создаем базу данных - paperwork
create database paperwork default character set utf8 collate utf8_general_ci;

# Разрешаем пользователю управлять созданной базой данных
grant all privileges on paperwork.* to username@localhost identified by 'password' with grant option;

# Применяем изменения
flush privileges;

# Выходим из консоли
quit

Запомним эти данные, они нам понадобятся для настройки связи Paperwork с базой данных.

Шифрование трафика Paperwork

Выполняя вышеуказанную конфигурацию, сервер предоставляет клиенту не шифрованный трафик, что не есть хорошо с точки зрения безопасности. Ведь изначально все затевалось именно ради безопасности, а тут трафик не шифрованный используется… Непорядок выходит.

Я настоятельно рекомендую использовать HTTPS подключение к Paperwork. Пусть для этого и придется затратить немного больше времени, на получение сертификатов и настройку сервера, но оно того стоит. Хотя шифрование не везде себя оправдывает, например если сервер находится в локальной сети или на виртуальной машине, то тут можно обойтись и без него.

Если вы решили использовать HTTPS соединение с Paperwork, то начинать стоит с получения сертификатов. Быстрее и проще всего получить сертификат можно с помощью программы Certbot от Let’s Encrypt, выдающей бесплатные SSL сертификаты. Как получить сертификат с помощью Certbot подробно описано здесь.

Сертификат нужно включить в конфигурацию Nginx вместе с опциями обеспечивающими поддержку HTTPS протокола и шифрования трафика. О том как настроить Nginx на использование шифрования трафика подробно описано здесь. Ниже я приведу примерную конфигурацию Nginx с поддержкой шифрования и кое какими дополнительными опциями.

### хост-файл paperwork ###

server {
    listen 80;
    server_name paperwork.test.com;
    return 301 https://$server_name$request_uri;
}

server {

    # Порт который будет слушать nginx
    listen      443 ssl http2;

    # Имя сайта
    server_name paperwork.test.com;

    # Корневая директория и индексный файл
    root        /var/www/paperwork/frontend/public;
    index       index.php;

    # Лог-файлы
    access_log  /var/www/paperwork/logs/access.log;
    error_log   /var/www/paperwork/logs/error.log;
	
    # Сертификаты и ключи
    ssl_certificate         /etc/letsencrypt/live/paperwork.test.com/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/paperwork.test.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/paperwork.test.com/chain.pem;
    
    # SSL - сессия
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;

    # Используемые протоколы
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	
    # Наборы шифров
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    
    # Приоритет серверных шифров
    ssl_prefer_server_ciphers on;

    # Включение HSTS (Strict-Transport-Security)(15768000 seconds = 6 months)
    add_header Strict-Transport-Security max-age=15768000;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
	
    location ~ /\. {
        deny all;
    }
	
    location ~ /.well-known {
        allow all;
    }

    location = /favicon.(ico|png) {
        access_log off;
	log_not_found off;
    }
	
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
 
    location ~ \.php$ {

        try_files $uri =404;

        include       fastcgi_params;
        fastcgi_index index.php;
        fastcgi_pass  unix:/run/php/php7.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME
                      $document_root$fastcgi_script_name;
    }
    
    # Gzip-сжатие контента
    gzip                        on;
    gzip_comp_level             6;
    gzip_min_length             512;
    gzip_buffers                8 64k;

    # Типы контента для gzip-сжатия
    gzip_types
        text/css
        text/xml
        text/jav$
        text/plain
        application/xml
        application/json
        application/xml+rss
        application/javascript
        application/x-javascript

    gzip_proxied                any;
    gzip_disable                "msie6";
	
    # Кэширование файлов
    location ~* ^.+\.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires       30d;
        access_log    off;
        log_not_found off;
    }
}

На этом все

Благодарю за внимание

Установка PHP 7(php-fpm) с Nginx 1.9 в Debian 8

Недавно, вышла новая версия PHP7

В данной статье «Установка PHP 7 в Debian 8» я хотел бы уделить внимание установки PHP 7 в Debian 8

И так начнем…

Установка nginx 1.9 в Debian 8.

Для начала, добавляем ключ:

Добавляем репозиторий:

И выполняем установку:

Я ленивый иногда, по этому для этой задачи, я написал bash скрипт. Вы можете его тоже использовать:

Установка PHP 7 в Debian 8 с использованием репозитория Dotdeb.

Чтобы установить PHP 7 на Debian 8, но для начала добавляем репозиторий:

После этого, загружаем и запускаем ключ GnuPG:

Обновляем репозиторий:

Запускаем установку PHP как fpm:

Чтобы запустить PHP 7, используйте:

Запуск:

Останавливаем:

Перезапуск:

Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:

Ну это простой вариант и взят в качестве примера (что можно использовать данный репозиторий), а дальше, я опишу нормальное решение.

Установка PHP 7 в Debian 8 с исходного кода.

Для начала выполняем установку всех необходимых компонентов и все зависимости для PHP 7:

Я указал все нужные зависимости для моей сборки, вы можете дополнить их (в зависимости от своих нужд). Если не сделать это, то вы получите ошибку в процессе выполнения команды ./configure.

Переходим в директорию, скачиваем и распаковываем архив с php7, для этого выполните команду:

Вы можете использовать другую ссылку (если вышла пхп свежей версии) с официального сайта.

Переходим в папку:

Добавляем нужные модули в свою сборку и указываем параметры:

При необходимости, можно просмотреть весь список доступных модулей:

А сейчас, приступаем к компиляции и собственно к самой установки PHP 7:

Идем далее, копируем конфигурационный файл с php.ini в папку установки PHP:

Подключаем модуль Zend OPcache: /usr/local/php7/etc/conf.d

Прописываем в него:

И так, настроим сейчас PHP-FPM, для этого открываем файл:

И прописываем в него:

И для этого, создаем init.d скрипт:

Назначаем нужные права (исполнение) и добавляем скрипт в автозагрузку своей ОС:

Чтобы запустить (в данном случае перезапусить) php7-fpm выполняем:

Если используете PHP-FPM с Nginx, то нужно добавьте в блок server виртуального хоста следующий текст:

PS: Для всего этого, я написал bash скрипт, вы можете его использовать для своих нужд:

Осталось только перезапустить все службы:

Вот и все!

Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:

Программы Linux для работы с процессами

Программ для работы с процессами множество, я же расскажу о программах которые мне нравятся больше и популярные примеры их использования. Речь пойдёт о программах: ps, pgrep, kill, htop.

ps — показывает запущенные процессы и сведения по ним. Примеры:

* — Если написать просто «ps -ef | grep «simple.php»», то отобразиться не только нужный нам процесс и сведения о самом нашем процессе «ps» и это может запутать.

pgrep — ищет процесс по имени и возвращает PID процесса. В отличии от ps не возвращает PID самого себя, а только нужный нам. В большинстве случаев результат программы pgrep используется другими программами. Примеры:

kill — отправить сигнал процессу. Не стоит пугаться названия этой программы, она не только завершает процесс, но и может отправить разные сигналы процессу. В основном используется чтобы принудительно закрыть процесс.

* Если процесс не настроен на «ловлю» этого сигнала процесс завершиться.

htop — программа для мониторинга процессов в реальном времени. Программа позволяет узнать загруженность системы, а также узнать какие процессы используют большую часть процессорного времени или оперативной памяти. Удобно запускать в отдельном окне и заглядывать туда.

pstree — показать дерево процессов. Можно посмотреть всю иерархию процессов или всех «предков» процесса.

Установка Composer

Установим пакетный менеджер Composer, устанавливающий необходимые зависимости для приложений использующих PHP. В нашем случае он нужен для установки зависимостей Paperwork. Composer состоит из одного файла composer.phar, по сути являющимся php-скриптом и распространяющимся в phar архиве.

С помощью Curl скачиваем Composer в текущий каталог, например в /root. Если Curl будет ругаться на сертификаты или невозможность скачать файл по https, то добавьте к команде -k или лучше всего обновите систему. Такое иногда бывает.

curl -sS https://getcomposer.org/installer | php

All settings correct for using Composer
Downloading...
Composer (version 1.4.2) successfully installed to: /root/composer.phar
Use it: php composer.phar

Перемещаем файл composer.phar в директорию /usr/local/bin, переименовывая его в composer.

mv composer.phar /usr/local/bin/composer

Теперь Composer может быть вызван следующей командой.

composer

Kоманда покажет список доступных опций.

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.4.2 2017-05-17 08:17:52

Usage:
  command  

Options:
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  about           Short information about Composer.
  archive         Create an archive of this composer package.
  browse          Opens the package's repository URL or homepage in your browser.
  clear-cache     Clears composer's internal package cache.
  clearcache      Clears composer's internal package cache.
  config          Set config options.
  create-project  Create new project from a package into given directory.
  depends         Shows which packages cause the given package to be installed.
  diagnose        Diagnoses the system to identify common errors.
  dump-autoload   Dumps the autoloader.
  dumpautoload    Dumps the autoloader.
  exec            Execute a vendored binary/script.
  global          Allows running commands in the global composer dir ($COMPOSER_HOME).
  help            Displays help for a command
  home            Opens the package's repository URL or homepage in your browser.
  info            Show information about packages.
  init            Creates a basic composer.json file in current directory.
  install         Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
  licenses        Show information about licenses of dependencies.
  list            Lists commands
  outdated        Shows a list of installed packages that have updates available, including their latest version.
  prohibits       Shows which packages prevent the given package from being installed.
  remove          Removes a package from the require or require-dev.
  require         Adds required packages to your composer.json and installs them.
  run-script      Run the scripts defined in composer.json.
  search          Search for packages.
  self-update     Updates composer.phar to the latest version.
  selfupdate      Updates composer.phar to the latest version.
  show            Show information about packages.
  status          Show a list of locally modified packages.
  suggests        Show package suggestions.
  update          Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file.
  validate        Validates a composer.json and composer.lock.
  why             Shows which packages cause the given package to be installed.
  why-not         Shows which packages prevent the given package from being installed.

Если подобный вывод работает, значит все сделано правильно и можно переходить к следующему шагу.

Шаг 3. Производим конфигурацию

Конфигурация производится с включением/отключением необходимых модулей, поэтому следует заранее подготовиться.Указываем опцию , чтобы файл конфигурации был в папке , а не в , как идет по умолчанию в Unix системах.

Начинаем процесс конфигурации

(В случае получения ошибок в процессе конфигурации, информацию по их исправлению можно найти дальше в статье )

./configure \--prefix=/usr/local \--with-layout=PHP \--with-pear \--with-apxs2 \--enable-calendar \--enable-bcmath \--with-gmp \--enable-exif \--with-mcrypt \--with-mhash \--with-zlib \--with-bz2 \--enable-zip \--enable-ftp \--enable-mbstring \--with-iconv \--enable-intl \--with-icu-dir=/usr \--with-gettext \--with-pspell \--enable-sockets \--with-openssl \--with-curl \--with-curlwrappers \--with-gd \--enable-gd-native-ttf \--with-libdir=lib64 \--with-jpeg-dir=/usr \--with-png-dir=/usr \--with-zlib-dir=/usr \--with-xpm-dir=/usr \--with-vpx-dir=/usr \--with-freetype-dir=/usr \--with-t1lib=/usr \--with-libxml-dir=/usr \--with-mysql=mysqlnd \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-config-file-path=/etc \--enable-exif \--enable-shmop \--enable-wddx \--enable-soap \--with-xmlrpc \--with-xsl \--with-tidy=/usr \--with-readline \--enable-pcntl \--enable-sysvshm \--enable-sysvmsg \--enable-shmop \

При успешной конфигурации вывод будет приблизительно следующим:

Generating filesupdating cache ./config.cachecreating ./config.statuscreating php5.speccreating main/build-defs.hcreating scripts/phpizecreating scripts/man1/phpize.1creating scripts/php-configcreating scripts/man1/php-config.1creating sapi/cli/php.1creating main/php_config.hcreating main/internal_functions.ccreating main/internal_functions_cli.c+--------------------------------------------------------------------+| License:                                                           || This software is subject to the PHP License, available in this     || distribution in the file LICENSE.  By continuing this installation || process, you are bound by the terms of this license agreement.     || If you do not agree with the terms of this license, you must abort || the installation process at this point.                            |+--------------------------------------------------------------------+Thank you for using PHP.Notice: Following unknown configure options were used:--with-vpx-dir=/usrCheck './configure --help' for available options
Производим сборку
make && make install

Вывод при успешной сборке будет приблизительно следующий:

Installing PHP SAPI module:       apache2handler/usr/lib64/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' libphp5.la /usr/lib64/httpd/modules/usr/lib64/apr-1/build/libtool --mode=install cp libphp5.la /usr/lib64/httpd/modules/libtool: install: cp .libs/libphp5.so /usr/lib64/httpd/modules/libphp5.solibtool: install: cp .libs/libphp5.lai /usr/lib64/httpd/modules/libphp5.lalibtool: install: warning: remember to run `libtool --finish /tmp/php-5.3.28/libs'chmod 755 /usr/lib64/httpd/modules/libphp5.so[activating module `php5' in /etc/httpd/conf/httpd.conf]Installing PHP CLI binary:        /usr/local/bin/Installing PHP CLI man page:      /usr/local/man/man1/Installing build environment:     /usr/local/lib/php/build/Installing header files:          /usr/local/include/php/Installing helper programs:       /usr/local/bin/  program: phpize  program: php-configInstalling man pages:             /usr/local/man/man1/  page: phpize.1  page: php-config.1Installing PEAR environment:      /usr/local/lib/php/ Archive_Tar    - installed: 1.3.11 Console_Getopt - installed: 1.3.1warning: pear/PEAR requires package "pear/Structures_Graph" (recommended version 1.0.4)warning: pear/PEAR requires package "pear/XML_Util" (recommended version 1.2.1) PEAR           - installed: 1.9.4Wrote PEAR system config file at: /usr/local/etc/pear.confYou may want to add: /usr/local/lib/php to your php.ini include_path Structures_Graph- installed: 1.0.4 XML_Util       - installed: 1.2.1/tmp/php-5.3.28/build/shtool install -c ext/phar/phar.phar /usr/local/binln -s -f /usr/local/bin/phar.phar /usr/local/bin/pharInstalling PDO headers:          /usr/local/include/php/ext/pdo/

Проверяем установку

 php-5.3.28]PHP 5.3.28 (cli) (built: May 28 2015 23:29:01) Copyright (c) 1997-2013 The PHP GroupZend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies

Закрытие процесса

В большинстве случаев процесс сам знает когда ему закончить работу, т.е. выполнил программу и завершился, но бывают случаи, когда процесс необходимо завершить принудительно. Для того чтобы обратиться к процесс нужно знать его PID или хотя бы имя процесса, чтобы по нему потом определить PID. После того как узнали PID процесса можно отправить сигнал закрытия, это делается командой «kill». Пример:

Бывает такое что процесс не может завершиться, то тогда ему нужно отправить сигнал «принудительное закрытие», это делается командой «kill -9 PID». Ещё процесс можно завершить по имени процесса, для этого используйте команду «killall».

Если вы запустили программу и программа заблокировала консоль используйте сочетание клавиш «Ctrl + C» и программа завершится. Или если просто хотите вернуться консоль не закрывая программу, то нажмите «Ctrl + Z», а далее «bg

Ошибки при обращении к Paperwork

Если вдруг, по какой либо причине вы используете PHP версии выше чем 7.0, например 7.1.X, то готовьтесь к возникновению ошибки. Вместо формы входа вы увидите следующую картину.

Система сообщает об устаревшей и не поддерживаемой функции mcrypt_get_iv_size(). Дело в том, что используемая в Paperwork версия фреймворка Laravel 4.2 несовместима с последними версиями PHP выше чем 7.0. В последнем PHP этой функции уже нет, а в фреймворке есть, отсюда и возникает данная ошибка. Согласно официальной документации PHP использовать эту функцию не рекомендуется.

Вылечить можно двумя способами. Первый, это обновление Laravel до 5-ой версии, в нем эта функция тоже убрана. Но этот способ трудный и долгий. Значительно быстрее отредактировать файл app.php находящийся в директории /frontend/app/config.

nano /var/www/paperwork/frontend/app/config/app.php

В начало файла, после открывающего тега <?php, нужно добавить — error_reporting(E_ALL ^ E_DEPRECATED); выражение запрещающее вывод ошибок. После чего сохранить изменения в файле.

Например вот так:

<?php

error_reporting(E_ALL ^ E_DEPRECATED);

return array(

        /*
        |--------------------------------------------------------------------------
        | Application Debug Mode
        |--------------------------------------------------------------------------
        |
        | When your application is in debug mode, detailed error messages with
        | stack traces will be shown on every error that occurs within your
        | application. If disabled, a simple generic error page is shown.
        |
        */

        'debug' => true,

Если после правки файла обновить страницу в браузере, то есть два варианта того что вы увидите. Вы можете увидеть форму входа в Paperwork, это значит что все исправлено и можно начинать пользоваться системой.

А можете увидеть ошибку, но уже другую.

Теперь система ругается на отключенную в целях безопасности функцию exec. Может когда-то давно, вы могли отключить ее за ненадобностью. Откройте свой php.ini найдите строчку disable_functions и уберите из ее значения функцию exec.

disable_functions = system, exec, phpinfo
Уберите exec
disable_functions = system, phpinfo

Перезапустите PHP, перезагрузите страницу в браузере и начинайте пользоваться Paperwork.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: