lnmp的搭建
linux nginx mysql(mariaDB) php
安装mysql依赖:
yum -y install cmake(cmake编译工具)
yum -y install gcc gcc-c++
yum -y install ncurses-devel
安装mysql
[[email protected]]# useradd mysql
[[email protected]]# tar -xf mysql-5.6.26.tar.gz
[[email protected]]# cd mysql
[[email protected] mysql]# cmake
[[email protected] mysql]# make
[[email protected] mysql]# make install
[[email protected] mysql]# chown -R mysql.mysql /usr/local/mysql/(设置权限,所有者,所属主)
初始化数据库
[[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data(到scripts目录下运行脚本)
[[email protected]]# ls data/(查看数据库,默认没有,运行脚本后才有)
auto.cnf ib_logfile0 mysql test web2.pid
。。。。。。。。
[[email protected] ~]# vim /etc/ld.so.conf(到搜索路径加上mysql的库)
/usr/local/mysql/lib/
[[email protected] ~]# ldconfig
[[email protected] mysql]# mv support-files/mysql.server /etc/init.d/mysqld(把启动脚本放到etc/init.d)
[[email protected] ]# ln -s /usr/local/mysql/bin/* /usr/bin/
[[email protected]]# ldconfig -v(更新链接库)
[[email protected] ]# server mysqld start(启动mysql)
[[email protected] ]# mysql(默认是没密码的)
mysql> show databases;(查看有哪些数据库,每个指令后加分号结尾)
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.12 sec)
mysql> use mysql;(进入数据库)
mysql> show tables;(查看数据表)
......
mysql> select * from user;(看from user数据表的信息)
mysql> create database mydb;(创建新的数据库)
mysql> use mydb;(进入数据库)
mysql> create table myt(name char(10),id int(3));(创建数据表)
mysql> insert into myt("jerry,001");(往数据表里存数据)
mysql> select * from myt;(查询)
mysql> exit(退出)
安装php扩展
[[email protected]]# tar -xf mhash....tar.gz(哈希函数库)
[[email protected]]# cd mhash
[[email protected]]# ./configure
[[email protected]]# make
[[email protected]]# make install
[[email protected]]# tar -xf libmcrypt..tar.gz(提供加密功能的库文件)
[[email protected]]# cd libmcrypt
[[email protected] libmcrypt]# ./configure
[[email protected] libmcrypt]# make
[[email protected] libmcrypt]# make install
[[email protected]]# ln -s /usr/local/lib/libmcrypt* /usr/lib/(把依赖库文件做链接)
[[email protected]]# ln -s /usr/local/lib/libmhash.* /usr/lib/(对库文件做链接)
[[email protected]]# ldconfig (更新链接库)
安装php
[[email protected]]# tar -xf php...tar.gz
[[email protected]]# cd php
[[email protected] php]# ./configure --enable-fpm(默认监听9000端口)
[[email protected] php]# make
[[email protected] php]# make install
[[email protected] ]# cd lnmp_soft/php-5.4.24/sapi/fpm(进入启动脚本文件)
[[email protected] fpm]# cp init.d.php-fpm /etc/init.d/php-fpm(把启动脚本放到init下)
[[email protected] fpm]# chmod +x /etc/init.d/php-fpm (赋予执行权限)
[[email protected] ~]# service php-fpm start(启动服务)
[[email protected] ~]# netstat -nutlp | grep 9000(查看9000端口是否被监听,监听则服务启动成功)
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 21153/php-fpm
将服务链接:
将nginx和php绑定,如果是静态页面,则nginx直接处理
如果是php页面,则转发给php9000端口
[[email protected] conf]# vim nginx.conf
location ~ \.php$ {
root html;
fastcgi_pass 192.168.2.200:9000;(将php页面转到192.168.2.200:9000端口)
fastcgi_index index.php;
include fastcgi_conf;
}
[[email protected] ~]# firefox http://192.168.2.200/hydra.php(测试访问php页面和链接数据库情况)
[[email protected] html]# vim hydra.php
<?php
$a=mysql_connect(127.0.0.1,root.pass);
if($a){
echo "hail hydra!!!"
else{
echo "error";
}
}
?>
——————————————————————————————————————————————————————————————————————
地址重写:
获得一个来访的url请求,
然后改写成服务器可以处理的另一个url的过程
地址重写的好处:
缩短url,隐藏实际路径提高安全性
易于用户记忆和键入
易于被搜索引擎收录
常见网站应用:
当网站文集那移动或文件目录名称发生改变,处于seo需要,
你需要保持旧的url。
网站改版了,网站导航和链接发生了变化,
为了继续持有原链接带来的流量,需要保持旧的url
rewrite模块
rewrite语句:
rewrite 正则 调整后的页面 [选项]
选项:
redirect:临时重定向,地址栏改变,爬虫不更新url
permanent:永久重定向,地址栏改变,爬虫更新url
last:停止执行其他重写规则,根据url继续搜索其他location,地址栏不变
break:停止执行其他重写规则,完成本次请求
正则表达式
语法格式:
rewrite 正则 调整后的页面 [选项]
正则表达式匹配模式如下:
区分大小写匹配:~
不区分大小写匹配:~*
区分大小写不匹配:!~
不区分大小不匹配:!~*
判断文件是否存在:-f
判断目录是否存在:-d
判断文件是否可执行:-x
判断文件,目录,连接是否存在:-e
if(条件){....}
条件判断
rewrite——log:error log中记录重写日志
rewrite——log on | off
格式:rewrite 正则 调整后的页面 [选项]
示例:
要求:把a.html跳转为b.html
server {
listen 80;
server_name www.Anonymous.net;
location / {
root html;
index index.html index.htm;
rewrite a\.html /b.html redirect;(跳转,加了redirect地址栏会改变)
}
示例:
要求:把www.Anonymous.net跳转为www.Anonymous.org
server {
listen 80;
server_name www.Anonymous.net;
location / {
root html;
index index.html index.htm;
rewrite ^/(.*) http://www.Anonymous.org/$1;(整个网站及子目录文件跳转)
}
示例:
location / {
root html;
index index.html index.htm;
if ($http_user_agent ~ cirl){(判断如果实ie浏览器,则显示a.html的内容,如果是curl则显示curl/a.html的内容)
rewrite (.*)$ /curl/$1;
}
}
[[email protected] nginx]# firefox http://127.0.0.1/a.html
hail hydra!!!
[[email protected] nginx]# curl http://127.0.0.1/curl/a.html
Anonymous
——————————————————————————————————————————————————————————————