centos7 安裝php5.6+nginx1.11+mysql5.7

本文是介紹使用源碼編譯安裝置蜀,包括具體的編譯參數(shù)信息。

正式開始前胁住,編譯環(huán)境gcc g++ 開發(fā)庫之類的需要提前裝好筹吐。

安裝make:

yum -y install gcc automake autoconf libtool make

安裝g++:

yum install gcc gcc-c++

一般我們都需要先裝pcre, zlib,前者為了重寫rewrite狮崩,后者為了gzip壓縮蛛勉。

1.選定源碼目錄

可以是任何目錄,本文選定的是/usr/local/src

2.安裝PCRE庫

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz

下載最新的 PCRE 源碼包睦柴,使用下面命令下載編譯和安裝 PCRE 包:

cd /usr/local/src

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz

tar -zxvf pcre-8.41.tar.gz

cd pcre-8.41

./configure

make && make install

3.安裝zlib庫

http://zlib.net/zlib-1.2.11.tar.gz?下載最新的 zlib 源碼包诽凌,使用下面命令下載編譯和安裝 zlib包:

cd /usr/local/src

wget http://zlib.net/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure

make && make install


5.安裝nginx

以安裝最新穩(wěn)定版ngixn-1.10.2為例子,其他版本也一樣坦敌。

下面是把 Nginx 安裝到 /usr/local/nginx 目錄下的詳細步驟

cd /usr/local/src

wget http://nginx.org/download/nginx-1.10.2.tar.gz

tar -zxvf nginx-1.10.2.tar.gz

cd nginx-1.10.2

(1)1侣诵、添加nginx用戶和用戶組

?? groupadd -r nginx

?? useradd -r -g nginx nginx

(2)2、配置nginx安裝參數(shù)

./configure \

--prefix=/usr/local/nginx \

--sbin-path=/usr/local/nginx/sbin/nginx \

--conf-path=/usr/local/nginx/nginx.conf \

--pid-path=/usr/local/nginx/nginx.pid \

--user=nginx \

--group=nginx \

--with-http_ssl_module \

--with-http_flv_module \

--with-http_mp4_module? \

--with-http_stub_status_module \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/tmp/nginx/client/ \

--http-proxy-temp-path=/var/tmp/nginx/proxy/ \

--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \

--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \

--http-scgi-temp-path=/var/tmp/nginx/scgi \

--with-pcre=/usr/local/src/pcre-8.41 \

--with-zlib=/usr/local/src/zlib-1.2.11 \

--with-openssl=/usr/local/src/openssl-1.1.0g \

注:當前所在目錄一定要是/usr/local/src/nginx-1.10.2

--with-pcre=/usr/local/src/pcre-8.41 指的是pcre-8.41 的源碼路徑狱窘。

--with-zlib=/usr/local/src/zlib-1.2.11 指的是zlib-1.2.11 的源碼路徑杜顺。

--with-openssl=/usr/local/src/openssl-1.1.0g 指的是openssl-1.1.0g 的源碼路徑。

(3)編譯安裝

make && make install

(4)啟動nginx

!!!前提確保80端口沒有被占用,如占用請自行修改

啟動命令:?? /usr/local/nginx/sbin/nginx

!可能會出現(xiàn)mkdir /var/tmp/nginx/client failed或者/var/tmp/nginx/client 不存在 的提示

這時手動創(chuàng)建就可以了

?mkdir -p /var/tmp/nginx/client

打開瀏覽器訪問此機器的 IP蘸炸,如果瀏覽器出現(xiàn) Welcome to nginx! 則表示 Nginx 已經(jīng)安裝并運行成功

nginx啟動成功

注意:安裝完nginx 后cmd命令行會顯示一些nginx安裝目錄和 配置目錄

nginx安裝成功的顯示

leaving directory '/usr/local/src/nginx-1.10.2'表示nginx 程序已經(jīng)離開安裝目錄/usr/local/src

以上cp...命令執(zhí)行,表示現(xiàn)在nginx已經(jīng)安裝在? /usr/local/nginx 目錄,相應(yīng)的配置文件.日志等也都在/usr/local/nginx目錄下

(6)nginx編譯選項

make是用來編譯的躬络,它從Makefile中讀取指令,然后編譯幻馁。

make install是用來安裝的洗鸵,它也從Makefile中讀取指令,安裝到指定的位置仗嗦。

