skyBuilders timeLines GNU/Linux/Apache/PHP/PostgreSQL Installation HOWTO
Interesting links (in no particular order):
RedHat
The GNU Project
The Apache Software Foundation
The Comprehensive Perl Archive Network
PHP Hypertext Preprocessor (documentation)
PostgreSQL (documentation)
Open Secure Shell
The National Institute of Standards and Technology
WebMin
This is the process for configuring a new RedHat 7.3/8.0 installation to become a skyBox capable of running (and developing) skyBuilders timeLines. This process in deprecated in favor of HOWTO Build a skyHost running RedHat 9.0. In order to be capable of this, there are a few required services and utilities:
-
httpd service with middleware: Apache mod_perl and mod_php
-
RDBMS: PostgreSQL
-
GUI for maintenance and development: XFree86, Gnome
-
Editing and Network Utilities: the GNU Project system of software tools
skyBox3, the machine used for this trial run has specs as follows:
-
CPU: Intel Celeron 900MHz, 128MB cache
-
RAM: 507MB + 16MB shared
-
Hard Drives: Maxtors
hda = ~19500MB
hdc = ~39000MB
-
CD-ROM: BCD 48SB I/OMAGIC
-
NICs:
NetGear FA310TX
SiS 900 PCI
-
Display Adapter: SiS 630/730
-
Monitor: Hitachi CM751U
Install RedHat 7.3 or 8.0
Partitioning recommendation:
|
name
|
recommended (100%)
|
actual (58.5GB)
|
format
|
drive
|
|
/
|
10% (6GB)
|
6GB
|
ext3
|
hda
|
|
/boot
|
50MB
|
50MB
|
ext3
|
hda
|
|
/swap
|
2xRAM (1GB)
|
1GB
|
N/A (linux swap)
|
hdc
|
|
/tmp
|
2GB
|
2GB
|
ext3
|
hda
|
|
/home
|
10% (6GB)
|
11GB
|
ext3
|
hda
|
|
/var
|
30% (18GB)
|
23GB
|
ext3
|
hdc
|
|
/usr
|
20% (12GB)
|
15GB
|
ext3
|
hdc
|
IP Address: 206.253.4.20
NetMask: 255.255.255.224
Gateway: 206.253.4.1
Note: During the install process, in the network configuration section, once the IP and netmask were indicated, the interface filled in two other fields. It suggested .30 as the gateway, and .1 as the name server. Odd.
DNS Servers:
209.87.64.70
209.87.79.232
The choices made during installation are logged in /root/install.log and a kickstart file for the RedHat Anaconda installer is in /root/anaconda-ks.cfg
Add crontab for NIST clock synchronization
(add other things like updating the root hints file and the file db later)
# cd /root
# mkdir scripts
# cd scripts
Download http://jesse.skybuilders.com/scratch/other/misc_linux/miscScripts.tar
# tar -xvf miscScripts.tar
# crontab clockSync.cron
To see current settings, # crontab -l
Enable ssh for all users except root.
SSH lives in /etc/ssh
Edit sshd_config
Find the commented line that reads "# PermitRootLogin off"
Add the following line, "PermitRootLogin on"
Go to the end of the file
After the last line, add a line that reads "AllowUsers dtd jesse bobdoyle" ("AllowUsers" followed by a tab followed by a space-delimited list of usernames to allow)
Test login
There is an upgrade for openSSH (possibly available from the website), which patches a security hole to which we are not, under our current settings, vulnerable. The ideal version would be 0.9.6e
To report current version:
# rpm -q <rpmname>
To upgrade with verbose and progress bar:
# rpm -Uvh <rpmname>
Possibilities
WebMin? Probably unnecessary.
SFTP? May already be enabled under SSH. Requires research. timeLines File Server would be preferable (with directory- and file-level permissioning for all files (not just skyPages)).
Locate Apache httpd
-
/etc/httpd is the program directory
-
/etc/httpd/conf/httpd.conf is the configuration file
-
/var/www/html is the wwwroot/home directory for the server
-
# service httpd start/restart/stop/status can be used to control the service
Set httpd to start on boot
To check the current setting:
# chkconfig httpd --list
To set the service to start on boot:
# chkconfig httpd --level 3456 on
Test http service
Open any browser to skybox3.skybuilders.com
The index page should be the Apache test page
Locate Perl
Perl is not a service - it runs when called.
/usr/bin/perl is Perl itself (this is the path that needs to go in the first line of every file)
Apply settings to each directory that wants to run Perl in sections in httpd.conf (if the default example is used, Perl will try to execute for any file in the directory, not limited by file type)
Test Perl
Download test.pl and/or simpletest.pl into a Perl-enabled directory
direct a browser at the file and check the output
Test PHP
Create a file called test.php in the web root (in this case '/var/www/html/') and put into it one line: '
phpinfo()
 PHP Version 5.2.5
