1. 程式人生 > 實用技巧 >Linux LNMP平臺架構搭建

Linux LNMP平臺架構搭建


安裝nginx

1.關閉防火牆及核心防護
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.安裝環境依賴包
yum install gcc gcc-c++ pcre-devel zlib-d

3.編譯安裝nginx
tar zxvf nginx-1.12.2.tar.gz -C /opt/
cd /opt/nginx-1.12.2

useradd -M -s /sbin/nologin nginx

./configure \
–prefix=/usr/local/nginx \
–user=nginx \
–group=nginx \

–with-http_stub_status_module

make && make install

4.優化路徑
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
ls -l /usr/local/sbin/nginx
在這裡插入圖片描述

5.檢查配置檔案
nginx -t
在這裡插入圖片描述

6.新增系統服務
cd /lib/systemd/system
vim nginx.service (vim是vi編輯器的增強版,如果出現bash等提示資訊說明vim沒有安裝,執行yum -y install vim 即可)
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

7.修改nginx.service許可權
chmod 754 nginx.service

8.啟動服務並檢視埠
systemctl start nginx.service (執行該命令時用tab鍵看看nginx.service能否補全,如果能夠通過tab補全表示新增系統服務沒問題,那麼執行命令直接開啟nginx服務)

netstat -antp | grep 80 (檢視80埠狀態,如果出現bash資訊,執行yum -y install net-tools後即可)
在這裡插入圖片描述
9.驗證
在瀏覽器輸入IP,例如我的IP是20.00.60,在瀏覽器輸入20.0.0.60
在這裡插入圖片描述





安裝MySQL

1.安裝mysql環境依賴包
yum -y install ncurses ncurses-devel bison cmake
解釋:
ncurses(字元終端處理工具)
bison (語法分析器)
cmake (一個跨平臺的編譯工具)

2.建立mysql執行管理使用者
useradd -s /sbin/nologin mysql

3.解壓mysql安裝包
cd /opt
tar zxvf tar zxvf mysql-boost-5.7.20.tar.gz
cd mysql-5.7.20/

4.編譯安裝mysql
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
解釋:
DCMAKE_INSTALL_PREFIX(指定 mysql 資料庫安裝路徑)
DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock (指定連線檔案)
DSYSCONFDIR=/etc (配置檔案存放目錄)
DSYSTEMD_PID_DIR=/usr/local/mysql(PID檔案存放目錄)
DDEFAULT_CHARSET=utf8(預設字符集,utf8)
DDEFAULT_COLLATION(指定預設使用的字符集校對規則,utf8_general_ci
是適用於 UTF-8 字符集的通用規則)
DMYSQL_DATADIR=/usr/local/mysql/data (mysql資料存放位置)
DWITH_BOOST=boost (支援執行庫)
DWITH_SYSTEMD(主從複製要用到的ID序列號)

make && make install

5.調整資料庫目錄許可權
chown -R mysql:mysql /usr/local/mysql/
在這裡插入圖片描述

6.調整配置檔案
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
(:wq儲存退出)

chown mysql:mysql /etc/my.cnf (修改所屬)

7.設定環境變數
echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib: P A T H ′ > > / e t c / p r o f i l e e c h o ′ P A T H = / u s r / l o c a l / m y s q l / b i n : / u s r / l o c a l / m y s q l / l i b : PATH' >> /etc/profile echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib: PATH>>/etc/profileechoPATH=/usr/local/mysql/bin:/usr/local/mysql/lib:PATH’ >> /etc/profile
source /etc/profile

8.初始化資料庫
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 /lib/systemd/system/

9.開啟資料庫
cd /lib/systemd/system/
systemctl start mysqld.service (mysqld.service可以用tab補全)
netstat -antp | grep 3306 (檢視3306埠,mysql資料庫預設埠是3306,在配置檔案的時候埠也是3306)
在這裡插入圖片描述

10.設定MySQL密碼
mysqladmin -u root password
在這裡插入圖片描述

11.登入MySQL資料庫
mysql -u root -p
在這裡插入圖片描述






安裝PHP

1.安裝環境依賴包
yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

2.編譯安裝php
cd /opt
tar jxvf php-7.1.10.tar.bz2
cd 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-fpm \
–enable-mbstring \
–enable-xml \
–enable-session \
–enable-ftp \
–enable-pdo \
–enable-tokenizer \
–enable-zip
解釋:
prefix=/usr/local/php (指定安裝目錄)
with-mysql-sock=/usr/local/mysql/mysql.sock (指向mysql連線檔案)
with-mysqli (客戶終端工具)
with-zlib (壓縮庫)
with-curl (一個利用URL語法在命令列下工作的檔案傳輸工具)
with-gd (影象化處理)
with-jpeg-dir (jpeg格式圖片)
with-png-dir (png格式圖片)
with-freetype-dir (字型目錄)
with-openssl (安全證書認證)
enable-fpm (進行動態請求的模組)
enable-mbstring (多位元組字串)
enable-xml (xml格式支援)
enable-session (網頁會話)
enable-ftp (檔案傳輸)
enable-pdo (通用介面)
enable-tokenizer (函式庫)
enable-zip (壓縮)
在這裡插入圖片描述
make && make install



php有三個配置檔案:php.ini(核心配置檔案) php-fpm.conf(進城服務配置檔案) www.conf(擴充套件配置檔案)

cp php.ini-development /usr/local/php/lib/php.ini

vim /usr/local/php/lib/php.ini
修改這兩個地方:
mysqli.default_socket = /usr/local/mysql/mysql.sock
在這裡插入圖片描述

date.timezone = Asia/Shanghai
在這裡插入圖片描述

/usr/local/php/bin/php -m (驗證安裝的模組)


3.配置優化FPM模組
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
將pid = run/php-fpm.pid前面的符號刪除
在這裡插入圖片描述

cd php-fpm.d/
cp www.conf.default www.conf

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini

netstat -antp | grep 9000 (檢視9000埠服務有沒有開啟)
在這裡插入圖片描述

ln -s /usr/local/php/bin/* /usr/local/bin/

4.讓nginx支援php功能
vim /usr/local/nginx/conf/nginx.conf
在這裡插入圖片描述

5.重啟nginx服務
systemctl stop nginx.service
systemctl start nginx.service

6.修改主頁型別
cd /usr/local/nginx/html
mv index.html index.php
在這裡插入圖片描述

vim index.php
清空裡面的內容,輸入下面內容:
<?php
phpinfo();
?>

在瀏覽器輸入ip地址測試,比如我的IP地址為20.0.0.60,那麼我在位址列輸入20.0.0.60/index.php
在這裡插入圖片描述

到此,LNMP搭建完成。