configure命令是用來檢測你的安裝平臺的目標特征的膘滨。它定義了系統(tǒng)的各個方面,包括nginx的被允許使用的連接處理的方法稀拐,比如它會檢測你是不是有CC或GCC火邓,并不是需要CC或GCC,它是個shell腳本德撬,執(zhí)行結(jié)束時铲咨,它會創(chuàng)建一個Makefile文件。nginx的configure命令支持以下參數(shù):

--prefix=path定義一個目錄蜓洪,存放服務(wù)器上的文件?纤勒,也就是nginx的安裝目錄。默認使用/usr/local/nginx隆檀。

--sbin-path=path設(shè)置nginx的可執(zhí)行文件的路徑摇天,默認為prefix/sbin/nginx.

--conf-path=path設(shè)置在nginx.conf配置文件的路徑粹湃。nginx允許使用不同的配置文件啟動,通過命令行中的-c選項泉坐。默認為prefix/conf/nginx.conf.

--pid-path=path設(shè)置nginx.pid文件为鳄,將存儲的主進程的進程號。安裝完成后腕让,可以隨時改變的文件名 孤钦, 在nginx.conf配置文件中使用 PID指令。默認情況下纯丸,文件名 為prefix/logs/nginx.pid.

--error-log-path=path設(shè)置主錯誤偏形,警告,和診斷文件的名稱液南。安裝完成后壳猜,可以隨時改變的文件名 勾徽,在nginx.conf配置文件中 使用 的error_log指令滑凉。默認情況下,文件名 為prefix/logs/error.log.

--http-log-path=path設(shè)置主請求的HTTP服務(wù)器的日志文件的名稱喘帚。安裝完成后畅姊,可以隨時改變的文件名 ,在nginx.conf配置文件中 使用 的access_log指令吹由。默認情況下若未,文件名 為prefix/logs/access.log.

--user=name設(shè)置nginx工作進程的用戶。安裝完成后倾鲫,可以隨時更改的名稱在nginx.conf配置文件中 使用的 user指令粗合。默認的用戶名是nobody。

--group=name設(shè)置nginx工作進程的用戶組乌昔。安裝完成后隙疚,可以隨時更改的名稱在nginx.conf配置文件中 使用的 user指令。默認的為非特權(quán)用戶磕道。

--with-select_module--without-select_module?啟用或禁用構(gòu)建一個模塊來允許服務(wù)器使用select()方法供屉。該模塊將自動建立,如果平臺不支持的kqueue溺蕉,epoll伶丐,rtsig或/dev/poll。

--with-poll_module--without-poll_module啟用或禁用構(gòu)建一個模塊來允許服務(wù)器使用poll()方法疯特。該模塊將自動建立哗魂,如果平臺不支持的kqueue,epoll漓雅,rtsig或/dev/poll录别。

--without-http_gzip_module— 不編譯壓縮的HTTP服務(wù)器的響應(yīng)模塊羹与。編譯并運行此模塊需要zlib庫。

--without-http_rewrite_module不編譯重寫模塊庶灿。編譯并運行此模塊需要PCRE庫支持纵搁。

--without-http_proxy_module— 不編譯http_proxy模塊。

--with-http_ssl_module— 使用https協(xié)議模塊往踢。默認情況下腾誉,該模塊沒有被構(gòu)建。建立并運行此模塊的OpenSSL庫是必需的峻呕。

--with-pcre=path—?設(shè)置PCRE庫的源碼路徑利职。PCRE庫的源碼(版本4.4 - 8.30)需要從PCRE網(wǎng)站下載并解壓。其余的工作是Nginx的./ configure和make來完成瘦癌。正則表達式使用在location指令和 ngx_http_rewrite_module 模塊中猪贪。

--with-pcre-jit—編譯PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)讯私。

--with-zlib=path—設(shè)置的zlib庫的源碼路徑热押。要下載從 zlib(版本1.1.3 - 1.2.5)的并解壓。其余的工作是Nginx的./ configure和make完成斤寇。ngx_http_gzip_module模塊需要使用zlib 桶癣。

--with-cc-opt=parameters— 設(shè)置額外的參數(shù)將被添加到CFLAGS變量。例如,當你在FreeBSD上使用PCRE庫時需要使用:--with-cc-opt="-I /usr/local/include娘锁。.如需要需要增加select()支持的文件數(shù)量:--with-cc-opt="-D FD_SETSIZE=2048".

--with-ld-opt=parameters—設(shè)置附加的參數(shù)牙寞,將用于在鏈接期間。例如莫秆,當在FreeBSD下使用該系統(tǒng)的PCRE庫,應(yīng)指定:--with-ld-opt="-L /usr/local/lib".

