辛夷坞

涧户寂无人,纷纷开且落

By - Christen

Resin 配置 PHP 连接 MySQL

Resin 通过 Quercus 实现了对 PHP 的支持,今天实测了数据库连接,记录关键的代码片断。
先预告这套方案的优点:

  1. 数据库信息配置在 Server 中,可以交给运维人员管理,实现数据和代码的分离;
  2. PHP 源码中,不再暴露数据库信息,同样增强了数据的安全性。这个时代,数据比代码价值更高;

也猜测其短板:

  1. Resin 在国内的应用本身小众,相关的资料不多,而用 Resin 运行 PHP,应该会更少;
  2. 页面中的中文乱码问题,已经很头痛,和数据库配合,又增加了解决问题的难度;


以后我可能会找到 JSP 和 PHP 在 Resin 中共生的理由,现阶段,我还是看重测试本身的意义。
1. 配置 Resin JDBC 连接池:

<database jndi-name='jdbc/DSname'>
    <driver type="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
        <url>jdbc:mysql://192.168.0.1:3306/dbname</url>
        <user>dbuser</user>
        <password>dbpassword</password>
    </driver>
    <prepared-statement-cache-size>30</prepared-statement-cache-size>
    <max-connections>50</max-connections>
    <max-idle-time>120s</max-idle-time>
</database>

2. 配置 web.xml:

<web-app xmlns="http://caucho.com/ns/resin">
    <servlet-mapping url-pattern="*.php" servlet-class="com.caucho.quercus.servlet.QuercusServlet">
        <init>
            <compile>false</compile>
            <database>jdbc/DSname</database>
        </init>
    </servlet-mapping>
</web-app>

在 WEB-INF/lib 目录下,添加驱动程序:mysql-connector-java-5.1.45-bin.jar
3. PHP 测试代码:

$link = mysqli_connect();
if (!$link) {
    die('Could not connect to MySQL: ' . mysqli_connect_error());
}
echo 'DB Connection OK, thouth just a Toy!';
mysqli_close($link);

Leave a Reply

Your email address will not be published.
*
*