dimarts, 15 de novembre de 2011

Network Upgrade for Ubuntu Servers

  1. Ensure you're up to date with latest release:

    sudo apt-get update
    sudo apt-get upgrade
  2. Install update-manager-core if it is not already installed:

    sudo apt-get install update-manager-core
  3. edit /etc/update-manager/release-upgrades and set Prompt=lts

Note: The minumum contents of /etc/update-manager/release-upgrades should be

[DEFAULT] Prompt=lts
  1. Launch the upgrade tool:

    sudo do-release-upgrade
  2. Follow the on-screen instructions.
  3. At the end of the upgrade process you will be required to restart the server in order to boot into the new kernel. If you do not have access to the console of the system you are upgrading, you may need to edit /boot/grub/menu.lst and change the default boot kernel to the newly installed 10.04 kernel. If this step is not performed your server may attempt to boot into the 8.04 LTS kernel and will hang.

dimecres, 9 de novembre de 2011

PHP Compiler options

--with-libdir=NAME Look for libraries in .../NAME rather than .../lib
--disable-rpath Disable passing additional runtime library
search paths
--enable-re2c-cgoto Enable -g flag to re2c to use computed goto gcc extension

SAPI modules:

--with-aolserver=DIR Specify path to the installed AOLserver
--with-apxs[=FILE] Build shared Apache 1.x module. FILE is the optional
pathname to the Apache apxs tool [apxs]
--with-apache[=DIR] Build Apache 1.x module. DIR is the top-level Apache
build directory [/usr/local/apache]
--enable-mod-charset APACHE: Enable transfer tables for mod_charset (Rus Apache)
EXPERIMENTAL: Build shared Apache 2.0 Filter module. FILE is the optional
pathname to the Apache apxs tool [apxs]
--with-apxs2[=FILE] Build shared Apache 2.0 Handler module. FILE is the optional
pathname to the Apache apxs tool [apxs]
EXPERIMENTAL: Build shared Apache 1.x module. FILE is the optional
pathname to the Apache apxs tool [apxs]
EXPERIMENTAL: Build Apache 1.x module. DIR is the top-level Apache
build directory [/usr/local/apache]
--enable-mod-charset APACHE (hooks): Enable transfer tables for mod_charset (Rus Apache)
--with-caudium[=DIR] Build PHP as a Pike module for use with Caudium.
DIR is the Caudium server dir [/usr/local/caudium/server]
--disable-cli Disable building CLI version of PHP
(this forces --without-pear)
--with-continuity=DIR Build PHP as Continuity Server module.
DIR is path to the installed Continuity Server root
--enable-embed[=TYPE] EXPERIMENTAL: Enable building of embedded SAPI library
TYPE is either '\''shared'\'' or '\''static'\''. [TYPE=shared]
--with-isapi[=DIR] Build PHP as an ISAPI module for use with Zeus
--with-litespeed Build PHP as litespeed module
--with-milter[=DIR] Build PHP as Milter application
--with-nsapi=DIR Build PHP as NSAPI module for Netscape/iPlanet/Sun Webserver
--with-phttpd=DIR Build PHP as phttpd module
--with-pi3web[=DIR] Build PHP as Pi3Web module
--with-roxen=DIR Build PHP as a Pike module. DIR is the base Roxen
directory, normally /usr/local/roxen/server
--enable-roxen-zts ROXEN: Build the Roxen module using Zend Thread Safety
--with-thttpd=SRCDIR Build PHP as thttpd module
--with-tux=MODULEDIR Build PHP as a TUX module (Linux only)
--with-webjames=SRCDIR Build PHP as a WebJames module (RISC OS only)
--disable-cgi Disable building CGI version of PHP

General settings:

--enable-gcov Enable GCOV code coverage (requires LTP) - FOR DEVELOPERS ONLY!!
--enable-debug Compile with debugging symbols
--with-layout=TYPE Set how installed files will be laid out. Type can
be either PHP or GNU [PHP]
Set the path in which to look for php.ini [PREFIX/lib]
Set the path where to scan for configuration files
--enable-safe-mode Enable safe mode by default
--with-exec-dir[=DIR] Only allow executables in DIR under safe-mode
--enable-sigchild Enable PHP'\''s own SIGCHLD handler
--enable-magic-quotes Enable magic quotes by default.
--enable-libgcc Enable explicitly linking against libgcc
--disable-short-tags Disable the short-form <? start tag by default
--enable-dmalloc Enable dmalloc
--disable-ipv6 Disable IPv6 support
--enable-fd-setsize Set size of descriptor sets



NOTE: Not all extensions can be build as '\''shared'\''.

Example: --with-foobar=shared,/usr/local/foobar/

o Builds the foobar extension as shared extension.
o foobar package install prefix is /usr/local/foobar/

--disable-all Disable all extensions which are enabled by default

--with-regex=TYPE regex library type: system, php. [TYPE=php]
WARNING: Do NOT use unless you know what you are doing!
--disable-libxml Disable LIBXML support
--with-libxml-dir[=DIR] LIBXML: libxml2 install prefix
--with-openssl[=DIR] Include OpenSSL support (requires OpenSSL >= 0.9.6)
--with-kerberos[=DIR] OPENSSL: Include Kerberos support
--with-pcre-regex=DIR Include Perl Compatible Regular Expressions support.
DIR is the PCRE install prefix [BUNDLED]
--without-sqlite3[=DIR] Do not include SQLite3 support. DIR is the prefix to
SQLite3 installation directory.
--with-zlib[=DIR] Include ZLIB support (requires zlib >= 1.0.9)
--with-zlib-dir=<DIR> Define the location of zlib install directory
--enable-bcmath Enable bc style precision math functions
--with-bz2[=DIR] Include BZip2 support
--enable-calendar Enable support for calendar conversion
--disable-ctype Disable ctype functions
--with-curl[=DIR] Include cURL support
--with-curlwrappers EXPERIMENTAL: Use cURL for url streams
--enable-dba Build DBA with bundled modules. To build shared DBA
extension use --enable-dba=shared
--with-qdbm[=DIR] DBA: QDBM support
--with-gdbm[=DIR] DBA: GDBM support
--with-ndbm[=DIR] DBA: NDBM support
--with-db4[=DIR] DBA: Berkeley DB4 support
--with-db3[=DIR] DBA: Berkeley DB3 support
--with-db2[=DIR] DBA: Berkeley DB2 support
--with-db1[=DIR] DBA: Berkeley DB1 support/emulation
--with-dbm[=DIR] DBA: DBM support
--without-cdb[=DIR] DBA: CDB support (bundled)
--disable-inifile DBA: INI support (bundled)
--disable-flatfile DBA: FlatFile support (bundled)
--disable-dom Disable DOM support
--with-libxml-dir[=DIR] DOM: libxml2 install prefix
--with-enchant[=DIR] Include enchant support.
GNU Aspell version 1.1.3 or higher required.
--enable-exif Enable EXIF (metadata from images) support
--disable-fileinfo Disable fileinfo support
--disable-filter Disable input filter support
--with-pcre-dir FILTER: pcre install prefix
--enable-ftp Enable FTP support
--with-openssl-dir[=DIR] FTP: openssl install prefix
--with-gd[=DIR] Include GD support. DIR is the GD library base
install directory [BUNDLED]
--with-jpeg-dir[=DIR] GD: Set the path to libjpeg install prefix
--with-png-dir[=DIR] GD: Set the path to libpng install prefix
--with-zlib-dir[=DIR] GD: Set the path to libz install prefix
--with-xpm-dir[=DIR] GD: Set the path to libXpm install prefix
--with-freetype-dir[=DIR] GD: Set the path to FreeType 2 install prefix
--with-t1lib[=DIR] GD: Include T1lib support. T1lib version >= 5.0.0 required
--enable-gd-native-ttf GD: Enable TrueType string function
--enable-gd-jis-conv GD: Enable JIS-mapped Japanese font support
--with-gettext[=DIR] Include GNU gettext support
--with-gmp[=DIR] Include GNU MP support
--with-mhash[=DIR] Include mhash support
--disable-hash Disable hash support
--without-iconv[=DIR] Exclude iconv support
--with-imap[=DIR] Include IMAP support. DIR is the c-client install prefix
--with-kerberos[=DIR] IMAP: Include Kerberos support. DIR is the Kerberos install prefix
--with-imap-ssl[=DIR] IMAP: Include SSL support. DIR is the OpenSSL install prefix
--with-interbase[=DIR] Include InterBase support. DIR is the InterBase base
install directory [/usr/interbase]
--enable-intl Enable internationalization support
--with-icu-dir=DIR Specify where ICU libraries and headers can be found
--disable-json Disable JavaScript Object Serialization support
--with-ldap[=DIR] Include LDAP support
--with-ldap-sasl[=DIR] LDAP: Include Cyrus SASL support
--enable-mbstring Enable multibyte string support
--disable-mbregex MBSTRING: Disable multibyte regex support
MBSTRING: Disable multibyte regex backtrack check
--with-libmbfl[=DIR] MBSTRING: Use external libmbfl. DIR is the libmbfl base
install directory [BUNDLED]
--with-onig[=DIR] MBSTRING: Use external oniguruma. DIR is the oniguruma install prefix.
If DIR is not set, the bundled oniguruma will be used
--with-mcrypt[=DIR] Include mcrypt support
--with-mssql[=DIR] Include MSSQL-DB support. DIR is the FreeTDS home
directory [/usr/local/freetds]
--with-mysql[=DIR] Include MySQL support. DIR is the MySQL base
directory. If mysqlnd is passed as DIR,
the MySQL native driver will be used [/usr/local]
--with-mysql-sock[=DIR] MySQL/MySQLi/PDO_MYSQL: Location of the MySQL unix socket pointer.
If unspecified, the default locations are searched
--with-zlib-dir[=DIR] MySQL: Set the path to libz install prefix
--with-mysqli[=FILE] Include MySQLi support. FILE is the path
to mysql_config. If mysqlnd is passed as FILE,
the MySQL native driver will be used [mysql_config]
--enable-embedded-mysqli MYSQLi: Enable embedded support
Note: Does not work with MySQL native driver!
--with-oci8[=DIR] Include Oracle (OCI8) support. DIR defaults to $ORACLE_HOME.
Use --with-oci8=instantclient,/path/to/instant/client/lib
to use an Oracle Instant Client installation
--with-adabas[=DIR] Include Adabas D support [/usr/local]
--with-sapdb[=DIR] Include SAP DB support [/usr/local]
--with-solid[=DIR] Include Solid support [/usr/local/solid]
--with-ibm-db2[=DIR] Include IBM DB2 support [/home/db2inst1/sqllib]
--with-ODBCRouter[=DIR] Include ODBCRouter.com support [/usr]
--with-empress[=DIR] Include Empress support [$EMPRESSPATH]
(Empress Version >= 8.60 required)
Include Empress Local Access support [$EMPRESSPATH]
(Empress Version >= 8.60 required)
--with-birdstep[=DIR] Include Birdstep support [/usr/local/birdstep]
Include user defined ODBC support. DIR is ODBC install base
directory [/usr/local]. Make sure to define CUSTOM_ODBC_LIBS and
have some odbc.h in your include dirs. f.e. you should define
following for Sybase SQL Anywhere 5.5.00 on QNX, prior to
running this configure script:
CUSTOM_ODBC_LIBS="-ldblib -lodbc"
--with-iodbc[=DIR] Include iODBC support [/usr/local]
--with-esoob[=DIR] Include Easysoft OOB support [/usr/local/easysoft/oob/client]
--with-unixODBC[=DIR] Include unixODBC support [/usr/local]
--with-dbmaker[=DIR] Include DBMaker support
--enable-pcntl Enable pcntl support (CLI/CGI only)
--disable-pdo Disable PHP Data Objects support
--with-pdo-dblib[=DIR] PDO: DBLIB-DB support. DIR is the FreeTDS home directory
--with-pdo-firebird[=DIR] PDO: Firebird support. DIR is the Firebird base
install directory [/opt/firebird]
--with-pdo-mysql[=DIR] PDO: MySQL support. DIR is the MySQL base directoy
If mysqlnd is passed as DIR, the MySQL native
native driver will be used [/usr/local]
--with-zlib-dir[=DIR] PDO_MySQL: Set the path to libz install prefix
--with-pdo-oci[=DIR] PDO: Oracle OCI support. DIR defaults to $ORACLE_HOME.
Use --with-pdo-oci=instantclient,prefix,version
for an Oracle Instant Client SDK.
For Linux with RPMs (for example) use:
PDO: Support for '\''flavour'\'' ODBC driver.
include and lib dirs are looked for under '\''dir'\''.

