基於lnmp架構的實現論壇(Discuz)的搭建

一、lnmp架構

LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站服務器架構。
(1) Linux是一類Unix計算機操作系統的統稱,是目前最流行的免費操作系統。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
(2)Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。Nginx性能穩定、功能豐富、運維簡單、處理靜態文件速度快且消耗系統資源極少
(3)Mysql是一個小型關係型數據庫管理系統。
(4)PHP是一種在服務器端執行的嵌入HTML文檔的腳本語言。
這四種軟件均爲免費開源軟件,組合到一起,成爲一個免費、高效、擴展性強的網站服務系統。

二、mysql

1、得到mysql數據庫的源碼包(可以去官網下載:https://www.mysql.com)並進行解壓

tar zxf mysql-boost-5.7.17.tar.gz 
cd mysql-5.7.17/

2、安裝源碼編譯工具cmake

yum install -y cmake-2.8.12.2-4.el6.x86_64.rpm

3、安裝工具包和依賴包

yum install -y gcc gcc-c++ ncurses-devel bison openssl-devel zlib-devel

4、編譯

[root@server1 ~]# cd mysql-5.7.17/
[root@server1	mysql-5.7.17]#	cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1	-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci	-DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0

安裝完成的結果 如圖
在這裏插入圖片描述

5、安裝

[root@server1 mysql-5.7.17]# make && make install

安裝完成如圖所是
在這裏插入圖片描述

6、將編譯完成的mysql啓動腳本複製到系統啓動服務的默認目錄中

[root@server1 ~]# cd /usr/local/lnmp/mysql/support-files/
[root@server1 support-files]# cp mysql.server  /etc/init.d/mysqld

7、對mysql服務進行限制,將mysql服務的工作空間侷限在mysql用戶的加目錄中,創建mysql組和mysql用戶

[root@server1 support-files]# groupadd -g 27 mysql
[root@server1 support-files]# useradd -g 27 -u 27 -M -d /usr/local/lnmp/mysql/ -s /sbin/nologin mysql	#指定mysql用戶的家目錄爲usr/local/lnmp/mysql/ 

8、將mysql目錄下的所有目錄的所屬組修改爲mysql,因爲mysql服務將要網這個目錄中寫數據,保證其有執行權限

[root@server1 mysql]# chown -R mysql.mysql .

9、將編譯生成的mysql二進制命令放進系統的環境變量文件當中,保證可以直接調用該二進制命令

[root@server1 ~]# cd /usr/local/lnmp/mysql/bin/
[root@server1 bin]# vim ~/.bash_profile 
[root@server1 bin]# source ~/.bash_profile 

在這裏插入圖片描述

10、執行mysql的配置初始化文件

[root@server1 bin]# mysqld --initialize --user=mysql		#生成的初始密碼在圖片的紅框中

在這裏插入圖片描述
mysql的安全初始化

1、打開mysql服務

[root@server1 bin]# /etc/init.d/mysqld start

2、執行安全初始化腳本

[root@server1 data]# mysql_secure_installation

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

3、登錄mysql數據庫測試

在這裏插入圖片描述

Mysql數據庫源碼編譯就完成了

三、Php

1、獲得安裝包並解壓

[root@server1 ~]#wget http://cn2.php.net/distributions/php-5.6.31.tar.gz
[root@server1 ~]# ls
php-5.6.31.tar.gz
[root@server1 ~]# tar zxf php-5.6.31.tar.gz 
[root@server1 ~]# ls
php-5.6.31.tar.gz			php-5.6.31
[root@server1 ~]# cd php-5.6.31

2、源碼編譯

首先解決依賴性,安裝依賴包
[root@server1~]#yum install libxml2-devel openssl-devel -y gd-devel-2.0.35-11.el6.x86_64.rpm curl-devel gmp-devel
[root@server1~]# yum install -y libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm gd-devel-2.0.35-11.el6.x86_64.rpm re2c-0.13.5-1.el6.x86_64.rpm 
預編譯
[root@server1 ~]# ./configure --prefix=/usr/local/lnmp/php  --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd  --with-openssl  --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gmp --enable-inline-optimization  --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash
[root@server1 ~]# make && make install

3、將配置文件拷貝

[root@server1 ~]# cd /usr/local/lnmp/php/etc/
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server1~]#	cp	php-5.6.31/php.ini-production /usr/local/lnmp/php/etc/php.ini

4、配置php服務

[root@server1 ~]# cd /usr/local/lnmp/php/etc/
[root@server1 etc]# vim php-fpm.conf

在這裏插入圖片描述
[root@server1 etc]# vim php.ini
在這裏插入圖片描述
建立nginx用戶
[root@server1 etc]# useradd -M -d /usr/local/lnmp/nginx/ -u 800 nginx

5、將啓動腳本複製到系統自動腳本的默認目錄下,並加以測試

