Linux雲端計算之Web平臺搭建(LNMP——CentOS7)
一、準備工作
- 環境要求
作業系統:CentOS 7.x 64位
關閉 SELinux 和 iptables 防火牆
此次實驗環境使用網路 yum 源,保證系統能正常連線網際網路
- 網路 yum 源
先將系統自帶的 yum 配置檔案移除或者刪除,然後下載一下兩個配置檔案
官方基礎:
http://mirrors.163.com/.help/CentOS7-Base-163.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
epel 擴充套件:
http://mirrors.aliyun.com/repo/epel-7.repo
下載完成後,需要使用命令清楚掉原有的 yum 快取,使用新的配置檔案建立快取
# yum clean all #清除掉原有快取列表
# yum makecache #建立新的快取列表
# yum update #將所有能更新的軟體更新(非必選)
- 安裝編譯工具和依賴軟體包:
# yum -y install gcc* pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel libpng-devel
4.Nginx、MySQL、PHP三大軟體的原始碼包下載地址:
Nginx:http://nginx.org/en/download.html
MySQL:https://dev.mysql.com/downloads/mysql/
PHP:http://www.php.net/
版本選用:
Nginx:1.12.* #選用軟體的穩定版即可
MySQL:5.5.* #5.5以上版本需要 1G 以上的記憶體,否則無法安裝
PHP:7.1.* #LAMP中我們使用的是 php7,此次使用 php5
注意:每次安裝 LNMP 時,軟體包的小版本都不一樣,官方對其大版本下的小版本進行覆蓋式更新,本文內部分連線會失效,切記按照下載版本進行安裝
二、原始碼軟體包安裝
- Nginx
Nginx 是一款輕量級的 Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在 BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強
1)下載Nginx 原始碼包
# wget http://nginx.org/download/nginx-1.12.2.tar.gz
2)建立用於執行 Nginx 的使用者
# useradd -r -s /sbin/nologin nginx
3)解壓縮 Nginx 並安裝
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
--with-http_ssl_module
# make
# make install
4)上傳編寫好的 nginx 啟動管理指令碼(見文字尾部)
- MySQL
下載:
https://dev.mysql.com/downloads/mysql/
選擇:
MySQL Community Server 5.5 >>
選擇:
Select Version:按照自己要求選擇
Select Operating System:Source Code
Select OS Version:Generic Linux
格式: mysql-N.N.NN.tar.gz
# wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz
1)建立用於執行 Mysql 的使用者:
# useradd -r -s /sbin/nologin mysql
2)解壓縮 Mysql 並安裝
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-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
# make
# make install
# ln -s /usr/local/mysql/bin/* /usr/local/bin
3)修改安裝後的目錄許可權
# cd /usr/local/mysql
# chown -R root
# chown -R mysql data
4)生成 Mysql 配置檔案
# cp -a /lnmp/mysql-5.5.62/support-files/my-medium.cnf /etc/my.cnf
5)初始化,生成授權表
# cd /usr/local/mysql #一定要先切換到此目錄下,然後執行下一步
# ./scripts/mysql_install_db --user=mysql
初始化成功標籤:兩個 ok
6)生成 Mysql的啟動和自啟動管理指令碼
# cd /lnmp/mysql-5.5.62/support-files
切換到 Mysql 的原始碼解壓縮目錄下的 support-files
# cp -a mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
# service mysqld start | stop | restart
7)給 mysql 的 root 使用者設定密碼
# mysqladmin -uroot password 123456
- PHP
下載: http://www.php.net/
# wget http://tw2.php.net/distributions/php-7.1.29.tar.gz
1)解壓縮 PHP 並安裝
# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc/
--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets
--with-pdo-mysql=/usr/local/mysql --with-gd --without-pear --enable-fpm
# make
# make install
報錯提示: 若遇到 libpng.so not found 報錯(老版本的 PHP 會出現此問題)
解決方案:
# ln -s /usr/lib64/libpng.so /usr/lib
2)生成 php 配置檔案
# cp -a /lnmp/php-7.1.29/php.ini-production /usr/local/php/etc/php.ini
複製原始碼包內的配置檔案到安裝目錄下,並改名即可
3)建立軟連結,使用 php 相關命令是更方便
ln -s /usr/local/php/bin/*/usr/local/bin
ln -s /usr/local/php/sbin/*/usr/local/sbin/
- 配置 Nginx 連線 PPHP (重難點)
1)nginx 連線 php 需要啟動 php-fpm 服務
# cd /usr/local/php/etc/
# cp -a php-fpm.conf.default php-fpm.conf
生成 php-fpm 的配置檔案,並修改指定引數
# vim php-fpm.conf
修改指定條目的引數:
pid=run/php-fpm.pid
user=nginx
group=nginx
pm.start_servers=2
pm.min_spare_servers=1
pm.max_spare_servers=3
啟動時開啟的程式數、最少空閒程式數、最多空閒程式數(預設值,未修改)
修改 Nginx 啟動管理指令碼:將 php-fpm 的註釋取消掉即可
2)修改 Nginx 的配置檔案,使其識別.php 字尾的檔案
# vim /usr/local/nginx/conf/nginx.conf
取消下列行的註釋,並修改 include 選項的字尾為 fastcgi.conf,並注意每一行結尾的分號和大括號
# 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_params; #修改為 fsatcgi.conf
# }
測試:
重啟 Nginx 服務,建立 php 測試檔案,訪問並檢視是否解析
3)修改 Nginx 配置檔案,使其預設自動載入 php 檔案
location /{
root html; #Nginx 的預設網頁路徑:PREFIX/html
index index.php index.html; #設定預設載入的頁面,以及優先順序
}
附件:建議使用時先複製到文字檔案中檢視下是否有字符集問題
#####################Nginx 啟動管理指令碼#############################
#!/bin/bash
#Author: liu
#chkconfig:2345 9933
#description:nginx server control tools
ngxc="/usr/local/nginx/sbin/nginx"
pidf="/usr/local/nginx/logs/nginx.pid"
ngxc_fpm="/usr/local/php/sbin/php-fpm"
pid_fpm="/usr/local/php/var/run/php-fpm.pid"
case "$1" in
start)
$ngxc -t &>/dev/null
if [ $? -eq 0 ];then
$ngxc
$ngxc_fpm
echo "nginx service start success!"
else
$ngxc -t
fi
;;
stop)
kill -s QUIT $(cat $pidf)
kill -s QUIT $(cat $pidf_fpm)
echo "nginx service stop success!"
;;
restart)
$0 stop
$0 start
;;
reload)
$ngxc -t &>/dev/null
if [ $? -eq 0 ];then
kill -s HUP $(cat $pidf)
kill -s HUP $(cat $pidf_fpm)
echo "reload nginx config success!"
else
$ngxc -t
fi
;;
*)
echo "please input stop|start|restart|reload."
exit 1
esac
相關文章
- 雲端計算管理平臺之OpenStack Web管理工具dashboardWeb
- 能否利用Hadoop搭建完整的雲端計算平臺Hadoop
- 雲端計算管理平臺之OpenStack計算服務nova
- 恆訊科技講解:如何搭建雲端計算平臺?
- 雲端計算管理平臺之OpenStack簡介及基礎環境搭建
- 雲端計算教程學習入門影片課件:小型雲端計算平臺怎麼搭建?
- 雲端計算管理平臺之OpenStack映象服務glance
- 雲端計算管理平臺之OpenStack認證服務Keystone
- 雲端計算管理平臺之OpenStack網路服務neutron
- 雲端計算平臺的設計原則
- 微軟Windows Azure雲端計算平臺微軟Windows
- 雲端計算和Linux什麼關係?linux雲端計算Linux
- 雲端計算管理平臺之OpenStack塊儲存服務cinder
- 雲端計算成為趨勢,北鯤雲超算平臺佈局雲端計算市場?
- 雲端計算教程學習入門影片課件:私有云計算平臺怎麼搭建?
- 雲端計算裡的家校互聯平臺
- 雲端計算管理平臺之OpenStack啟動虛擬機器例項虛擬機
- 端雲協同,打造更易用的AI計算平臺AI
- 雲端計算管理的功能是什麼?Linux雲端計算學習Linux
- 北鯤雲超算平臺如何將雲端計算與高效能運算結合
- Linux雲端計算-06_Linux磁碟管理Linux
- 搭建雲端計算開發框架(轉)框架
- 雲端計算之雲的分類
- 雲端計算應該學些什麼?Linux雲端計算要學多久Linux
- 雲端計算對生活有什麼影響?學習linux雲端計算Linux
- UAVStack之微服務計算平臺微服務
- 雲端計算平臺與傳統平臺的區別是什麼?怎麼理解?
- rsvo鵬博士釋出雲端計算戰略2.0,推出融合雲平臺
- 趨勢分析之雲端計算
- 雲端計算平臺上的大資料技術解讀!大資料
- 聚焦邊緣計算場景,打造雲邊端一體化容器雲平臺
- 北鯤雲超算平臺——致力於提高科研效率,降低計算成本的雲超算平臺
- Linux雲端計算面試題第二彈,樂視雲端計算面試題Linux面試題
- Linux運維對雲端計算有影響嗎?雲端計算需求怎麼樣?Linux運維
- Linux雲端計算-05_Linux軟體包管理Linux
- linux監控平臺搭建Linux
- 一週雲事|雲端計算之戰愈演愈烈!
- Linux雲端計算中的高頻命令Linux