Intereting Posts
Как получить идентификатор пользователя и поместить его в таблицу ошибка с использованием include_once в php Цель Symphony2 Dynamic Logout? Каков наилучший способ уведомления пользователя после перенаправления правила access_control? Woocommerce бесплатная доставка на основе выбранного платежного шлюза не может хранить значения в memcache Проблемы с кодировкой PHP и апострофы при вставке из MS Word Получить внешние координаты пути SVG (getBBox)? Carbon.php Символ разделения не найден. Данные отсутствуют. URL-адрес URL-адреса PHP от /buildimg.php?1=2816 до /picture_2816.png? PHP PDO: как переподготовка заявления влияет на производительность как изменить размер изображения с URL-адреса и уменьшить размер изображения Добавление пространства имен в файл Zend_Feed_Writer_Feed Как вы изменяете атрибут id текущего селектора изнутри секции диалогового окна jQuery? PHP-парсер PHP, который позволяет мне делать выбор класса и получать родительские узлы

несколько php на apache centos

Как можно одновременно запускать несколько версий php на Centos 6.5?

Вот как.

Требования
Centos 6.5 (возможно работает с 6.6 и 7)
Apache Apache / 2.2.15 (возможно, работает с другими версиями)

Это руководство устанавливает и использует
FASTCGI (см. Комментарии для альтернативной установки)
PHPFARM

Эта установка была выполнена таким образом, чтобы она совместима с iredmail.
Вы можете установить iredmail на сервер с этой настройкой.

Шаг 1
Установка PHPFarm

yum install gcc libxml2-devel openssl-devel bzip2-devel curl-devel libjpeg-devel freetype-devel icu libicu-devel gcc-c++ postgresql-devel aspell-devel git -y $ cd /opt/ $ git clone https://github.com/cweiske/phpfarm.git phpfarm $ cd phpfarm/src/ $ cd /opt/phpfarm/src/ 

Для каждой версии php вы хотите запустить это. Однако, если вы хотите, чтобы пользовательские модули, такие как поддержка mysql, пропустили это и увидели деталь чуть ниже нее.

 $ ./compile.sh 5.3.1 $ ./compile.sh 5.3.3 $ ./compile.sh 5.5.11 

Если вы получаете ошибки компиляции, перезагрузитесь и попробуйте./compile.sh 5.3.1 снова Это сработало для меня, когда я столкнулся с этой проблемой

Поддержка MYSQL и модулей
Шаги для получения поддержки MySQL (и других модулей) для установки phpfarm для php версии 5.5.14. Эти инструкции работают для любой версии, просто переименуйте 5.5.14 на то, что когда-либо было похоже на 5.4.3. Конечно, вам понадобится сервер mysql для подключения, чтобы использовать модуль mysql в php.
Эти шаги необходимо выполнить в этом порядке
Шаг 1А
Убедитесь, что у вас есть эти пути и время даты правильное. Я сделал это как root. У вас должна быть дата. Timezone, которую вы собираетесь использовать.

 cd /opt/phpfarm/src vi custom-php.ini date.timezone=America/Halifax include_path=".:/opt/phpfarm/inst/php-$version/pear/php/" 

Шаг 1B
Убедитесь, что у вас есть эти пути и правильное время

 cd /opt/phpfarm/src vi default-custom-php.ini date.timezone=America/Halifax include_path=".:/opt/phpfarm/inst/php-$version/pear/php/" 

Шаг 1С
Обратите особое внимание на эту строку

 --with-config-file-path=/opt/phpfarm/inst/php-5.5.11/lib/ \ 

его нужно будет скорректировать для версии, с которой вы работаете. Как root

 vi custom-options-5.5.14.sh #!/bin/bash #gcov='--enable-gcov' configoptions=" --disable-debug \ --with-config-file-path=/opt/phpfarm/inst/php-5.5.11/lib/ \ --enable-short-tags \ --with-pear \ --enable-bcmath \ --enable-calendar \ --enable-exif \ --enable-ftp \ --enable-mbstring \ --enable-pcntl \ --enable-soap \ --enable-sockets \ --enable-wddx \ --enable-zip \ --with-zlib \ --with-gettext \ --enable-pdo \ --with-pdo-mysql \ --enable-cgi \ --enable-json \ --with-curl \ --with-openssl \ --enable-openssl \ --with-mysql \ --enable-mysql \ $gcov" 