nginx與PHP關(guān)系

nginx本身不能處理PHP间雀,它只是個web服務(wù)器,當接收到請求后镊屎,如果是php請求惹挟,則發(fā)給php解釋器處理,并把結(jié)果返回給客戶端杯道。

nginx一般是把請求發(fā)fastcgi管理進程處理匪煌,fascgi管理進程選擇cgi子進程處理結(jié)果并返回被nginx

本文以php-fpm為例介紹如何使nginx支持PHP

什么是PHP-FPM

PHP-FPM是一個PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下載得到.

PHP-FPM其實是PHP源代碼的一個補丁党巾,旨在將FastCGI進程管理整合進PHP包中萎庭。必須將它patch到你的PHP源代碼中,在編譯安裝PHP后才可以使用齿拂。

新版PHP已經(jīng)集成php-fpm了驳规,不再是第三方的包了,推薦使用署海。PHP-FPM提供了更好的PHP進程管理方式吗购,可以有效控制內(nèi)存和進程医男、可以平滑重載PHP配置,比spawn-fcgi具有更多優(yōu)點捻勉,所以被PHP官方收錄了镀梭。在./configure的時候帶 –enable-fpm參數(shù)即可開啟PHP-FPM,其它參數(shù)都是配置php的踱启,具體選項含義可以查看這里报账。


安裝PHP前準備

centos下執(zhí)行

1 yum -y install gcc gcc-c++ glibc

2.

yum -y install libmcrypt-devel mhash-devel libxslt-devel \

libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \

zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \

ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \

krb5 krb5-devel libidn libidn-devel openssl openssl-devel


3.進入安裝目錄

cd /usr/local/src

4.從網(wǎng)上下載PHP安裝包

wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

!!!(這塊下載時間長一點,如果你執(zhí)行此命令后,幾分鐘就完成了,并且沒有顯示Complete!字樣,說明PHP下載出錯

可能顯示你下載了部分KB, 此時 說明你的下載地址有錯,請到網(wǎng)上查找其他下載地址,進入cmd執(zhí)行),如果出現(xiàn)

下載進度顯示

下載進度條的顯示,說明 地址正確,只需等待下載完成即可,100%

5.解壓

tar zvxf php-5.6.30.tar.gz

6.?? cd php-5.6.30

7.? groupadd www

???? useradd -g www -s /sbin/nologin www

8.編譯安裝

./configure --prefix=/usr/local/php \--with-config-file-path=/usr/local/php/etc \--enable-inline-optimization --disable-debug \--disable-rpath --enable-shared --enable-opcache \--enable-fpm --with-fpm-user=www \--with-fpm-group=www \--with-mysql=mysqlnd \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-gettext \--enable-mbstring \--with-iconv \--with-mcrypt \--with-mhash \--with-openssl \--enable-bcmath \--enable-soap \--with-libxml-dir \--enable-pcntl \--enable-shmop \--enable-sysvmsg \--enable-sysvsem \--enable-sysvshm \--enable-sockets \--with-curl --with-zlib \--enable-zip \--with-bz2 \--with-readline

9.? make && make install

以上就完成了php-fpm的安裝


下面是對php-fpm運行用戶進行設(shè)置

10.(1)為php提供配置文件

cp php.ini-production? /usr/local/php/lib/php.ini

(2)2、為php-fpm提供配置文件

? cd /usr/local/php

? cp etc/php-fpm.conf.default etc/php-fpm.conf

? vim etc/php-fpm.conf

修改

user = www-data

group = www-data

如果www-data用戶不存在埠偿,那么先添加www-data用戶

1 groupadd www-data

2 useradd -g www-data www-data

修改

pm.max_children = 150

pm.start_servers = 8

pm.min_spare_servers = 5

pm.max_spare_servers = 10

pid = /usr/local/php/var/run/php-fpm.pid?

3透罢、啟動php-fpm

執(zhí)行

1 /usr/local/php/sbin/php-fpm

使用如下命令來驗正(如果此命令輸出有中幾個php-fpm進程就說明啟動成功了):

1 ps aux | grep php-fpm

3、nginx和php-fpm整合

編輯/usr/local/nginx/nginx.conf

1 vim /usr/local/nginx/nginx.conf

修改如下:

紅框中“#”號去掉

1
2

添加紅框中內(nèi)容

3

改成如下

4

nginx解析PHP只需以下幾處

nginx解析PHP

重新載入nginx的配置文件:

1 . ? /usr/loca/nginx/sbin/nginx -s reload

2冠蒋、測試php文件

?在/usr/local/nginx/html下創(chuàng)建index.php文件羽圃,輸入phpinfo();檢測

3、瀏覽器訪問

訪問http://你的服務(wù)器ip/index.php抖剿,皆可以見到php信息了朽寞。

5

如果沒有出現(xiàn)phpinfo信息,可能是nginx配置出錯,或者PHP-fpm沒有啟動,進入nginx目錄,

利用nginx -t? 測試nginx.conf 配置文件是否出錯,如有錯誤,解決掉,重新啟動nginx測試

從phpinfo信息中可以看到 nginx安裝目錄,項目根目錄,PHP安裝目錄等其他模塊的安裝路徑

以上項目根目錄默認在/usr/local/nginx/html,根據(jù)自己需要 可以修改nginx配置文件

參考:https://www.cnblogs.com/MBirds/p/6605366.html

Linux 目錄講解 : https://www.jb51.net/LINUXjishu/32180.html


安裝Mysql5.7(解壓縮版)

此處安裝是源碼安裝(自己選擇安裝目錄)

本地下載mysql5.7,用ftp上傳到服務(wù)器 /usr/local目錄

下載地址: http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x86_64.tar

推薦下載通用安裝方法的TAR包

1.(1)安裝mysql很有必要檢測本地服務(wù)器是否安裝有mysql

rpm -qa | grep mysql

如果此命令回車后,沒有任何輸出,則沒有安裝mysql,進行步驟2

如果此命令回車后,有輸出mysql版本,這刪除掉

rpm -e mysql-libs-5.1.52.x86_64(存在的版本,根據(jù)自己的修改) ? --nodeps

如圖所示

存在mysql庫文件

(2)另一個干擾項,坑爹的就是centos自帶的maridb的影響,安裝mysql前,確保maridb不存在

rpm?-qa?|?grep mariadb?????????????????????? //檢查數(shù)據(jù)庫自帶版本

rpm?-e?--nodeps mariadb-libs-5.5.37-1.el7_0.x86_64? //強制卸載

2.解壓TAR包,更改所屬的組和用戶

(1)cd? /usr/local/src

tar xvf mysql-5.7.12-linux-glibc2.5-x86_64.tar

make && make install

更改用戶組,用戶

groupadd mysql

useradd -r -g mysql mysql

(2)cd 到mysql源碼目錄,復(fù)制mysql到/usr/local目錄下

cp mysql-5.7.12-linux-glibc2.5-x86_64? /usr/local/mysql

(3)cd /usr/local

?chown -R mysql mysql/

cd mysql/

(4)

bin/mysql_install_db--user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

這里可能會warning

warning

這些都可以自行百度解決

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牙躺,一起剝皮案震驚了整個濱河市愁憔,隨后出現(xiàn)的幾起案子腕扶,更是在濱河造成了極大的恐慌孽拷,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件半抱,死亡現(xiàn)場離奇詭異脓恕,居然都是意外死亡,警方通過查閱死者的電腦和手機窿侈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門炼幔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人史简,你說我怎么就攤上這事乃秀。” “怎么了圆兵?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵跺讯,是天一觀的道長。 經(jīng)常有香客問我殉农,道長刀脏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任超凳,我火速辦了婚禮愈污,結(jié)果婚禮上耀态,老公的妹妹穿的比我還像新娘。我一直安慰自己暂雹,他們只是感情好首装,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杭跪,像睡著了一般簿盅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上揍魂,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天桨醋,我揣著相機與錄音,去河邊找鬼现斋。 笑死喜最,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的庄蹋。 我是一名探鬼主播瞬内,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼限书!你這毒婦竟也來了虫蝶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤倦西,失蹤者是張志新(化名)和其女友劉穎能真,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扰柠,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡粉铐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了卤档。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝙泼。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖劝枣,靈堂內(nèi)的尸體忽然破棺而出汤踏,到底是詐尸還是另有隱情,我是刑警寧澤舔腾,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布溪胶,位于F島的核電站,受9級特大地震影響琢唾,放射性物質(zhì)發(fā)生泄漏载荔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一采桃、第九天 我趴在偏房一處隱蔽的房頂上張望懒熙。 院中可真熱鬧丘损,春花似錦、人聲如沸工扎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肢娘。三九已至呈础,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間橱健,已是汗流浹背而钞。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拘荡,地道東北人臼节。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像珊皿,于是被迫代替她去往敵國和親网缝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容