Friday, August 21, 2009

Install PHP under Apache and Vista

http://senese.wordpress.com/2007/06/06/install-php-5-under-apache-22-and-windows-vista/


I initially tried the msi installer for PHP 5. Unfortunately, it installs only PHP under CGI, which although it has some performance and security issues, might be ok for a quick and dirty development environment.

But the installer is badly broken. You’ll get an error something like

PHP Fatal error:  require_once()[function.require]: Failed opening required 'SAM/php_sam.php' (include_path='.;C:php5pear') in sam_factory on line 1

After fighting this for a couple of hours, I ended up installing manually anyway. I used this procedure to get PHP 5 running under Vista:

  1. Install the Apache webserver.
  2. Get the current version of PHP 5 fromhttp://www.php.net/downloads.php#v5. (It’s 5.2.3 at this time). Get both the zip file and the PECL zip file (which includes extensions).
  3. Uninstall any previous installations of PHP 5 (Start > Control Panel > Programs and Features). You may have to reboot your machine.
  4. Disconnect from the Internet. Turn off your firewall. Turn off your virus checker.
  5. Turn off User Account Control (UAC).
  6. Get an administrator prompt by going to All Programs > Accessories. Right-Click “Command Prompt” and choose “Run as Administrator”
  7. Use the command prompt to manually remove directories containing previous PHP installations (like C:\Program Files\PHP…)
  8. Go to the directory where you’ve downloaded the PHP5 and PECL zipfiles. Extract the PHP zipfile. Rename the extracted php directory (which has a name something like php-5.2.3-Win32) to c:\php. Extract the PECL zipfile into c:\php\ext.
  9. In the command prompt, type:
    cd c:\php mkdir upload mkdir session copy php.ini-recommended php.ini
  10. Open php.ini in Notepad:
    1. There are many variables… the following are important. Notice that starting a line with a semicolon in the ini file comments it out.
      upload_tmp_dir="C:\php\upload" session.save_path="C:\php\session" cgi.force_redirect=0 extension_dir ="C:\php\ext" display_errors = Off log_errors = On error_log = "C:\php\error_log"
    2. You might want to look at upload_max_filesize. I’ve set mine to 16M. I also set post_max_size = 16M.
    3. Enable the extensions you need by deleting the semicolon at the beginning of the line. These will depend on your application… I’m going to be using MySQL (which I’ve already installed) and Moodle (which I’ll install later). My list looks like the following:
      extension=php_bz2.dll extension=php_curl.dll extension=php_dba.dll extension=php_dbase.dll ;extension=php_exif.dll extension=php_fdf.dll extension=php_gd2.dll extension=php_gettext.dll ;extension=php_gmp.dll ;extension=php_ifx.dll ;extension=php_imap.dll ;extension=php_interbase.dll extension=php_ldap.dll extension=php_mbstring.dll extension=php_mcrypt.dll extension=php_mhash.dll extension=php_mime_magic.dll ;extension=php_ming.dll ;extension=php_msql.dll ;extension=php_mssql.dll extension=php_mysql.dll extension=php_mysqli.dll ;extension=php_oci8.dll extension=php_openssl.dll ;extension=php_pdo.dll ;extension=php_pdo_firebird.dll ;extension=php_pdo_mssql.dll ;extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll ;extension=php_pdo_oci8.dll ;extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll ;extension=php_pgsql.dll ;extension=php_pspell.dll extension=php_shmop.dll ;extension=php_snmp.dll extension=php_soap.dll extension=php_sockets.dll ;extension=php_sqlite.dll ;extension=php_sybase_ct.dll extension=php_tidy.dll extension=php_xmlrpc.dll extension=php_xsl.dll extension=php_zip.dll
  11. Right-Click on Start > Computer. Choose “Properties”, then “Advanced”. Click on “Environment Variables”. Click on PATH, then Edit… and add “;C:\php;c:\php\ext” (without quotes) to the end of the variable.
  12. Open your Apache configuration file (All Programs > Apache HTTP Server 2.2.x > Configure Apache Server > Edit the Apache httpd.conf Configuration File). Add the following lines:
    LoadModule php5_module "C:\php\php5apache2_2.dll" AddType application/x-httpd-php .php AcceptPathInfo on PHPIniDir "C:\php"

    Look for the DirectoryIndex line. Add ” index.php” (no quotes) to the end of that line.

    Save the file.

  13. Create a file named test.php in your Apache htdocs directory, containing this text:
  14. Reboot your machine.
  15. Browse to http://localhost/test.php. You should see tabulated information about your working PHP installation.

Tuesday, August 04, 2009

from chrome to os

It's like a long time ago, I feel like the browser is another os, espeically when you use it in full screen mode. It's a network os but without dedicated compiling language. Ok, I admit that javascript is not standarded in fact and it's not like elegant as my favorate Python; due to the security problem, it has no access to the local files; it's in single process. But it do lead to some wonder land.

People always have dreams when they are young while they don't know how to achieve the goal, achieve it in a proper way or do it in fashion. From ages ago, people either want to post something and don't care what others say or communicate through dedicated channel that all people have one but have their own. Slim client, net computer, grid, you figure the name that people build to express the enthusiastic on distributed work place and one data and processing center. Nowadays, one data and processing center has became the one central access point and clould is behind the point. Millions transactions are running on data center. But people still have to use simple network application around text.

There are something missing and some people will patch the problem, while some problem is hard to solve as far as I can see. To have fully functional web application, a platform, something like an OS is necessary. The browser is better than a OS in the sense that it has the function over user interface while OS (actually, I mean old-fashioned batch system) don't; browser has instancely useable standarded language, Javascript, while OS don't.

But the horn is still sounding on the battle field between the browser and OS. Browser don't have control over resource, it runs on OS; An extension to this problem is that browser cannot get more resource if it's single processed. Another externsion to the problem is that browser will do the same task with less speed than OS, so to win, browser must be fast. In the sense of human interface, browser is fine at 2D interaction, especially around forms and text, which have rich structure; OS can do great job in 3D animation however.

So, peopel in action. Google Chrome has take its lead. The browser has a Javascript interpretor that only store difference between objects, which makes it fast. A window is a process, which can eat up more resource. And it will step over OS by the Chrome OS, which is chrome + Linux. Ha, another slim client in this decade. Will we see 3D in browser as well? Not recently, I believe. There is some 3D extension for browser out there. But 3D function is a plus for the network gigant. I believe 99% business over the network is in 2D form. And that's their target.

Finally, there is one large problem about the browser is that all the Javascript code can be seen by the final user. The saving is to put all business logic behind on the servers. But it opposes the purpose to use as much as resource on the client side. To find aid from copy right law is out of options. Maybe one day browser will cover the source code but always gives the user the right to choose to run the application or not. At that time, everything will come back to as it today.