'\''flavour'\'' can be one of: ibm-db2, iODBC, unixODBC, generic
If '\'',dir'\'' part is omitted, default for the flavour
you have selected will used. e.g.:


will check for unixODBC under /usr/local. You may attempt
to use an otherwise unsupported driver using the "generic"
flavour. The syntax for generic ODBC support is:


When build as shared the extension filename is always pdo_odbc.so
--with-pdo-pgsql[=DIR] PDO: PostgreSQL support. DIR is the PostgreSQL base
install directory or the path to pg_config
PDO: sqlite 3 support. DIR is the sqlite base
install directory [BUNDLED]
--with-pgsql[=DIR] Include PostgreSQL support. DIR is the PostgreSQL
base install directory or the path to pg_config
--disable-phar Disable phar support
--disable-posix Disable POSIX-like functions
--with-pspell[=DIR] Include PSPELL support.
GNU Aspell version 0.50.0 or higher required
--with-libedit[=DIR] Include libedit readline replacement (CLI/CGI only)
--with-readline[=DIR] Include readline support (CLI/CGI only)
--with-recode[=DIR] Include recode support
--disable-session Disable session support
--with-mm[=DIR] SESSION: Include mm support for session storage
--enable-shmop Enable shmop support
--disable-simplexml Disable SimpleXML support
--with-libxml-dir=DIR SimpleXML: libxml2 install prefix
--with-snmp[=DIR] Include SNMP support
--with-openssl-dir[=DIR] SNMP: openssl install prefix
--enable-ucd-snmp-hack SNMP: Enable UCD SNMP hack
--enable-soap Enable SOAP support
--with-libxml-dir=DIR SOAP: libxml2 install prefix
--enable-sockets Enable sockets support
--without-sqlite=DIR Do not include sqlite support. DIR is the sqlite base
install directory [BUNDLED]
--enable-sqlite-utf8 SQLite: Enable UTF-8 support for SQLite
--with-sybase-ct[=DIR] Include Sybase-CT support. DIR is the Sybase home
directory [/home/sybase]
--enable-sysvmsg Enable sysvmsg support
--enable-sysvsem Enable System V semaphore support
--enable-sysvshm Enable the System V shared memory support
--with-tidy[=DIR] Include TIDY support
--disable-tokenizer Disable tokenizer support
--enable-wddx Enable WDDX support
--with-libxml-dir=DIR WDDX: libxml2 install prefix
--with-libexpat-dir=DIR WDDX: libexpat dir for XMLRPC-EPI (deprecated)
--disable-xml Disable XML support
--with-libxml-dir=DIR XML: libxml2 install prefix
--with-libexpat-dir=DIR XML: libexpat install prefix (deprecated)
--disable-xmlreader Disable XMLReader support
--with-libxml-dir=DIR XMLReader: libxml2 install prefix
--with-xmlrpc[=DIR] Include XMLRPC-EPI support
--with-libxml-dir=DIR XMLRPC-EPI: libxml2 install prefix
--with-libexpat-dir=DIR XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)
--with-iconv-dir=DIR XMLRPC-EPI: iconv dir for XMLRPC-EPI
--disable-xmlwriter Disable XMLWriter support
--with-libxml-dir=DIR XMLWriter: libxml2 install prefix
--with-xsl[=DIR] Include XSL support. DIR is the libxslt base
install directory (libxslt >= 1.1.0 required)
--enable-zip Include Zip read/write support
--with-zlib-dir[=DIR] ZIP: Set the path to libz install prefix
--with-pcre-dir ZIP: pcre install prefix
Enable support for the MySQL compressed protocol in mysqlnd
--with-zlib-dir[=DIR] mysqlnd: Set the path to libz install prefix


