CentOS 7 搭建 LNMP 架構詳細過程 + Discuz 論壇安裝 (手工編譯)

來源:互聯網
上載者:User

標籤:cal   最佳化   並且   ffffff   fast   kconfig   windows 7   網頁   介紹   

簡介

1·LNMP 介紹
2·Ningx 安裝 (1.12版本)
3·MySQL 安裝 (5.5版本)
4·PHP 安裝 (5.6版本)
5·安裝 Discuz 論壇
6·總結

LNMP 介紹

1· 很多人都知道 LAMP 架構,它是由 Linux + Apache + MySQL + PHP 所架構的,但是隨著 Nginx 在企業中用得越來越多,LNMP 架構也受到人們得喜愛。其實這兩個架構變化不大,只是提供 WEB 服務的變成了 Nginx 。那麼他們之間一定會由差異。在 LNMP 中 Nginx 可以配置網頁的動靜分離、解析PHP,可以使用 PHP的FPM模組。現在比較新的PHP 版本中已經內建了FPM模組(進程管理器)。這樣的話,就可以讓 Nginx 來處理靜態請求,並且它會把動態請求轉寄給 PHP中的FPM 模組,也可以把說成是一個php-fpm服務。但是在 LAMP 中php 只是作為一個模組存在!
2·而且Nginx 它能承受的並發串連數高達50000左右,甩 Apache 幾條街。還有它的穩定性和系統資源的佔用都是非常的小。所以非常受人們喜歡。

安裝前準備源碼包,我放在百度網盤上點擊免費下載:LNMP+論壇源碼包密碼:jx5k

Nginx 安裝

1·安裝 Nginx 之前需要安裝依賴包

