dimarts, 15 de novembre del 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 del 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)
--with-apxs2filter[=FILE]
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]
--with-apache-hooks[=FILE]
EXPERIMENTAL: Build shared Apache 1.x module. FILE is the optional
pathname to the Apache apxs tool [apxs]
--with-apache-hooks-static[=DIR]
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]
--with-config-file-path=PATH
Set the path in which to look for php.ini [PREFIX/lib]
--with-config-file-scan-dir=PATH
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
[/usr/local/php/bin]
--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

Extensions:

--with-EXTENSION=[shared[,PATH]]

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
--disable-mbregex-backtrack
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)
--with-empress-bcs[=DIR]
Include Empress Local Access support [$EMPRESSPATH]
(Empress Version >= 8.60 required)
--with-birdstep[=DIR] Include Birdstep support [/usr/local/birdstep]
--with-custom-odbc[=DIR]
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:
CPPFLAGS="-DODBC_QNX -DSQLANY_BUG"
LDFLAGS=-lunix
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 10.2.0.3 RPMs (for example) use:
--with-pdo-oci=instantclient,/usr,10.2.0.3
--with-pdo-odbc=flavour,dir
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.:

--with-pdo-odbc=unixODBC

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:

--with-pdo-odbc=generic,dir,libname,ldflags,cflags

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
--without-pdo-sqlite[=DIR]
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
--disable-mysqlnd-compression-support
Enable support for the MySQL compressed protocol in mysqlnd
--with-zlib-dir[=DIR] mysqlnd: Set the path to libz install prefix

PEAR:

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

Zend:

--with-zend-vm=TYPE Set virtual machine dispatch method. Type is
one of CALL, SWITCH or GOTO [TYPE=CALL]
--enable-maintainer-zts Enable thread safety - for code maintainers only!!
--disable-inline-optimization
If building zend_execute.lo fails, try this switch
--enable-zend-multibyte Compile with zend multibyte support

TSRM:

--with-tsrm-pth[=pth-config]
Use GNU Pth
--with-tsrm-st Use SGI'\''s State Threads
--with-tsrm-pthreads Use POSIX threads (default)

Libtool:

--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 del 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

./buildconf

./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

extension=/usr/local/lib/php/extensions/no-debug-zts-20100525/ibm_db2.so
ibm_db2.instance_name=db2inst1


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.

divendres, 28 d’octubre del 2011

Instal·lant una màquina blava - 2) DB2 Express Community Edition

Procedirem a la instal·lació de la base de dades d'IBM, la DB2 en la seva versió lliure de cost, la DB2 Express-C. Hi ha moltes versions, amb unes possibilitats molt interessants, però per a un entorn de desenvolupament, amb la CE en fem suficient.

Amb els repositoris partner activat, tal i com s'indica a l'apartat 1 de la sèries de posts Instal·lant una màquina blava, procedirem a instal·lar DB2 desde la paqueteria d'Ubuntu.


sudo apt-get install db2exc

Un cop instal·lat canviarem les contrasenyes dels usuaris creats:

sudo passwd db2inst1
sudo passwd db2fenc1
sudo passwd dasusr1


Ens loginegem com l'usuari gestor de les instàncies DB2, i certifiquem que s'ha instal·lat correctament:

sudo su db2inst1
db2level

DB21085I Instance "db2inst1" uses "64" bits and DB2 code release "SQL09074"
with level identifier "08050107".
Informational tokens are "DB2 v9.7.0.4", "s110330", "IP23243", and Fix Pack
"4".
Product is installed at "/opt/ibm/db2/V9.7".


Creem una nova base de dades, per exemple CORRETGE ;-)


sudo su db2inst1
db2 create database CORRETGE


Cal tenir en compte que quan diem una base de dades, és un sistema de bases de dades, és a dir un objecte que conté esquemes on cada esquema conté taules i cada taula registres.

Ah, i si no voleu tenir problemes, millor definir els noms de tots els objectes en caixa alta, així evitarem haver d'emprar les cometes a l'hora de qualificar-los, i evitar perdre el temps fins que te n'adones que el problema era aquest. Avisats esteu.

Literatura sobre IBM DB2 Express-C.

Per a poder gestionar còmodament la base de dades, en una màquina client amb les X activades instal·larem l'IBM Data Studio, una perspectiva d'eclipse per a la gestió de qualsevol de les DB2 existents al mercat. Descarreguem el full client des del DownloadDirector d'IBM.