--with-pear=DIR Install PEAR in DIR [PREFIX/lib/php]
--without-pear Do not install PEAR


--with-zend-vm=TYPE Set virtual machine dispatch method. Type is
--enable-maintainer-zts Enable thread safety - for code maintainers only!!
If building zend_execute.lo fails, try this switch
--enable-zend-multibyte Compile with zend multibyte support


Use GNU Pth
--with-tsrm-st Use SGI'\''s State Threads
--with-tsrm-pthreads Use POSIX threads (default)


--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS] optimize for fast installation [default=yes]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--disable-libtool-lock avoid locking (might break parallel builds)
--with-pic try to use only PIC/non-PIC objects [default=use both]
--with-tags[=TAGS] include additional configurations [automatic]

--with-gnu-ld assume the C compiler uses GNU ld [default=no]

dimecres, 2 de novembre de 2011

Instal·lant una màquina blava - 4) PHP 5.4

I finalment, instal·lem PHP. Al tractar-se d'una màquina de desenvolupament, instal·larem PHP 5.4 Release Candidate 1 i així podrem provar les noves opcions de PHP 5.4 com els traits per a evitar algunes limitacions de les herències úniques pròpies de PHP. Aquestes novetats s'integraran properament a l'IDE NetBeans.

Recuperarem el codi font de PHP:

svn checkout https://svn.php.net/repository/php/php-src/branches/PHP_5_4 php-src-5.4

Preparem llibreries i programes que necessitem per a crear el PHP 5.4 com a mòdul per a l'Apache instal·lat a l'apartat 3 d'aquesta sèrie.

apt-get install aspell curl libaspell-dev libbz2-dev libc-client-dev libcurl4-openssl-dev libfreetype6 libfreetype6-dev libjpeg62 libjpeg62-dev libmcrypt4 libmcrypt-dev libmhash2 libmhash-dev libming-dev libmysqlclient15-dev libncurses-dev libpng3 libpng12-dev libpspell-dev libreadline-dev libsasl2-dev libsnmp-dev libt1-5 libt1-dev libtidy-dev libxml2 libxml2-dev libxml2-utils libxpm4 libxpm-dev libxslt1-dev make build-essential autoconf bison