[[email protected] ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make

2·給 Nginx 建立專門的使用者,以便準確的控制許可權,降低安全風險

[[email protected]alhost ~]# useradd -M -s /sbin/nologin nginx

3·解壓、編譯安裝 nginx ,一般編譯安裝都放在 /usr/local 目錄下面

[[email protected] ~]# tar zxvf nginx-1.12.0.tar.gz -C /opt
[[email protected] ~]# cd /opt/nginx-1.12.0
[[email protected] nginx-1.12.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module (支援統計狀態)
[[email protected] nginx-1.12.0]# make && make install (編譯安裝)

4·為了使 nginx 方便管理員運行和管理,為nginx 建立串連檔案

[[email protected] nginx-1.12.0]# ln -s /usr/local/nginx/sbin/ /usr/local/sbin/

5·為了使 Nginx 的啟動 停止更加方便,為他寫一個啟動指令碼,這樣更方便。

[[email protected] nginx-1.12.0]# vim /etc/init.d/ngixn
#!/bin/bash
#chkconfig: - 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 進程,kill進程)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF) (根據進程重新載入配置)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}" (如果輸入其他則提示輸入文法)
exit 1
esac
exit 0

6·給這個指令碼賦予執行許可權、並把 Nginx 添加為系統服務。

[[email protected] ~]# chmod +x /etc/init.d/nginx
[[email protected] ~]# chkconfig --add nginx

7·啟動 Nginx 服務 、查看狀態。

[[email protected] ~]# systemctl start nginx
[[email protected] ~]# systemctl status nginx
● nginx.service - SYSV: Nginx Service Control Script
Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
Active: active (running) since 二 2018-08-28 14:14:00 CST; 7s ago
Docs: man:systemd-sysv-generator(8)
Process: 5323 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nginx.service
├─5325 nginx: master process /usr/local/nginx/sbin/nginx
└─5326 nginx: worker process

MySQL 安裝 (5.5版本哦)

1·這裡還是需要先安裝依賴包,MySQL 這裡需要注意的是不再用 ./configure 安裝模組了,而是用 Cmake ,所以這裡需要安裝 Cmake以及其他的包

[[email protected] ~]# yum -y install ncurses-devel bion libaio-devel cmake

2·給 MySQL 建立專門的使用者,以便準確的控制許可權,降低安全風險

[[email protected] ~]# useradd -s /sbin/nologin mysql

3·解壓、編譯安裝 MySQL ,一般編譯安裝都放在 /usr/local 目錄下面

[[email protected] ~]# tar zxvf mysql-5.5.24.tar.gz -C /opt
[[email protected] ~]# cd /opt/mysql-5.5.24
[[email protected] mysql-5.5.24]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=system \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DWITH_SSL=bundled

[[email protected] mysql-5.5.24]# make && make install

4·根據一些日常的習慣,對MySQL做一些調整最佳化。

[[email protected] mysql-5.5.24]# cp support-files/my-medium.cnf /etc/my.cnf
[[email protected] mysql-5.5.24]# cp support-files/mysql.server /etc/init.d/mysqld
[[email protected] mysql-5.5.24]# chmod +x /etc/init.d/mysqld

5·加入系統管理、設定開機啟動

[[email protected] mysql-5.5.24]# chkconfig --add mysqld
[[email protected] mysql-5.5.24]# chkconfig --level 35 mysqld on

6·添加變數到 /etc/profile 檔案中,並且使檔案再次生效。

[[email protected] mysql-5.5.24]# echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
[[email protected] ~]# . /etc/profile (這裡需要注意 . 中間有空格)
[[email protected] ~]# chown -R mysql.mysql /usr/local/mysql

7·初始化資料庫

[[email protected] ~]# /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql

8·在啟動設定檔中指定家目錄和安裝路徑

[[email protected] ~]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql

9·到這裡我本來就可以啟動服務了,可是這裡報錯,如報錯資訊,是在關閉防火牆,setenforce 0 之後啟動。

[[email protected] ~]# systemctl start mysqld.service

它說讓你用它提示的語句去查看狀態,其實我們用另一種方法啟動,可以看到報錯資訊不一樣。如
[[email protected] ~]# /etc/init.d/mysqld start

意思是:啟動時不跟新PID檔案。沒有PID 就啟動不了。
解決辦法:
[[email protected] ~]# mv /etc/my.cnf /etc/my.cnf.bak
相當於刪除了這個檔案而已就可以啟動成功

或者把 /etc/my.cnf 中的兩句話注釋掉或者自己建立 mkdir -p /var/run/mariadb
mkdir -p /log/run/mariadb

安裝 PHP

1·安裝依賴包和GD庫等相關聯的程式

[[email protected] ~]# yum -y install \
gd \
libxml2-devel \
libjpeg-devel \
libpng-devel \
zlib-devel \
fontconfig-devel \
openssl-devel \
bzip2-devel

2·解壓、編譯安裝 PHP ,一般編譯安裝都放在 /usr/local 目錄下面

[[email protected] ~]# tar jxvf php-5.6.11.tar.bz2 -C /opt/
[[email protected] php-5.6.11]# ./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring \
--with-jpeg-dir=/usr/lib \
--with-openssl \
--disable-ipv6 \
--enable-fpm

[[email protected] php-5.6.11]# make && make install

3·對 PHP 進行一些最佳化

[[email protected] php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini
[[email protected] php-5.6.11]# ln -s /usr/local/php5/bin/ /usr/local/bin/
[[email protected] php-5.6.11]# ln -s /usr/local/php5/sbin/
/usr/local/sbin/

4·為PHP安裝加速器

[[email protected] ~]# tar zxvf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /opt
[[email protected] ~]# cd /opt/zend-loader-php5.5-linux-x86_64/
[[email protected] zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php

5·配置PHP識別加速器

[[email protected] ~]# vim /usr/local/php5/php.ini
在檔案末尾插入:
[Zend Guard Loader]
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1

6·開啟nginx的PHP支援

[[email protected] ~]# cd /usr/local/php5/etc/
[[email protected] etc]# cp php-fpm.conf.default php-fpm.conf
[[email protected] etc]# useradd -M -s /sbin/nologin php (差點忘記了)

7·修改php-fpm設定檔

[[email protected] etc]# vim php-fpm.conf -----(這裡是修改檔案)
pid = run/php-fpm.pid
user = php
group = php
pm.max_children=50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35

[[email protected] etc]# /usr/local/sbin/php-fpm -------------(使檔案生效)
[[email protected] etc]# netstat -tnal | grep 9000 -------------(查看一下連接埠)

8·讓nginx支援PHP功能

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf ----(就是修改Nginx設定檔)

location ~ .php$ {
root /var/www/benet;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

在server 裡面加入以上參數,如:

9·檢查 nginx 設定檔,並重啟nginx 服務、查看狀態

[[email protected] conf]# nginx -t
[[email protected] conf]# systemctl restart nginx
[[email protected] conf]# systemctl status nginx

10·測試 PHP 頁面
[[email protected] conf]# mkdir -p /var/www/benet
[[email protected] conf]# vim /var/www/benet/index.php
<?php
phpinfo();
?>

11·開始測試,訪問

安裝 Discuz 論壇

1·我們在 LNMP 搭建好了之後,就可以基於此基礎 安裝軟體了,這裡以 Discuz 論壇 為列
2·要安裝 Discuz 論壇需要給此論壇建立一個資料庫,並且建立一個使用者管理它
3·進入 MySQL 資料庫 建立一個新的資料庫名字叫 bbs

[[email protected] ~]# mysql -u root -p -----(輸入密碼進入)
mysql> create databases bbs; ------(建立一個庫 名字叫 bbs 以分號結尾)
mysql> grant all on bbs.* to ‘bbsuser‘@‘%‘ identified by ‘admin123‘;

給bbsuser 這個使用者在任意一台伺服器上登陸,登陸密碼是 ‘admin123’ ,對bbs這個庫,這個庫裡面的所有表擁有所有許可權。
mysql> flush privileges; ----(重新整理資料庫,立即生效)

·測試資料庫,以下是測試代碼:
vim /var/www/benet/index.php

<?php
$link=mysql_connect(‘主機IP‘,‘bbsuser‘,‘admin123‘);
if($link) echo "Success!!";
else echo "Fail!!";
mysql_close();
?>

解壓 Discuz 軟體包、最佳化內容
[[email protected] ~]# unzip Discuz_X3.3_SC_UTF8.zip -d /opt/dis
[[email protected] ~]# cd /opt/dis
[[email protected] dis]# cp -r upload/ /var/www/benet/bbs
[[email protected] dis]# cd /var/www/benet/bbs
[[email protected] bbs]# chown -R php ./config
[[email protected] bbs]# chown -R php ./data
[[email protected] bbs]# chown -R php ./uc_client
[[email protected] bbs]# chown -R php ./uc_server/data

開始安裝
安裝是在 windows 7 上安裝,訪問地址是:如

Discuz 安裝完成,我們可以訪問管理後台。

總結:

1·關於 一些 Nginx 其他配置可以看看Nginx 最佳化

2·在整個 LNMP 的安裝過程中,說不一定就會報一些錯,只是沒有遇到,報錯就上百度多查查。

3·需要知道 Nginx 的優點在哪裡,它的高並發串連,和動靜態分離,還有資源佔用極少等等。

4·在LNMP 中的php是用php-fpm模組來做動態工作工作的。但是在LAMP中PHP只是一個模組而已。

CentOS 7 搭建 LNMP 架構詳細過程 + Discuz 論壇安裝 (手工編譯)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.