que executarem amb la instrucció

/opt/IBM/DS3.1/eclipse


dijous, 27 d’octubre del 2011

Instal·lant una màquina blava - 1) WebSphere Application Server Community Edition


En aquesta sèrie de posts explicaré com instal·lar una màquina blava, una particular manera de celebrar el centenari d'IBM, amb l'IBM HTTP Server, IBM DB2 i PHP 5.4 en un Ubuntu Server 10.04 LTS de 64 bits.

D'ençà la versió 6.0 de l'IHS (IBM Http Server) aquest producte només s'instal·la amb el WAS (WebSphere
Application Server). Per a fer-ho des del servei de paqueteria d'ubuntu, editarem l'arxiu /etc/apt/sources.list i descomentarem els reposioris partner :


deb http://archive.canonical.com/ubuntu lucid partner

I actualitzem:
sudo apt-get update

Procedim a instal·lar el paqet WAS CE Community Edition, d'utilització lliure de pagament i més lleguer.

sudo apt-get install wasce-server

I bé, ja el tenim instal·lat, comprovem l'status del servidor
sudo /etc/init.d/wasce-server status
* Websphere CE is running

Però no el veiem operatiu!
Executant el que fa l'start de wasce-server des de root, veiem que es triga prop de quatre minuts en arrencar, en una màquina amb dos processadors i 4GB de RAM, així que és questió d'esperar-se fins accedir al WebSphere Application Server Community Edition pel port 8090 i accedir a la cònsola administrativa.

Usuari: system
Contrasenya: manager


No cal dir que s'ha de canviar anant al menú Security/Users and Groups.

dimecres, 26 d’octubre del 2011

The IBM i From a PHP Programmer's Perspective

Al número d'octubre de la revista php|architect hi ha un interessant article sobre PHP i IBM i (AS/400)





IBM and Zend have pushed hard to prove that PHP on the IBM i is a viable solution, and it is. While they tend to gear most of their marketing toward mainframe developers to switch over to PHP, coming to the IBM i from a PHPers experience is a whole different matter. We know the language, just not this well-aged platform. IBM has done their best to make developers welcome but the environment is still different. I'll go through some of the common annoyances of having to work on the i, as well as tips to make life easier. This is not an introduction to programming on the i, just tips to make your life easier. –by Chris Tankersley

dilluns, 26 de setembre del 2011

Zend Reveals DBi, A New Version of MySQL for IBM i

by Alex Woodie from http://www.itjungle.com/tfh/tfh092611-story02.html

IBM i shops that were hesitant to deploy pre-packaged PHP apps on the platform because of the end of MySQL support from Oracle can go forward with their plans now thanks to the public unveiling of Zend DBi, a new IBM i-specific version of MySQL that Zend Technologies will develop, maintain, and support. Zend DBi is slated to ship with the upcoming December release of the Zend PHP software stack for the IBM i server, the company said last week.

Ever since Oracle announced plans to drop MySQL support for i5/OS V5R4 and IBM i 6.1 last December, IBM and Zend have been working to figure out a way to keep the open source database alive on the platform. MySQL is a critical piece of the PHP puzzle, since the majority of pre-packaged PHP applications (such as SugarCRM, Joomla, and Drupal) were designed to use MySQL. Developers writing new PHP apps aren't affected as much, as they can hit the DB2/400 database directly.

The solution to the problem became evident last week when Zend officials shared details of the forthcoming Zend Server 5.5 for IBM i release, which is expected to become generally available in December. The new PHP stack will contain Zend DBi, which Zend's IBM alliance director Michael Scarpato calls a "drop in replacement" for the old release of MySQL for IBM i.

Scarpato on Friday outlined for IT Jungle the current state of MySQL on IBM i support and the plans for making Zend DBi the second officially supported database for the platform. "The status quo at the moment is fine. We ship MySQL as part of Zend Server for 5.1. It's still available from the Oracle website," he says.

"The question in the minds of folks in the i community who rely on MySQL is, 'Who's going to take care of it as it goes forward?'," Scarpato asked rhetorically. "So as problems emerge in the code, or as security fixes need to be applied, or if there's some killer new feature that comes out for other platforms that is very relevant for the i platform as well, how do we get that over? Who's going to take care of that? It's an open source project. So anybody could do it. But who's really going to take responsibility to care and feed it, and then make commercial support available for the community who would like it? So that's going to be Zend."

