User:Djgreen/Cronserver:Setup
PHP
Packages to add:
up2date 'packagename'
- libpng-devel
- libjpeg-devel
(fixed libjpeg error)
- freetype-devel
(fixed freetype2 error)
- libxml2
- libxml2-devel
(fixed libxml / xml installation issues)
- aspell-devel
(fixed pspell issue)
- net-snmp --skipped
- net-snmp-devel
- php-snmp --skipped
(fixed snmp.h error)
- openldap
- openldap-devel
- openldap-clients
Install PHP 5.1.2 locally:
chronos% mkdir /opt/php-ver chronos% ln -s /opt/php-ver /opt/php5 chronos% ./configure --enable-cli --disable-cgi --prefix=/opt/php5/ \ --exec-prefix=/opt/php5/ --with-bz2 --with-kerberos=/usr/kerberos --with-zlib \ --enable-bcmath --enable-calendar --with-curl --enable-ftp --with-gd --with-ldap \ --with-snmp --enable-mbstring --with-gmp --with-ncurses --enable-exif --with-jpeg-dir \ --with-png-dir --with-freetype-dir --enable-gd-native-tiff --enable-shmop --enable-yp \ --with-gettext --with-ttf --with-pear --enable-memory-limit --with-pic --with-ldap-sasl \ --with-pcntl --with-openssl --with-mysql=/usr/bin --with-mysqli=/usr/bin/mysql_config \ --enable-shared --with-sybase-ct=/opt/sybase-12.5/OCS-12_5 --with-mssql=/opt/freetds chronos% make chronos% make install [root@chronos php-5.1.2]# make install Installing PHP CLI binary: /opt/php5/bin/ Installing PHP CLI man page: /opt/php5/man/man1/ Installing build environment: /opt/php5/lib/php/build/ Installing header files: /opt/php5/include/php/ Installing helper programs: /opt/php5/bin/ program: phpize program: php-config Installing man pages: /opt/php5/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /opt/php5/lib/php/ [PEAR] Archive_Tar - installed: 1.3.1 [PEAR] Console_Getopt - installed: 1.2 pear/PEAR can optionally use package "pear/XML_RPC" (version >= 1.4.0) [PEAR] PEAR - installed: 1.4.6 Wrote PEAR system config file at: /opt/php5/etc/pear.conf You may want to add: /opt/php5/lib/php to your php.ini include_path Installing PDO headers: /opt/php5/include/php/ext/pdo/ [root@chronos php-5.1.2]#
Now you need to create a php.ini file in the /opt/php5/lib folder with the following two lines:
[PHP] memory_limit = 100M
This will allow for scripts with a much higher memory requirement than the standard 8M. Don't enter anything else as the rest of the defaults (as compiled) are fine.
LDAP
Find the file /etc/openldap/ldap.conf
Add this line:
TLS_REQCERT never
Without this, AD LDAP will fail.
MYSQL DRIVERS
Since PHP installs no longer bundle MySQL clients, I've had to locally install MySQL clients on CHRONOS. Anyone wishing to use MYSQL support with the PHP CLI, will need to have the MySQL client locally installed on the cron server running the PHP scripts.
You'll need to download the Mysql5 client RPMs from www.mysql.com -- RHEL doesn't have that version at the moment.
rpm -Uvh MySQL-client-standard-5.0.20-0.rhel4.i386.rpm rpm -Uvh MySQL-devel-standard-5.0.20-0.rhel4.i386.rpm rpm -Uvh MySQL-shared-standard-5.0.20-0.rhel4.i386.rpm
Not entirely sure the latter two are needed.
SYBASE DRIVERS
You'll need to install these drivers in /opt/sybase-12.5/ Replace the default interfaces with the one at /afs/bp/dist/sybase125/
Package provided by ITD - drivers (sybase125.lnx.tar) were in /afs/bp.ncsu.edu/dist/sybase125/src/ when I last looked. Once unpacked, move into the OCS folder, and run OCS.sh to configure the env variables. OK, so running that didn't seem to work... however, setting the following manually did (use only one of these, depending on the shell you're using):
export SYBASE=/opt/sybase-12.5 export SYBASE_OCS=OCS-12_5 export PATH=${SYBASE}/${SYBASE_OCS}/bin:$PATH export LD_LIBRARY_PATH=${SYBASE}/${SYBASE_OCS}/lib:${LD_LIBRARY_PATH} set SYBASE /opt/sybase-12.5 set SYBASE_OCS OCS-12_5 set PATH ${SYBASE}/${SYBASE_OCS}/bin:$PATH set LD_LIBRARY_PATH ${SYBASE}/${SYBASE_OCS}/lib:${LD_LIBRARY_PATH}
Micah has written a wrapper script to run in front of the php cmd so you can skip setting these variables. Be sure to move a copy of it local to the machine.
Also, add the following line to locales.dat (in the /opt/sybase-12.5/locales/ directory) under the linux/english section:
locale = en_US.UTF-8, us_english, utf8
Running
export LANG en_US
would probably also work.
MS-SQL DRIVERS
- To use the MSSQL extension on Unix/Linux, you first need to build and install the FreeTDS library. Source code and installation instructions are available at the FreeTDS home page: http://www.freetds.org/
mkdir /opt/freetds-0.64 ln -s /opt/freetds-0.64 /opt/freetds ./configure --prefix=/opt/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld make make install
References
- http://us3.php.net/mssql
- http://www.freetds.org/userguide/install.htm
- http://www.linuxjournal.com/article/6636
SQSH
- Download from www.sqsh.com.
- Install locally in /opt/sqsh/.
- Using the Linux binaries, run the ./install.sh script to install.
- Easy. When in doubt, go with the default.
Before running:
setenv LANG en_US
(or 'export LANG=en_US')
CRONTAB
All cron files are located in /afs/eos/engrservers/cron/ece_cronjobs/
Be sure to run the CRONTAB BACKUP script (/afs/eos/engrservers/cron/ece_cronjobs/crontab/chronsave.php) so you always can restore the most recent version of the crontab.
ht://check
Installed ht://check from http://htcheck.sourceforge.net/
- Unpack the tarball.
- Created wrt (chronos only) + rd users + 'htcheck' db in Mysql server.
- Moved the PHP files in to w3.wolftech/admin/htcheck, and edited global.inc.php.
mkdir /opt/htcheck-1.2.4-rc1 ln -s /opt/htcheck-1.2.4-rc1 /opt/htcheck ./configure --prefix=/opt/htcheck --with-mysql make make install
- Edited /opt/htcheck/conf/htcheck.conf
- unhashed mysql_conf_file_prefix: htcheck
- added urls to the start_url line
- Created ~/.htcheck.cnf (in root)
[client] hostname=mysql5.ece.ncsu.edu user=htcheck-wrt password=XXXX
- Setup cron to run /opt/htcheck/bin/htcheck -i once a day.