日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

lnmp架构搭建—源码编译(nginx、mysql、php)

發布時間:2025/3/11 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 lnmp架构搭建—源码编译(nginx、mysql、php) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

含義及理解:

LNMP = Linux+Nginx+Mysql+PHP:LNMP是指一組通常一起使用來運行動態網站或者服務器的自由軟件名稱首字母縮寫。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。LNMP代表的就是linux系統下Nginx+MySQL+PHP這種網站服務器架構。Nginx中的PHP是以fastcgi的方式結合Nginx的,可以理解為Nginx代理了PHP的fastcgi。

Nginx 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。
Mysql是一個小型關系型數據庫管理系統。
PHP 是一種在服務器端執行的嵌入HTML文檔的腳本語言。

LNMP的工作原理:首先,瀏覽器發送http request請求到服務器(Nginx)服務器響應并處理web請求,將一些靜態資源(CSS,圖片,視頻等)保存服務器上,然后將php腳本通過接口傳輸協議(網關協議)PHP-FCGI(fast-cgi)傳輸給PHP-FPM(進程管理程序),PHP-FPM不做處理,然后PHP-FPM調用PHP解析器進程,PHP解析器解析php腳本信息。PHP解析器進程可以啟動多個,進行并發執行。然后將解析后的腳本返回到PHP-FPM,PHP-FPM再通過fast-cgi的形式將腳本信息傳送給Nginx,服務器再通過Http response的形式傳送給瀏覽器。瀏覽器再進行解析與渲染然后進行呈現。

LNMP特點:Nginx性能穩定、功能豐富、運維簡單、處理靜態文件速度快且消耗系統資源極少。

nginx的編譯與安裝:

Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供IMAP/POP3/SMTP服務
開啟一臺虛擬機作為lnmp服務器主機
準備好lnmp相關的源碼包并解壓

tar zxf nginx-1.15.9.tar.gz cd nginx-1.15.9/ ls


修改配置文件使不顯示nginx版本

cd nginx-1.15.9/src/core vim nginx.h 刪除第14行 nginx后面的內容

加快安裝,是nginx占用空間更小一點

cd nginx-1.15.9/auto/cc/ vim gcc 將第172行注釋掉

解決編譯過程中一些軟件的依賴性
在實際操作過程中,要根據具體的報錯情況來安裝軟件或插件解決依賴性

yum install gcc pcre-devel openssl-devel -y

編譯并安裝

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module make && make install

編譯安裝成功查看

cd /usr/local/lnmp/nginx ls

創建nginx用戶并在配置文件更改

id nginx useradd nginx cd /usr/local/lnmp/nginx/conf vim nginx.conf


添加軟連接并測試

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/ nginx nginx netstat -antlp


測試

本地發布網頁目錄

vim /usr/local/lnmp/nginx/html/index.html

設置后端網頁虛擬主機
在lnmp服務器端修改配置文件

cd /usr/local/lnmp/nginx/conf vim nginx.conf 在末尾行加入 server {listen 80;server_name www.cc.com;location / {root html/www;index index.html; } } server {listen 80;server_name bbs.cc.com;location / {root html/bbs;index index.html; } }server {listen 80;server_name blog.cc.com;location / {root html/blog;index index.html; } } }

在默認發布目錄下創建目錄并寫入對應網頁

cd /usr/local/lnmp/nginx/html mkdir www cd www vim index.html

檢測配置文件語法并重啟服務

nginx -t nginx -s reload

測試:
在真機注意更改本地解析

curl www.cc.com curl bbs.cc.com curl blog.cc.com


設置均衡負載
在開啟兩臺虛擬機,安裝httpd,寫入網頁并開啟服務

在lnmp服務器虛擬機修改配置文件