The initial release of Zend DBi will be, for all intents and purposes, functionally identical to the last supported MySQL for IBM i release to come out of Oracle, even if the actual code isn't quite the same. Zend hasn't finished porting it over, so it's impossible to say how much the code bases will look alike. But the plan going forward is for Zend DBi to diverge from the last supported version of MySQL from Oracle, Scarpato says.

Any changes that Zend makes will be posted back to the MySQL open source project, as per the terms of the GNU GPL license that both MySQL and Zend DBi are distributed under. However, there are currently no plans to make Zend DBi an open source project in its own right, Scarpato says. No beta releases of Zend DBi are planned.

Zend is putting in a lot of work to port Oracle's MySQL source code to IBM i, says Allison Butterill, the Power Systems application development offering manager at IBM. "Oracle provides source code on its website, and anybody can download and create binaries, but it's nowhere close to a trivial task," she says. "Zend is taking that on and will use that code for MySQL as the base for what they're going to provide with Zend DBi."

IBM will continue to develop the IBMDB2i storage engine, which enables PHP applications that use MySQL to actually store data in DB2/400. A new release of the storage engine that works with Zend DBi will be available with Zend Server 5.5 for IBM i in December.

Besides the new database, Zend Server 5.5 for IBM i will also mark the general availability of the new open source XML Toolkit that Zend and IBM have co-developed. The new toolkit, which we first covered in April, was designed to do a better and more transparent job of connecting PHP applications with existing IBM i programs and services. The old toolkit, which was developed by AURA Equipments, will continue to work with Zend Server 5.5, even though it's not distributed as part of the new PHP stack, Zend's senior director of product management Kent Mitchell says.

The new IBM i release of Zend Server 5.5 will bring several other enhancements that have been available for Windows and Linux users for several months. Zend says these include new deployment and IT automation features that will help ease the handoff of PHP applications from development to operations teams, as well as new application delivery functions and automated scaling of enterprise PHP applications.

The new stuff--Zend DBi, the XML Toolkit, and Zend Server 5.5 functions--will be discussed in great detail at the forthcoming ZendCon 2011 conference, which is scheduled for October 17 through 20 in Santa Clara, California. Zend has devoted an entire track to PHP on IBM i topics. PHP on IBM i pros who will be presenting at ZendCon include Mike Pavlak, Alan Seiden, Tony Cairns, and Tim Rowe.

For more information on ZendCon 2011, see www.zendcon.com.

dimarts, 23 d’agost del 2011

PHP 5.2 discontinued

Good news for the PHP community, Johannes Schlüter says:

All PHP users should note that the PHP 5.2 series is NOT supported
anymore. All users are strongly encouraged to upgrade to PHP 5.3.8.

If you are currently in 5.2 and plans to go to 5.3, read the Migrating guide... previously :)

