1. 程式人生 > >centos7.4安裝最新lnmp架構設置授權訪問並搭建Discuz論壇

centos7.4安裝最新lnmp架構設置授權訪問並搭建Discuz論壇

linux lnmp Discuz論壇

[root@www ~]# yum install -y \ 安裝nginx所需要的庫

pcre-devel \ //rewrite模塊需要?pcre?庫
zlib-devel //?gzip模塊需要?zlib?庫
[root@www ~]# useradd -M -s /sbin/nologin nginx 創建程序用戶nginx
[root@www ~]# tar xf nginx-1.13.9.tar.gz -C /opt/ 解壓
[root@www ~]# cd /opt/nginx-1.13.9/
[root@www nginx-1.13.9]# ./configure \
--prefix=/usr/local/nginx \ //指定安裝路徑

--user=nginx \ //指定運行用戶
--group=nginx \ //指定運行組
--with-http_stub_status_module //添加日誌統計模塊
技術分享圖片
註:./configure報以下錯誤時:
Configure:error:You need a C++ compiler for C++ support
可以使用以下命令解決:yum install -y gcc gcc-c++
[root@www nginx-1.13.9]# make && make install

[root@www nginx-1.13.9]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 軟連接

[root@www nginx-1.13.9]# nginx -t //配置文件語法檢查
技術分享圖片
[root@www nginx-1.13.9]# nginx //啟動服務
[root@www nginx-1.13.9]# killall -1 nginx //安全重啟
[root@www nginx-1.13.9]# killall -3 nginx //停止服務
啟動nginx之後,瀏覽器中輸入192.168.80.140可以驗證是否安裝成功:
技術分享圖片
[root@www nginx-1.13.9]# vi /etc/init.d/nginx //系統服務管理腳本
#!/bin/bash
#chkconfig: 35 99 20 //運行級別35,第99個開啟,第20 個關閉
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx" //主路徑程序
PIDF="/usr/local/nginx/logs/nginx.pid" //PID存放路徑
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF) //根據PID終止Nginx進程
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF) //根據進程號重載配置
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1 //不正常退出,輸入錯誤時退出
esac
exit 0
技術分享圖片
[root@www nginx-1.13.9]# chmod +x /etc/init.d/nginx //給予服務腳本執行權限
[root@www nginx-1.13.9]# chkconfig --add nginx //添加為系統服務
[root@www ~]# vi /usr/local/nginx/conf/nginx.conf
user nginx nginx; //把前面的註釋符號去掉,運行用戶,加組時,空格加組名
error_log logs/error.log info; //錯誤日誌消息
events {
use epoll; //新增此行 默認使用select/poll,在events模塊內指定epoll模型
worker_connections 1024; //表示每個工作進程允許1024個連接。
log_format main //定義日誌格式 把前面的#號去掉
charset utf-8; //更改語言支持
location ~ /status { //配置統計模塊
stub_status on;
access_log off;
} //在server 模塊裏的error_page 上面增加
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
[root@www ~]# service nginx restart
[root@www ~]# cat /usr/local/nginx/logs/access.log //查看連接數
技術分享圖片
在瀏覽器中輸入http:192.168.80.140/status
技術分享圖片
//當前的活動連接數,已處理的連接數,成功的TCP握手次數,已處理的請求數.
以下配置nginx的授權認證功能
[root@www ~]# yum install -y httpd-tools
[root@www ~]# htpasswd -c /usr/local/nginx/passwd.db jack //生成用戶認證文件
[root@www ~]# chmod 400 /usr/local/nginx/passwd.db //為了安全,更改權限和歸屬
[root@www ~]# chown nginx /usr/local/nginx/passwd.db
[root@www ~]# vi /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.html index.htm;
allow 192.168.80.0/24; //允許192.168.80.0網段連接
deny all; //拒絕所有
auth_basic "secret"; //添加認證配置
auth_basic_user_file /usr/local/nginx/passwd.db; //指定用戶認證文件
}

