文章目錄
1.LNMP的介紹
LNMP:L指Linux,N指Nginx,M指MySQL,P指PHP。
LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站服務器架構。
Linux是一類Unix計算機操作系統的統稱,是目前最流行的免費操作系統。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。
Mysql是一個小型關係型數據庫管理系統。
PHP是一種在服務器端執行的嵌入HTML文檔的腳本語言。
LNMP的數據請求流程
用戶發送http request請求到服務器(Nginx),服務器響應並處理web請求,將一些靜態資源(CSS,圖片,視頻等)保存服務器上。
如果用戶請求爲靜態html,Nginx可直接返回數據給用戶。
如果用戶請求爲動態php,php腳本將通過接口傳輸協議(網關協議)PHP-FCGI(fast-cgi)傳輸給PHP-FPM(進程管理程序),PHP-FPM不做處理,然後PHP-FPM調用PHP解析器進程,PHP解析器解析php腳本信息。PHP解析器進程可以啓動多個,進行併發執行。再將解析後的腳本返回到PHP-FPM,PHP-FPM再通過fast-cgi的形式將腳本信息傳送給Nginx。服務器再通過Http response的形式傳送給瀏覽器。瀏覽器再進行解析與渲染然後進行呈現給用戶。
2.Mysql的部署
虛擬機設置:推薦使用20G硬盤,4096Mb內存,2核CPU》
2.1 Mysql的安裝
1.安裝編譯工具及依賴性
yum install cmke
yum install gcc
yum install gcc-c++
yum install ncurses-devel
yum install -y openssl-devel
yum install bison
2.解壓軟件包並編譯
tar zxf mysql-boost-5.7.30.tar.gz
解壓軟件包
注意:編譯前需要刪除CMakeCache.text
[root@server1 mysql-5.7.30]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \
> -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \
> -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \
> -DEXTRA_CHARSETS=all \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_MEMORY_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DMYSQL_USER=mysql \
> -DMYSQL_TCP_PORT=3306\
> -DWITH_BOOST=boost/boost_1_59_0
make && make install
2.2 Mysql的配置
1.建立mysql用戶及data目錄,使data目錄對mysql用戶有寫的權限
mkdir /usr/local/lnmp/mysql/data
useradd -s /sbin/nologin -M mysql
建立mysql用戶
chown -R root /usr/local/lnmp/mysql/data/*
chown -R mysql /usr/local/lnmp/mysql/data
2.做MySQL的軟連接
ln -s /usr/local/lnmp/mysql/bin/* /usr/local/bin/
3.拷貝配置文件
mv /etc/my.cnf /etc/my.cnf.bak
備份mariadb配置文件
cp /usr/local/lnmp/mysql/mysql-test/include/default_my.cnf /etc/my.cnf
拷貝mysql配置文件
4.啓動mysql腳本
cp -a /usr/local/lnmp/mysql/support-files/mysql.server /etc/init.d/mysqld
腳本的啓動方式
chmod +x /etc/init.d/mysqld
給腳本執行權限
chkconfig mysqld on
設置開機啓動
2.3 Mysql的初始化
mysqld --user=mysql --initialize
初始化生成基本信息
systemctl start mysqld
mysql_secure_installation
3.Php的部署
3.1 Php的安裝
解決依賴性:
yum install -y libxml2-devel
yum install -y sqlite-devel
yum install -y libpng-devel
yum install oniguruma-5.9.5-3.el7.x86_64.rpm
yum install oniguruma-devel-5.9.5-3.el7.x86_64.rpm
tar zxf php-7.4.1.tar.gz
cd php-7.4.1/
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysqli=/usr/local/lnmp/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/lnmp/mysql --enable-gd --without-pear --enable-fpm
``
3.2 Php的配置
1.打開php管理進程
cd /usr/local/lnmp/php/etc/
cp php-fpm.conf.default php-fpm.conf
拷貝
vim php-fpm.conf
`
pid = run/php-fpm.pid ##打開php管理進程
2.編輯php擴展配置文件
cd /usr/local/lnmp/php/etc/php-fpm.d/
cp www.conf.default www.conf
vim www.conf
user = nginx
group = nginx
3.編輯php主配置文件
cp /soft/php-7.4.1/php.ini-production /usr/local/lnmp/php/etc/php.ini
拷貝
vim /usr/local/lnmp/php/etc/php.ini
4.設置php啓動腳本
cp /soft/php-7.4.1/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
設置啓動腳本
chmod +x /etc/init.d/php-fpm
給腳本執行權限
useradd -s /sbin/nologin -M nginx
建立用戶
/etc/init.d/php-fpm start
腳本啓動
4.設置php軟鏈接
ln -s /usr/local/lnmp/php/bin/* /usr/local/bin/
4.Nginx的部署
4.1 Nginx的安裝
tar zxf nginx-1.18.0.tar.gz
解壓
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx
make && make install
編譯安裝
4.2 Nginx的配置
1.隱藏版本號和關閉debug
vim /soft/nginx-1.18.0/src/core/nginx.h
隱藏版本號
#define NGINX_VER "nginx/"
vim /soft/nginx-1.18.0/auto/cc/gcc
關閉debug
# debug
#CFLAGS="$CFLAGS -g"
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx
重新編譯
make && make install
重新安裝
測試
2.編輯配置文件
vim /usr/local/lnmp/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
3.nginx軟連接
ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
5.設置發佈頁面測試
vim /usr/local/lnmp/nginx/html/index.php
編輯php發佈頁面
<?php
phpinfo()
?>