Creating a PHP Development Server.

  • Hardware: 486 Dx100 w/32MB RAM or higher 1gig HD
  • Software:
  • Other Software (optional)
    • ucd-snmp (core,devel and utils)
    • Apache Module :: mod_dav
    • IMAP
    • DAP

My Story

First I'm a network administrator and php developer. Not a writer. Now, Here is the tech...

The content here is FREE ...

N O T I C E

This web site is prepared and maintained by Chauncey Thorn.
The information contained in this site was valid at the time of posting.
Chauncey Thorn assumes no liability for damages incurred directly or indirectly as a result of errors, omissions or discrepancies.

Installing Apache

Apache has been the most popular web server on the Internet since 1996. According to server site survey by Netcraft found that over 60% of the web sites on the Internet are using Apache

Down load the latest stable release
From: http://www.apache.org

I prefer to compile Apache with Dynamic Shared Object (DSO) support, which allows me to install pretty much any module without having to recompile Apache to take advantage of it....

 $ su
 # cd /usr/local/src
 # tar -xvzf /pathto/apache-source.tar.gz
 # cd apache-*
 # ./configure --prefix=/home/www --enable-module=most --enable-shared=max
 # make && make install
 # ln -s /home/www/bin/apachectl /etc/rc.d/init.d/httpd
 # vi /home/www/bin/apachectl
 i
 chkconfig: 
 Description: Start/Stop Apache W3 Server
 
 shift : qw

 # /sbin/chkconfig --del httpd
 # /sbin/chkconfig --add httpd

Modify your /home/www/conf/httpd.conf

Port 80
DirectoryIndex index.html index.php3 index.phtml index.php

For PHP3
AddType application/x-httpd-php3 .php3 .phtml .php

For PHP4
AddType application/x-httpd-php .php3 .phtml .php


Test your Apache Setup

 # /etc/rc.d/init.d/httpd start
 # ps ax | grep httpd

Apache with mod_ssl

Get the latest versions of mod_ssl andsl
 # cd /usr/local/src
 # tar -xvzf /path/to/sl-xx.tar.gz
 # tar -xvzf /path/to/mod_ssl-xx.tar.gz
 # cdsl-xx
 # ./config -fPIC
 # make
 # make install
 # cd ../mod_ssl-xxx
 # ./configure -with-apache=../apache-1.3.xx
 # cd ../apache-1.3.xx
 # SSL_BASE=../sl-xx ./configure --prefix=/home/www 
                                --enable-module=most --enable-shared=max
                                --enable-module=ssl --enable-shared=ssl
 # make
 # make certificate
 # make install

Test your Apache Setup

 # /etc/rc.d/init.d/httpd stop
 # /etc/rc.d/init.d/httpd startssl
 # enter phrase
 # ps ax | grep httpd

Installing MySQL

MySQL is my DEFAULT development database. I've used PostgreSQL, however others PHP developers as well as myself prefer MySQL because its VERY fast for Web Based applications.

Down load the latest stable release or the developement version. I usually get the stable releases.
From: http://www.mysql.com/

 $ su
 # adduser mysql 
 # cd /usr/local 
 # tar -xvzf /pathto/mysqlsrc/mysql-3.22*gz 
 # mv mysql* mysql 
 # cd mysql 
 # ./configure 
 # make && make install 
 # scripts/mysql_install_db 
 # cp support-files/mysql.server /etc/rc.d/init.d/mysql 
 # modify /etc/rc.d/init.d/mysql (Change the user root to mysql)
 # chmod +x /etc/rc.d/init.d/mysql 
 # /sbin/chkconfig --del mysql 
 # /sbin/chkconfig --add mysql 
 # chown -R mysql:mysql /usr/local/var/*
 # /etc/rc.d/init.d/mysql start
 # mysqladmin -uroot password 'newpassword' <-- CHANGE the root password

 # Example commandline 
 #
 # CREATE DB: mysqladmin create databasename -p 
 # VIEW DBs : mysql -e 'SHOW DATABASES' -p
 # SELECT DATA : mysql databasename -e 'SELECT * from user WHERE User = "root"' 
 # Backing UP DB: mysqldump --opt databasename > /path/to/dbbackups/dd-mm-yy.database.mysql
 # CREATE a NEW DB from and OLD one:
 # mysqladmin create newdb -p
 # mysqldump --opt olddb -p | mysql newdb -p
 # SQL statement in a text file: mysql databasename < SQLstatement_file.mysql -p
 # LOOK at DB structure: mysqlshow databasename -p
 # mysqlshow databasename tablename -p
 # DROP olddb: mysqladmin -p drop databasename
 # Status of DB server: mysqladmin status -p
 # SHUTDOWN DB: mysqladmin -p shutdown
 # DOING Increment backups: run the mysqld with the --log-update


Install PHP

Download the lastest 3.0.16 or PHP4.x

 $su
 # cd /usr/local/src
 # tar -xvzf /pathto/php-3.0.16*
 # cd php-3*
 # vi makephp <-- Create shell script called makephp with vi
  i <--- to insert 
  #!/bin/sh
  ./configure --with-mysql --with-gd --with-zlib \ 
        --with-system-regex --enable-track-vars \
         --with-apxs=/home/www/bin/apxs

 # Add these options if you want use the functions
 #
 # --with-ftp #FTP Support
 # --with-mcal=/usr/local/libmcal # MCAL Support (Calendar(s))
 # --with-pgsql #PostgreSQL Support
 # --with-imap #IMAP Support (Twig and phpGroupWare)
 # --with-snmp --enable-ucd-snmp-hack #SNMP Support (PHP/SNMP Network Tool)

  <--- Hit your ESC key
 shift :wq
 # chmod +x makephp
 # ./makephp
 # make && make install
 # /etc/rc.d/init.d/httpd restart

Getting mod_dav installed

What is mod_dav?
RTM, I will say it's usefull ...

 # ./configure --with-apache=/home/www/bin/apxs
 # make && make install
 # vi /home/www/conf/httpd.conf
 Scroll down to the bottom
 i
 DAVLOCKDB /usr/local/apache/var/DAVLock
 DAVMinTimeout 600
 <
 LOCATION /deptname
 >
  DAV on
 <
 /LOCATION
 >
 shift : wq
 
 # mkdir /usr/local/apache
 # mkdir /usr/local/apache/var
 # chown nobody:nobody /usr/local/apache/var

 # /etc/rc.d/init.d/httpd restart
 
HOME
PCCS-Linux.COM ::ource Advocate Articles catalogue
2000 2002