[root@www ~]# nginx -t
[root@www ~]# service nginx restart
在瀏覽器中輸入192.168.80.140進行驗證:
技術分享圖片
輸入我們創建的用戶名和密碼:
技術分享圖片
以下配置虛擬主機功能:
[root@www ~]# vi /usr/local/nginx/conf/nginx.conf
server { //基於域名的虛擬主機
listen 80;
server_name www.lq1.com;
charset utf-8;
access_log logs/lq1.access.log main;
location / {
root /var/www/lq1;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
server {
listen 80;
server_name www.lq3.com;
charset utf-8;
access_log logs/lq3.access.log main;
location / {
root /var/www/lq3;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
技術分享圖片
[root@www ~]# mkdir -p /var/www/lq1
[root@www ~]# mkdir /var/www/lq3
[root@www www]# cd lq1/
[root@www lq1]# vi index.html
技術分享圖片
[root@www lq1]# vi /var/www/lq3/index.html
技術分享圖片
[root@www www]# service nginx restart
真機驗證時因為服務器沒有搭建dns所以要去hosts文件做域名解析
C盤——windows——system32——drivers——etc——hosts //打開hosts路徑
技術分享圖片
然後在瀏覽器中輸入http://www.lq1.com和http://www.lq3.com,在斷網情況下
技術分享圖片
技術分享圖片

安裝MySQL步驟同lamp搭建過程一致,這裏就不做解釋了
命令如下:
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

useradd -s /sbin/nologin mysql

tar xf mysql-boost-5.7.20.tar.gz
cd mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

make && make install

chown -R mysql.mysql /usr/local/mysql/ 也可mysql:mysql

vi /etc/my.cnf

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

chown mysql:mysql /etc/my.cnf //更改歸屬,方便程序用戶讀取

echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH‘ >> /etc/profile
echo ‘export PATH‘ >> /etc/profile
source /etc/profile

cd /usr/local/mysql/

bin/mysqld \
--initialize-insecure \ //初始化數據庫
--user=mysql \ //指定程序用戶
--basedir=/usr/local/mysql \ //設置基礎目錄
--datadir=/usr/local/mysql/data //設置工作目錄

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld
netstat -anpt | grep 3306
技術分享圖片
systemctl enable mysqld

mysqladmin -u root -p password "abc123" //給root賬號設置密碼
技術分享圖片
mysql -u root -p //進入數據庫,進入後輸入之前設置的密碼
技術分享圖片
以下安裝PHP
[root@www mysql]# yum -y install \ //安裝依賴包
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
技術分享圖片

[root@www ~]# tar xjvf php-7.1.10.tar.bz2 -C /opt/
[root@www ~]# cd /opt/php-7.1.10/
[root@www php-7.1.10]# ./configure --prefix=/usr/local/php --with-mysql-sock=/usr/local/mysql/mysql.sock --with-mysqli --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo --enable-tokenizer --enable-zip --enable-fpm
技術分享圖片
[root@www php-7.1.10]# make && make install
[root@www php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
[root@www php-7.1.10]# vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai
技術分享圖片
技術分享圖片
[root@www php-7.1.10]# /usr/local/php/bin/php -m
技術分享圖片
配置及優化FPM模塊: //nginx處理動態網頁,需要php-fpm模塊
[root@www php-7.1.10]# cd /usr/local/php/etc/
[root@www etc]# cp php-fpm.conf.default php-fpm.conf
[root@www etc]# cd /usr/local/php/etc/php-fpm.d/
[root@www php-fpm.d]# cp www.conf.default www.conf
技術分享圖片
[root@www etc]# vi php-fpm.conf
技術分享圖片
[root@www etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
[root@www etc]# netstat -anpt | grep 9000
技術分享圖片
[root@www etc]# ln -s /usr/local/php/bin/ /usr/local/bin/
[root@www etc]# ps aux | grep -c "php-fpm"
技術分享圖片
更新啟動腳本
[root@www etc]# vi /etc/init.d/nginx
#!/bin/bash
#chkconfig: 35 99 20 //運行級別35,第99個開啟,第20 個關閉
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
PROG_FPM="/usr/local/php/sbin/php-fpm"
PIDF_FPM="/usr/local/php/var/run/php-fpm.pid"
case "$1" in
start)
$PROG
$PROG_FPM
;;
stop)
kill -s QUIT $(cat $PIDF)
kill -s QUIT $(cat $PIDF_FPM)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
技術分享圖片
[root@www lq]# vi /usr/local/nginx/conf/nginx.conf
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; //註意目錄名稱
include fastcgi_params;
}
技術分享圖片
[root@www lq]# nginx -t
[root@www etc]# cd /usr/local/nginx/html/
[root@www html]# vi index.php //編輯網頁測試文件
<?php
phpinfo();
?>

在瀏覽器中輸入http://192.168.80.140/index.php
技術分享圖片
[root@www lq]# mysql -u root -p
CREATE DATABASE bbs; //創建數據庫bbs
GRANT all ON bbs. TO ‘bbsadm‘@‘%‘ IDENTIFIED BY ‘admin123‘; //給予bbsadm最大權限
GRANT all ON bbs.
TO ‘bbsadm‘@‘localhost‘ IDENTIFIED BY ‘admin123‘;
flush privileges; //刷新權限
技術分享圖片

[root@www lq]# vi /var/www/lq/index.php
<?php
$link=mysqli_connect(‘192.168.80.140‘,‘bbsadm‘,‘admin123‘);
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
技術分享圖片
[root@www lq]# service nginx restart
在瀏覽器中輸入http://192.168.80.140/index.php
技術分享圖片
以下安裝Discuz論壇
[root@www ~]# yum install -y unzip
[root@www ~]# unzip Discuz_X3.4_SC_UTF8_0101.zip -d /tmp/
[root@www bbs]# cd /tmp/dir_SC_UTF8/
[root@www dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs
//放到nginx的網頁根目錄中正常生效
[root@www dir_SC_UTF8]# cd /usr/local/nginx/html/bbs
[root@www bbs]# chown -R root:nginx ./config/
[root@www bbs]# chown -R root:nginx ./data/
[root@www bbs]# chown -R root:nginx ./uc_client/
[root@www bbs]# chown -R root:nginx ./uc_server/
[root@www bbs]# chmod -R 777 ./config/
[root@www bbs]# chmod -R 777 ./data/
[root@www bbs]# chmod -R 777 ./uc_client/
[root@www bbs]# chmod -R 777 ./uc_server/
在瀏覽器中輸入192.168.80.140/bbs/install/index.php
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片

在瀏覽器中,輸入192.168.80.140/bbs/index.php

技術分享圖片

centos7.4安裝最新lnmp架構設置授權訪問並搭建Discuz論壇