美文网首页
CentOS6.6下配置LAMP环境

CentOS6.6下配置LAMP环境

作者: playman | 来源:发表于2018-06-24 21:50 被阅读0次

    CentOS配置PHP运行环境,即LAMP

    yum安装apache服务器
    yum安装PHP环境
    yum安装MySQL
    MySQL一些基本使用

    配置LAMP文件

    apache服务器

    安装apache服务器
    yum install httpd httpd-devel
    
    启动apache
    /etc/init.d/httpd start
    

    mysql数据库

    安装mysql数据库

    yum install mysql mysql-server
    

    启动数据库

    /etc/init.d/mysqld start
    

    安装php

    安装php服务

    yum install php php-devel
    

    重启apache服务

    /etc/init.d/httpd restart
    

    php拓展

    yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
    

    数据库一些基本配置

    • 查看版本信息
    rpm -qi mysql-server
    
    • 启动数据库服务(默认是不开启的)
    service mysqld start
    
    • 重启数据库服务
    service mysqld restart
    
    • 查看数据库服务是否开启
    chkconfig --list | grep mysqld
    
    • 设置数据库服务开机启动
    chkconfig mysqld on
    
    • 设置帐号和密码(注意设置完毕之后要重启服务)
    mysqladmin -u root password 'root'
    
    • 主要配置文件的路径
      1、/etc/my.cnf 这是mysql的主配置文件
      2、/var/lib/mysql mysql数据库的数据库文件存放位置
      3、/var/log mysql数据库的日志输出存放位置

    • 查看数据库使用的端口号

    netstat -anp
    

    PHP连接数据库

    • 测试连接数据库(注意要把mysql的拓展安装好)
    <html>
    <head>
    <meta charset="utf-8">
    <title>Connecting MySQL Server</title>
    </head>
    <body>
    <?php
       $dbhost = 'localhost:3306';  //mysql服务器主机地址
       $dbuser = 'root';      //mysql用户名
       $dbpass = 'root';//mysql用户名密码
       $conn = mysql_connect($dbhost, $dbuser, $dbpass);
       if(! $conn )
       {
         die('Could not connect: ' . mysql_error());
       }
       echo 'Connected successfully';
       mysql_close($conn);
    ?>
    </body>
    </html>
    
    • 创建数据表
    <html>
    <head>
    <meta charset="utf-8">
    <title>创建 MySQL 数据库</title>
    </head>
    <body>
    <?php
        $dbhost = 'localhost:3036';
        $dbuser = 'root';
        $dbpass = 'root';
        $conn = mysql_connect($dbhost, $dbuser, $dbpass);
        if(! $conn )
        {
          die('连接错误: ' . mysql_error());
        }
        echo '连接成功<br />';
        $sql = 'CREATE DATABASE RUNOOB';
        $retval = mysql_query( $sql, $conn );
        if(! $retval )
        {
          die('创建数据库失败: ' . mysql_error());
        }
        echo "数据库 RUNOOB 创建成功\n";
        mysql_close($conn);
    ?>
    </body>
    </html>
    
    • 删除数据库
      修改sql语句即可
    $sql = 'DROP DATABASE RUNOOB';
    $retval = mysql_query( $sql, $conn );
    
    • 选择要操作的数据库
    mysql_select_db( 'RUNOOB' );
    
    • 创建表(注意php是区分大小写的)
    <html>
    <head>
    <meta charset="utf-8">
    <title>创建 MySQL 数据表</title>
    </head>
    <body>
    <?php
        $dbhost = 'localhost:3036';
        $dbuser = 'root';
        $dbpass = 'root';
        $conn = mysql_connect($dbhost, $dbuser, $dbpass);
        if(! $conn )
        {
          die('连接失败: ' . mysql_error());
        }
        echo '连接成功<br />';
        $sql = "CREATE TABLE runoob_tbl( ".
               "runoob_id INT NOT NULL AUTO_INCREMENT, ".
               "runoob_title VARCHAR(100) NOT NULL, ".
               "runoob_author VARCHAR(40) NOT NULL, ".
               "submission_date DATE, ".
               "PRIMARY KEY ( runoob_id )); ";
        mysql_select_db( 'RUNOOB' );
        $retval = mysql_query( $sql, $conn );
        if(! $retval )
        {
          die('数据表创建失败: ' . mysql_error());
        }
        echo "数据表创建成功\n";
        mysql_close($conn);
    ?>
    </body>
    </html>
    
    • 删除表
    $sql = "DROP TABLE runoob_tbl";
    
    • 添加数据(通过页面)
    <html>
    <head>
    <meta charset="utf-8">
    <title>向 MySQL 数据库添加数据</title>
    </head>
    <body>
    <?php
    if(isset($_POST['add']))
    {
    $dbhost = 'localhost:3036';
    $dbuser = 'root';
    $dbpass = 'root';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    if(! $conn )
    {
      die('Could not connect: ' . mysql_error());
    }
    
    if(! get_magic_quotes_gpc() )
    {
       $runoob_title = addslashes ($_POST['runoob_title']);
       $runoob_author = addslashes ($_POST['runoob_author']);
    }
    else
    {
       $runoob_title = $_POST['runoob_title'];
       $runoob_author = $_POST['runoob_author'];
    }
    $submission_date = $_POST['submission_date'];
    
    $sql = "INSERT INTO runoob_tbl ".
           "(runoob_title,runoob_author, submission_date) ".
           "VALUES ".
           "('$runoob_title','$runoob_author','$submission_date')";
    mysql_select_db('RUNOOB');
    $retval = mysql_query( $sql, $conn );
    if(! $retval )
    {
      die('不能够插入数据: ' . mysql_error());
    }
    echo "插入成功\n";
    mysql_close($conn);
    }
    else
    {
    ?>
    <form method="post" action="<?php $_PHP_SELF ?>">
    <table width="600" border="0" cellspacing="1" cellpadding="2">
    <tr>
    <td width="250">标题</td>
    <td>
    <input name="runoob_title" type="text" id="runoob_title">
    </td>
    </tr>
    <tr>
    <td width="250">作者</td>
    <td>
    <input name="runoob_author" type="text" id="runoob_author">
    </td>
    </tr>
    <tr>
    <td width="250">提交时间</td>
    <td>
    <input name="submission_date" type="data" id="submission_date">
    </td>
    </tr>
    <tr>
    <td width="250"> </td>
    <td> </td>
    </tr>
    <tr>
    <td width="250"> </td>
    <td>
    <input name="add" type="submit" id="add" value="添加数据">
    </td>
    </tr>
    </table>
    </form>
    <?php
    }
    ?>
    </body>
    </html>
    
    • 查询数据
    <?php
    $dbhost = 'localhost:3036';
    $dbuser = 'root';
    $dbpass = 'root';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    if(! $conn )
    {
      die('Could not connect: ' . mysql_error());
    }
    $sql = 'SELECT runoob_id, runoob_title,
                   runoob_author, submission_date
            FROM runoob_tbl';
    
    mysql_select_db('runoob');
    $retval = mysql_query( $sql, $conn );
    if(! $retval )
    {
      die('不能拿到数据: ' . mysql_error());
    }
    while($row = mysql_fetch_array($retval, MYSQL_NUM))
    {
        echo "作者 ID :{$row[0]}  <br> ".
             "标题: {$row[1]} <br> ".
             "作者: {$row[2]} <br> ".
             "提交时间 : {$row[3]} <br> ".
             "--------------------------------<br>";
    }
    mysql_free_result($retval);
    echo "查询成功\n";
    mysql_close($conn);
    ?>
    
    注意:
         1、在mysql_fetch_array()函数的第二个参数。有MYSQL_ASSOC和MYSQL_NUM。
         2、$row = mysql_fetch_assoc($retval)同样可以获取数据。取值方式和MYSQL_ASSOC一样是通过数据库的字段名取值。
         3、注意释放内存:mysql_free_result($retval);。
    
    • where子句查询
    $sql = 'SELECT runoob_id, runoob_title,
                   runoob_author, submission_date
            FROM runoob_tbl
            WHERE runoob_author="Sanjay"';
    
    • update更新操作
    $sql = 'UPDATE runoob_tbl
            SET runoob_title="Learning JAVA"
            WHERE runoob_id=3';
    
    • delete删除数据操作
    $sql = 'DELETE FROM runoob_tbl
            WHERE runoob_id=3';
    
    • like语句的使用
    $sql = 'SELECT runoob_id, runoob_title,
                   runoob_author, submission_date
            FROM runoob_tbl
            WHERE runoob_author LIKE "%jay%"';
    
    • mysql排序操作
    $sql = 'SELECT runoob_id, runoob_title,
                   runoob_author, submission_date
            FROM runoob_tbl
            ORDER BY  runoob_author DESC';
    
    • group by语句(分组操作)
    SELECT name FROM   employee_tbl GROUP BY name;
    
    注意:
         WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
         SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
    
    • join连接的使用
    $sql = 'SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author';
    
    注意:连接还有左连接、右连接
    
    • mysql中的正则表达式
    模式 描述
    ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。
    $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。
    . 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。
    [...] 字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。
    [^...] 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。
    p1 | p2 | p3 匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。
    * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
    + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
    {n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
    {n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。

    使用:

    SELECT name FROM person_tbl WHERE name REGEXP '^st';
    
    • 事务操作
    <?php
    $handler=mysql_connect("localhost","root","password");
    mysql_select_db("task");
    mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
    mysql_query("BEGIN");//开始事务定义
    if(!mysql_query("insert into trans (id) values('2')"))
    {
    mysql_query("ROLLBACK");//判断当执行失败时回滚
    }
    if(!mysql_query("insert into trans (id) values('4')"))
    {
    mysql_query("ROLLBACK");//判断执行失败回滚
    }
    mysql_query("COMMIT");//执行事务
    mysql_close($handler);
    ?>
    
    • alter修改表

    修改表结构

    ALTER TABLE testalter_tbl ADD new_col INT;//添加字段
    ALTER TABLE testalter_tbl  DROP old_col;//删除字段
    

    修改字段的类型

    ALTER TABLE testalter_tbl MODIFY c CHAR(10);
    
    ALTER TABLE testalter_tbl CHANGE j j INT;
    

    修改表名

    ALTER TABLE testalter_tbl RENAME TO alter_tbl;
    
    • 注意SQL注入

    1、如对用户名等用户输入内容进行检测

    if (preg_match("/^\w{8,20}$/", $_GET['username'], $matches))
    {
       $result = mysql_query("SELECT * FROM users
                              WHERE username=$matches[0]");
    }
     else
    {
       echo "username 输入异常";
    }
    

    2、利用PHP的MySQL扩展中提供的函数来转义特殊字符

    if (get_magic_quotes_gpc())
    {
      $name = stripslashes($name);
    }
    $name = mysql_real_escape_string($name);
    mysql_query("SELECT * FROM users WHERE name='{$name}'");
    

    3、防止LIKE中的注入

    $sub = addcslashes(mysql_real_escape_string("%something_"), "%_");
    // $sub == \%something\_
    mysql_query("SELECT * FROM messages WHERE subject LIKE '{$sub}%'");
    

    相关文章

      网友评论

          本文标题:CentOS6.6下配置LAMP环境

          本文链接:https://www.haomeiwen.com/subject/ycgsyftx.html