[root@server1 ~]# cp -p php-5.6.31/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm	#init.d.php-fpm是編譯完成的啓動腳本
[root@server1 ~]# chmod +x /etc/init.d/php-fpm 	#給腳本加上可執行權限
[root@server1 ~]# /etc/init.d/php-fpm start		#打開php服務
[root@server1 ~]# netstat -antlp |grep 9000	#查看php服務

在這裏插入圖片描述

四、nginx源碼編譯

1、得到nginx的源碼包並解壓

[root@server1 ~]# tar zxf nginx-1.14.0.tar.gz 
[root@server1 ~]# yum install -y unzip
[root@server1	~]#unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip 

2、Nginx的優化

(1)取消debug測試

[root@server1 ~]# vim nginx-1.14.0/auto/cc/gcc
在這裏插入圖片描述

(2)去掉nginx的版本號(安全考慮)

[root@server1 ~]# vim nginx-1.14.0/src/core/nginx.h
在這裏插入圖片描述

3、創造預編譯環境

[root@server1 nginx-1.14.0]# yum install -y pcre-devel
[root@server1 nginx-1.14.0]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx --with-threads --with-file-aio 
其中:
./configure --prefix=/usr/local/lnmp/nginx    # nginx的安裝路徑
--with-http_ssl_module                        # 支持https
--with-http_stub_status_module 
--with-threads    # 支持線程併發
--user=nginx 
--group=nginx     # 運行在nginx用戶和nginx組
--with-file-aio

預編譯成功:
在這裏插入圖片描述

4、編譯彙編

[root@server1 nginx-1.14.0]# make && make install
在這裏插入圖片描述

5、配置nginx服務

添加nginx用戶
[root@server1 conf]# useradd -M -d /usr/local/lnmp/nginx/ -u 800 nginx
修改文件

[root@server1 nginx-1.14.0]# cd /usr/local/lnmp/nginx/conf/
[root@server1 conf]# vim nginx.conf
   2 user  nginx;
   3 worker_processes  auto;

   12 events {
   13     worker_connections  65535;
   14 }

   43         location / {
   44             root   html;
   45             index index.php index.html index.htm;
   46         }

   65         location ~ \.php$ {
   66             root           html;
   67             fastcgi_pass   127.0.0.1:9000;
   68             fastcgi_index  index.php;
   69         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   70             include        fastcgi.conf;
   71         }

修改nginx緩存最大文件數

[root@server1 conf]# vim /etc/security/limits.conf 
[root@server1 conf]# tail -n 1 /etc/security/limits.conf 
nginx		-	nofile		65535

在這裏插入圖片描述

6、設置nginx命令路徑

[root@server1 conf]# vim ~/.bash_profile 
[root@server1 conf]# source ~/.bash_profile

按照如圖所式修改文件
在這裏插入圖片描述

7、檢測服務,並打開服務

[root@server1 conf]# nginx -t	#檢測配置文件是否有錯
[root@server1 conf]# nginx	#打開nginx服務

在這裏插入圖片描述

8、訪問測試

[root@server1 conf]# cd /usr/local/lnmp/nginx/html/
[root@server1 html]# vim index.php

在這裏插入圖片描述

9、修改php的默認訪問

[root@server1 ~]# cd /usr/local/lamp/nginx/conf
[root@server1 conf]# vim  nginx.conf
45             index   index.php index.html index.htm;
[root@server1 conf]# nginx -s  reload

測試:
在這裏插入圖片描述

五、基於lnmp論壇的搭建

1、解壓Discuz論壇包

[root@server1 ~]# yum  install unzip -y
[root@server1 ~]# unzip Discuz_X3.2_SC_UTF8.zip  -d /usr/local/lnmp/nginx/html/

2、修改目錄權限

[root@server1 ~]# cd   /usr/local/lnmp/nginx/html/
[root@server1 html]# mv upload/  bbs     ##改名爲bbs
[root@server1 html]# cd  bbs/
[root@server1 bbs]# chmod 777 config/  data/  uc_server/ uc_client/  -R

3、指定socket路徑

root@server1 ~]# cd  /usr/local/lnmp/php/etc/
[root@server1 etc]# vim php.ini
1013 pdo_mysql.default_socket=/usr/local/lnmp/mysql/data/mysql.sock
1157 mysql.default_port =/usr/local/lnmp/mysql/data/mysql.sock
1221 mysqli.default_socket =/usr/local/lnmp/mysql/data/mysql.sock
[root@server1 etc]# /etc/init.d/php-fpm reload
Reload service php-fpm  done

修改訪問權限

[root@server1 mysql]# pwd
/usr/local/lnmp/mysql
[root@server1 mysql]# chmod 755  data/

解決在論壇安裝過程中第三步安裝數據庫過程中(No such file or directoey)
執行下面的命令:

[root@server1 etc]# chmod 755 /usr/local/lnmp/mysql/data/

測試:在瀏覽器中訪問172.25.66.1/bbs(第一步:我同意—>第二步:修改權限後x會編程對勾,下一步—>第三步:安裝數據庫<輸入數據庫的密碼,管理員登錄密碼>第四步:開始使用)
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章