cd /usr/local/lnmp/nginx/conf vim nginx.conf http {include mime.types;default_type application/octet-stream;upstream cc {server 172.25.11.1:80;server 172.25.11.2:80; }將之前設定的網頁虛擬主機注釋 server {listen 80;server_name www.cc.com;location / {proxy_pass http://cc; } } }

檢測語法并重啟nginx

nginx -t nginx -s reload

測試:

mysql的編譯安裝及設置

在編譯安裝mysql之前關閉nginx

nginx -s stop

準備好源碼包并解壓

tar zxf mysql-boost-5.7.17.tar.gz cd mysql-5.7.17/ ls

安裝編譯過程中有依賴性的軟件(實際操作中,請根據自身情況來安裝)

yum install -y cmake-2.8.12.2-4.el7.x86_64.rpm yum install -y gcc gcc-c++ ncurses-devel yum install -y bison

安裝依賴性軟件后進行mysql的編譯安裝
編譯安裝時間較長

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/

編譯好之后安裝

make && make install

安裝成功,查看

cd /usr/local/lnmp/mysql ls


復制啟動腳本到/etc/init.d/

cd /lnmp安裝包/mysql-5.7.17/support-files cp mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld

將原來的/etc/my.cnf備份,重新拷貝安裝包里的過去

cd /etc cp my.cnf my.cnf.bak cd /lnmp安裝包/mysql-5.7.17/support-files/ cp my-default.cnf /etc/my.cnf vim /etc/my.cnf basedir = /usr/local/lnmp/mysql datadir = /usr/local/lnmp/mysql/data socket = /usr/local/lnmp/mysql/data/mysql.sock


添加用戶和組

groupadd -g 27 mysql useradd -u 27 -g 27 mysql (id=27是因為rpm默認安裝時mysql用戶的id為27,并非強制) chown mysql.mysql /usr/local/lnmp/mysql -R (修改mysql目錄的權限,使其對mysql用戶可寫)

將mysql命令添加到環境變量

vim ~/.bash_profile 添加:PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin source ~/.bash_profile 使文件生效

初始化和安全初始化mysql

mysqld --user=mysql --initialize(以mysql用戶身份初始化) 初始化會生成一個臨時密碼,用于登錄mysql(要記住此密碼)


為了安全,再將mysql目錄的所有者改為root

chown root /usr/local/lnmp/mysql -R chown mysql /usr/local/lnmp/mysql/data -R ##數據目錄所有者必須是mysql,不然mysql用戶不能寫

啟動mysql 并安全初始化

/etc/init.d/mysqld start mysql_secure_installation 然后會提示是否啟用密碼檢測插件,直接回車不啟用

測試登陸mysql并查看

php的編譯安裝及設置

準備好源碼包并解壓

yum -y install bzip2 tar jxf php-5.6.35.tar.bz2

解決編譯過程中軟件的依賴性(實際操作中,請根據自身情況來安裝)

yum install -y libxml2-devel libcurl-devel yum install -y libjpeg-turbo-devel-1.2.1-1.el6.x86_64 libjpeg-turbo-devel-1.2.90-5.el7.x86_64 yum install -y libpng-devel-1.2.49-1.el6_2.x86_64 libpng-devel-1.5.13-7.el7_2.x86_64 yum install -y freetype freetype-devel yum install -y net-snmp net-snmp-develcd /lnmp安裝包 yum install -y re2c-0.13.5-1.el6.x86_64.rpm libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

開始編譯并安裝

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhashmake && make install

拷貝更改配置文件

cd /usr/local/lnmp/php/etc cp php-fpm.conf.default php-fpm.conf vim php-fpm.conf 查看配置文件中以下幾項是否開啟: user = nginx group = nginx pid = run/php-fpm.pid

拷貝更改php主配置文件

cd /lnmp安裝包/php-5.6.35 cp php.ini-production /usr/local/lnmp/php/etc/php.ini cd /usr/local/lnmp/php/etc vim php.ini 修改時區: date.timezone = Asia/Shanghai


拷貝php啟動腳本至/etc/init.d/

cd /lnmp/php-5.6.35/sapi/fpm cp init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm

啟動php

/etc/init.d/php-fpm start

查看網絡端口

netstat -antlp

LNMP架構部署

先確保nginx、mysql、php都是開啟狀態
查看端口:

netstat -antlp


安裝論壇前測試php網頁

并修改nginx配置文件

cd /usr/local/lnmp/nginx/conf vim nginx.conf注釋掉之前設定的負載均衡集群 并且開啟php界面設定、增加index.php文件




檢測語語法并重啟nginx

nginx -t nginx -s reload

編寫php測試網頁

cd /usr/local/lnmp/nginxhtml vim index.php



自行準備好論壇的壓縮包
安裝解壓命令并解壓文件到指定目錄

yum install -y unzip unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/

切換到解壓目錄并查看文件
重命名 uoload 為bbs
并給目錄增加權限

cd /usr/local/lnmp/nginx/html ls mv upload bbs chmod 777 config/ -R chmod 777 data/ -R chmod 777 uc_server/ uc_client/ -R

編輯php主配置文件

并重啟php

vim /usr/local/lnmp/php/etc/php.inipdo_mysql.default_socket= /usr/local/lnmp/mysql/data/mysql.sock mysql.default_socket = /usr/local/lnmp/mysql/data/mysql.sock mysqli.default_socket = /usr/local/lnmp/mysql/data/mysql.sock/etc/init.d/php-fpm reload

由于 nginx用戶 對于 /usr/local/lnmp/mysql/data 目錄沒有權限

cd /usr/local/lnmp/mysql chmod 755 data/

打開瀏覽器開始安裝部署
172.25.11.4/bbs



這里輸入mysql密碼并設定論壇管理者密碼


點擊右上角管理中心進入管理


發現沒有界面

解決如下:

cd /usr/local/lnmp/nginx/html/bbs/install rm -fr index.php

重新刷新管理界面

總結

以上是生活随笔為你收集整理的lnmp架构搭建—源码编译(nginx、mysql、php)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。