免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2056 | 回复: 0
打印 上一主题 下一主题

Solaris 10 操作系统和 Solaris Express 的 SAMP(Solaris、Ap [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-08 08:40 |只看该作者 |倒序浏览

互联网上的许多文章和博客都介绍了如何在 SAMP 服务器(Solaris、Apache 2、 MySQL 和 PHP)上使用 Solaris 10 操作系统。但是,其中许多文章针对的都是早期版本的软件包,或者没有包括比较流行的 PHP 语言。还有一些文章并未提供详细的过程和示例,因此读者往往一知半解。
开始之前,应该明确 Solaris 10 操作系统或 Solaris Express 的安装实际上包括 Apache 2.0.x 和 MySQL 4。Solaris 10 操作系统的随带光盘还包括 PHP 4。但目前 Solaris 操作系统没有捆绑 PHP 5 或 MySQL 5。
本文向技术用户介绍了如何自己构建最新的 PHP5 副本,以及如何将它与 Blastwave 提供的 MySQL5 和 Solaris 操作系统随带的 Apache2 版本集成在一起。但如果不希望编译任何软件,并且更愿意使用经过 Sun 优化的高性能内部版本,请在
http://cooltools.sunsource.net/coolstack/index.html
和/或
http://sunfreeware.com/coolstack.html
中查看 Sun 的“可随时运行”的 Cool Stack 软件包。
可以在
BigAdmin 门户
的社区提交中找到有关使用上述软件包配置 SAMP 服务器的早期文章。但是,该文章缺少重要的细节,而且使用的是较旧的 Apache 1.3。
Mel Lester 的文章
(也在 BigAdmin 门户中进行了引用)写得非常好,并且提供了很多详细信息,几乎能满足读者的所有要求。惟一不足的是,Lester 的文章使用的是与 Solaris 10 操作系统捆绑的 MySQL 4 版本,而不是我们希望看到的最新 MySQL 版本 5.x。
许多用户希望重新构建软件的原因是为了获取软件包的最近版本,其中可能包括性能增强、错误和安全性修复,以及可为各种 PHP web 应用程序提供所需功能的编译时选项。
对本练习而言,安装过程将使用下列软件:

  • 随 Solaris 安装一起提供的 Apache

  • Blastwave.org
    提供的 MySQL 5(使用 pkg-get 进行安装)

  • php.net
    提供的最新 PHP 5(下载并编译)

我们将在 32 位模式下主要使用 GUN 工具链进行构建。
下面的过程会将这三个应用程序集成在一起,以便您准备好使用 Solaris 10 操作系统、Apache、PHP 5 和 MySQL 5 web 应用程序。
步骤如下:
1. 安装 Solaris 10 操作系统、Solaris Express/Nevada 或 OpenSolaris。
2. 确保您的系统处于联网状态,以便它可以连接到 Internet 和使用静态 IP 地址。如果您需要有关网络配置方面的帮助信息,请查看此文档:
System Administration Guide: IP Services(系统管理指南:IP 服务)

3.我们希望从 Blastwave.org 安装 MySQL 5。打开 web 浏览器,转至
Blastwave.org 的逐步指南
,然后执行步骤 1 至 7。此过程非常简单,现在您可以使用 pkg-get 命令通过网络安装软件包(如 MySQL 5)了。
4. 我们现在可以安装 MySQL 5 软件包。在控制台或 xterm 窗口中,以 root 用户身份登录并发出以下命令:
# /opt/csw/bin/pkg-get -i mysql5 mysql5client mysql5devel mysql5rt
# /opt/csw/bin/pkg-get -i mysql5test
注意:安装 mysql5devel 软件包十分重要,否则在稍后生成 PHP 5 时会遇到麻烦。
5.现在,让我们来设置 MySQL 5。
Blastwave.org 中提供了一个指南:请转至
http://www.blastwave.org/packages.php/mysql5
并单击标有“查看有关软件包的新闻或信息”的灰色按钮。我们在这里再次提出这些指导原则,并展开讨论。(感谢 Blastwave 慷慨地与我们分享他们的工作成果。)
A.创建配置文件 /opt/csw/mysql5/my.cnf,如下所示:将 /opt/csw/mysql5/share/mysql/ 中的 my-*.cnf 文件之一复制到 /opt/csw/mysql5/my.cnf,并根据您的环境进行相应的更改,例如启用 InnoDB。注意,不建议将 /opt/csw/mysql5/var 用作 my.cnf 的位置。如果您不能确定要复制哪个文件,请使用 my-small.cnf。
B.在下一个步骤中初始化数据库之前,设置 MySQL 用户和组十分重要。此操作由 Blastwave 软件包安装脚本完成。但是,如果您要从源生成 MySQL,则需要按如下方式创建 MySQL 用户和组:
# groupadd mysql
# useradd -c "MySQL Server" -d /dev/null -g mysql -s /bin/false mysql
C.初始化 MySQL 数据库并确定权限:
cd /opt/csw/mysql5
./bin/mysql_install_db
chown -R mysql:mysql ./var
警告:如果您跳过了上面的 chown 步骤,则 MySQL 将不会启动。
D.启动 MySQL 5。如果只是尝试启动服务器并查看上述步骤是否正确执行,可以发出如下命令:
# cd /opt/csw/mysql5 ; /opt/csw/mysql5/bin/mysqld_safe &
然后,可以使用 ps 命令查看它是否启动,并使用 kill 命令和 PID 将其停止。
警告:请务必在继续之前中止上述过程,否则当您在下面的步骤中启用 SMF 服务器时,MySQL 将无法正确启动。
应当运行以下命令:
# pkill mysql
现在,要确保它在重新引导后启动,请继续阅读下文。
注意:Solaris Express、Nevada 和 Solaris 10 更新的最新内部版本使用 SMF 启动守护进程(例如 mysql)。下面的过程可能会有所不同。如果您的 Solaris 版本使用 SMF,则您要使用下面所示的 svcadm 命令来启动/停止 MySQL 5。
旧的 RC 文件方法:
# /etc/init.d/cswmysql5 start
新的 SMF 方法:
如果在使用 SMF(而不是 RC 文件)的 Solaris 版本上安装 MySQL 5 软件包,您会发现软件包安装了 MySQL 5 的 SMF 清单,而且您可以使用下列命令来查看服务状态:
# svcs -a | grep mysql
disabled 13:36:01 svc:/network/cswmysql5:default
为了确保 MySQL 5 服务器启动(并且在重新引导时也能启动),请发出下列命令:
# svcadm enable svc:/network/cswmysql5:default
您可以使用下列命令再次进行验证:
# svcs -a | grep mysql
online 15:12:43 svc:/network/cswmysql5:default
您可以使用命令 # svcadm disable svc:/network/cswmysql5:default 停止服务器,即使经过重新引导,该服务器仍保持停止状态,直到您发出 svcadm enable 命令为止。
E.请切记为 MySQL root 用户设置密码!
此密码应当与您的 Solaris 超级用户密码相同!要执行此操作,请启动服务器,然后发出下列命令:
设置本地密码:
# /opt/csw/mysql5/bin/mysqladmin -u root password 'new-password'
       
# /opt/csw/mysql5/bin/mysqladmin -u root -h  \
password 'new-password'
(如果鉴于下面
第 I 部分的步骤 5
中的安全性讨论而禁用了网络访问,则前面的命令行将会失败并且也不再需要。)
有关详细说明,请参阅
MySQL 5 documentation(MySQL 5 文档)

F. 可选: 此操作需要一些时间。您可以使用下列命令运行 MySQL 守护进程的测试套件:
# cd /opt/csw/mysql5/mysql-test
# ./mysql-test-run
G.检查安装:
# ./bin/mysql -p
系统将提示您输入 MySQL root 用户的密码。您应该会看到 mysql 提示符。请尝试执行诸如 STATUS 之类的命令,以查看服务器是否响应。然后,尝试从 mysql 提示符运行测试查询:
show databases;
将返回 mysql 和 test 数据库。
quit
注意:可以通过创建和编辑 /opt/csw/mysql5/etc/mysql5rc 或 /etc/opt/csw/mysql5rc 覆盖启动选项。
mysql5rc 的模板位于 /opt/csw/mysql5/share/mysql 中。如果为系统创建了 rc 文件,则必须使用此模板。例如:
  • # mkdir -p /etc/opt/csw
    我使用以下权限:chown root:bin /etc/opt/csw 和 chmod 0755 /etc/opt/csw。
  • # cp /opt/csw/mysql5/share/mysql/mysql5rc /etc/opt/csw/
    如果没有可用的 mysql5rc 文件,则守护进程将使用默认值启动。如果这是您的第一个实验系统,则无需执行此步骤;这是一个可选步骤。
    H.参考文档:

    I.MySQL 安全性方面的内容不在本文的讨论范围之内。但是,下面提供了一些需要考虑的基本步骤:

    • 确保 MySQL 超级用户具有一个密码集,且此密码集不同于主机系统的超级用户密码。
    • 确保只有 MySQL 用户具有对数据库目录的读取和写入访问权限。
    • 如果在 web 服务器上将 PHP 用于 MySQL(这样在 PHP/Apache 和 MySQL 之间仅需 localhost 连接),请将 skip-networking 行添加到 /opt/csw/mysql5/my.cnf 配置文件中的 [mysqld] 部分。这样,将会禁用 MySQL 服务器守护进程的所有 TCP/IP 远程连接。
    • 禁止使用 LOAD DATA LOCAL INFILE 命令,此命令可能允许从本地文件(尤其是在发生的新 SQL 注入式攻击时)进行未经授权的读取。向 my.cnf 文件的 [mysqld] 部分添加 set-variable=local-infile=0。
    • 删除 users 表中的匿名用户帐户。

    上述步骤只是一些基本措施,但可以在安装后获得明显改进。请在您常用的 Internet 搜索引擎中输入“Securing MySQL”,以查看 Web 上有关 MySQL 安全性的文章。
    6. 到现在为止,我们已经完成了 MySQL 5 的安装和测试。接下来,我们将生成 PHP 5。我们将借用
    Mel Lester 的网站
    中的部分内容,在此对其许可表示感谢。由于我们使用不同的选项和路径,因此需要修改一些 PHP 配置。
    尤其是我们将在编译前更改 PHP 5 的配置,以使用 /opt/csw/mysql5 中 Blastwave MySQL 5 的路径,而且还要添加一些其他选项。此过程还将验证您是否安装了生成 PHP 5 所需的 GNU 工具。
    A.以 root 用户身份登录到全局区域,并确保 /opt/csw/bin 和 /usr/sfw/bin 位于 $PATH 中,如下所示:
    global# echo $PATH
      /opt/csw/bin:/usr/sfw/bin:/usr/sbin:/usr/bin:/usr/openwin/bin: \
      /usr/dt/bin:/usr/ccs/bin
    现在让我们讨论一下。首先,您可能不希望修改 root 用户的 .profile,也不希望垃圾信息将 / 目录弄乱。对于 Solaris 10 操作系统、Solaris Express 或 OpenSolaris,建议您创建目录 /root,并在 /etc/password 中创建使用 bash 或 ksh shell 的其他 root 用户帐户,然后指向作为主目录的 /root。然而,这只是您和 Google 的之间的选择和话题。无论您做出什么样的决定,请确保路径包含上述组成部分。然后继续操作。
    B.使用 Blastwave.org 的 pkg-get 命令(已在上面的
    步骤 3
    中安装)来安装 GNU autoconf、automake 和 gsed 软件包。下面的软件版本应该比较类似或更新一些。
    global# pkg-get -i autoconf
    ...
    global# which autoconf && autoconf --version | head -2
    /opt/csw/bin/autoconf
    autoconf (GNU Autoconf) 2.59
    Written by David J. MacKenzie and Akim Demaille.
    global# pkg-get -i automake
    ...
    global# which automake && automake --version | head -2
    /opt/csw/bin/automake
    automake (GNU automake) 1.8.3
    Written by Tom Tromey .
    global# pkg-get -i gsed
    ...
    global# which gsed && gsed --version | head -2
    /opt/csw/bin/gsed
    GNU sed version 4.1.4
    Copyright (C) 2003 Free Software Foundation, Inc.
    C.验证安装 PHP 所需的其他开源软件的可用性。(如果需要,您可以查看 PHP 手册中的
    Solaris specific installation tips
    部分。) 下面的软件版本应该比较类似或更新一些。
    global# which gcc && gcc --version | head -2
    /usr/sfw/bin/gcc
    gcc (GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)
    Copyright (C) 2004 Free Software Foundation, Inc.
    global# which gmake && gmake --version | head -2
    /usr/sfw/bin/gmake
    GNU Make 3.80
    Copyright (C) 2002 Free Software Foundation, Inc.
    global# which flex && flex --version | head -2
    /usr/sfw/bin/flex
    flex version 2.5.4
    global# which bison && bison --version | head -2
    /usr/sfw/bin/bison
    bison (GNU Bison) 1.875
    Written by Robert Corbett and Richard Stallman.
    global# which gm4 && gm4 --version | head -2
    /opt/csw/bin/gm4
    GNU M4 1.4.3
    Written by Rene' Seindal.
    global# which perl && perl -v | head -2
    /opt/csw/bin/perl
    This is perl, v5.8.7, built for sun4-solaris-thread-multi
    global# which gunzip && gunzip -V | head -2
    /usr/bin/gunzip
    gunzip 1.3.3-patch.1
    (2002-03-08)
    global# which gtar && gtar --version | head -2
    /usr/sfw/bin/gtar
    tar (GNU tar) 1.14
    Copyright (C) 2004 Free Software Foundation, Inc.
    D. 通过从源生成 libxml2 来测试开源工具。

    xmlsoft
    下载最新版本。
    此时,我们在此处找到了压缩源的下列版本:
    # wget ftp://xmlsoft.org/libxml2/libxml2-2.6.26.tar.gz
    选择要在其中执行下列步骤的目录:
    global# gunzip -cd libxml2-2.6.26.tar.gz | gtar xvpf -
    global# cd libxml2-2.6.26
    global# ./configure
    ...
    global# gmake
    ...
    global# gmake install
    ...
    现在,您已生成并安装了 libxml2 软件,并会发现它位于 /usr/local 中。
    注意:已经验证 Solaris Nevada build 42 及更高版本具有更新的 libxml2 软件包,因此不需要执行此步骤。如果运行 Solaris Nevada build 42 或更高版本(包括源自 build 42 或更高版本的 OpenSolaris 内部版本),则可以跳过生成 libxml2(6D 部分),并将下面 6F 部分中的部分 PHP5 配置行从:
    --with-libxml-dir=/usr/local
    更改为:
    --with-libxml-dir=/usr
    E.如果文件 /etc/apache2/httpd.conf 不存在,请使用以下命令:
    global#cp /etc/apache2/httpd.conf-example /etc/apache2/httpd.conf
    使用您喜欢的文本编辑器编辑 /etc/apache2/httpd.conf:

    • 如果需要,将 ServerName (默认为 127.0.0.1)设置为主机名。
    • 将 ServerAdmin 设置为有效的电子邮件地址。

    F.从
    www.php.net
    下载并编译 PHP 的最新生产版本。再次选择您自己的目录,例如 /src、/build 或者其他任何目录。至于代码编写,可以在
    http://www.php.net/downloads.php#v5
    上找到。我们选择下载用 gzip 压缩的版本,以便可以使用下列命令继续操作:
    global# gunzip -cd php-5.1.6.tar.gz | gtar xvpf -
    ...
    global# cd php-5.1.6
    这是我们与原始网页的不同之处。原始网页使用的是可在 /usr/sfw 中找到的 MySQL 4,而我们使用的是位于 /opt/csw/mysql5 中的最新 MySQL 5。所以我们选择的配置选项现在为:
    global# ./configure --with-apxs2=/usr/apache2/bin/apxs --enable-dbase \
    --with-libxml-dir=/usr/local --with-config-file-path=/etc/apache2 \
    --with-mysql=shared,/opt/csw/mysql5 \
    --with-mysqli=shared,/opt/csw/mysql5/bin/mysql_config \
    --with-xpm-dir=/usr --with-gd --with-tiff-dir=/usr --with-bz2=/usr/lib \
    --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib --enable-mbstring \
    --enable-calendar--enable-bcmath --enable-ftp --enable-exif
    对于简单的服务器设置,上述配置选项足以满足要求。还有许多其他选项,供用户进行选择和存档。通过输入 command# ./configure --help 或查看 PHP 站点
    Appendix F. Configure options
    中的核心配置选项,可以查看其中部分选项。
    注意:如果您尝试启用 openssl,则必须重新编译 Apache 和 MySQL,以便具有相同版本的 openssl 库,否则从 PHP 到 MySQL 的连接将会失败。如果要将 cookie 用于会话,则通过将 mcrypt 库添加到系统并使用 PHP 编译选项 --with-mycrpt,您可能会发现性能得到了提高。
    小窍门:如果您对其他用户所使用的 config 选项感兴趣,只需尝试将 phpinfo() 输入常用的 Internet 搜索引擎即可。:-)
    现在让我们开始生成过程:
    ...
    global# gmake
    ...
    global# gmake install
    ...
    Installing PHP SAPI module: apache2handler
    /var/apache2/build/instdso.sh SH_LIBTOOL='/var/apache2/build/libtool' libphp5.la
    /usr/apache2/libexec
    /var/apache2/build/libtool --mode=install cp libphp5.la /usr/apache2/libexec/
    cp .libs/libphp5.so /usr/apache2/libexec/libphp5.so
    chmod +x /usr/apache2/libexec/libphp5.so
    cp .libs/libphp5.lai /usr/apache2/libexec/libphp5.la
    libtool: install: warning: remember to run 'libtool --finish /build/php-5.1.2/libs'
    chmod 755 /usr/apache2/libexec/libphp5.so
    [activating module 'php5' in /etc/apache2/httpd.conf]
    Installing PHP CLI binary: /usr/local/bin/
    Installing PHP CLI man page:/usr/local/man/man1/
    Installing build environment: /usr/local/lib/php/build/
    Installing header files: /usr/local/include/php/
    Installing helper programs: /usr/local/bin/
      program: phpize
      program: php-config
    Installing man pages: /usr/local/man/man1/
      page: phpize.1
      page: php-config.1
    Installing PEAR environment:/usr/local/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: /usr/local/etc/pear.conf
    You may want to add: /usr/local/lib/php to your php.ini include_path
    Installing PDO headers: /usr/local/include/php/ext/pdo/
    #
    G.从 php-5.1.6 源目录将文件 php.ini-dist 复制到 Apache 的 config 目录:
    global# cp php.ini-dist  /etc/apache2/php.ini
    如果要在多个区域中设置 Apache web 服务器,您可能会具有以下示例路径(或要使用的任何区域):
    global# cp php.ini-dist /zones/zone0/root/etc/apache2/php.ini
    接下来,我们将编辑配置文件并测试整个堆栈。
    H.编辑配置文件。
    编辑 /etc/apache2/php.ini 文件以设置 PHP 选项。
    对于 PHP 5,将不再自动加载 MySQL 界面模块。
    您需要明确加载此模块以及所需的任何其他扩展模块。要执行此操作,请编辑 php.ini 文件并添加以下两行内容:
    1. 验证生成 PHP 5 时是否创建了所需的模块:
    # ls -l /usr/local/lib/php/extensions/no-debug-non-zts-20050922/  
    total 1088
    -rwxr-xr-x1 root root103144 Aug 29 21:48 mysql.so
    -rwxr-xr-x1 root root429948 Aug 29 21:48 mysqli.so
    在 php.ini 中查找以下列内容开头的行:
    ; Directory in which the loadable extensions (modules) reside.
    extension_dir =
    将该行编辑为下列内容:
    extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20050922/"
    如果已将 PHP 5 安装到了其他位置,请根据需要调整此行。
    2. 接下来查找 php.ini 文件的以下块:
    ;;;;;;;;;;;;;;;;;;;;;;
      ; Dynamic Extensions ;
      ;;;;;;;;;;;;;;;;;;;;;;
    添加以下行:
    extension=mysql.so
    现在,将不会发生 Apache/PHP 5 无法连接到 MySQL 的问题。
    3. 接下来编辑 /etc/apache2/httpd.conf 文件以加载 PHP 模块。
    查找包含 php5_module 的行。LoadModule 语句右侧的路径必须指向系统上 PHP 模块的路径。此路径将是系统上 /usr/apache2 的 相对 路径。(因此,此实际路径为 /usr/apache2/libexec/libphp5.so。) 上述 PHP 5 的 gmake 安装应该已经为您添加了此路径,但是请务必进行检查。
    LoadModule php5_module libexec/libphp5.so
    我们希望 Apache 将网页文件名的 .php 扩展名解析为 PHP。请查找 /etc/apache2/httpd.conf 文件的 AddType 部分,并添加以下行:
    AddType application/x-httpd-php .php
    有些用户喜欢在 httpd.conf 省略以上行,而是将 application/x-httpd-php php phtml 添加到 /etc/apache2/mime.types 文件。每种方法都是可行的。
    I.启动 Apache 2 并进行测试。
    警告:如果您之前已经通过其他 SAMP 文章、随附 CD 脚本或以手动方法激活了 Apache 1.3,则当您尝试执行下列步骤时将会发生冲突。在继续操作之前禁用 Apache 1.3 十分重要。
    确保 Apache 1.3 已被禁用:
    #svcs -a | grep apache
    legacy_run Sep_11lrc:/etc/rc3_d/S50apache
    以上信息表示 Apache 1.3 传统的 rc 启动脚本为 /etc/rc3_d/S50apache。该脚本将在 /etc/apache/httpd.conf 中查找 Apache 的配置文件是否存在,如果缺少该文件,则不会启动 Apache 1.3。要禁用 Apache 1.3,请确保上述路径中没有文件,或者(虽然这种方法有点极端)将启动脚本从:
    /etc/rc3_d/S50apache
    重命名为:
    /etc/rc3.d/OFF-S50apache
    事实上,在启动时仅执行以字母“S”开头的脚本。
    启动 Apache 2:
    # svcadm enable apache2
    # svcs | grep -i apache2
    online   18:07:10 svc:/network/http:apache2
    如果 Apache 2 已成功启动,则您可以使用 ps 命令,并且应该看到多个类似于下述进程的进程:
    # ps -ef | grep http
    webservd 18592 38020Sep 11 ? 0:03 /usr/apache2/bin/httpd -k start
    webservd 13093 38020Sep 08 ? 0:07 /usr/apache2/bin/httpd -k start
    如果发现大约 10 个此类进程,请不要惊慌。此外,在看到下列进程时也不要惊慌:
    root 49810 Jul 17 ? 1:28 /usr/apache/bin/httpd  \
                     -f /etc/apache/httpd-standalone-ipp.conf
    它只不过是网络端口 631 上 Internet 打印协议 (IPP) 侦听器所使用的较旧的 Apache 1.3。由于它不在端口 80 上运行,因此不会与此处的 web 服务器配置发生冲突。
    7.接下来,我们来了解一些在 Apache 2 web 服务器的 DocumentRoot 目录中进行测试非常有用的信息。请使用您所选择的文本编辑器,创建下列文件(网页),并将其命名为 phpinfo.php:
          Hello World
          
      
    按照 Apache httpd.conf 文件中的定义将该文件放置到 DocumentRoot 目录中。如果您将 web 浏览器指向 http://your-host-name/phpinfo.php 并且一切正常,则您应该获取有关 PHP、Apache、和 MySQL 配置的详细信息。
    注意:建议您在测试之后删除该文件,或使用 HTTP 验证对其进行保护,因为该文件透露了与站点有关的大量信息,这些信息对攻击者非常有用。
    到现在为止,您已经注意到,实际上述的 phpinfo 网页基本上仅测试 Apache 和 PHP 是否一起工作。尽管输出会显示与已启用的 MySQL 客户端有关的信息,但它实际上并不测试与 MySQL 服务器的连接。在绝大多数情况下,您只需安装 PHP/MySQL 应用程序,并期望它可以正常工作。但是,如果您具有超强的分析能力,喜欢仔细研究完整性、准确性,并希望对几乎所有事情进行测试,则可以参见下面提供的简单 PHP 网页,该页将执行下列操作:
  • 尝试打开从 PHP 页到 MySQL 的连接。
  • 选择 mysql 数据库名称,该数据库是在执行完所有 MySQL 安装后存在的数据库。
  • 显示存在于 mysql 数据库中的表名的列表。
    大多数代码都来自于 PHP 手册中的函数用法示例。请将下面的 PHP 代码复制到文件(网页)中,并为其指定类似 simple-test.php 的名称。编辑该文件并插入用于连接到 MySQL 服务器的密码。将该文件放置到 web 服务器的 DocumentRoot 中(与之前放置 phpinfo.php 的位置相同)。
    以下为 PHP 代码:
    The selected database is name is mysql";
    echo "Here is the list of tables";
    while ($row = mysql_fetch_row($result)) {
       echo "Table: {$row[0]}
    ";
    }
    mysql_free_result($result);
    ?>
    如果您已正确复制上述代码,并且软件配置正确,则可以将 Web 浏览器指向 http://yourserver.com/simple-test.php,您应该可以看到类似以下的内容:
    Connection to Mysql server succeeded.
    The selected database is name is mysql.
    Here is the list of tables
    Table: columns_priv
    Table: db
    Table: func
    Table: help_category
    Table: help_keyword
    Table: help_relation
    Table: help_topic
    Table: host
    Table: proc
    Table: procs_priv
    Table: tables_priv
    Table: time_zone
    Table: time_zone_leap_second
    Table: time_zone_name
    Table: time_zone_transition
    Table: time_zone_transition_type
    Table: user
    8. 让我们来查看一下 PHP 的安全性。
    现在所需功能已经能够正常运行,但请注意,PHP 的默认安装和配置文件 php.ini 中的默认选项仅对开发工作是安全的,而对于暴露在网络上的生产服务器并不安全。下面是严重警告:
    A. 删除在上面
    步骤 7
    中创建的 phpinfo 和 simpletest PHP 网页。(或者立即通过使用某些类型的 HTTP 验证保护这些页面所在的目录来锁定这些网页。)
    B.强烈建议您查看与保护 PHP 有关的教程,例如以下教程:

    如果您没有时间阅读这些教程,建议您至少查看一下 PHP 源代码目录中的(也是较安全的)配置文件 php.ini-recommended。您可能希望将此文件与基本的启动配置文件 php.ini-dist 进行比较,以查看已对生产站点的安全性和性能进行了哪些更改。
    (# diff php.ini-dist php.ini-recommended | less)
    希望本文提供的技巧可帮助您解决一些问题。希望您能在 Solaris 操作系统上顺利使用 SAMP 服务器。


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/65250/showart_1958252.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP