Starting php on linux

Starting php on linux

This section contains notes and hints specific to installing PHP on » Debian GNU/Linux.

Unofficial builds from third-parties are not supported here. Any bugs should be reported to the Debian team unless they can be reproduced using the latest builds from our » download area.

While the instructions for building PHP on Unix apply to Debian as well, this manual page contains specific information for other options, such as using either the apt or aptitude commands. This manual page uses these two commands interchangeably.

Using APT

First, note that other related packages may be desired like libapache-mod-php to integrate with Apache 2, and php-pear for PEAR.

Second, before installing a package, it’s wise to ensure the package list is up to date. Typically, this is done by running the command apt update.

Example #1 Debian Install Example with Apache 2

APT will automatically install the PHP module for Apache 2 and all of its dependencies, and then activate it. Apache should be restarted in order for the changes take place. For example:

Example #2 Stopping and starting Apache once PHP is installed

Better control of configuration

In the last section, PHP was installed with only core modules. It’s very likely that additional modules will be desired, such as MySQL, cURL, GD, etc. These may also be installed via the apt command.

Example #3 Methods for listing additional PHP packages

The examples will show a lot of packages including several PHP specific ones like php-cgi, php-cli and php-dev. Determine which are needed and install them like any other with either apt or aptitude . And because Debian performs dependency checks, it’ll prompt for those so for example to install MySQL and cURL:

Example #4 Install PHP with MySQL, cURL

