LNMP--mysql php安裝配置
LNMP架構部署
前言
LNMP平臺就是Linux、Ngnix、MySQL、PHP的組合架構,需要Linux伺服器、MySQL資料庫、PHP解析環境
Nginx是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器。Mysql是一個小型關係型資料庫管理系統。PHP是一種在伺服器端執行的嵌入HTML文件的指令碼語言。
本案例在單臺伺服器上部署LNMP環境
安裝Mysql
Mysql服務資料庫
安裝依賴包
[root@server1 ~]# yum -y install ncurses ncurses-devel bison cmake
ncurses ncurses-devel:字元終端下螢幕控制的基本庫
bison :自動生成語法分析器程式
cmake :跨平臺的安裝編譯工具
建立執行使用者
[root@localhost ~]# useradd -s /sbin/nologin mysql
解壓縮檔案
[root@server1 ~]# tar zxvf mysql-boost-5.7.20.tar.gz
編譯安裝
上傳mysql-boost-5.7.20.tar.gz到/opt目錄下
[root@localhost ~]# cd /opt
[root@localhost opt]# tar zxf mysql-boost-5.7.20.tar.gz
[root@localhost opt]# cd mysql-5.7.20/
[root@localhost mysql-5.7.20]# cmake \
-DMAKE_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
資料庫目錄進行許可權調整
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql/
調整配置檔案
[root@localhost local]# vim /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/mysql.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
設定環境變數
[root@localhost ~]#
echo "PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH" >> /etc/profile
[root@localhost ~]# echo "export PATH" >> /etc/profile
[root@localhost ~]# source /etc/profile
初始化資料庫
[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ ##將mysql服務啟動指令碼複製到systemd管理工具的目錄下,便於使用systemctl管理
開啟資料庫,檢查狀態
[root@localhost mysql]# systemctl enable mysqld
[root@localhost mysql]# systemctl start mysqld
[root@localhost mysql]# netstat -ntap |grep 3306
tcp6 0 0 :::3306 :::* LISTEN 11260/mysqld
設定mysql密碼
[root@localhost mysql]# mysqladmin -u root -p password
Enter password: ##初始密碼為空,直接回車
New password: ##輸入新密碼“abc123”
Confirm new password: ##確認新密碼“abc123”
登入資料庫
[root@localhost mysql]# mysql -u root -p ##密碼是剛才設定的abc123
PHP解析環境的安裝
●配置網頁動靜分離,解析PHP,有兩種方法可以選擇
使用PHP的FPM模組
將訪問PHP頁面的Web請求轉交給Apache伺服器去處理
●較新版本的PHP已經自帶FPM模組,對PHP解析例項進行管理、優化解析效率
FastCGI將Http Server和動態指令碼語言分離開
Nginx專門處理靜態請求,轉發動態請求
PHP-FPM專門解析PHP動態請求
●單伺服器的LNMP架構通常使用FPM方式來解析PHP
●PHP編譯安裝步驟
1.安裝環境依賴包
[root@server1 ~]# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel
libjpeg libjpeg-devel :jpeg影像壓縮庫
libpng libpng-devel :png影像壓縮庫
freetype freetype-devel :字型引擎
libxml2 libxml2-devel :解析Xml程式庫
zlib zlib-devel :資料壓縮
curl curl-devel :傳輸工具
openssl openssl-devel :安全通訊
編譯安裝
[root@localhost opt]# tar xjvf php-7.1.10.tar.bz2
[root@localhost opt]# cd php-7.1.10
[root@localhost php-7.1.10]# ./configure \
--prefix=/usr/local/php \ 安裝路徑
--with-mysql-sock=/usr/local/mysql/mysql.sock \ ##連線資料庫
--with-mysqli \ 呼叫mysql儲存過程
--with-zlib \ 開啟zlib函式庫
--with-curl \ 呼叫curl規則
--with-gd \ 影像處理
--with-jpeg-dir \ 支援jpeg格式
--with-png-dir \ 支援png格式
--with-freetype-dir \ 開啟字型引擎
--with-openssl \ 開啟ssl套接字功能
--enable-fpm \ ##開啟php-fpm模組,使nginx能支援動態頁面
--enable-mbstring \ 支援utf-8功能
--enable-xml \ 支援xml檔案格式
--enable-session \ 開啟會話
--enable-ftp \ 開啟ftp擴充套件
--enable-pdo \ 訪問介面
--enable-tokenizer \ 分詞器
--enable-zip 對zip檔案支援
make && make install
配置檔案編輯
[root@server1 ~]# cd php-7.1.10/
[root@server1 php-7.1.10]# ls -lh
[root@server1 php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
[root@server1 php-7.1.10]# vi /usr/local/php/lib/php.ini
[root@server1 php-7.1.10]# /usr/local/php/bin/php -m | wc -l
新增
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai
配置及優化FPM模組
[root@server1 php-7.1.10]# cd
[root@server1 ~]# cd /usr/local/php/etc
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server1 etc]# cd /usr/local/php/etc/php-fpm.d/
[root@server1 php-fpm.d]# cp www.conf.default www.conf
[root@server1 php-fpm.d]# cd /usr/local/php/etc/
[root@server1 etc]# vi php-fpm.conf
[root@server1 etc]# cd
pid = run/php-fpm.pid #號去掉
[root@localhost etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini 手動啟動
[root@localhost etc]# netstat -ntap | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 9981/php-fpm: maste
[root@localhost etc]# ln -s /usr/local/php/bin/* /usr/local/bin/ 讓/usr/local/php/bin/下生成的所有命令都連結到/usr/bin下
[root@localhost etc]# ps aux | grep -c "php-fpm" ##檢視php-fpm程式數
4
配置Nginx支援PHP功能
[root@server1 ~]# vi /etc/nginx.conf
[root@server1 ~]# nginx -t
[root@server1 ~]# systemctl stop nginx
[root@server1 ~]# systemctl start nginx
修改
$document_root (呼叫變數)
建立php網頁
[root@localhost ~]# vi /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
[root@localhost ~]# systemctl restart nginx
在網頁測試“http://20.0.0.14/index.php”
測試資料庫工作是否正常
[root@localhost ~]# mysql -u root -p
Enter password:
mysql> create database test;
mysql> grant all on test.* to 'testuser'@'%' identified by 'abc123';
mysql> grant all on test.* to 'bbsuser'@'localhost' identified by 'abc123';
mysql> flush privileges;
將原來的測試網頁內容更改如下:
[root@localhost ~]# vim /usr/local/nginx/html/index.php
<?php
$link=mysqli_connect('20.0.0.14','testuser','abc123');
if($link) echo "<h1>Success!</h1>";
else echo "Fail!!";
?>
[root@localhost ~]# systemctl restart nginx
在網頁測試“http://20.0.0.14/index.php”
部署Discuz!社群論壇Web應用
[root@localhost ~]# cd /opt
[root@localhost opt]# unzip Discuz_X3.4_SC_UTF8.zip
[root@localhost opt]# cd dir_SC_UTF8
[root@localhost dir_SC_UTF8]# ls
readme upload utility
[root@localhost dir_SC_UTF8]# cp -r upload /usr/local/nginx/html/test
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/test
##賦予安裝論壇的檔案許可權##
[root@localhost test]# chown -R root:nginx ./config
[root@localhost test]# chown -R root:nginx ./data
[root@localhost test]# chown -R root:nginx ./uc_client
[root@localhost test]# chown -R root:nginx ./uc_server
[root@localhost test]# chmod -R 777 ./config
[root@localhost test]# chmod -R 777 ./data
[root@localhost test]# chmod -R 777 ./uc_client
[root@localhost test]# chmod -R 777 ./uc_server
[root@localhost test]# systemctl restart nginx
進入http://20.0.0.14/test/install/index.php來安裝論壇
安裝完畢再用http://20.0.0.14/test/index.php登入論壇
設定安裝目錄僅自己可見
[root@server1 ~]# cd /usr/local/nginx/html/bbs/
[root@server1 bbs]# ls -lh
[root@server1 bbs]# mv install/ install.lock
[root@server1 bbs]# chmod 600 install.lock/
[root@server1 bbs]# ls -lh
相關文章
- (MAC) PHP安裝和配置MacPHP
- Mac下Nginx、PHP、MySQL 和 PHP-fpm安裝配置MacNginxPHPMySql
- CentOS7.3 安裝配置 Nginx、MariaDB、PHPCentOSNginxPHP
- 【docker】docker 安裝配置 nginx+php+composerDockerNginxPHP
- CentOS 下多版本 PHP 的安裝與配置CentOSPHP
- linux下Apache+PHP+MySQL安裝配置攻略LinuxApachePHPMySql
- CentOS7上安裝並配置Nginx、PHP、MySqlCentOSNginxPHPMySql
- PHP環境LAMP/LNMP安裝與配置筆記PHPLAMPLNMP筆記
- linux 安裝yum 安裝phpLinuxPHP
- Centos安裝PHP7及配置php-fpm開機啟動CentOSPHP
- docker 安裝 PHPDockerPHP
- yum 安裝 PHPPHP
- 安裝 PHP 8.0PHP
- 本地windows搭建spark環境,安裝與詳細配置(jdk安裝與配置,scala安裝與配置,hadoop安裝與配置,spark安裝與配置)WindowsSparkJDKHadoop
- PHP-安裝-PHP7.4PHP
- CentOS7安裝php、安裝MySqlCentOSPHPMySql
- PHP安裝配置(Windows和Linux)-一篇就夠了PHPWindowsLinux
- centos7 (阿里雲、linux) 單機spark的安裝與配置詳解(jdk安裝與配置,scala安裝與配置,hadoop安裝與配置,spark安裝與配置)CentOS阿里LinuxSparkJDKHadoop
- linux + php 安裝curlLinuxPHP
- CentOS 7 下安裝PHP環境並且配置Nginx支援php-fpm模組CentOSPHPNginx
- CentOS 6.6安裝配置LAMP伺服器(Apache+PHP5+MySQL)CentOSLAMP伺服器ApachePHPMySql
- CentOS7編譯安裝php7.1配置教程詳解CentOS編譯PHP
- 實戰Nginx與PHP(FastCGI)的安裝、配置與最佳化NginxPHPAST
- leanote安裝配置
- JENKINS安裝配置Jenkins
- oracle安裝配置Oracle
- ceph安裝配置
- 【mongodb安裝配置】MongoDB
- ELK 安裝配置
- 安裝配置ETCD
- SwitchOmega 安裝配置
- MySQL安裝配置MySql
- JWT安裝配置JWT
- Prometheus安裝配置Prometheus
- MariaDB 安裝配置
- ccache安裝配置
- alertmanager安裝配置
- VNC安裝配置VNC