Шаг 1D
Теперь скомпилируйте его как root. Phpfarm автоматически будет искать файл с именем custom-options-5.5.14.sh при компиляции 5.5.14 или любой другой версии с соответствующими номерами версий.

 ./compile.sh 5.5.14 

Позже, когда вы просматриваете свою веб-страницу с помощью phpinfo (); функции, вы увидите поддержку этих модулей и другой текст «Configure Command» на странице.


Если эти шаги не будут завершены, то вам, возможно, придется это сделать снова. Для этого сначала удалите файлы из папки src и папки inst.

 rm -rf /opt/phpfarm/inst/php-5.5.14 rm -rf /opt/phpfarm/src/php-5.5.14 

Rm удалит папку, а -rf обозначает r рекурсивный и f force. Ссылка: http://linuxcommand.org/lc3_man_pages/rm1.html


Если у вас есть ошибки, проверьте этот сайт. Есть и другие, но я нашел это полезным.

20+ common PHP compilation errors and fix – Unix


Ссылка на поддержку mysql и модуля

Ошибка активации расширения php с помощью PHP Farm

Ошибки компиляции PHP
http://crybit.com/20-common-php-compilation-errors-and-fix-unix/


Шаг 2
Добавление phpfarm в ваши профили

добавьте это в конец .bashrc для пользователя root и non-root. Файл .bashrc можно найти в корневой папке пользователей или cd ~ / then ls -all, и вы должны увидеть его.

 PATH="$PATH:/opt/phpfarm/inst/bin:/opt/phpfarm/inst/current-bin" 

также выполните это в терминале после того, как вы добавили его в файлы .bashrc для пользователя root и non-root

 export PATH="$PATH:/opt/phpfarm/inst/bin:/opt/phpfarm/inst/current-bin" 

теперь выйдите из терминала и войдите в систему. Попробуйте эту команду

 switch-phpfarm 5.5.11 

вы должны иметь возможность переключаться между версиями diff php

 [root@test joe]# switch-phpfarm 5.5.11 Setting active PHP version to 5.5.11 PHP 5.5.11 (cli) (built: May 17 2014 22:01:31) (DEBUG) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies [root@test joe]# 

добавьте репо для CentOS / RHEL 6, 64 бит (x86_64):

 cd /tmp rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm 

Шаг 3
установить юмы

 yum install php php-cli mod_fastcgi 

ПРИМЕЧАНИЕ. В этот момент, если вы попытаетесь запустить switch-phpfarm 5.5.11, он не будет работать нормально, но это нормально. мы по-прежнему будем иметь возможность запускать несколько веб-сайтов с разными версиями php

Шаг 4
Убедитесь, что ваш cgi-bin создан и файлы настроены

 $ cd /var/www 

Если cgi-bin еще не здесь, создайте его

 $ mkdir cgi-bin 

Для каждой версии php вы намерены использовать один из этих файлов. Замените окончание номером версии

 vi /var/www/cgi-bin/php.fastcgi.5.5.11 

шаг 5
Внутри файла php.fastcgi.5.5.11

 #!/bin/bash PHPRC="/opt/phpfarm/src/php-5.5.11/php.ini-development" PHP_FCGI_CHILDREN=4 PHP_FCGI_MAX_REQUESTS=1000 export PHPRC export PHP_FCGI_CHILDREN export PHP_FCGI_MAX_REQUESTS exec /opt/phpfarm/inst/bin/php-cgi-5.5.11 

Первая строка

 PHPRC="/opt/phpfarm/src/php-5.5.11/php.ini-development" 

Сообщает вам, что witch php.ini использовать это в ubuntu. Последняя строка

 exec /opt/phpfarm/inst/bin/php-cgi-5.5.11 

также необходимо изменить для каждой конкретной версии. Я не уверен, что он делает, но я знаю, что его нужно изменить.

Шаг 6
Включить файлы fastcgi для выполнения для apache: пользователь и группа apache

Пример 1

 [root@test joe]# chown apache:apache /var/www/cgi-bin/php.fastcgi.5.5.11 [root@test joe]# chmod +x /var/www/cgi-bin/php.fastcgi.5.5.11 

