Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
vms:webdev:phpfarm [2014/11/03 13:18] admin [Configuration files] |
vms:webdev:phpfarm [2015/06/23 01:44] admin [Configuration files] |
||
---|---|---|---|
Line 36: | Line 36: | ||
==== Configuration files ==== | ==== Configuration files ==== | ||
- | <color darkslateblue>**Please note that those files location slightly differs from the original (cweiske) version**</color>. Here they reside in **/opt/phpfarm/custom/options.sh** and **/opt/phpfarm/custom/php.ini** while in the original, they resided in **/opt/phpfarm/src/custom-options.sh** and **/opt/phpfarm/src/custom-php.ini**, also the /opt/phpfarm/custom directory **is not present after standard git cloning** (as of release dd4a369), so you'll need to create this directory by yourself, we'll also move the default custom options file to this location: | + | As described in the README.rst file:\\ |
+ | Default configuration options are in src/options.sh. You may create version-specific custom option | ||
+ | <code> | ||
+ | src/custom/options.sh | ||
+ | src/custom/options-<major>.sh | ||
+ | src/custom/options-<major>.<minor>.sh | ||
+ | src/custom/options-<major>.<minor>.<patch>.sh | ||
+ | src/custom/options-<major>.<minor>.<patch>-<flags>.sh | ||
+ | </code> | ||
+ | |||
+ | Where: | ||
+ | |||
+ | <major> is the version's major number (eg. "5" for PHP 5.3.1).\\ | ||
+ | <minor> is the version's minor number (eg. "3" for PHP 5.3.1).\\ | ||
+ | <patch> is the version's patch number (eg. "1" for PHP 5.3.1).\\ | ||
+ | <flag> matches the specific compilation/installation flags (if any) for that PHP version. | ||
+ | |||
+ | See Special flags in version strings for information on supported flags. The flags should appear in the exact same order as listed in that chapter for this to work. | ||
+ | |||
+ | The shell script needs to define a variable named $configoptions with all ./configure options. Do not try to change prefix and exec-prefix. | ||
<code> | <code> | ||
> sudo mkdir /opt/phpfarm/custom | > sudo mkdir /opt/phpfarm/custom | ||
- | > sudo mv /opt/phpfarm/src/default-custom-php.ini /opt/phpfarm/custom/ | + | > sudo cp /opt/phpfarm/src/default-custom-php.ini /opt/phpfarm/custom/ |
</code> | </code> | ||
The global compile options for the PHP versions you'll install can be set in:\\ | The global compile options for the PHP versions you'll install can be set in:\\ | ||
<color darkslateblue>**/opt/phpfarm/custom/options.sh**</color> | <color darkslateblue>**/opt/phpfarm/custom/options.sh**</color> | ||
+ | |||
+ | In our case this files contains the following, it should obviously be adapted to your specific php compile options requierments: | ||
+ | <code> | ||
+ | > sudo nano /opt/phpfarm/custom/options.sh | ||
+ | |||
+ | EXTRA_LIBS="$EXTRA_LIBS -lstdc++ " | ||
+ | export EXTRA_LIBS | ||
+ | configoptions="\ | ||
+ | --with-config-file-scan-dir=/opt/phpfarm/inst/php-${version}/conf.d \ | ||
+ | --enable-cli \ | ||
+ | --with-pear \ | ||
+ | --with-iconv \ | ||
+ | --with-mysql=/usr/bin/mysql_config \ | ||
+ | --with-mysql \ | ||
+ | --with-mysqli \ | ||
+ | --with-pdo-mysql \ | ||
+ | --with-libdir=/lib/x86_64-linux-gnu \ | ||
+ | --enable-ftp \ | ||
+ | --with-gd \ | ||
+ | --enable-gd-native-ttf \ | ||
+ | --with-mcrypt \ | ||
+ | --with-mhash \ | ||
+ | --enable-soap \ | ||
+ | --with-curl \ | ||
+ | --with-zlib \ | ||
+ | --with-zlib-dir \ | ||
+ | --enable-mbstring \ | ||
+ | --with-jpeg-dir=/usr/lib/x86_64-linux-gnu \ | ||
+ | --with-png-dir=/usr/lib/x68_64-linux-gnu \ | ||
+ | --with-gettext \ | ||
+ | --with-mhash \ | ||
+ | --enable-bcmath \ | ||
+ | --enable-sockets \ | ||
+ | --enable-cgi \ | ||
+ | --enable-calendar \ | ||
+ | --enable-zip \ | ||
+ | --enable-pcntl \ | ||
+ | --enable-wddx \ | ||
+ | --with-bz2 \ | ||
+ | --enable-mysqlnd \ | ||
+ | --enable-intl \ | ||
+ | --with-icu-dir=/usr \ | ||
+ | --with-openssl \ | ||
+ | " | ||
+ | </code> | ||
It is also possible to create per-version custom options file by specifying the version number in the file name:\\ | It is also possible to create per-version custom options file by specifying the version number in the file name:\\ | ||
Line 94: | Line 158: | ||
--enable-intl \ | --enable-intl \ | ||
--with-icu-dir=/usr \ | --with-icu-dir=/usr \ | ||
- | --with-sqlite \ | ||
- | --enable-sqlite-utf8 \ | ||
--with-openssl \ | --with-openssl \ | ||
" | " | ||
Line 226: | Line 288: | ||
===== Define System Default PHP Version ===== | ===== Define System Default PHP Version ===== | ||
----- | ----- | ||
- | Using PHPFarm doesn't define a "system wide" PHP executable. In some situations you'll xant to have one version of PHP as your system's default (for cron jobs for example). | + | Using PHPFarm doesn't define a "command line" PHP executable. In some situations you'll want to have one version of PHP as your system's default. |
- | Using the switch-phpfarm command, you can define which version of PHP has to be used as the system default PHP executable: | + | To do this, first add inst/bin, inst/current/bin and inst/current/sbin to your $PATH in ~/.bashrc: |
+ | <code> | ||
+ | > nano $HOME/.bashrc | ||
- | <code> | + | ADD THIS AT THE END: |
- | > cd /opt/phpfarm/inst/bin | + | # phpfarm binaries |
- | > ./switch-phpfarm 5.4.4 | + | PATH="$PATH:/opt/phpfarm/inst/bin:/opt/phpfarm/inst/current/bin:/opt/phpfarm/inst/current/sbin" |
</code> | </code> | ||
- | <color coral>**THIS NEEDS TO BE VERIFIED AS IT DOESN'T SEEM TO WORK...**</color> | + | You could logout and login to a new session to have this modification active, but if you do not want to restart your session for this, issue: |
- | ++++ | + | |
- | A possible solution that still needs to be validated:| | + | |
- | [[http://stackoverflow.com/questions/23330670/multiple-php-on-apache-centos]] | + | |
- | + | ||
- | add this to the bottom of .bashrc for root and non-root user. The .bashrc file can be found in the users root folder or cd ~/ then ls -all and you should see it. | + | |
<code> | <code> | ||
- | PATH="$PATH:/opt/phpfarm/inst/bin:/opt/phpfarm/inst/current-bin" | + | > source $HOME/.bashrc |
</code> | </code> | ||
- | also execute this in terminal after you have added it to the .bashrc files for root and non-root user | + | Using the switch-phpfarm command, you can check or define which version of PHP has to use as the system default PHP executable: |
+ | Without a version number it will show you the currently available PHP versions, a star will indicate the current default: | ||
<code> | <code> | ||
- | export PATH="$PATH:/opt/phpfarm/inst/bin:/opt/phpfarm/inst/current-bin" | + | > switch-phpfarm |
+ | 5.4.4 | ||
+ | * 5.4.6 | ||
+ | |||
+ | > switch-phpfarm 5.4.4 | ||
+ | Setting active PHP version to 5.4.4 | ||
+ | PHP 5.4.4 (cli) (built: Nov 3 2014 13:33:16) | ||
+ | Copyright (c) 1997-2012 The PHP Group | ||
+ | Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies | ||
</code> | </code> | ||
- | now exit the terminal and log back in. try this command | + | To make sure you now have the desired php version available from the command line: |
+ | <code> | ||
+ | > php -v | ||
+ | PHP 5.4.4 (cli) (built: Nov 3 2014 13:33:16) | ||
+ | Copyright (c) 1997-2012 The PHP Group | ||
+ | Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies | ||
- | <code> | + | > which php |
- | > switch-phpfarm 5.5.11 | + | /opt/phpfarm/inst/current/bin/php |
</code> | </code> | ||
- | ++++ | ||
----- | ----- | ||
===== Install Xdebug ===== | ===== Install Xdebug ===== | ||
----- | ----- | ||
In a PHP development environment, have a debugger might come handy, follow [[vms:webdev:phpfarm:xdebug|the instructions of this section]] to install XDebug on top of your chosen PHP version. | In a PHP development environment, have a debugger might come handy, follow [[vms:webdev:phpfarm:xdebug|the instructions of this section]] to install XDebug on top of your chosen PHP version. |