1. 程式人生 > >linux lnmp搭建及解釋

linux lnmp搭建及解釋

bre 完成 要求 查詢 roo net 所有 發生 org

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

——————————————————————————————————————————————————————————————

linux lnmp搭建及解釋