期中集羣架構-第九章-期中架構LNMP章節
======================================================================php
01. LNMP架構說明
1)使前端web服務和後端存儲服務進行串聯
2)主要實現處理PHP程序動態請求
02. LNMP架構工做原理
L--Linux N--nginx M--mysql P--php
html
03. LNMP架構部署前端
1)安裝LNMP相關軟件
①. 部署Linux系統
基礎優化操做要完成(防火牆關閉 關閉selinux /tmp權限爲1777)mysql
②. 部署nginx服務
暫時忽略
③. 部署mysql服務
yum部署軟件 linux
編譯安裝軟件 nginx
二進制包方式部署mysql服務
第一個里程:下載並解壓mysql軟件程序
mysql官方下載連接地址:ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/
上傳mysql軟件程序,進行利用xftp軟件進行上傳
tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34
第二個里程:建立軟件程序軟連接
ln -sf /application/mysql-5.6.34/ /application/mysql
若是軟連接已經存在 -f 強制建立
第三個里程:建立數據庫管理用戶,並受權數據目錄
useradd mysql -M -s /sbin/nologin
chown -R mysql.mysql /application/mysql/data/
第四個里程:對數據庫服務進行初始化
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
basedir對哪個數據庫進行初始化,後期學習一個系統中部署幾個數據庫因此須要指定web
datadir指定數據目錄 user指定數據庫目錄管理帳戶sql
第五個里程:啓動mysql服務
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld數據庫
mysql.server 啓動腳本文件 把文件複製到 開機啓動文件夾中vim
sed -ri 's#/usr/local#/application#g' /etc/init.d/mysqld /application/mysql/bin/mysqld_safe
vim mysql.server看到默認的basedir不在咱們建立的application中,須要修改
vim mysqld_safe控制mysql服務是否可以正常啓動的命令看到默認識別的程序目錄
也不是/applicastion 須要修改
cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
/etc/my.cnf系統自帶的mysql 配置文件 跟咱們的版本可能不匹配
cp mysql裏的配置文件過去
最後啓動 mysql
/etc/init.d/mysqld start
第六個里程:設置數據庫root用戶登陸密碼
設置密碼/application/mysql/bin/mysqladmin -uroot password "oldboy123"
登錄/application/mysql/bin/mysql -uroot -poldboy123
進入數據庫全部的操做都是用的sql語句
show databases; 顯示全部的數據庫內容
④. PHP軟件安裝部署過程
第一里程:解決PHP軟件的依賴關係
yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
libiconv軟件安裝---字符集轉換庫(默承認以不進行安裝了)
cd /server/tools
#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz 解壓
cd libiconv-1.14 進入
./configure --prefix=/usr/local/libiconv 配置
make
make install
cd ../
#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
部署repo源以前已經操做過了
yum -y install libmcrypt-devel mhash mcrypt 加密相關軟件
rpm -qa libmcrypt-devel mhash mcrypt
第二個里程:下載解壓PHP軟件
php官方網站下載:php.net
cd /server/tools/
tar xf php-5.5.32.tar.gz
cd php-5.5.32 進入目錄配置php 不須要區瞭解每一個配置的類容
如下配置方法是彙總實際工做的一個配置
./configure \
--prefix=/application/php-5.5.32 \
--with-mysql=/application/mysql-5.6.34 \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp \
--enable-opcache=no
配置成功
##防錯(如下信息能夠不進行配置了)
ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
touch ext/phar/phar.phar
/server/tools/php-5.5.32/ext/phar/phar.phar
make
make install
ln -s /application/php-5.5.32/ /application/php
第三個里程:設置PHP程序配置文件
php.ini php-fpm.ini兩個配置文件
php.ini 放在安裝包裏面
cp php.ini-production /application/php-5.5.32/lib/
一下命令是由於建立了軟連接
cd /application/php/etc/
裏面有個php-fpm.conf.default 備份文件程序不能加載
因此備份重命名
cp php-fpm.conf.default php-fpm.conf
第四個里程:啓動php程序服務
/application/php/sbin/php-fpm
netstat -lntup|grep php
添加到、vim /etc/rc.local 開機自動開啓
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 6251/php-fpm
2)進行軟件直接的結合
nginx與php結合:編寫nginx配置文件
location ~* .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
以上匹配到php或php5的都給9000端口,默認使用這個配置便可不用過多關注
而後重啓
測試
cd /application/nginx/html/blog/ 進入blog站點目錄
\rm ./* -fr清空裏面的類容
vim test_info.php編寫php的測試網頁
http://blog.etiantian.org/test_info.php 瀏覽器打開
動態解析成功!
php與mysql結合:編寫php程序代碼
編寫生成到相應站點目錄下如 /application/nginx/html/blog
# vim test_mysql.php
<?php
//$link_id=mysql_connect('主機名','用戶','密碼');
//mysql -u用戶 -p密碼 -h 主機
$link_id=mysql_connect('localhost','root','oldboy123') or mysql_error();
if($link_id){
echo "mysql successful by oldboy !\n";
}else{
echo mysql_error();
}
?>
解釋:
$link_id=mysql_connect 設置變量=調用了一個php調用mysql的函數
localhost---mysql服務器在哪 哪兒登錄過去的 這裏設置的本地
root---登錄數據庫的用戶 後面爲密碼
if判斷若是成功 則顯示 echo " "
若是失敗echo 就調用or後面的mysql_error()函數
==========================================
測試瀏覽器打開http://blog.etiantian.org/test_mysql.php
顯示
結合成功!
3)部署一個真的網站
第一個里程:下載與上傳網站代碼
wordpress-4.7.3-zh_CN.tar.gz 一個開源的博客網站代碼
第二個里程:解壓程序代碼,將程序代碼保存到站點目錄並進行受權
tar xf wordpress-4.7.3-zh_CN.tar.gz
mv wordpress/* /application/nginx/html/blog/
移動過去的文件不少都是nobody的權限,須要修改
修改爲nginx: worker進程的用戶
chown -R www.www /application/nginx/html/blog/
無論客戶端是什麼身份訪問網站都會作一個映射,轉換成www用戶
第三個里程:直接訪問blog網站,進行初始化操做
http://blog.etiantian.org/ 出錯
配置文件裏默認沒有請求指定文件時返回的是index.html
但此時在/application/nginx/html/blog裏並無index.html首頁存在
因此報錯403
咱們如今不是默認訪問靜態資源 ,如今是動態資源因此加上index.php
重啓reload 再次進入網站
建立數據庫:
進入mysql
# /application/mysql/bin/mysql -uroot -poldboy123
create database wordpress; 建立一個數據庫
show databases; 檢查 WordPress數據庫是否建立好了
grant all on wordpress.* to 'wordpress'@'localhost' identified by 'oldboy123';
建立連接數據庫用戶 和密碼
select user,host from mysql.user;
檢查mysql自帶的用戶表看有沒有建立的信息
接着安裝
提示"要執行請求的操做,WordPress須要訪問您網頁服務器的權限。 請輸入您的FTP登陸憑據以繼續。 若是您忘記了您的登陸憑據(如用戶名、密碼),請聯繫您的網站託管商。"
添加好網站目錄權限與nginx進程權限一致
下一個章節:
01. LNMP架構數據庫服務的遷移
02. LNMP架構數據資源遷移到NFS服務器存儲
03. nginx反向代理與負載均衡功能