SAMP(Solaris、Apache、MySQL和Perl/Python/PHP)是从LAMP(
Linux、Apache、MySQL和PHP)演化而来,其框架如图 1 。
图 1 SAMP 框架
一、SAMP下载安装过程 SAMP 的安装和配置,有两种方法:
( 1 )分别依次下载、安装和配置 Apache 、 MySQL 和 PHP/Perl/Python 。
( 2 ) 下载、安装和配置 CoolStack 。 CoolStack 是一个包含了最为常用的 、且为 Sun Solaris 操作
系统特别优化过的开源
软件包。而其中的重点就是 Apache 、 PHP 和 MySQL 。因此,使用这个包, AMP 可以运行在最佳状态。这里推荐直接安装 CoolStack 包 。CoolStack官方网站: , 下载前必须注册一个有效ID 才能进行下载。在下载的页面上点击cool stack 1.2下载,这里有适用于不同平台的安装版本(SPARC, Intel x86/AMD64),1.2版本的 CoolStack下载页面:
)
主要包括如下软件包:
· CSKamp 。即 AMP 组件包: CSKapache2 、 CSKphp5 和 CSKmy
sql32 。此包已经过预先配置,保证安装后就可以协同工作。其中的 MySQL 是 32 位版本。
· CSKruntime 。是其他大多数包都依赖的运行时包。 既然是被依赖包,安装时就要注意:必须先安装此运行时包,再安装其他依赖包。
· CSKmysql 。 MySQL5 的 64 位版本包。
· CSKperl 。 Perl5 包及相关的一些扩展库。
· CSKphplibsbundle 。各种 PHP 扩展包所依赖的库,具体又包括三个包: CSKtds 、 CSKncurses 和 CSKphplibs 。
· CSKmemcached 。著名的分布式对象缓存
工具: Memcached 。
· CSKruby 。 Ruby 及 rubygems 、 rails 封包。
· CSKsquid 。 Web 缓存工具 Squid 。
· CSKtomcat 。纯 Java 的 Apache Tomcat ,和 tomcat.apache.org 上的 tomcat 不同。
· CSKlighttpd 。轻量级Web
服务器 lighttpd 。
1 安装CSKruntime # bunzip2 CSKruntime_1.2_x86.pkg.bz2
# mkdir /var/tmp/CSKruntime-test
# pkgtrans CSKruntime_1.2_x86.pkg /var/tmp/CSKruntime-test/
# pkgadd -d /var/tmp/CSKruntime-test/
安装过程省略。
2 安装CSKamp # bunzip2 CSKamp_1.2_x86.pkg.bz2
# mkdir /var/tmp/CSKamp-test
# pkgtrans CSKamp_x86.pkg /var/tmp/CSKamp-test/
# pkgadd -d /var/tmp/CSKamp-test/
安装过程省略。
3 安装CSKphplibsbundle # bunzip2 CSKphplibsbundle_1.2_x86.pkg.bz2
# mkdir /var/tmp/CSKphplibsbundle-test
# pkgtrans CSKphplibsbundle_1.2_x86.pkg /var/tmp/ CSKphplibsbundle-test /
# pkgadd -d /var/tmp/ CSKphplibsbundle-test /
4 验证安装版本 使用
命令如下:# pkginfo -l CSKapache2
pkginfo -l CSKapache2
PKGINST: CSKapache2
NAME: Apache httpd
CATEGORY: application
ARCH: i386
VERSION: 2.2.6
BASEDIR: /
VENDOR: Apache
DESC: httpd is built with MPM pre-fork and modules to support PHP, SSL and Perl. PSTAMP: Oct/29/2007
INSTDATE: 8?? 07 2008 16:59
HOTLINE: Please see
STATUS: 全部安装
FILES: 1378 个已安装的路径名
7 个共享的路径名
55 目录
92 可执行
文件 1 setuid/setgid可执行文件
59831 个已使用的块(近似)
可以看到Apache 提供的是 worker 模块,而不是老的 prefork.c 模块。
图 2、3 是PHP5和Mysql 32位版本的 验证界面。
二、 Mysql服务器的初始化和启动 拷贝配置文件
cp /opt/coolstack/mysql_32bit/share/mysql/my-medium.cnf /etc/my.cnf
添加mysql
用户和用户组:
# groupadd mysql
# useradd -g mysql mysql
初始化mysql如图 4 ,命令如下:
# /opt/coolstack/mysql_32bit/bin/mysql_install_db
图 4 初始化mysql
初始化mysql后会
自动建立一个/opt/coolstack/mysql_32bit/data 目录,
设置 mysql 用户对 data 文件夹的访问权限:
# chown -R mysql:mysql /opt/coolstack/mysql_32bit/data
现在可以启动 MySQL
进程了:
# /opt/coolstack/mysql_32bit/bin/mysqld_safe &
其执行过程如图 5 所示。
测试mysql客户端
使用命令建立一个简单
数据库 # /opt/coolstack/mysql_32bit/bin/mysqladmin create testdb
# /opt/coolstack/mysql_32bit/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.45-standard-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> use testdb
Database changed
mysql>
mysql> exit
说明:通过 CoolStack 安装后的 MySQL ,字符集为 UTF-8 ,连接校对格式为 utf8_general_ci 。
三、把mysql和apache设置为SMF服务 SMF是Solaris 10操作系统中的软件服务
管理工具。它替代了以前操作系统的/etc/*.d中的服务运行脚本。对于使用过Linux的读者来说,SMF的
功能类似"ntsys"中的"守护进程";对于使用过UNIX的读者来说,这个功能就是替代部分目录/etc/rc*.d中的启动脚本
程序(还有一本分没有替代)和超级服务器(inetd)的功能。另外,使用过Solaris 9的读者知道,Solaris 9是没有这个管理工具的,这是Solaris 10的新功能。把mysql和apache设置为SMF服务,并且随Solaris 服务器同时启动:
# svcadm enable svc:/network/csk-mysql32:default
# svcadm enable svc:/network/csk-http:CSKapache2
查看Mysql和apache 服务状态命令如下:
# svcs -a | grep csk-mysql32
online 9:17:31 svc:/network/csk-mysql32:default
服务的状态有以下几种类型:
? degraded,服务已经启动,但是在受限制的状态运行。
? disabled,服务处于关闭状态。
? legacy_run,这个服务是不被SMF所管理的,但是可以被SMF所监测到。
? maintenance,维护状态。这个服务有大量的错误且应由管理者进行修复。
? offline,这个服务已经启动了,但是处于离线运行状态,没有在线运行。
? online,服务已经启动,并且在线运行。
? uninitialized,服务正处于初始化状态。
四、测试SAMP 环境 启动mysql服务器
# svcadm enable csk-mysql32
启动Apache 服务器
# svcadm enable csk-http
说明:mysql和apache 服务器关闭命令依次如下:
测试Apache,选择菜单 " 应用程序 "|"Internet"|"Firefox Web
浏览器 " ,打开 Firefox ,在地址栏输入 ,看 Apache 是否成功运行。若出现了标题为 "Cool Stack from the OpenSolaris Web Stack project" 的首页,说明 Apache 能成功提供基础的 HTML 服务了。如图 6 。
图 6 测试Apache服务器
测试 Apache 是否能解析 PHP 文档。使用vi编辑一个文件phpinfo.php
# cd /opt/coolstack/apache2/htdocs/
# vi phpinfo.php
Hello SAMP!?>
在地址栏输入 如果出现图 7 表示php解析成功。
图 7测试 Apache 是否能解析 PHP 文档
常见故障排除:
如果Apache 不能解析 PHP 文档,修改php配置文件: /opt/coolstack/php5/lib/php.ini ,添加两行:
extension="mysql.so"
extension="mysqli.so"
修改apache配置文件/opt/coolstack/apache2/conf/httpd.conf,添加一行:
LoadModule php5_module modules/libphp5.so
总结:本文使用Solaris 版本是U4 版本,另外同样可以适用于Open Solaris, SXDE 。CoolStack 有1.1 、1.2 、1.3RC 三个版本本文使用的是1.2。AMP 还主要应用在各类 Linux 平台上,构成了有名的 LAMP 架构。而Solaris 上的 AMP即SAMP 目前成为堪与 LAMP 、 WAMP ( Windows + AMP )和 MLAP ( Mac OS + AMP )媲美的Web 开发平台。