|
| System | Linux skyline1.skybuilders.com 2.6.18.8-linode22 #1 SMP Tue Nov 10 16:12:12 UTC 2009 i686 |
| Build Date | Apr 24 2008 10:37:31 |
| Configure Command | './configure' '--build=i386-redhat-linux-gnu' '--host=i386-redhat-linux-gnu' '--target=i386-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic' '--disable-rpath' '--without-pear' '--with-bz2' '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-expat-dir=/usr' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-kerberos' '--enable-ucd-snmp-hack' '--with-unixODBC=shared,/usr' '--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--without-mime-magic' '--without-sqlite' '--with-libxml-dir=/usr' '--with-xml' '--with-system-tzdata' '--with-apxs2=/usr/sbin/apxs' '--without-mysql' '--without-gd' '--without-odbc' '--disable-dom' '--disable-dba' '--without-unixODBC' '--disable-pdo' '--disable-xmlreader' '--disable-xmlwriter' '--disable-json' '--without-pspell' |
| Server API | Apache 2.0 Handler |
| Virtual Directory Support | disabled |
| Configuration File (php.ini) Path | /etc |
| Loaded Configuration File | /etc/php.ini |
| Scan this dir for additional .ini files | /etc/php.d |
| additional .ini files parsed | /etc/php.d/dbase.ini,
/etc/php.d/dom.ini,
/etc/php.d/json.ini,
/etc/php.d/mbstring.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_pgsql.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/pgsql.ini,
/etc/php.d/xmlreader.ini,
/etc/php.d/xmlwriter.ini,
/etc/php.d/xsl.ini,
/etc/php.d/zip.ini
|
| PHP API | 20041225 |
| PHP Extension | 20060613 |
| Zend Extension | 220060519 |
| Debug Build | no |
| Thread Safety | disabled |
| Zend Memory Manager | enabled |
| IPv6 Support | enabled |
| Registered PHP Streams | php, file, data, http, ftp, compress.bzip2, compress.zlib, https, ftps, zip |
| Registered Stream Socket Transports | tcp, udp, unix, udg, ssl, sslv3, sslv2, tls |
| Registered Stream Filters | string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, convert.iconv.*, bzip2.*, zlib.* |
This program makes use of the Zend Scripting Language Engine: Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
|
Configuration
PHP Core
| Directive | Local Value | Master Value |
| allow_call_time_pass_reference | Off | Off |
| allow_url_fopen | On | On |
| allow_url_include | Off | Off |
| always_populate_raw_post_data | Off | Off |
| arg_separator.input | & | & |
| arg_separator.output | & | & |
| asp_tags | Off | Off |
| auto_append_file | no value | no value |
| auto_globals_jit | On | On |
| auto_prepend_file | no value | no value |
| browscap | no value | no value |
| default_charset | utf-8 | utf-8 |
| default_mimetype | text/html | text/html |
| define_syslog_variables | Off | Off |
| disable_classes | no value | no value |
| disable_functions | no value | no value |
| display_errors | Off | Off |
| display_startup_errors | Off | Off |
| doc_root | no value | no value |
| docref_ext | no value | no value |
| docref_root | no value | no value |
| enable_dl | On | On |
| error_append_string | no value | no value |
| error_log | no value | no value |
| error_prepend_string | no value | no value |
| error_reporting | 6133 | 6133 |
| expose_php | On | On |
| extension_dir | /usr/lib/php/modules | /usr/lib/php/modules |
| file_uploads | On | On |
| highlight.bg | #FFFFFF | #FFFFFF |
| highlight.comment | #FF8000 | #FF8000 |
| highlight.default | #0000BB | #0000BB |
| highlight.html | #000000 | #000000 |
| highlight.keyword | #007700 | #007700 |
| highlight.string | #DD0000 | #DD0000 |
| html_errors | On | On |
| ignore_repeated_errors | Off | Off |
| ignore_repeated_source | Off | Off |
| ignore_user_abort | Off | Off |
| implicit_flush | Off | Off |
| include_path | .:/usr/share/pear:/usr/share/php | .:/usr/share/pear:/usr/share/php |
| log_errors | On | On |
| log_errors_max_len | 1024 | 1024 |
| magic_quotes_gpc | Off | Off |
| magic_quotes_runtime | Off | Off |
| magic_quotes_sybase | Off | Off |
| mail.force_extra_parameters | no value | no value |
| max_execution_time | 30 | 30 |
| max_input_nesting_level | 64 | 64 |
| max_input_time | 60 | 60 |
| memory_limit | 32M | 32M |
| open_basedir | no value | no value |
| output_buffering | 4096 | 4096 |
| output_handler | no value | no value |
| post_max_size | 2000M | 2000M |
| precision | 14 | 14 |
| realpath_cache_size | 16K | 16K |
| realpath_cache_ttl | 120 | 120 |
| register_argc_argv | Off | Off |
| register_globals | Off | Off |
| register_long_arrays | On | On |
| report_memleaks | On | On |
| report_zend_debug | On | On |
| safe_mode | Off | Off |
| safe_mode_exec_dir | no value | no value |
| safe_mode_gid | Off | Off |
| safe_mode_include_dir | no value | no value |
| sendmail_from | no value | no value |
| sendmail_path | /usr/sbin/sendmail -t -i | /usr/sbin/sendmail -t -i |
| serialize_precision | 100 | 100 |
| short_open_tag | Off | Off |
| SMTP | localhost | localhost |
| smtp_port | 25 | 25 |
| sql.safe_mode | Off | Off |
| track_errors | Off | Off |
| unserialize_callback_func | no value | no value |
| upload_max_filesize | 2000M | 2000M |
| upload_tmp_dir | no value | no value |
| user_dir | no value | no value |
| variables_order | EGPCS | EGPCS |
| xmlrpc_error_number | 0 | 0 |
| xmlrpc_errors | Off | Off |
| y2k_compliance | On | On |
| zend.ze1_compatibility_mode | Off | Off |
| Apache Version | Apache/2.2.8 (Fedora) |
| Apache API Version | 20051115 |
| Server Administrator | support@skybuilders.com |
| Hostname:Port | www.skybuilders.com:80 |
| User/Group | apache(48)/48 |
| Max Requests | Per Child: 100 - Keep Alive: off - Max Per Connection: 100 |
| Timeouts | Connection: 120 - Keep-Alive: 15 |
| Virtual Server | Yes |
| Server Root | /etc/httpd |
| Loaded Modules | core prefork http_core mod_so mod_auth_basic mod_auth_digest mod_authn_file mod_authn_alias mod_authn_anon mod_authn_dbm mod_authn_default mod_authz_host mod_authz_user mod_authz_owner mod_authz_groupfile mod_authz_dbm mod_authz_default util_ldap mod_authnz_ldap mod_include mod_log_config mod_logio mod_env mod_ext_filter mod_mime_magic mod_expires mod_deflate mod_headers mod_usertrack mod_setenvif mod_mime mod_dav mod_status mod_autoindex mod_info mod_dav_fs mod_vhost_alias mod_negotiation mod_dir mod_actions mod_speling mod_userdir mod_alias mod_rewrite mod_proxy mod_proxy_balancer mod_proxy_ftp mod_proxy_http mod_proxy_connect mod_cache mod_suexec mod_disk_cache mod_file_cache mod_mem_cache mod_cgi mod_php5 mod_proxy_ajp mod_ssl |
| Directive | Local Value | Master Value |
| engine | 1 | 1 |
| last_modified | 0 | 0 |
| xbithack | 0 | 0 |
Apache Environment
| Variable | Value |
| PERL5LIB | /usr/share/awstats/lib:/usr/share/awstats/plugins |
| HTTP_HOST | www.skybuilders.com |
| HTTP_ACCEPT_ENCODING | x-gzip, gzip, deflate |
| HTTP_USER_AGENT | CCBot/2.0 |
| HTTP_ACCEPT_LANGUAGE | en-us,en-gb,en;q=0.7,*;q=0.3 |
| HTTP_ACCEPT | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
| PATH | /sbin:/usr/sbin:/bin:/usr/bin |
| SERVER_SIGNATURE | <address>Apache/2.2.8 (Fedora) Server at www.skybuilders.com Port 80</address>
|
| SERVER_SOFTWARE | Apache/2.2.8 (Fedora) |
| SERVER_NAME | www.skybuilders.com |
| SERVER_ADDR | 207.192.75.84 |
| SERVER_PORT | 80 |
| REMOTE_ADDR | 54.234.180.187 |
| DOCUMENT_ROOT | /var/www/www.skybuilders.com |
| SERVER_ADMIN | support@skybuilders.com |
| SCRIPT_FILENAME | /var/www/www.skybuilders.com/Documentation/InstallationSkyHostRH8.html |
| REMOTE_PORT | 41374 |
| GATEWAY_INTERFACE | CGI/1.1 |
| SERVER_PROTOCOL | HTTP/1.0 |
| REQUEST_METHOD | GET |
| QUERY_STRING | no value |
| REQUEST_URI | /Documentation/InstallationSkyHostRH8.html |
| SCRIPT_NAME | /Documentation/InstallationSkyHostRH8.html |
HTTP Headers Information
| HTTP Request Headers |
| HTTP Request | GET /Documentation/InstallationSkyHostRH8.html HTTP/1.0 |
| Host | www.skybuilders.com |
| Accept-Encoding | x-gzip, gzip, deflate |
| User-Agent | CCBot/2.0 |
| Accept-Language | en-us,en-gb,en;q=0.7,*;q=0.3 |
| Accept | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
| HTTP Response Headers |
| X-Powered-By | PHP/5.2.5 |
| Connection | close |
| Content-Type | text/html; charset=utf-8 |
| BZip2 Support | Enabled |
| Stream Wrapper support | compress.bz2:// |
| Stream Filter support | bzip2.decompress, bzip2.compress |
| BZip2 Version | 1.0.5, 10-Dec-2007 |
| cURL support | enabled |
| cURL Information | libcurl/7.18.1 NSS/3.12 Beta 3 zlib/1.2.3 libidn/0.6.14 |
| date/time support | enabled |
| "Olson" Timezone Database Version | 0.system |
| Timezone Database | internal |
| Default timezone | America/New_York |
| Directive | Local Value | Master Value |
| date.default_latitude | 31.7667 | 31.7667 |
| date.default_longitude | 35.2333 | 35.2333 |
| date.sunrise_zenith | 90.583333 | 90.583333 |
| date.sunset_zenith | 90.583333 | 90.583333 |
| date.timezone | no value | no value |
| DOM/XML | enabled |
| DOM/XML API Version | 20031129 |
| libxml Version | 2.6.32 |
| HTML Support | enabled |
| XPath Support | enabled |
| XPointer Support | enabled |
| Schema Support | enabled |
| RelaxNG Support | enabled |
| EXIF Support | enabled |
| EXIF Version | 1.4 $Id: exif.c,v 1.173.2.5.2.20 2007/06/10 20:12:45 iliaa Exp $ |
| Supported EXIF Version | 0220 |
| Supported filetypes | JPEG,TIFF |
| Input Validation and Filtering | enabled |
| Revision | $Revision: 1.52.2.39 $ |
| Directive | Local Value | Master Value |
| filter.default | unsafe_raw | unsafe_raw |
| filter.default_flags | no value | no value |
| gmp support | enabled |
| GMP version | 4.2.2 |
| hash support | enabled |
| Hashing Engines | md2 md4 md5 sha1 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru gost adler32 crc32 crc32b haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5 |
| iconv support | enabled |
| iconv implementation | glibc |
| iconv library version | 2.8 |
| Directive | Local Value | Master Value |
| iconv.input_encoding | ISO-8859-1 | ISO-8859-1 |
| iconv.internal_encoding | ISO-8859-1 | ISO-8859-1 |
| iconv.output_encoding | ISO-8859-1 | ISO-8859-1 |
| json support | enabled |
| json version | 1.2.1 |
| libXML support | active |
| libXML Version | 2.6.32 |
| libXML streams | enabled |
| Multibyte Support | enabled |
| Multibyte string engine | libmbfl |
| Multibyte (japanese) regex support | enabled |
| Multibyte regex (oniguruma) version | 4.4.4 |
| Multibyte regex (oniguruma) backtrack check | On |
| mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1. |
| Directive | Local Value | Master Value |
| mbstring.detect_order | no value | no value |
| mbstring.encoding_translation | Off | Off |
| mbstring.func_overload | 0 | 0 |
| mbstring.http_input | pass | pass |
| mbstring.http_output | pass | pass |
| mbstring.internal_encoding | no value | no value |
| mbstring.language | neutral | neutral |
| mbstring.strict_detection | Off | Off |
| mbstring.substitute_character | no value | no value |
| MySQL Support | enabled |
| Active Persistent Links | 0 |
| Active Links | 0 |
| Client API version | 5.0.51a |
| MYSQL_MODULE_TYPE | external |
| MYSQL_SOCKET | /var/lib/mysql/mysql.sock |
| MYSQL_INCLUDE | -I/usr/include/mysql |
| MYSQL_LIBS | -L/usr/lib/mysql -lmysqlclient |
| Directive | Local Value | Master Value |
| mysql.allow_persistent | On | On |
| mysql.connect_timeout | 60 | 60 |
| mysql.default_host | no value | no value |
| mysql.default_password | no value | no value |
| mysql.default_port | no value | no value |
| mysql.default_socket | no value | no value |
| mysql.default_user | no value | no value |
| mysql.max_links | Unlimited | Unlimited |
| mysql.max_persistent | Unlimited | Unlimited |
| mysql.trace_mode | Off | Off |
| MysqlI Support | enabled |
| Client API library version | 5.0.51a |
| Client API header version | 5.0.51a |
| MYSQLI_SOCKET | /var/lib/mysql/mysql.sock |
| Directive | Local Value | Master Value |
| mysqli.default_host | no value | no value |
| mysqli.default_port | 3306 | 3306 |
| mysqli.default_pw | no value | no value |
| mysqli.default_socket | no value | no value |
| mysqli.default_user | no value | no value |
| mysqli.max_links | Unlimited | Unlimited |
| mysqli.reconnect | Off | Off |
| OpenSSL support | enabled |
| OpenSSL Version | OpenSSL 0.9.8g 19 Oct 2007 |
| PCRE (Perl Compatible Regular Expressions) Support | enabled |
| PCRE Library Version | 7.3 2007-08-28 |
| Directive | Local Value | Master Value |
| pcre.backtrack_limit | 100000 | 100000 |
| pcre.recursion_limit | 100000 | 100000 |
| PDO support | enabled |
| PDO drivers | mysql, pgsql, sqlite |
| PDO Driver for MySQL, client library version | 5.0.51a |
| PDO Driver for PostgreSQL | enabled |
| PostgreSQL(libpq) Version | 8.3.1 |
| Module version | 1.0.2 |
| Revision | $Id: pdo_pgsql.c,v 1.7.2.11.2.1 2007/01/01 09:36:05 sebastian Exp $ |
| PDO Driver for SQLite 3.x | enabled |
| PECL Module version | 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.2 2007/03/23 14:30:00 wez Exp $ |
| SQLite Library | 3.5.6 |
| PostgreSQL Support | enabled |
| PostgreSQL(libpq) Version | 8.3.1 |
| Multibyte character support | enabled |
| SSL support | enabled |
| Active Persistent Links | 0 |
| Active Links | 0 |
| Directive | Local Value | Master Value |
| pgsql.allow_persistent | On | On |
| pgsql.auto_reset_persistent | Off | Off |
| pgsql.ignore_notice | Off | Off |
| pgsql.log_notice | Off | Off |
| pgsql.max_links | Unlimited | Unlimited |
| pgsql.max_persistent | Unlimited | Unlimited |
| Revision | $Revision: 1.70.2.3.2.16 $ |
| Reflection | enabled |
| Version | $Id: php_reflection.c,v 1.164.2.33.2.47 2007/10/28 13:47:14 iliaa Exp $ |
| Session Support | enabled |
| Registered save handlers | files user |
| Registered serializer handlers | php php_binary wddx |
| Directive | Local Value | Master Value |
| session.auto_start | Off | Off |
| session.bug_compat_42 | Off | Off |
| session.bug_compat_warn | On | On |
| session.cache_expire | 180 | 180 |
| session.cache_limiter | nocache | nocache |
| session.cookie_domain | no value | no value |
| session.cookie_httponly | Off | Off |
| session.cookie_lifetime | 0 | 0 |
| session.cookie_path | / | / |
| session.cookie_secure | Off | Off |
| session.entropy_file | no value | no value |
| session.entropy_length | 0 | 0 |
| session.gc_divisor | 1000 | 1000 |
| session.gc_maxlifetime | 1440 | 1440 |
| session.gc_probability | 1 | 1 |
| session.hash_bits_per_character | 5 | 5 |
| session.hash_function | 0 | 0 |
| session.name | PHPSESSID | PHPSESSID |
| session.referer_check | no value | no value |
| session.save_handler | files | files |
| session.save_path | /var/lib/php/session | /var/lib/php/session |
| session.serialize_handler | php | php |
| session.use_cookies | On | On |
| session.use_only_cookies | Off | Off |
| session.use_trans_sid | 0 | 0 |
| Simplexml support | enabled |
| Revision | $Revision: 1.151.2.22.2.35 $ |
| Schema support | enabled |
| SPL support | enabled |
| Interfaces | Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject |
| Classes | AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, DirectoryIterator, DomainException, EmptyIterator, FilterIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RegexIterator, RuntimeException, SimpleXMLIterator, SplFileInfo, SplFileObject, SplObjectStorage, SplTempFileObject, UnderflowException, UnexpectedValueException |
| Regex Library | Bundled library enabled |
| Dynamic Library Support | enabled |
| Path to sendmail | /usr/sbin/sendmail -t -i |
| Directive | Local Value | Master Value |
| assert.active | 1 | 1 |
| assert.bail | 0 | 0 |
| assert.callback | no value | no value |
| assert.quiet_eval | 0 | 0 |
| assert.warning | 1 | 1 |
| auto_detect_line_endings | 0 | 0 |
| default_socket_timeout | 60 | 60 |
| safe_mode_allowed_env_vars | PHP_ | PHP_ |
| safe_mode_protected_env_vars | LD_LIBRARY_PATH | LD_LIBRARY_PATH |
| url_rewriter.tags | a=href,area=href,frame=src,input=src,form=fakeentry | a=href,area=href,frame=src,input=src,form=fakeentry |
| user_agent | no value | no value |
| sysvmsg support | enabled |
| Revision | $Revision: 1.20.2.3.2.6 $ |
| Tokenizer Support | enabled |
| WDDX Support | enabled |
| WDDX Session Serializer | enabled |
| XML Support | active |
| XML Namespace Support | active |
| libxml2 Version | 2.6.32 |
| XSL | enabled |
| libxslt Version | 1.1.23 |
| libxslt compiled against libxml Version | 2.6.32 |
| EXSLT | enabled |
| libexslt Version | 1.1.23 |
| Zip | enabled |
| Extension Version | $Id: php_zip.c,v 1.1.2.38 2007/08/06 22:02:32 bjori Exp $ |
| Zip version | 2.0.0 |
| Libzip version | 0.7.1 |
| ZLib Support | enabled |
| Stream Wrapper support | compress.zlib:// |
| Stream Filter support | zlib.inflate, zlib.deflate |
| Compiled Version | 1.2.3 |
| Linked Version | 1.2.3 |
| Directive | Local Value | Master Value |
| zlib.output_compression | Off | Off |
| zlib.output_compression_level | -1 | -1 |
| zlib.output_handler | no value | no value |
Additional Modules
| Module Name |
| dbase |
| sysvsem |
| sysvshm |
Environment
| Variable | Value |
| TERM | xterm |
| PATH | /sbin:/usr/sbin:/bin:/usr/bin |
| PWD | / |
| LANG | C |
| SHLVL | 2 |
| _ | /usr/sbin/httpd |
PHP Variables
| Variable | Value |
| _SERVER["PERL5LIB"] | /usr/share/awstats/lib:/usr/share/awstats/plugins |
| _SERVER["HTTP_HOST"] | www.skybuilders.com |
| _SERVER["HTTP_ACCEPT_ENCODING"] | x-gzip, gzip, deflate |
| _SERVER["HTTP_USER_AGENT"] | CCBot/2.0 |
| _SERVER["HTTP_ACCEPT_LANGUAGE"] | en-us,en-gb,en;q=0.7,*;q=0.3 |
| _SERVER["HTTP_ACCEPT"] | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
| _SERVER["PATH"] | /sbin:/usr/sbin:/bin:/usr/bin |
| _SERVER["SERVER_SIGNATURE"] | <address>Apache/2.2.8 (Fedora) Server at www.skybuilders.com Port 80</address>
|
| _SERVER["SERVER_SOFTWARE"] | Apache/2.2.8 (Fedora) |
| _SERVER["SERVER_NAME"] | www.skybuilders.com |
| _SERVER["SERVER_ADDR"] | 207.192.75.84 |
| _SERVER["SERVER_PORT"] | 80 |
| _SERVER["REMOTE_ADDR"] | 54.234.180.187 |
| _SERVER["DOCUMENT_ROOT"] | /var/www/www.skybuilders.com |
| _SERVER["SERVER_ADMIN"] | support@skybuilders.com |
| _SERVER["SCRIPT_FILENAME"] | /var/www/www.skybuilders.com/Documentation/InstallationSkyHostRH8.html |
| _SERVER["REMOTE_PORT"] | 41374 |
| _SERVER["GATEWAY_INTERFACE"] | CGI/1.1 |
| _SERVER["SERVER_PROTOCOL"] | HTTP/1.0 |
| _SERVER["REQUEST_METHOD"] | GET |
| _SERVER["QUERY_STRING"] | no value |
| _SERVER["REQUEST_URI"] | /Documentation/InstallationSkyHostRH8.html |
| _SERVER["SCRIPT_NAME"] | /Documentation/InstallationSkyHostRH8.html |
| _SERVER["PHP_SELF"] | /Documentation/InstallationSkyHostRH8.html |
| _SERVER["REQUEST_TIME"] | 1369529039 |
| _ENV["TERM"] | xterm |
| _ENV["PATH"] | /sbin:/usr/sbin:/bin:/usr/bin |
| _ENV["PWD"] | / |
| _ENV["LANG"] | C |
| _ENV["SHLVL"] | 2 |
| _ENV["_"] | /usr/sbin/httpd |
PHP License
|
This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.
|
'.
Direct a browser at the file and check the output. It should display a series of tables describing the machine and its php installation (see the php.net docs page on phpInfo() for more info).
Make appropriate changes to php.ini
php.ini is in /etc
Here are the lines to look for that show their default values, each followed by the line that should replace it:
-
memory_limit = 8M
memory_limit = 16M
-
magic_quotes_gpc = On
magic_quotes_gpc = Off
-
file_uploads = Off
file_uploads = On
[This may default to 'On' in other versions of PHP]
-
SMTP = localhost
; SMTP = localhost
-
sendmail_from = me@localhost.com
; sendmail_from = me@localhost.com
-
; sendmail_path =
sendmail_path =
[in this case "/usr/sbin/sendmail -t -i"]
Set postgresql to start on boot
To check the current setting:
# chkconfig postgresql --list
To set the service to start on boot:
# chkconfig postgresql --level 3456 on
PostgreSQL configuration is in /var/lib/pgsql/data/postgresql.conf
Test pgsql
To make a database (which will be owned by the operating system user who issues the command):
bash-2.05a$ createdb <dbname>
All user and db management can be done through the PostgreSQL interactive terminal (which accept both SQL statements and Postgres metacommands) called psql (man psql for reference):
bash-2.05a$ psql
which takes you to a prompt which looks like:
=#
To add/manage users:
PGSQL User Management
To create users:
=# CREATE USER
Every db must be VACUUMed at least once every billion transactions with the vacuum command in psql (or risk catastrophic data loss). See Routine Vacuuming.
Host Based Access configuration file is in /var/lib/pgsql/data/pg_hba.conf
A few useful tools.
To list all postgresql users:
skyTemplate=> SELECT * FROM pg_user;
To list all postgresql databases:
skyTemplate=> SELECT * FROM pg_database;
To find out the currently selected database, look at the name in the prompt:
skyTemplate=>
Enable proper logging for pgsql.
In /etc/init.d/postgresql, edit the line that reads:
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D #PGDATA -p /usr/bin/postmaster start > /dev/null 2>&1" < /dev/null
Edit it to read:
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D #PGDATA -p /usr/bin/postmaster -o '-i' start >> /var/log/pgsql 2>&1" < /dev/null
Save the file and restart postgresql.
Configure pgsql users and databases.
First, the user called 'postgres', who is the superuser for the postgresql service, must have a new, secure password assigned. Next, a file called 'admins' must be created to indicate that the postgres user can connect to any database with a password challenge. Then, other users must be added to pgsql. One user should be defined for each timeLines installation on the machine. Finally, the new database(s) for the timeLines installation(s) must be created.
-
As root, change the password for user postgres in the operating system:
# passwd postgres
This command will now challenge you for the new secure database admin password which should be carefully kept track of, with the usual precautions of length, and a mix of letters, numbers, and symbols.
-
Start a session as the postgres user:
# su postgres
which takes you to a prompt which looks like:
bash-2.05a$
- Connect to template1 as user postgres by using the command psql, which opens the PostgreSQL interactive terminal. (Whenever in the terminal, be sure to expect confirmations of any action; a null response is a sure sign of no action performed.)
bash-2.05a$ psql template1
-
Change the password for user 'postgres' by using the 'ALTER USER' command. Be sure to surround the password with single quotes/apostrophes as shown. The terminal should confirm by replying 'ALTER USER'. When using the following example, <newpassword> should be replaced with the new, secure password.
template1=# ALTER USER postgres WITH PASSWORD '<newpassword>';
-
Exit psql.
template1=# \q
- Exit postgres user session.
bash-2.05a$ exit
-
Initially, PostgreSQL allows anyone from the local machine to connect to the databases without a password challenge, so as to allow the administrator to set the password for the postgres user. Once that has been done, access to the databases must be securely restricted. This is controlled from the file /var/lib/pgsql/data/pg_hba.conf. Make the following edits to this file:
-
Make two copies of line 221 at the bottom of the file. Uncomment the lines by deleting the pound sign '#' from the front of both lines (the '#' is a comment character, which tells the configuration engine to ignore that instruction). In the second copy, edit the word 'sameuser' to say 'template1'. The first copy will allow any user to connect to a databse with the same name as their username. The second, edited copy will allow all users to be able to connect to the template database in order to create their own.
-
Copy line 222 to the bottom of the file, uncommenting it by deleting the '#'. This will allow the postgres user to connect to any database.
-
Comment out line 250 by putting a '#' at the front of it.
-
Copy line 190 to the bottom of the file. Edit the word 'template1' to say 'all', and edit the ip address in this line to match the machine's ip address. This will allow remote connections.
Now create a file in the same directory called 'admins'. Write into this file one word, the name of the database admin user, 'postgres' (excluding the single quotes/apostrophes in this case).
These configuration changes will only be applied the next time the service is restarted.
- Restart the postgresql service.
# service postgresql restart
-
All user management should be done as the user postgres.
# su postgres
Create a new db user. This new user should correspond to the site that db will be supporting. For example, our test site is called "app.skybuilders.com". The corresponding username should be "app_skybuilders_com". This should also be the name of the database. Permissioning allows users other than the admin user "postgres" to connect only to "template1" and the database with the same name as the user.
To make users (outside psql) as user postgres:
bash-2.05a$ createuser <options> <username>
In this case:
bash-2.05a$ createuser -d -P -A app_skybuilders_com
-d = allowed to create databases
-P = prompt for a password
-A = not allowed to create users
The password for the new user will now be prompted for. This should be another equally secure password, preferably different from the postgres user password, especially if there will be multiple timeLines installations on this machine. This password will be required by the timeLines installation script later in order to initialize the database and enable the application.
The password will be challenged for a second time for confirmation.
Finally the postgres admin password will be asked for, to authorize the new user.
The new user has now been created!
(man createuser for details, dropuser to delete users, and ALTER USER from inside psql to change settings for a user)
-
Connect to template1 as the new db user. You will be challanged for the new user's password. (Notice that the terminal prompt ends with a ">" rather than a "#", to show that you are not a superuser (postgres).)
# psql template1 <username>
-
Create the databse for this user, name with the new user's username. Ownership of the new database is automatically assigned to its creator. The terminal should respond "CREATE DATABASE".
template1=# CREATE DATABASE <username>;
In this case:
template1=# CREATE DATABASE app_skybuilders_com;
-
Connect to the new database. This will confirm its existence. The terminal should respond "You are now connected to database <dbname>."
template1=> \c <dbname>;
-
The database for this timeLines installation has now been created!
-
Repeat user and database creation for each timeLines installation on the machine.
-
PostgreSQL users and databases are now configured.
Install the timeLines application
-
Create a directory alongside the default web root (in this case "/var/www/html/") using the fully qualified domain name of the new site (in this case "/var/www/app.skybuilders.com"). Move into the new directory.
-
Download the installation archive file from the skyBuilders.com downloads page.
- Decompress the installation archive into the the new site directory. All necessary application server pages, directories, and image files will now be in place in a directory called "timelines".
-
Permissions must be set on the application directory. Create a group called "skyApp", if it has not yet been created. This will be the group that gives anonymous and administrator access to all timelines application sites.
# /usr/sbin/groupadd skyApp
-
Add users to this group. The apache user (in this case "apache") must be added so that requests to the web server will have permission to operate on the site. Other users that may need to be added to this group are any non-root administrators of the machine or the site, or any users who require ftp or sftp access (though any users who require different perissioning from the web users should be permissioned separately).
# /usr/sbin/usermod -G skyApp apache
# /usr/sbin/usermod -G skyApp dtd
-
Change the group setting for the site directory (recursively, for all the files and directories below it).
# cd /var/www
# chown -R :skyApp app.skybuilders.com
-
Set permissions for the site directory (recursively, for all the files and directories below it).
# chmod -R 775 app.skybuilders.com
-
Restart the web server httpd.
# service httpd restart
Enable virtual servers under apache.
In /etc/httpd/conf/httpd.conf, add these lines to the virtual servers section (substituting the appropriate machine name and domain name), waith an extra VirtualHost section for each timeLines installation:
NameVirtualHost *
<VirtualHost *>
ServerName skybox3.skybuilders.com
DocumentRoot /var/www/html
AddType application/x-httpd-php .php .php4 .php3 .phtml .html .xml
</VirtualHost>
Note: Apache 2.0.40-8 (RedHat 8.0 distribution) does not currently support the IP wildcard, '*' in the example above. This version requires IP numbers to entered directly into the httpd.conf entries for NameVirtualHost and VirtualHost entries.
Save the file and restart httpd.
Run the timeLines installation script.
This script will build the new database's schema and populate it with initial data. Open a timeLines-compatible browser (Mozilla > 1.1, Netscape > 4.0, IE > 4) and navigate to the following URL (where <domain name> is the domain name of your new site):
http://<domain name>/timelines/
timeLines will now challenge for the database password for the new site (as set in the section Configure pgsql users and databases).