Содержание
- 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.