LNMP架構
LNMP平臺就是Linux,Nginx,MySQL,PHP的組合架構,需要Linux服務器,MySQL服務器,PHP解析環境
構成組件
Linux是一類Unix計算機操作系統的統稱,是目前最流行的免費操作系統。Nginx是一個高性能的HTTP和反向代理服務器。Mysql是一個小型關系型數據庫管理系統。PHP是一種在服務器端執行的嵌入HTML文檔的腳本語言。
LAMP優勢
Nginx性能穩定、功能豐富、運維簡單、處理靜態文件速度快且消耗系統資源極少,小巧高效。
一,在Windows上將LAMP所需壓縮軟件包共享出來(此處如有問題請看之前的博客相關文章)
二,在Linux上使用遠程共享獲取文件并掛載到mnt目錄下
[[email protected] ~]# smbclient -L //192.168.100.3/ ##遠程共享訪問Enter SAMBA\root's password: Sharename Type Comment --------- ---- ------- LNMP-C7 Disk [[email protected] ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt ##掛載到/mnt目錄下
三,編譯安裝Nginx1,解壓源碼包到/opt下,并查看
[[email protected] ~]# cd /mnt ##切換到掛載點目錄[[email protected] mnt]# lsDiscuz_X3.4_SC_UTF8.zip nginx-1.12.2.tar.gzmysql-boost-5.7.20.tar.gz php-7.1.20.tar.gz[[email protected] mnt]# tar zxvf nginx-1.12.2.tar.gz -C /opt ##解壓Nginx源碼包到/opt下[[email protected] mnt]# cd /opt/ ##切換到解壓的目錄下[[email protected] opt]# lsnginx-1.12.2 rh
2,安裝編譯需要的環境組件包
[[email protected] opt]# yum -y install \gcc \ //c語言gcc-c++ \ //c++語言pcre-devel \ //pcre語言工具zlib-devel //數據壓縮用的函式庫
3,創建程序用戶nginx并編譯Nginx
[[email protected] opt]# useradd -M -s /sbin/nologin nginx ##創建程序用戶,安全不可登陸狀態[[email protected] opt]# id nginxuid=1001(nginx) gid=1001(nginx) 組=1001(nginx)[[email protected] opt]# cd nginx-1.12.0/ ##切換到nginx目錄下[[email protected] nginx-1.12.0]# ./configure \ ##配置nginx> --prefix=/usr/local/nginx \ ##安裝路徑> --user=nginx \ ##用戶名> --group=nginx \ ##用戶組> --with-http_stub_status_module ##狀態統計模塊
4,編譯和安裝
[[email protected] nginx-1.12.0]# make ##編譯...[[email protected] nginx-1.12.0]# make install ##安裝...
5,優化nginx啟動腳本,以便于系統識別
[[email protected] nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ##創建軟連接讓系統識別nginx啟動腳本[[email protected] nginx]# nginx -t ##檢查配置文件的語法問題nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[[email protected] nginx]# nginx ##開啟ngnix[[email protected] nginx]# netstat -ntap | grep 80 ##查看端口,nginx已經開啟tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 39620/nginx: master [[email protected] nginx]# systemctl stop firewalld.service ##關閉防火墻[[email protected] nginx]# setenforce 0 [[email protected] nginx]# nginx ##開啟
6,制作管理腳本,便于使用service管理使用
[[email protected] nginx]# cd /etc/init.d/ ##切換到啟動配置文件目錄[[email protected] init.d]# lsfunctions netconsole network README[[email protected] init.d]# vim nginx ##編輯啟動腳本文件#!/bin/bash# chkconfig: - 99 20 ##注釋信息# description: Nginx Service Control ScriptPROG="/usr/local/nginx/sbin/nginx" ##設置變量為nginx命令文件PIDF="/usr/local/nginx/logs/nginx.pid" ##設置變量PID文件 進程號為5346case "$1" in start) $PROG ##開啟服務 ;; stop) kill -s QUIT $(cat $PIDF) ##關閉服務 ;; restart) ##重啟服務 $0 stop $0 start ;; reload) ##重載服務 kill -s HUP $(cat $PIDF) ;; *) ##錯誤輸入提示 echo "Usage: $0 {start|stop|restart|reload}" exit 1esacexit 0[[email protected] init.d]# chmod +x /etc/init.d/nginx ##給啟動腳本執行權限[[email protected] init.d]# chkconfig --add nginx ##添加到service管理器中[[email protected] init.d]# service nginx stop ##就可以使用service控制nginx[[email protected] init.d]# service nginx start
7,或者方便systemctl管理,配置文件(為方便寫一種即可)
[[email protected] ~]# vim /lib/systemd/system/nginx.service ##創建配置文件[Unit]Description=nginx ##描述After=network.target ##描述服務類型[Service]Type=forking ##后臺運行形式PIDFile=/usr/local/nginx/logs/nginx.pid ##PID文件位置ExecStart=/usr/local/nginx/sbin/nginx ##啟動服務ExecReload=/usr/bin/kill -s HUP $MAINPID ##根據PID重載配置ExecStop=/usr/bin/kill -s QUIT $MAINPID ##根據PID終止進程PrivateTmp=true[Install]WantedBy=multi-user.target[[email protected] ~]# chmod 754 /lib/systemd/system/nginx.service ##設置執行權限[[email protected] ~]# systemctl stop nginx.service ##關閉[[email protected] ~]# systemctl start nginx.service ##開啟
四,編譯安裝MySQL1,安裝環境組件
[[email protected] ~]# yum install -y \ ##安裝環境組件> ncurses \> ncurese-devel \ ##控制終端屏幕顯示的庫> bison \ ##語法分析工具> cmake ##cmake工具[[email protected] ~]# useradd -s /sbin/nologin mysql ##創建程序用戶
2,解壓源碼包到/opt下
[[email protected] ~]# cd /mnt[[email protected] mnt]# tar zxvf mysql-boost-5.7.20.tar.gz -C /opt ##解壓源碼包到/opt[[email protected] mnt]# cd /opt[[email protected] opt]# lsmysql-5.7.20 nginx-1.12.2 rh
3,cmake配置
[[email protected] opt]# cd mysql-5.7.20/ ##切換到MySQL目錄下[[email protected] mysql-5.7.20]# cmake \ ##cmake配置-DCMAKE_INSTALL_PREFIX=/usr/localmysql \ ##安裝路徑-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ ##定義sock文件連接數據庫文件-DSYSCONFDIR=/etc \ ##配置文件目錄-DSYSTEMD_PID_DIR=/usr/local/mysql \ ##PID文件目錄-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 ##主從參數>
4,編譯及安裝
[[email protected] mysql-5.7.20]# make ##編譯[[email protected] mysql-5.7.20]# make install ##安裝
5,配置mysql,調整配置文件
[[email protected] mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/ ##數據庫目錄進行權限調整[[email protected] mysql-5.7.20]# vim /etc/my.cnf ##調整配置文件[client] ##客戶端port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql] ##客戶端 port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld] ##服務器 user = mysql ##用戶basedir = /usr/local/mysql ##設置mysql的安裝目錄datadir = /usr/local/mysql/data ##設置mysql數據庫的數據的存放目錄port = 3306 ##設置3306端口character_set_server=utf8 ##中文字符集pid-file = /usr/local/mysql/mysqld.pid ##pid文件路徑socket = /usr/local/mysql/mysql.sock ##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##支持模塊>[[email protected] mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile##將MySQL寫到本地環境配置中[[email protected] mysql-5.7.20]# echo 'export PATH' >> /etc/profile ##設置全局環境配置[[email protected] mysql-5.7.20]# source /etc/profile ##重啟配置文件
6,初始化數據庫
[[email protected] mysql-5.7.20]# cd /usr/local/mysql/[[email protected] mysql]# bin/mysqld \> --initialize-insecure \ ##初始化> --user=mysql \ ##用戶> --basedir=/usr/local/mysql \ ##安裝目錄> --datadir=/usr/local/mysql/data ##數據庫數據文件目錄
7,將MySQL服務配置文件復制到/usr/lib/systemd/system/下便于使用systemctl管理
[[email protected] mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ ##便于systemctl管理[[email protected] mysql]# systemctl enable mysqld ##開機自啟動[[email protected] mysql]# systemctl start mysqld.service ##開啟數據庫[[email protected] mysql]# netstat -ntap | grep 3306 ##查看MySQL端口號開啟情況tcp6 0 0 :::3306 :::* LISTEN 59464/mysqld
8,設置MySQL密碼
[[email protected] mysql]# mysqladmin -u root -p passwordEnter password: ##空格New password: ##新密碼Confirm new password: ##確認密碼
五,編譯安裝PHP1,安裝環境依賴包
[[email protected] mysql]# yum install -y \> libjpeg \ ##jpeg圖片格式和開發包> libjpeg-devel \> libpng libpng-devel \ ##png圖片和開發包> freetype freetype-devel \ ##字體庫> libxml2 \ ##xml文件庫> libxml2-devel \> zlib zlib-devel \ ##壓縮庫 > curl curl-devel \ ##支持數據文件下載工具> openssl openssl-devel ##安全訪問連接
2,解壓源碼包到/opt
[[email protected] mysql]# cd /mnt ##切換到掛載點[[email protected] mnt]# tar jxvf php-7.1.10.tar.bz2 -C /opt ##解壓源碼包到/opt[[email protected] mnt]# cd /opt[[email protected] opt]# ls ##查看mysql-5.7.20 nginx-1.12.2 php-7.1.10 rh
3,配置PHP
[[email protected] opt]# cd php-7.1.10/[[email protected] 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 ##gd圖像支持圖片處理庫--with-jpeg-dir ##jpeg--with-png-dir ##png--with-freetype-dir ##字體--with-openssl ##安全訪問連接--enable-fpm ##fpm支持動態請求模塊--enable-mbstring ##支持多字節的字符串--enable-xml ##xml文件--enable-session ##session支持會話--enable-ftp ##ftp服務--enable-pdo ##驅動連接管理--enable-tokenizer ##PHP自帶函數--enable-zip ##zip壓縮包
4,編譯及安裝
[[email protected] php-7.1.10]# make ##編譯[[email protected] php-7.1.10]# make install ##安裝
5,配置核心配置文件(php.ini核心配置文件,php-fpm.conf進程服務配置文件,www.conf擴展配置文件 )
[[email protected] php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini ##復制到安裝目錄lib庫中[[email protected] php-7.1.10]# vim /usr/local/php/lib/php.ini ##配置核心配置文件mysqli.default_socket = /usr/local/mysql/mysql.sock ##默認連接文件date.timezone = Asia/Shanghai ##時間[[email protected] php-7.1.10]# /usr/local/php/bin/php -m ##驗證安裝的模塊
6,配置及優化FPM模塊
[[email protected] php-7.1.10]# cd /usr/local/php/etc/[[email protected] etc]# cp php-fpm.conf.default php-fpm.conf ##優化復制默認進程服務配置文件[[email protected] etc]# cd /usr/local/php/etc/php-fpm.d/[[email protected] php-fpm.d]# cp www.conf.default www.conf ##優化復制擴展配置文件[[email protected] php-fpm.d]# cd /usr/local/php/etc/ [[email protected] etc]# vim php-fpm.conf ##開啟fpm.pid進程pid = run/php-fpm.pid[[email protected] etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini[[email protected] etc]# netstat -ntap | grep 9000 ##查看端口信息tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 69104/php-fpm: mast [[email protected] etc]# ln -s /usr/local/php/bin/* /usr/local/bin/ ##創建軟連接便于系統識別[[email protected] etc]# ps aux | grep -c "php-fpm"4
7,讓Nginx支持PHP功能
[[email protected] etc]# vim /usr/local/nginx/conf/nginx.conf ##配置nginx配置文件 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; } [[email protected] etc]# vim /usr/local/nginx/html/index.php ##測試php網頁<?phpphpinfo();?>
8,進入數據庫創建bbs數據庫并設置管理員和密碼
[[email protected] etc]# mysql -u root -pEnter password: ##進入數據庫,密碼為之前設定的abc23mysql> CREATE DATABASE BBS; ##創建bbs數據庫Query OK, 1 row affected (0.00 sec)mysql> GRANT all ON bbs.* TO 'bbsusers'@'%' IDENTIFIED BY 'admin123'; ##提權數據庫用戶bbsuser為管理員并設定密碼Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> GRANT all ON bbs.* TO 'bbsusers'@'localhost' IDENTIFIED BY 'admin123';Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges; ##刷新數據庫Query OK, 0 rows affected (0.00 sec)mysql> quit ##退出[[email protected] etc]# vim /usr/local/nginx/html/index.php ##測試數據庫連接狀態<?php$link=mysqli_connect('192.168.13.130','bbsusers','admin123');if($link) echo "<h1>Success!</h1>";else echo "Fail!!";?>[[email protected] etc]# systemctl restart nginx.service ##重啟服務
六,安裝Discuz論壇壓縮包1,解壓縮壓縮包到/opt下,并將目錄內容復制到bbs站點中
[[email protected] etc]# cd /mnt [[email protected] mnt]# unzip Discuz_X3.4_SC_UTF8.zip -d /opt ##解壓到/opt下[[email protected] mnt]# cd /opt[[email protected] opt]# lsdir_SC_UTF8 mysql-5.7.20 nginx-1.12.2 php-7.1.10 rh 說明.htm[[email protected] opt]# cd dir_SC_UTF8/ ##進入論壇目錄[[email protected] dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs/ ##復制/opt目錄里的內容到html站點的bbs目錄中
2,進入站點并給程序用戶提權
[[email protected] dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/ ##進入bbs站點目錄[[email protected] bbs]# chown -R root:nginx ./config/ ##為程序用戶提權[[email protected] bbs]# chown -R root:nginx ./data/ ##修改屬組[[email protected] bbs]# chown -R root:nginx ./uc_client/[[email protected] bbs]# chown -R root:nginx ./uc_server/[[email protected] bbs]# chmod -R 777 ./config/ ##修改全部權限[[email protected] bbs]# chmod -R 777 ./data/[[email protected] bbs]# chmod -R 777 ./uc_client/[[email protected] bbs]# chmod -R 777 ./uc_server/
3,訪問192.168.235.137/bbs站點,安裝Discuz論壇
4,設置運行環境為全新安裝
5,安裝數據庫
數據服務器:192.168.13.130(此處輸入創建數據庫主機的IP)數據庫名:bbs數據庫用戶名:bbsusers(用戶名可在命令行修改)數據庫密碼:admin123(密碼可在命令行修改)管理員賬號:admin(該賬號為默認)密碼:123123(密碼可直接在網頁設定)
七,成功搭建并訪問論壇
謝謝閱讀!!!