PHP:Установка и настройка из исходников в Ubuntu

обновлено 9 мин

Статья написана в 2016 году. Команды и версии программ могли устареть — проверяйте по документации.

Содержание
  1. Теперь установим GD
  2. Установка php
  3. Настройка

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools7(https://ru.wikipedia.org/wiki/PHP#cite_note-off_history-7) — «Инструменты для создания персональных веб-страниц»; произносится пи-эйч-пи) — скриптовый язык8(https://ru.wikipedia.org/wiki/PHP#cite_note-8) общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов9(https://ru.wikipedia.org/wiki/PHP#cite_note-tiobe-9).


Установить php в Ubuntu можно через apt-get install php, но более новую версию можно установить только из исходников. На данный момент это версия 5.6.10.Скачиваем ее.

bash
wget http://ar2.php.net/get/php-5.6.9.tar.gz/from/this/mirror

Это основной пакет, так же для php необходимы дополнительные расширения. Сейчас мы их скачаем и установим.

  • Архиваторы

          **— BZIP2**
bash
                    wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
bash
                    tar zxvf bzip2-1.0.6.tar.gz
bash
                    cd  bzip2-1.0.6 
bash
                    make -f Makefile
При компиляции PHP и bzip2 в 64 битной системе, возможно возникнет ошибка: /usr/bin/ld: /usr/local/lib/libbz2.a(bzlib.o): relocation R_X86_64_32S against `.text' ca      n not be used when making a shared object; recompile with -fPIC /usr/local/lib/libbz2.a: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [libtokyocabinet.so.9.8.0] Error 1 Особо не пугайтесь, идете опять в папку bzip2-1.0.6 и редактируете Makefile добавив -fpic -fPIC. Добавить нужно в строке: CFLAGS=-Wall -Winline -O2 -g$(BIGFILES) -
CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g$(BIGFILES)
bash
make -f Makefile
bash
make clean

 И заново make install

 make install
                    Параметр для установки: --with-bz2[=DIR] .

— ZLIB

bash
                 wget http://zlib.net/zlib-1.2.8.tar.gz
bash
                 tar zxvf zlib-1.2.8.tar.gz
                  cd zlib-1.2.8/
bash
                 ./configure --prefix=/usr/local
bash
                 make
bash
                 make install
                Параметры установки: --enable-zip --with-zlib[=DIR] 
  • Криптографические расширения

     **— Mcrypt**
                    http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
bash
                     tar zxvf mcrypt-2.6.8.tar.gz
bash
                     cd mcrypt-2.6.8
bash
                     ./configure --prefix=/usr/local
                     Во время установки выскочит сообщение: "libmcrypt was not found": apt-get install libmcrypt-dev libmhash-dev
bash
                     make
bash
                     make install
                     Параметры установки: --with-mcrypt[=DIR]
         **— Openssl**
bash
                   wget http://www.openssl.org/source/openssl-1.0.2c.tar.gz
bash
                   tar zxvf openssl-1.0.2c.tar.gz
bash
                   cd openssl-1.0.2c
                   При установке на x64 платформу выскакивает ошибка: relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC                    Решение:                   nano Makefile                   добавляем                   CFLAGS=-fPIC .....и.т.д                   Если программу уже ставили, то сначала                   make clean                   make -f Makefile
bash
                   make
bash
                   make install
                 Параметры установки: --with-openssl[=DIR]
  • Расширения для работы с датой и временем

    — Календарь

            Просто включить в установку --enable-calendar .
  • Поддержка языков и кодировок

    — Gettex

bash
             wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.4.tar.gz
bash
             tar zxvf gettext-0.19.4.tar.gz
bash
             cd gettext-0.19.4
bash
             ./configure --prefix=/usr/local
bash
             make
bash
            make install
            Параметры установки: --with-gettext[=DIR]
  • Обработка изображений и GD

    — GD

       — **Установка поддержки jpeg**
    
           Качаем
bash
             wget http://www.ijg.org/files/jpegsrc.v9a.tar.gz
         Распаковываем
bash
             tar zxvf jpegsrc.v9a.tar.gz
bash
             cd jpeg-9a
bash
             ./configure --prefix=/usr/local --enable-shared
bash
            make 
bash
            make install
            Параметр установки --with-jpeg-dir=DIR
  **— Установка png**

     Качаем
         http://prdownloads.sourceforge.net/libpng/libpng-1.6.17.tar.gz?download
     Распаковываем
bash
         tar zxvf libpng-1.6.17.tar.gz
bash
         cd libpng-1.6.17
bash
         ./configure --prefix=/usr/local
bash
         make
bash
         make install
          Параметр установки --with-png-dir=DIR
  **— Устанавливаем libvpx**

     Для установки необходимо установить дополнительные пакеты
         - устанавливаем yasm
        Качаем
bash
            wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
        Распаковываем
bash
            tar zxvf  yasm-1.2.0.tar.gz
bash
            cd yasm-1.2.0
bash
            ./configure
bash
            make
bash
            make install
  **— устанавливаем which**

              Качаем
bash
                  wget http://ftp.gnu.org/gnu/which/which-2.21.tar.gz
              Распаковываем
bash
                  tar zxvf which-2.21.tar.gz
bash
                  cd which-2.21
bash
                  ./configure 
bash
                  make
bash
                  make install
  **— Теперь установим VPX**

              Качаем
bash
                 wget http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.4.0.tar.bz2
             Распаковываем
bash
                 tar xvjf libvpx-1.4.0.tar.bz2
bash
                 cd libvpx-1.4.0
bash
                 sed -e 's/cp -p/cp/' \
                    -i build/make/Makefile &&
bash
                     chmod -v 644 vpx/*.h &&
                ./configure --prefix=/usr \

                           --enable-shared \

                           --disable-static
bash
                    make
              
                          make install
         **Параметр установки для GD —with-vpx**

-установка libxpm

bash
              wget ftp://metalab.unc.edu/pub/Linux/libs/X/libXpm-4.7.tar.gz
bash
              tar zxvf    libXpm-4.7.tar.gz
bash
              cd xpm-3.4g
bash
              apt-get install xutils-dev libx11-dev libxt-dev libxtst-dev libxpm-dev
bash
              xmkmf
              make Makefiles
bash
              make
bash
              make install 
             установка происходит в /usr/lib
**— Далее поставим freetype2**
             http://sourceforge.net/projects/freetype/files/freetype2/2.6/freetype-2.6.tar.gz/download       
        Распакуем
bash
            tar zxvf freetype-2.6.tar.gz
bash
            cd freetype-2.6
bash
            ./configure 
bash
            make
bash
           make install
           Параметр установки для GD --with-freetype-dir=DIR /usr/bin

-fontconfig

bash
          wget http://fontconfig.org/release/fontconfig-2.8.0.tar.gz
bash
          tar zxvf fontconfig-2.8.0.tar.gz
bash
          cd fontconfig-2.8.0
bash
    apt-get install pkg-config libtiff5-dev libxml2-dev
bash
          ./configure
bash
          make
bash
          make install

— Далее поставим t1lib

         Качаем
bash
         wget ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-5.1.2.tar.gz
     Распаковываем
bash
         tar zxvf  t1lib-5.1.2.tar.gz
bash
         cd t1lib-5.1.2
bash
         apt-get install libxaw7-dev
bash
         ./configure 
bash
         make without_doc
bash
         make install  
         Параметр установки для GD --with-t1lib[=DIR]

Теперь установим GD

Качаем

bash
wget https://github.com/libgd/libgd/archive/gd-2.1.1.tar.gz

Распаковываем

bash
tar zxvf gd-2.1.1.tar.gz
bash
cd libgd-gd-2.1.1
bash
apt-get install manpages-posix-dev clang-3.3
Бывает выскакивает вот такое сообщение cmake could not find freetype (missing freetype_include_dirs) Решение заходим в свою папку с Например у меня libgd-gd-2.1.1/cmake/modules/FindFreetype.cmake находим строчку FREETYPE_INCLUDE_DIR_freetype2 freetype/config/ftheader.h и меняем ее на FREETYPE_INCLUDE_DIR_freetype2 freetype2/config/ftheader.h 
cmake -DENABLE_PNG=1 -DENABLE_JPEG=1 -DENABLE_TIFF=1 -DENABLE_FREETYPE=1 -DENABLE_FONTCONFIG=1 -DENABLE_XPM=1
bash
make
bash
make install

-curl

bash
wget http://curl.haxx.se/download/curl-7.43.0.tar.gz
bash
tar zxvf curl-7.43.0.tar.gz
bash
cd curl-7.43.0
bash
./configure --prefix=/usr/local
bash
make 
bash
make install

Установка php

bash
apt-get install lcov libxml2-dev libmysqlclient-dev libstdc++5sudo apt-get install clibcurl4-openssl-dev pkg-config libssl-dev libsslcommon2-dev

Устанавливаем

bash
./configure --with-apxs2=/etc/http/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/bin/mysql_config --with-bz2=/usr/local --enable-gcov  --enable-zip --with-zlib=/usr/local --with-mcrypt=/usr/local --enable-mbstring --with-openssl=/usr/local/ssl --enable-calendar --with-gettext=/usr/local --with-jpeg-dir --with-png-dir --with-freetype-dir --with-t1lib=/usr/local  --with-gd --with-curl=/usr/local --enable-shared --enable-static --with-xpm-dir=/usr/local
bash
make
bash
make install

Настройка

копируем конфигурационный файл

bash
cp php.ini-development /usr/local/lib/php.ini
Далее нам его необходимо открыть 

nano /usr/local/lib/php.ini

найти строку date.timezone 
 - Убрать спереди этой строки ";"
- Добавить часовой пояс Москва: "Europe/Moscow"

Далее открываем конфигурационный файл Apache

bash
nano /etc/http/conf/httpd.conf
проверяем есть ли строка 
 LoadModule php5_module modules/libphp5.so
Так же необходимо добавить в DirectoryIndex
index.php Должно получиться DirectoryIndex index.php index.html

И добавить строчки

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

И все, что нам осталось, это только проверить работу php Для этого в каталоге с Вашим Web-server (DocumentRoot по умолчанию /etc/http/htdocs) создаем файлик, например index.php и пропишим туда следующий код

php
<?php
phpinfo();
?> 

Набираем в адресной строке нашего сайта localhost/test.php и проверяем что получилось.

Статья помогла?

Нашли ошибку или устаревшую команду? Выделите текст и нажмите Ctrl+Enter.