1. 程式人生 > >社交網站部署——Nginx服務器+PHP服務器搭建+MySQL主從集群

社交網站部署——Nginx服務器+PHP服務器搭建+MySQL主從集群

安裝環境 nginx服務器 環境 tar.gz fast vim tex use nginx

案例概述

某公司的社交網站采用PHP語言開發,為了管理PHP程序員開發的代碼,上級領導要求搭建SVN服務器進行版本控制。社交網站的第一個版本部署在LNMP平臺之上,前端為Nginx服務器,通過fastcgi協議訪問後端的PHP服務器。為了保證數據安全,要求搭建MySQL數據庫主從集群。

社交網站項目包含用戶的相冊功能,允許用戶上傳照片,上傳照片需要使用共享存儲來存放。針對共享存儲可用的開源方案有很多,如MFS、FastDFS 等。公司決定使用MFS分布式文件系統來實現,並將MFS掛載在PHP服務器的相關目錄下。
技術分享圖片

案例實施

根據公司的需求,實施過程大致分為以下步驟。

  • 部署SVN服務器,為PHP程序員創建repo目錄的訪問賬戶,通知程序員可以導入代碼。
  • 部署MySQL主從服務器,根據PHP程序員的要求創建數據庫與表。
  • 部署Nginx服務器。部署PHP服務器。
  • 部署MFS,將MFS文件系統掛載在前端PHP服務器的相關目錄下。
  • 通知上線部署人員可以發布上線。

部署Nginx服務器

1、Nginx服務器安裝
yum -y install pcre-devel zlib-devel gcc gcc-c++ make        //安裝環境包依賴包
useradd -M -s /sbin/nologin nginx         //創建管理用戶

tar xzvf nginx-1.6.0.tar.gz -C /opt

cd /opt/nginx-1.6.0/

 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module             

make && make install
2、修改Nginx配置

需要配置後端PHP程序的fastcgi訪問接口

vim /usr/local/nginx/conf/nginx.conf       //配置後端PHP程序的fastcgi訪問接口

location / {
            root   html/webphp;
            index  index.html index.htm;
        }

location ~ \.php$ {
        root           /var/www/html/webphp;
        fastcgi_pass   192.168.43.117:9000;         //PHP服務器 IP地址:端口
        fastcgi_index  index.php;
        include        fastcgi.conf;
}

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/    //方便管理,建立軟鏈接

技術分享圖片

3、開啟Nginx
nginx          //開啟Nginx
netstat -antp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6502/nginx: master

systemctl stop firewalld.service 
setenforce 0             //關閉防火墻和安全功能

#nginx -t       //檢查
#nginx          //啟動
#killall -1 nginx   //重啟
#killall -3 nginx   //停止

技術分享圖片

部署PHP服務器

1、安裝PHP,並且通過配置php-fpm進程監聽9000端口來接受Nginx的請求
yum -y install gd libxml2-devel libjpeg-devel libpng-devel zlib-devel mysql-devel bzip2-devel gcc gcc-c++ make        //安裝環境包,依賴包

useradd -M -s /sbin/nologin php       //創建管理用戶
tar xzvf php-5.3.28.tar.gz -C /opt/
cd /opt/php-5.3.28/
cp /usr/lib64/mysql/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so       //PHP默認去/usr/lib搜索libmysqlclient.so

./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql --with-mysqli --with-mysql-sock --with-config-file-path=/usr/local/php --enable-mbstring --with-jpeg-dir=/usr/lib --enable-fpm

make && make install
2、修改php-fpm.conf文件來接受Nginx請求
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf    //配置php-fpm 進程監聽9000端口來接受nginx請求

vim php-fpm.conf
......
pid = run/php-fpm.pid
user = php
group = php
listen = 0.0.0.0:9000
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
3、開啟服務並測試
/usr/local/php/sbin/php-fpm        //開啟php-fpm進程
netstat -ntap | grep 9000
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      104389/php-fpm: mas

systemctl stop firewalld.service 
setenforce 0         //關閉防火墻和安全功能

技術分享圖片

4、創建測試頁面,瀏覽器訪問測試
mkdir -p /var/www/html/webphp
vim /var/www/html/webphp/index.php

<?php
phpinfo();
?>

瀏覽器輸入:http://192.168.43.222/index.php 驗證
技術分享圖片

MySQL主從集群

參考博文:http://blog.51cto.com/13620936/2150981

社交網站部署——Nginx服務器+PHP服務器搭建+MySQL主從集群