Centos7下編譯安裝配置Nginx+PHP+MySql環(huán)境
序言
這次玩次狠得。除了編譯器使用yum安裝,其他全部手動(dòng)編譯。哼~
看似就Nginx、PHP、MySql三個(gè)東東,但是它們太尼瑪依賴別人了。
沒(méi)辦法,想用它們就得老老實(shí)實(shí)給它們提供想要的東西。
首先的一些模塊依賴一些lib庫(kù),
如果你是懶人,就順著下面的命令分別輸入就行了。然后直接看配置篇。(不過(guò)這樣安裝的可不是最新版本的喲)
----------------安裝Nginx+PHP+MySql ----------------------
1.1 安裝或更新gcc gcc-c++
因?yàn)槲野惭b的Centos是絕對(duì)純潔滴。啥也沒(méi)有。沒(méi)轍了。只有先安裝個(gè)編譯器了。
# yum install gcc gcc-c++
1.2 創(chuàng)建需要使用的目錄
source 是用來(lái)存放源碼的文件夾。package是用來(lái)存放編譯后的庫(kù)文件。lnmp是我們真正需要的東西才放里面。(nginx+mysql+memcached+php)
# mkdir /source/ # mkdir /package/ # mkdir /lnmp/
二、開(kāi)始安裝(nginx篇)
2.1 解壓pcre
[官方網(wǎng)站] http://www.pcre.org/
命令流程:
# cd /source/ # wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz # tar -zxvf pcre-8.38.tar.gz
說(shuō)明:不需要編譯,只需要解壓就行。
2.2 解壓zlib
[官方網(wǎng)站] http://zlib.net/
命令流程:
# cd /source/ # wget http://zlib.net/zlib-1.2.8.tar.gz # tar -zxvf zlib-1.2.8.tar.gz
說(shuō)明:不需要編譯,只需要解壓就行。
2.3 安裝nginx
[官方網(wǎng)站] http://nginx.org/
命令流程:
# cd /source/ # wget http://nginx.org/download/nginx-1.8.0.tar.gz # tar -zxvf nginx-1.8.0.tar.gz # cd nginx-1.8.0 # ./configure --prefix=/lnmp/nginx --with-pcre=/source/pcre-8.38 --with-zlib=/source/zlib-1.2.8 # make # make install
--with-pcre:用來(lái)設(shè)置pcre的源碼目錄。
--with-zlib:用來(lái)設(shè)置zlib的源碼目錄。
因?yàn)榫幾gnginx需要用到這兩個(gè)庫(kù)的源碼。
小章總結(jié):
此處告一段落,nginx安裝完成。我們可以先滿足下自己的欲望心。打開(kāi)nginx服務(wù)看看Hello World吧。
啟動(dòng)nginx
# /lnmp/nginx/sbin/nginx
啟動(dòng)后可以再瀏覽器中打開(kāi)頁(yè)面,會(huì)顯示nginx默認(rèn)頁(yè)面。
三、開(kāi)始安裝(php篇)
3.1 安裝libxml2
[官方網(wǎng)站] http://xmlsoft.org/
命令流程:
# cd /source/ # wget ftp://xmlsoft.org/libxml2/libxml2-2.9.3.tar.gz # tar -zxvf libxml2-2.9.3.tar.gz # cd libxml2-2.9.3 # ./configure \ # --prefix=/package/libxml2 --with-python=no # make # make install
這里--with-python=no是
3.2 安裝php
[官方網(wǎng)站] http://php.net/
命令流程:
# cd /source/ # wget http://cn2.php.net/distributions/php-7.0.2.tar.gz # tar -zxvf php-7.0.2.tar.gz # cd php-7.0.2 # ./configure \ # --prefix=/lnmp/php \ # --with-libxml-dir=/package/libxml2 \ //打開(kāi)libxml2庫(kù)的支持 # --with-config-file-path=/lnmp/php/etc \ //配置文件所在目錄 # --enable-mbstring \ //支持mbstring庫(kù) # --enable-fpm \ //支持php-fpm(推薦打開(kāi)) # --with-mysqli //打開(kāi)mysqli模塊 # make # make install
四、開(kāi)始安裝(mysql篇)
4.1 安裝cmake
[官方網(wǎng)站] https://cmake.org/
命令流程:
# wget https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz # tar -zxvf cmake-3.4.1.tar.gz # cd cmake-3.4.1 # ./configure --prefix=/package/cmake # make # make install # export PATH=/package/cmake/bin:$PATH //設(shè)置環(huán)境變量??珊雎?,只是為了你以后使用cmake方便點(diǎn)。
4.2 安裝ncurses
[官方網(wǎng)站] http://ftp.gnu.org/gnu/ncurses/
命令流程:
# wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz # tar -zxvf ncurses-6.0.tar.gz # cd ncurses-6.0 # ./configure --prefix=/package/ncurese # make # make install
4.3 安裝mysql
[官方網(wǎng)站] http://www.mysql.com/
命令流程:
不帶boost安裝方式
// 這個(gè)是不帶boost版本的mysql源碼。你可以使用以下的參數(shù)在編譯過(guò)程中自動(dòng)下載boost // -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/package/boost # wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.10.tar.gz # tar -zxvf mysql-5.7.10.tar.gz # cd mysql-5.7.10 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ # -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/package/boost \ //設(shè)置自動(dòng)下載boost庫(kù),并放到-DWITH_BOOST指定的路徑里。 # -DCURSES_LIBRARY=/package/ncurses/lib/libncurses.a \ //ncurses庫(kù)libncurses.a # -DCURSES_INCLUDE_PATH=/package/ncurses/include //ncurses庫(kù)頭文件 # make # make install
自帶boost安裝方式
# wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-boost-5.7.10.tar.gz # tar -zxvf mysql-boost-5.7.10.tar.gz # cd mysql-5.7.10 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ # -DWITH_BOOST=/boost/boost_1_59_0 //boost庫(kù)的路徑 # -DCURSES_LIBRARY=/package/ncurese/lib/libncurses.a \ //ncurses庫(kù)libncurses.a # -DCURSES_INCLUDE_PATH=/package/ncurses/include //ncurses庫(kù)頭文件 # make # make install
說(shuō)明:mysql從5.7版本后就需要boost庫(kù)的支持了。并且非常惡心的是mysql需要指定的boost版本號(hào),高了或低了都有可能導(dǎo)致編譯不通過(guò)。
到此,使用CentOS7上常用的、全新的Web模塊基本已經(jīng)完成了,剩下的就是對(duì)這些軟件進(jìn)行配置咯。哈哈,其實(shí)代碼多,但是了解后真的挺簡(jiǎn)單,就那幾個(gè)命令。怎么樣?是不是蠻簡(jiǎn)單的。
----------------配置Nginx+PHP+MySql ------------------------
一、準(zhǔn)備工作
1.1 安裝vim
# yum install vim
二、開(kāi)始配置(nginx篇)
2.1 修改nginx.conf
# vim nginx.conf
2.2 找到如下內(nèi)容,并刪除紅色標(biāo)記的字符
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#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;
#}
2.3 修改完成
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
2.4 輸出phpinfo文件
echo "<?php echo phpinfo(); ?>" > /lnmp/nginx/html/index.php
2.5 啟動(dòng)nginx
/lnmp/nginx/sbin/nginx
小章總結(jié):
完成上面的修改就可以讓nginx來(lái)轉(zhuǎn)發(fā)php的動(dòng)態(tài)腳本請(qǐng)求。
不過(guò)目前還不能打開(kāi)php文件,因?yàn)檫€沒(méi)有打開(kāi)php-fpm。
我們繼續(xù)向下看。
三、開(kāi)始配置(php-fpm)
3.1 copy默認(rèn)配置文件
# cd /source/php-7.0.2 # cp php.ini-development /lnmp/php/etc/php.ini # cd /lnmp/php/etc # cp php-fpm.conf.default php-fpm.conf # cd /lnmp/php/etc/php-fpm.d/ # cp www.conf.default www.conf
3.2 運(yùn)行php-fpm
# /lnmp/php/sbin/php-fpm -c /lnmp/php/etc/php.ini
二、常用命令
nginx常用命令
啟動(dòng)nginx
# /lnmp/nginx/sbin/nginx
重啟nginx
# /lnmp/nginx/sbin/nginx -s reload
關(guān)閉nginx
# /lnmp/nginx/sbin/nginx -s stop
php-fpm常用命令
啟動(dòng)php-fpm
# /lnmp/php/sbin/php-fpm -c /lnmp/php/etc/php.ini
重啟php-fpm
# kill -SIGUSR2 `cat /lnmp/php/var/run/php-fpm.pid`
關(guān)閉php-fpm
# kill -SIGINT `cat /lnmp/php/var/run/php-fpm.pid`
信號(hào)解釋:
- SIGINT, SIGTERM 立刻終止
- SIGQUIT 平滑終止
- SIGUSR1 重新打開(kāi)日志文件
- SIGUSR2 平滑重載所有worker進(jìn)程并重新載入配置和二進(jìn)制模塊
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Linux服務(wù)器端口不可訪問(wèn)問(wèn)題的排查及解決方法
本篇主要記錄了一次 Linux 服務(wù)端口訪問(wèn)不通問(wèn)題的排查過(guò)程,涉及到了 Linux 防火墻、進(jìn)程/端口、Docker 以及 arp-scan 等方向和工具,下面就從研發(fā)視角來(lái)看下排查過(guò)程,需要的朋友可以參考下2023-11-11
Ubuntu掛載3T硬盤(pán)或大于2T磁盤(pán)的方法
本篇文章主要介紹了Ubuntu掛載3T硬盤(pán)或大于2T磁盤(pán)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
實(shí)現(xiàn)一臺(tái)或者多臺(tái)Linux實(shí)例解綁SSH密鑰對(duì)
在本篇文章中我們給大家分享了一篇如何為一臺(tái)或者多臺(tái) Linux 實(shí)例解綁 SSH 密鑰對(duì)的相關(guān)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2018-10-10
Linux通用java程序啟動(dòng)腳本代碼實(shí)例
這篇文章主要介紹了Linux通用java程序啟動(dòng)腳本代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
使用apache的rotatelogs命令實(shí)現(xiàn)WebLogic啟動(dòng)命令的nohup的日志回滾
通過(guò)apache的rotatelogs命令實(shí)現(xiàn)WebLogic啟動(dòng)命令的nohup的日志回滾,有需要的朋友可以參考下2013-01-01
Ubuntu22.04系統(tǒng):fatal:?無(wú)法連接到?github.com
這篇文章主要介紹了Ubuntu22.04系統(tǒng):fatal:?無(wú)法連接到?github.com的相關(guān)資料,需要的朋友可以參考下2024-03-03