Пример 2.

 [root@test joe]# chown apache:apache /var/www/cgi-bin/php.fastcgi.5.3.3 [root@test joe]# chmod +x /var/www/cgi-bin/php.fastcgi.5.3.3 

Пример 3.

 [root@test joe]# chown apache:apache /var/www/cgi-bin/php.fastcgi.5.3.1 [root@test joe]# chmod +x /var/www/cgi-bin/php.fastcgi.5.3.1 

Шаг 7
Редактирование файла httpd.conf
Вот что вам нужно для файла /etc/httpd/conf/httpd.conf. Сначала найдите «NameVirtualHost *: 80» и используйте это как отправную точку. «#» Означает, что строка закомментирована. Раскомментируйте эту строку, удалив #. Теперь это должно выглядеть так.

 NameVirtualHost *:80 

Это позволит нескольким виртуальным хостам работать в Apache по их «ServerName» в каждой ссылке виртуального хоста. Я оставил некоторые строки, прокомментированные, чтобы показать вам, с чем вы можете обойтись. Убедитесь, что дно /etc/httpd/conf/httpd.conf выглядит так.

 <VirtualHost *:80> ServerName test1.com #ServerAdmin admin@tecadmin.net DocumentRoot /var/www/html/test1 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/html/test1"> Options +Indexes FollowSymLinks +ExecCGI AddHandler php5-fastcgi .php Action php5-fastcgi /cgi-bin/php.fastcgi.5.5.11 AllowOverride All Order allow,deny Allow from All </Directory> </VirtualHost> <VirtualHost *:80> ServerName test2.com # ServerAdmin admin@tecadmin.net DocumentRoot /var/www/html/test2 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/html/test2"> Options +Indexes FollowSymLinks +ExecCGI AddHandler php5-fastcgi .php Action php5-fastcgi /cgi-bin/php.fastcgi.5.3.3 AllowOverride All Order allow,deny Allow from All </Directory> </VirtualHost> <VirtualHost *:80> ServerName test3.org # ServerAdmin admin@tecadmin.net DocumentRoot /var/www/html/test3 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/html/test3"> Options +Indexes FollowSymLinks +ExecCGI AddHandler php5-fastcgi .php Action php5-fastcgi /cgi-bin/php.fastcgi.5.3.1 AllowOverride All Order allow,deny Allow from All </Directory> </VirtualHost> <VirtualHost *:80> ServerName test4.net # ServerAdmin admin@tecadmin.net DocumentRoot /var/www/html/test6 </VirtualHost> 

Шаг 8
Редактирование файла etc / hosts
вот что вам нужно в файле etc / hosts.

 127.0.0.1 localhost test1.com test2.com test3.org test4.net ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 

Шаг 9

Теперь перезагрузите сервер

 service httpd restart 

Шаг 10
тестирование
если вы добавите phpinfo () на каждый из сайтов index.php, вы заметите, что все версии PHP будут разными. также последняя версия test4.net по умолчанию будет использоваться для centos. Также обратите внимание, что test3.org и test4.net не являются .com, но все равно будут работать. В будущем я планирую составить руководство для файлов phpfarm, чтобы вы могли установить их с поддержкой mysql. Это была еще одна проблема, с которой я столкнулся. Если вы заметили некоторые ошибки в этом или затруднили его работу, прокомментируйте это, и я приеду к нему, как только смогу.

    Несколько уведомлений от меня:

    1. yum install php php-cli mod_fastcgi . mod_php не должен быть включен. также mod_fastcgi можно установить без внешнего репозитория, используя mod_fcgid
    2. Для PHP 5.2 и libxml> = 1.2.9 вам необходимо применить этот патч libxml29_compat.patch
    3. для установки версии php для всего хоста без включенного mod_php добавьте это в httpd.conf

       <Directory "/var/www"> Options All +ExecCGI AddHandler php-cgi .php Action php-cgi /cgi-bin/php.fastcgi.5.5.18 </Directory> 
    4. при компиляции на 64-битных системах компиляция не выполняется из-за папки lib64, поэтому вы должны добавить --with-libdir=lib64 в configoptions