Why is a good choice upgrade to 5.3.x?



  • Support for namespaces




  • Late static binding





  • Lambda Functions and Closures





  • Syntax additions: NOWDOC, ternary short cut "?:" and jump label (limited goto), __callStatic()





  • Under the hood performance improvements





  • Optional garbage collection for cyclic references





  • Optional mysqlnd PHP native replacement for libmysql





  • Improved Windows support including VC9 and experimental X64 binaries as well as portability to other supported platforms





  • More consistent float rounding





  • Deprecation notices are now handled via E_DEPRECATED (part of E_ALL) instead of the E_STRICT error level





  • Several enhancements to enable more flexiblity in php.ini (and ini parsing in general)





  • New bundled extensions: ext/phar, ext/intl, ext/fileinfo, ext/sqlite3, ext/enchant





  • Over 140 bug fixes and improvements to PHP, in particular to: ext/openssl, ext/spl and ext/date




  • Added "max_file_uploads" INI directive, which can be set to limit the number of file uploads per-request to 20 by default, to prevent possible DOS via temporary file exhaustion.





  • Added missing sanity checks around exif processing.




  • Fixed a safe_mode bypass in tempnam().





  • Fixed a open_basedir bypass in posix_mkfifo().




  • Improved LCG entropy. (Rasmus, Samy Kamkar)




  • Added a 3rd parameter to get_html_translation_table. It now takes a charset hint, like htmlentities et al.




  • Methods with the same name as the last element of a namespaced class name will no longer be treated as constructor. This change doesn't affect non-namespaced classes.




  • Added ability to connect to HTTPS sites through proxy with basic authentication using stream_context/http/header/Proxy-Authorization.




  • Added options to debug backtrace functions.




  • Fixed bug #54939 (File path injection vulnerability in RFC1867 File upload filename). Reported by Krzysztof Kotowicz. (CVE-2011-2202)






  • And more Key and Security Enhancements and Fixes.

    dilluns, 15 d’agost del 2011

    baobab l'analitzador d'ocupació de disc gràfic

    Si mai hem d'analitzar l'ocupació d'un disc, per a mostrar l'ocupació de les carpetes i subcarpetes, emprarem la comanda

    sudo du --max-depth=1 -x /

    Però si estem en un entorn gràfic, podem emprar la comanda baobab que fa el mateix que du, però amb capacitat de drill-down i molt còmoda d'emprar, tenim l'aplicació baobab, que pertany al paquet gnome-utils.


    dimecres, 22 de juny del 2011

    Softcatalà presenta la traducció al català del navegador Firefox 5

    Softcatalà, conjuntament amb la comunitat de Mozilla, presenta la traducció al català de la nova versió 5 del ben conegut navegador Firefox. Aquesta nova versió, pocs mesos després de la versió 4, és la primera versió estable després de la nova política d'alliberament d'aplicacions de Mozilla.
    A partir d'ara, hi haurà pel cap baix una nova versió major aproximadament cada 4 mesos. Amb això es pretén portar a l'usuari les diferents innovacions tecnològiques que es vagin incorporant d'una forma més gradual i ràpida que abans.

    Pel que fa a les novetats, més a nivell d'inclusió de noves tecnologies i per a desenvolupadors web, que no a nivell d'interfície d'usuari, en destaquem:

    • Animacions CSS (exemple).
    • Un major rendiment d'aplicacions web que fan ús intensiu del JavaScript.
    • Millores en la implementació de l'HTML5 i altres formats relacionats.
    • Més detalls a Mozilla.cat ...

    Podeu baixar el Firefox 5 en català per al Windows, el GNU/Linux ( tar -xjvf firefox-5.0.tar.bz2 ) i el MacOSX des del Rebost de Softcatalà.

    Si teniu cap dubte o cap problema amb aquesta versió o anteriors, no dubteu a formular una pregunta als fòrums de SoftCatalà.


    Col·laboració

    La traducció del Firefox, com la de la resta d'aplicacions de Mozilla, depèn de la tasca del grup de traducció de Mozilla a Softcatalà. Si voleu ajudar-hi, podeu conèixer quines són les nostres eines i recursos i oferir la vostra ajuda a la llista de treball.



    Quant a Mozilla

    Mozilla és una comunitat global que treballa per assegurar que la xarxa segueixi sent un recurs públic, compartit i obert per a tothom.


    http://www.mozilla.org


    Quant a Softcatalà

    Softcatalà és una associació sense afany de lucre que treballa per la normalització de la llengua catalana en el sector informàtic relacionat amb Internet i les noves tecnologies, a partir de la traducció de programari lliure i de distribució gratuïta. Per a més informació sobre els programes que aquesta associació ha traduït al
    català, podeu consultar el seu lloc web a http://www.softcatala.org

    dimecres, 18 de maig del 2011

    NetBeans IDE 7.0 PHP, git and HTML5 support


    NetBeans IDE 7.0 features the following changes:
    • Introduction of JDK 7 support including editor enhancements (syntax, hints)
    • Revamped support for WebLogic Application Server and GlassFish 3.1
    • Oracle Database improvements
    • HTML5 editing support
    • Maven 3 is supported and bundled with the IDE
    • Improved support for CDI, REST services, Java Persistence, and Bean Validation
    • PHP Rename Refactoring
    • Line wrapping
    • Improved detection of external changes (native file system listening)
    • Updates to the C/C++ support (remote file system browsing, library projects running/debugging, enhanced templates/specializations)
    • Support for Git 1.7.х
    • Additional enhancements are listed at the NetBeans IDE 7.0 New and Noteworthy page

    dilluns, 2 de maig del 2011

    PHP for IBM Power i Toolkit i5 functions list of errors



    Code
    Description
    I5_ERR_OK 
    0
    No error.
    I5_ERR_ERROR  
    1
    Error occurred
    I5_ERR_TOOMUCHOPENFILE 
    2
    Too many open files
    I5_ERR_MEMALLOC 
    3
    Not enough memory
    I5_ERR_INVALIDPTR 
    4
    Invalid pointer (handle); specific message
    I5_ERR_FILENOTFOUND 
    5
    File not found
    I5_ERR_FIELDNOTFOUND 
    6
    Field not found
    I5_ERR_INVALIDFIELDNBR 
    7
    Field number invalid
    I5_ERR_INVALIDKEYLEN 
    8
    Wrong key length
    I5_ERR_INVALIDKEYNBR 
    9
    Wrong key field number
    I5_ERR_NOTENABLETOUPDATE 
    10
    File not allowed to be changed
    I5_ERR_INVALIDOPENMODE 
    11
    File open mode not valid for operation
    I5_ERR_RECORDNOTFOUND 
    12
    Record not found
    I5_ERR_RECORDLOCKED 
    13
    Record locked
    I5_ERR_BEOF 
    14
    End or begin of file reached
    I5_ERR_FILELIMITS 
    15
    Reads out of the file (before or after EOF)
    I5_ERR_NOTCONNECTED 
    16
    Not connected
    I5_ERR_INVALIDSEQ 
    17
    Operation sequence not valid
    I5_ERR_NORANGESET 
    18
    Range not defined
    I5_ERR_NOLINKDEFINED 
    19
    Link not defined
    I5_ERR_NOCURRENTRECORD 
    20
    No current record
    I5_ERR_NULLNOTALLOWED 
    21
    Null operation not applicable (field does not support nulls)
    I5_ERR_BADSESSION 
    22
    AS/400 session not valid
    I5_ERR_WRONGLOGIN 
    23
    Bad login user or password
    I5_ERR_NOTENOUGHRIGHTS 
    24
    User rights problem
    I5_ERR_INVALIDTYPE 
    25
    INVALID TYPE
    I5_ERR_INVALIDINFO 
    26
    Info variable height not enough
    I5_ERR_NOTTYPEPROPERTY 
    27
    Bad property ID
    I5_ERR_RECORDCHANGED 
    28
    The record has changed before update
    I5_ERR_ALLREADYINTRAN 
    29
    Allready in a transaction (nested transaction are not supported)
    I5_ERR_NOTINTRAN 
    30
    Not in a transaction
    I5_ERR_INCORRECTVALUE 
    36
    unable to set the value (out of range; ...)
    I5_ERR_PARAMNOTFOUND 
    37
    Requested parameter does not exist in the description.
    I5_ERR_ENDOFOCC 
    38
    Number of occurences greater than the maximum set in the description.
    I5_ERR_DESC_UNEXP 
    39
    Unexpected error while processing description
    I5_ERR_DQDESC_UNSUPP 
    40
    Unsupported description for a data queue
    I5_ERR_DESC_WRONG_DATAOP 
    41
    Wrong operation on a data field of a description
    I5_ERR_PARSEXML 
    42
    Internal error; please contact Aura Equipement; error number 42
    I5_ERR_PHP_HDLDFT 
    256
    No default connection found.
    I5_ERR_PHP_HDLCONN 
    257
    This resource has no connection active.
    I5_ERR_PHP_HDLBAD 
    258
    Bad connection handle
    I5_ERR_PHP_OPTIONSTYPE 
    259
    The type of " I5_OPTIONS_ALIAS" option must be x and not x
    I5_ERR_PHP_OPTIONSNUMBER 
    260
    Option number -1 is unknown.
    I5_ERR_PHP_RESOURCE_BAD 
    261
    No resource found .
    I5_ERR_PHP_TYPEPARAM 
    262
    Type of element x in parameter -1 must be y. Type z was provided.
    I5_ERR_PHP_NBPARAM_BAD 
    263
    Wrong parameter count
    I5_ERR_PHP_TYPEGET 
    264
    The x function is unable to translate this type (-1).
    I5_ERR_PHP_OPERATOR_BAD 
    265
    Unknown operator (x)
    I5_ERR_PHP_BAD_LEN_PROP 
    266
    The length of the property x is too large; -2 instead of -3 max.
    I5_ERR_PHP_LIST_PROP 
    267
    This element 0¡ is not accepted.
    I5_ERR_PHP_SPOOL_FILE_FOPEN 
    269
    Internal Error on tempory file(x); code error : -1.
    I5_ERR_PHP_API_LENGTH 
    270
    The length of element -1 of parameter is too big (max : -2).
    I5_ERR_PHP_BAD_TYPE_KEYNAME 
    271
    The name property n°-1 must be a string.
    I5_ERR_PHP_BOOKMARK 
    272
    Bookmark value expected for this operator
    I5_ERR_PHP_NOT_BOOKMARK 
    273
    Bookmark value unexpected for this operator
    I5_ERR_PHP_CALL_BINDPARAM 
    274
    The I5_bind_result function can be called only once
    I5_ERR_PHP_GETPARAM 
    275
    specific message
    I5_ERR_PHP_BINDPARAM 
    276
    Internal error; please contact Aura Equipement; error number 276
    I5_ERR_PHP_PARAM_DESC 
    277
    specific message
    I5_ERR_PHP_BLOBSIZE 
    278
    the blob size received(-1) is different of the announced size(-2).
    I5_ERR_PHP_SEEK_FIRSTLAST 
    279
    Bookmark value expected for this operator
    I5_ERR_PHP_PROPERTY_NUMBER 
    280
    This(-1) property number is not valid.
    I5_ERR_PHP_VARIABLE 
    281
    You can't use the I5_bind_param function and specify parameters
    I5_ERR_PHP_BAD_ADDNEW_CST 
    282
    The only constant accpeted are I5_ADDNEW_NOCLEAR or I5_ADDNEW_CLEAR.
    I5_ERR_PHP_NOT_RPIVATE_CONNECTION 
    283
    The restore connection is not allowed.
    I5_ERR_PHP_ALREADY_PGMNAME 
    284
    You cannot call this function; because it was already called or x was called.
    I5_ERR_PHP_PRIVATE_CONNECTION_NOT_FOUND 
    285
    the -1 connection has not been found.
    I5_ERR_PHP_LOCALHOST_NOT_PERMIT 
    286
    you must specify the AS/400 address
    I5_ERR_PHP_INTERNAL 
    288
    Internal error; please contact Aura Equipement; error number 288
    I5_ERR_PHP_EXECUTE 
    289
    You cannot read a request with parameters without calling the I5_execute function.
    I5_ERR_PHP_NO_COMMAND 
    290
    Empty command line or name
    I5_ERR_PHP_EMPTY_ARRAY 
    291
    Internal error; please contact Aura Equipement; error number 291
    I5_ERR_PHP_NO_KEYNAME 
    292
    Unspecified name for array item -1.
    I5_ERR_PHP_NO_PARMNAME 
    293
    Internal error; please contact Aura Equipement; error number 293
    I5_ERR_PHP_NO_ZVALUE 
    294
    Internal error; please contact Aura Equipement; error number 294
    I5_ERR_PHP_COMMAND_ERROR 
    295
    The command returned an error: x.
    I5_ERR_PHP_DATAREA_READ 
    296
    The command returned an error: x.
    I5_ERR_PHP_GET_SYSVAL 
    297
    The command returned an error: x.
    I5_ERR_PHP_UNAVIABLE_PASE 
    298
    This feature is not available on i5/OS environment.
    I5_ERR_PHP_ELEMENT_MISSING 
    304
    An element of the array has a wrong type within function_name(type) function.
    I5_ERR_PHP_BAD_DEF 
    305
    You cannot define an occurence number; and an occurence reference for the same parameter -1.
    I5_ERR_PHP_BAD_KEYNAME 
    306
    Name x is not a property name for a program description
    I5_ERR_PHP_NO_DS_VALUE 
    307
    You cannot set a value for 'Data Structure' x.
    I5_ERR_PHP_BAD_DS_INPUT 
    308
    Values for 'Data Structure' parametre -1 does not match the description.
    I5_ERR_PHP_DTAQ_BADKEY 
    309
    The key is not correct.
    I5_ERR_PHP_DESC_EMPTY 
    310
    The description array is empty.
    I5_ERR_PHP_BAD_PROG_NAME 
    311
    Program not found.
    I5_ERR_PHP_AS400_MESSAGE 
    312
    Internal error; please contact Aura Equipement; error number 312
    I5_ERR_PHP_NOT_DTAQ_KEY 
    313
    No key defined.
    I5_ERR_PHP_EMPTY_NAME 
    314
    Object name can not be empty
    I5_ERR_PHP_BAD_DTAARA_LENGTH 
    315
    Data area x should be from -1 to -2
    I5_ERR_PHP_EMPTY_PCML 
    316
    PCML can not be empty
    I5_ERR_PGM_DONT_EXIST 
    530
    Internal error; please contact Aura Equipement; error number 530
    I5_ERR_FIELDNULL 
    4097
    Field value is NULL