Configurem el PHP

cd php-src-5.4


./configure --with-apxs2=/usr/bin/apxs2 --disable-short-tags --with-openssl --with-zlib --enable-bcmath --with-bz2=/bin/bzip2 --enable-calendar --with-curl --with-curlwrappers --enable-exif --enable-ftp --with-gd --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-xpm-dir=/usr/lib --with-t1lib --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-imap --with-imap-ssl --with-ldap --with-ldap-sasl --enable-mbstring --with-mcrypt --with-mhash --with-ibm_db2=/opt/ibm/db2/V9.7 --with-pspell --with-readline --with-snmp --enable-soap --enable-sockets --with-tidy --enable-wddx --with-xmlrpc --with-xsl --enable-zip --with-pear --with-kerberos

I procedim a compilar, en una màquina amb 4GB de RAM i 2 processadors a 2,6GHz hem trigat 16 minuts.

make && make install

Instal·lem el php.ini preparat per a desenvolupament

cp php.ini-development /usr/local/lib/php.ini

Instal·lem el mòdul ibm_db2

pecl install ibm_db2

Indicant /opt/ibm/db2/V9.7 com a carpeta on tenim instal·lat el DB2, o allà on pertoqui.

afegim la secció ibm_db2 al php.ini


Arrenquem l'apache

/etc/init.d/apache2 restart

I certifiquem que funciona fent

echo "" > /var/www/index.php
rm /var/www/index.html

I obrint un navegador que apunti al servidor obtindrem

Si volem tenir també opcions de MySQL:

./configure --with-apxs2=/usr/bin/apxs2 --disable-short-tags --with-openssl --with-zlib --enable-bcmath --with-bz2=/bin/bzip2 --enable-calendar --with-curl --with-curlwrappers --enable-exif --enable-ftp --with-gd --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-xpm-dir=/usr/lib --with-t1lib --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-imap --with-imap-ssl --with-ldap --with-ldap-sasl --enable-mbstring --with-mcrypt --with-mhash --with-ibm_db2=/opt/ibm/db2/V9.7 --with-pspell --with-readline --with-snmp --enable-soap --enable-sockets --with-tidy --enable-wddx --with-xmlrpc --with-xsl --enable-zip --with-pear --with-kerberos --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

Instal·lant una màquina blava - 3) IHS : IBM HTTP Server

Per tal de servir planes web i interpretar PHP al vol, instal·larem l'IHS, l'IBM HTTP Server, que és un Apache millorat i assegurat. Pel que es veu, no s'integra dins del WAS i cal instal·lar-ho separat. És a dir que si no tenim intenció de servir aplicacions Java, ens podem saltar el pas 1.

El descarregarem del web d'IBM: IBM HTTP Server i procedim a instal·lar-ho com indica el document Hosting PHP applications on the IBM HTTP Server (gràcies Francisco) :

tar -xvf ihs.7000.linux.ia32.tar /root
cd IHS

Copiem responsefile.txt a opcions.txt editem aquest darrer i acceptem la llicència i modifiquem altres valors per omissió i esborrem la secció de windows:

-OPT silentInstallLicenseAcceptance="true"
-OPT disableOSPrereqChecking="true"
-OPT installLocation="/opt/IBM/HTTPServer"
-OPT createAdminAuth="true"
-OPT adminAuthUser="ihsadmin"
-OPT adminAuthPassword="xxxx"
-OPT adminAuthPasswordConfirm="xxxx"
-OPT runSetupAdmin="true"
-OPT setupAdminUser="ihsadmin"
-OPT setupAdminGroup="www-data"
-OPT washostname="blue.corretge.ct"

I executem la instal·lació en mode silenci, doncs no tenim instal·lades les X al servidor:

java -cp `pwd`/setup.jar -Xms48m -Xmx384m run -options "opcions.txt" -silent

I a nosaltres ens ha cascat. Bé, el fet d'estar en una distribució no suportada per IBM deu haver generate els problemes, així que instal·larem un Apache, serà una màquina blava al 50%. A fi de comptes l'IHS s'arrenca amb la instrucció apachectl.

sudo apt-get install apache2 apache2-threaded-dev apache2-mpm-prefork apache2-utils

I obtenim fàcilment el It works! de la felicitat.

Més endavant ja enllaçarem WASCE amb Apache HTTP Server via mod_jk.