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

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

正式開始前,編譯環境gcc g++ 開發庫之類的需要提前裝好。

安裝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

以安裝最新穩定版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安裝參數

./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

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

這時手動創建就可以了

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

打開瀏覽器訪問此機器的 IP,如果瀏覽器出現 Welcome to nginx! 則表示 Nginx 已經安裝并運行成功

nginx啟動成功

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

nginx安裝成功的顯示

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

以上cp...命令執行,表示現在nginx已經安裝在? /usr/local/nginx 目錄,相應的配置文件.日志等也都在/usr/local/nginx目錄下

(6)nginx編譯選項

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

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

configure命令是用來檢測你的安裝平臺的目標特征的。它定義了系統的各個方面,包括nginx的被允許使用的連接處理的方法,比如它會檢測你是不是有CC或GCC,并不是需要CC或GCC,它是個shell腳本,執行結束時,它會創建一個Makefile文件。nginx的configure命令支持以下參數:

--prefix=path定義一個目錄,存放服務器上的文件?,也就是nginx的安裝目錄。默認使用/usr/local/nginx。

--sbin-path=path設置nginx的可執行文件的路徑,默認為prefix/sbin/nginx.

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

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

--error-log-path=path設置主錯誤,警告,和診斷文件的名稱。安裝完成后,可以隨時改變的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默認情況下,文件名 為prefix/logs/error.log.

--http-log-path=path設置主請求的HTTP服務器的日志文件的名稱。安裝完成后,可以隨時改變的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默認情況下,文件名 為prefix/logs/access.log.

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

--group=name設置nginx工作進程的用戶組。安裝完成后,可以隨時更改的名稱在nginx.conf配置文件中 使用的 user指令。默認的為非特權用戶。

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

--with-poll_module--without-poll_module啟用或禁用構建一個模塊來允許服務器使用poll()方法。該模塊將自動建立,如果平臺不支持的kqueue,epoll,rtsig或/dev/poll。

--without-http_gzip_module— 不編譯壓縮的HTTP服務器的響應模塊。編譯并運行此模塊需要zlib庫。

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

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

--with-http_ssl_module— 使用https協議模塊。默認情況下,該模塊沒有被構建。建立并運行此模塊的OpenSSL庫是必需的。

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

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

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

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

--with-ld-opt=parameters—設置附加的參數,將用于在鏈接期間。例如,當在FreeBSD下使用該系統的PCRE庫,應指定:--with-ld-opt="-L /usr/local/lib".

nginx與PHP關系

nginx本身不能處理PHP,它只是個web服務器,當接收到請求后,如果是php請求,則發給php解釋器處理,并把結果返回給客戶端。

nginx一般是把請求發fastcgi管理進程處理,fascgi管理進程選擇cgi子進程處理結果并返回被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已經集成php-fpm了,不再是第三方的包了,推薦使用。PHP-FPM提供了更好的PHP進程管理方式,可以有效控制內存和進程、可以平滑重載PHP配置,比spawn-fcgi具有更多優點,所以被PHP官方收錄了。在./configure的時候帶 –enable-fpm參數即可開啟PHP-FPM,其它參數都是配置php的,具體選項含義可以查看這里


安裝PHP前準備

centos下執行

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.從網上下載PHP安裝包

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

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

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

下載進度顯示

下載進度條的顯示,說明 地址正確,只需等待下載完成即可,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運行用戶進行設置

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

執行

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

添加紅框中內容

3

改成如下

4

nginx解析PHP只需以下幾處

nginx解析PHP

重新載入nginx的配置文件:

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

2、測試php文件

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

3、瀏覽器訪問

訪問http://你的服務器ip/index.php,皆可以見到php信息了。

5

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

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

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

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

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

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


安裝Mysql5.7(解壓縮版)

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

本地下載mysql5.7,用ftp上傳到服務器 /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很有必要檢測本地服務器是否安裝有mysql

rpm -qa | grep mysql

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

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

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

如圖所示

存在mysql庫文件

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

rpm?-qa?|?grep mariadb?????????????????????? //檢查數據庫自帶版本

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源碼目錄,復制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

這些都可以自行百度解決

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,637評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,555評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,900評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,629評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,976評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評論 3 448
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,139評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,686評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,411評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,641評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,820評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,233評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,567評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,362評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,604評論 2 380

推薦閱讀更多精彩內容