APT will automatically add the appropriate lines to the different php.ini related files like /etc/php/7.4/php.ini , /etc/php/7.4/conf.d/*.ini , etc. and depending on the extension will add entries similar to extension=foo.so . However, restarting the web server (like Apache) is required before these changes take affect.

Common Problems

  • If the PHP scripts are not parsing via the web server, then it’s likely that PHP was not added to the web server’s configuration file, which on Debian may be /etc/apache2/apache2.conf or similar. See the Debian manual for further details.
  • If an extension was seemingly installed yet the functions are undefined, be sure that the appropriate ini file is being loaded and/or the web server was restarted after installation.
  • There are two basic commands for installing packages on Debian (and other linux variants): apt and aptitude . However, explaining the subtle differences between these commands goes beyond the scope of this manual.

User Contributed Notes 6 notes

To refresh this document, perhaps it would be worth mentioning more modern methods to serve php content under apache httpd.

Specifically, the preferred method is now fastcgi, using either of those recipes:

While the legacy mod_php approach is still applicable for some older installations, the fastcgi method is much faster, and require much less RAM to operate, based on similar traffic patterns.

Compiling PHP on Ubuntu boxes.

If you would like to compile PHP from source as opposed to relying on package maintainers, here’s a list of packages, and commands you can run

STEP 1:
sudo apt-get install autoconf build-essential curl libtool \
libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 \
libreadline-dev libzip-dev libzip4 nginx openssl \
pkg-config zlib1g-dev

So you don’t overwrite any existing PHP installs on your system, install PHP in your home directory. Create a directory for the PHP binaries to live

Читайте также:  Samsung tablets with windows

STEP 2:
# download the latest PHP tarball, decompress it, then cd to the new directory.

STEP 3:
Configure PHP. Remove any options you don’t need (like MySQL or Postgres (—with-pdo-pgsql))

./configure —prefix=$HOME/bin/php-latest \
—enable-mysqlnd \
—with-pdo-mysql \
—with-pdo-mysql=mysqlnd \
—with-pdo-pgsql=/usr/bin/pg_config \
—enable-bcmath \
—enable-fpm \
—with-fpm-user=www-data \
—with-fpm-group=www-data \
—enable-mbstring \
—enable-phpdbg \
—enable-shmop \
—enable-sockets \
—enable-sysvmsg \
—enable-sysvsem \
—enable-sysvshm \
—enable-zip \
—with-libzip=/usr/lib/x86_64-linux-gnu \
—with-zlib \
—with-curl \
—with-pear \
—with-openssl \
—enable-pcntl \
—with-readline

STEP 4:
compile the binaries by typing: make

If no errors, install by typing: make install

STEP 5:
Copy the PHP.ini file to the install directory

/bin/php-latest/etc;
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf

STEP 7:
create symbolic links for your for your binary files

/bin
ln -s php-latest/bin/php php
ln -s php-latest/bin/php-cgi php-cgi
ln -s php-latest/bin/php-config php-config
ln -s php-latest/bin/phpize phpize
ln -s php-latest/bin/phar.phar phar
ln -s php-latest/bin/pear pear
ln -s php-latest/bin/phpdbg phpdbg
ln -s php-latest/sbin/php-fpm php-fpm

STEP 8: link your local PHP to the php command. You will need to logout then log back in for php to switch to the local version instead of the installed version

# add this to .bashrc
if [ -d «$HOME/bin» ] ; then
PATH=»$HOME/bin:$PATH»
fi

Источник

Installation on Unix systems

Table of Contents

This section will guide you through the general configuration and installation of PHP on Unix systems. Be sure to investigate any sections specific to your platform or web server before you begin the process.

As our manual outlines in the General Installation Considerations section, we are mainly dealing with web centric setups of PHP in this section, although we will cover setting up PHP for command line usage as well.

There are several ways to install PHP for the Unix platform, either with a compile and configure process, or through various pre-packaged methods. This documentation is mainly focused around the process of compiling and configuring PHP. Many Unix like systems have some sort of package installation system. This can assist in setting up a standard configuration, but if you need to have a different set of features (such as a secure server, or a different database driver), you may need to build PHP and/or your web server. If you are unfamiliar with building and compiling your own software, it is worth checking to see whether somebody has already built a packaged version of PHP with the features you need.

Prerequisite knowledge and software for compiling:

  • Basic Unix skills (being able to operate «make» and a C compiler)
  • An ANSI C compiler
  • A web server
  • Any module specific components (such as GD , PDF libs, etc.)

When building directly from Git sources or after custom modifications you might also need:

  • autoconf: 2.59+ (for PHP >= 7.0.0), 2.64+ (for PHP >= 7.2.0)
  • automake: 1.4+
  • libtool: 1.4.x+ (except 1.4.2)
  • re2c: 0.13.4+
  • bison:
    • PHP 7.0 — 7.3: 2.4 or later (including Bison 3.x)
    • PHP 7.4: > 3.0

The initial PHP setup and configuration process is controlled by the use of the command line options of the configure script. You could get a list of all available options along with short explanations running ./configure —help. Our manual documents the different options separately. You will find the core options in the appendix, while the different extension specific options are described on the reference pages.

When PHP is configured, you are ready to build the module and/or executables. The command make should take care of this. If it fails and you can’t figure out why, see the Problems section.

Some Unix systems (such as OpenBSD and SELinux) may disallow mapping pages both writable and executable for security reasons, what is called PaX MPROTECT or W^X violation protection. This kind of memory mapping is, however, necessary for PCRE’s JIT support, so either PHP has to be built without PCRE’s JIT support, or the binary has to be whitelisted by any means provided by the system.

Note: Cross-compiling for ARM with the Android toolchain is currently not supported.

Источник

Установка окружения для разработки PHP на macOS и Linux

22 августа 2017

Настройка окружения PHP-разработчика в macOS

Как установить и настроить все необходимые компоненты, чтобы подготовить свой мак к полноценной разработке на PHP.

Читайте также:  Плагины для экрана windows

Пакетный менеджер

Скачивать и устанавливать весь требуемый софт мы будем с помощью пакетного менеджера Homebrew.
Пакетный менеджер — это инструмент, который значительно облегчает процесс установки любых программ. С Homebrew установка программы на компьютер сводится буквально к одной команде в терминале.

Но сам Homebrew тоже требуется установить, так как по умолчанию он не входит в состав операционной системы.
Понятная инструкция по его установке есть на главной странице этой программы. Выполните её и переходите к следующему шагу.

Установка PHP

Начнём с установки PHP-интерпретатора.
Все последующие команды выполняются через терминал.
Установить интерпретатор можно через одну простую команду:

Проверим, что всё установилось корректно:

Установка веб-сервера

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

PHP работает в тесной связке с веб-сервером, так как именно последний обращается к нему и, в конечном счёте запускает наши сценарии. В общем, без веб-сервера нам никак не обойтись.

Поднять веб-сервер можно с помощью плагинов для редактора или настроить веб-сервер самостоятельно. Рассмотрим оба варианта.

Использование веб-сервера из редактора

Современные редакторы могут самостоятельно запускать сервер. В VS Code это можно сделать через плагин PHP Server, а в PHP Storm через — PHP Debug Server. По ссылкам есть инструкция с настройками. Для того, чтобы сервер стартовал, нужно чтобы локально был установлен php интерпретатор.

Установка nginx

Рассмотрим как установить веб-сервер самостоятельно.

Установим последнюю версию nginx:

Запускаем nginx, чтобы он работал в фоне и обслуживал наши запросы:

Проверяем, что всё установилось корректно, и nginx успешно работает на нашем компьютере:
откройте любой браузер и введите в адресной строке следующий URL:

в ответ вы должны увидеть страницу с текстом «Welcome to nginx!»

Интеграция PHP и веб-сервера

На этом шаге мы «подружим» PHP-интерпретатор и nginx, чтобы при запросе веб-страниц с расширением.php автоматически выполнялся php-сценарий и мы видели результат его работы в браузере.

Мы сделаем простую настройку сервера так, чтобы он слушал одну папку проекта и выдавал результат через запрос на страницу http://localhost/ .

Откройте конфигурационный файл nginx:

(*) nano — консольный текстовый редактор для Unix и Unix-подобных ОС. Вместо него файлы можно открывать в других редакторах, заменив на nano на phpstorm , code (нужно установить поддержку команды через редактор) для VS Code или другие.

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

USERNAME нужно будет в двух местах заменить на имя вашего пользователя

Здесь мы говорим серверу, чтобы он слушал 80 порт страницы localhost и при запросе показывал содержимое папки yeticave . После USERNAME вы можете выбрать путь до любой удобной для вас папки.

Разрешим nginx читать содержимое нашего проекта

(*)Поменяйте USER на имя вашего пользователя и yeticave на папку вашего проекта

Для того, чтобы изменения применились на 80 порт, нужно перезагрузить сервер с доступом администратора командой:

Установка xdebug

Установить xdebug можно простой командой:

Проверка работы

Базовая настройка окружения закончена. Осталось проверить, что мы всё сделали правильно.
Создадим тестовый PHP-сценарий со следующим содержимым:

Сохраните его по адресу вашего проекта, например, /Users/user/Sites/yeticave в файл index.php . Вновь откройте браузер и перейдите по ссылке http://localhost/index.php. Вы должны увидеть большую страницу с подробной информацией об установленной версии PHP и всех настройках. Это будет означать, что вы всё сделали правильно, а значит готовы писать и запускать свои первые php-сценарии. Обратите внимание, что все файлы и папки проекта при этой конфигурации должны лежать в корне папки yeticave .

Установка MySQL в macOS

Актуальную версию MySQL для macOS можно загрузить с официальной страницы. Для удобства установки рекомендуется загружать DMG Archive. В этом случае процесс установки будет выполняться с помощью стандартного инсталлятора.

Рисунок 1. Окно инсталлятора

Нажимаем Continue пока не дойдём до шага Installation Type . На этом шаге необходимо проверить перечень компонентов для установки. Нажимаем кнопку Customize . Отмечаем все флаги как на рисунке 2.

Рисунок 2. Выбор компонент для установки

Нажимаем Install . После установки отобразится всплывающее окно с автоматически сгенерированным паролем для пользователя root. Обязательно его запомните. Пример окна с автоматически сгенерированным паролем приведён на рисунке 3. Далее нажимаете кнопку Finish . На этом установка MySQL завершена.

Читайте также:  Jpg не удается открыть файл windows 10

Рисунок 3. Автоматически сформированный пароль

Сразу после установки служба MySQL не будет запущена. Запуск необходимо выполнить вручную. Проще всего это сделать через аплет System Preferences . Открываем и запускаем аплет для управления MySQL (рисунок 4). В появившемся окне нажимаем кнопку Start MySQL Server .

Рисунок 4. Окно System Preferences Рисунок 5. Аплет запуска MySQL

Чтобы протестировать соединение с MySQL и получить возможность выполнять базовые задачи, вам потребуется фирменная утилита от Oracle — MySQL Workbench. Установка утилиты выполняется стандартным для macOS способом: запускаем загруженный DMG и в окне инсталлятора перетаскиваем иконку MySQL Workbench в папку Application.

Для тестирования корректности установки MySQL запустим MySQL Workbench и попробуем установить соединение.

Рисунок 6. Главное окно MySQL Workbench

В главном окне MySQL Workbench, в разделе MySQL Connections кликаем по автоматически подготовленному профилю Local instance . Появится окно ввода пароля. Вводите пароль, который вы сохранили на этапе установки. Если пароль верный, то появится окно с предложением указать текущий пароль и установить новый. Выполните это действие и нажмите Ok . В случае установки соединения вы увидите окно как на рисунке.

Рисунок 7. Соединение с MySQL установлено

Установка на Linux

Настроить рабочее окружение для разработки на PHP в Linux возможно несколькими способами. Рассмотрим один из наиболее быстрых способов: настройка связки PHP плюс nginx.

Запустите приложение «Терминал». Ярлык на запуск доступен в менеджере приложений.

Рисунок 1. Окно терминала

  • Обновим локальный индекс пакетов APT
  • Для работы с PHP нам потребуется веб-сервер. В репозиториях доступно несколько популярных веб-серверов, мы отдадим предпочтение nginx. Помимо высокой производительности его легче конфигурировать.
  • Следующим шагом выполним запуска nginx. Запомните эту команду. Она вам пригодится при добавлении новых виртуальных хостов.
  • nginx установлен и теперь нам требуется выполнить базовое конфигурирование. Наша цель — создать новый виртуальный хост, который будет доступен по адресу yourproject.local , где вместо yourproject может быть название вашего проекта. Например: doingsdone.local , eticave.local . Обратите внимание, имена доменов не могут содержать пробелы. Определитесь с именем домена (далее «имя хоста для проекта»). Мы будем ориентироваться на проект yeticave.local , поэтому именно так будем называть конфигурационный файл. Перейдите в директорию sites-available . В этой директории, nginx хранит конфигурационные файлы всех виртуальных хостов. Чтобы увидеть список всех доступных виртуальных хостов, выведите содержимое каталога: Рисунок 2. Список доступных виртуальных хостов
  • Название конфигурационного файла должно совпадать с именем хоста. Поскольку мы планируем сделать конфигурационный файл для хоста yeticave.local , нам потребуется создать файл yeticave.local . Сделаем это:
  • Файл готов, теперь откроем его в консольном редакторе nano (установлен по умолчанию в большинстве современных дистрибутивов) и опишем минимальную конфигурацию.
  • Скопируйте в открытый файл yeticave.local ниже приведённый конфигурационный файл. Информацию обо всех непонятных строках вы сможете почерпнуть из официальной документации к nginx. Рисунок 3. Подготовка конфига Для сохранения изменений в файле нажмите комбинацию клавиш ctrl + o. Затем закройте редактор nano сочетанием клавиш ctrl + x.
  • Протестируем созданный конфигурационный файл на наличие ошибок: Рисунок 4. Тестирование конфигурационного файла nginx
  • На этом процесс создания конфигурационного файла завершён. Активируем только что созданный виртуальный хост. Для этого перейдём в директорию sites-enabled и создадим в ней символическую ссылку на наш конфигурационный файл.
  • Если на текущем шаге попытаться открыть браузер и ввести в адресной строке http://yeticave.local , то ничего, кроме ошибки «Сервер не найден», мы не увидим. Исправим проблему добавлением новой записи в hosts : В самом начале файле добавьте строку: Обратите внимание, мы пишем только доменное имя без указания протокола (http). Сохраняем изменения ctrl + o и закрываем редактор nano сочетанием клавиш ctrl + x .
  • Установка PHP

    Последним компонентом в настройке рабочего окружения станет PHP.

    В окне терминала введите команду для установки php-fpm из репозитория.

    Важно: обязательно обратите внимание на устанавливаемую версию. В зависимости от дистрибутива она может отличаться. Например, в Ubuntu 16.04 устанавливается 7.0. Если номер версии отличается от той, что мы указали в конфигурационном файле yeticave.local , то необходимо её исправить.

    Настройка xdebug

    1. Вводим команду редактирования файла:
    2. Добавляем в файл конфигурацию для xdebug.

    Сохраняем изменения ctrl + o и закрываем редактор nano ctrl + x.

    Источник

    Оцените статью