linux下手動搭建php+mysql+nginx(絕對靠譜)

linux手動搭建nginx+php+mysql是一件必備的技能,然而蜈块,網(wǎng)上很多安裝的說明具有很大的重復(fù)性鉴腻,并且博主也親自的試過很多教程,都是以失敗而告終的百揭,下面爽哎,我講介紹一種可行的安裝方法,使用的是yum源安裝器一,比較容易成功课锌。此次安裝的linux環(huán)境是centos7.2的。

步驟 1 - 在 CentOS 7 中安裝 Nginx 和 PHP7-FPM

在開始安裝 Nginx 和 php7-fpm 之前祈秕,我們要先添加 EPEL 包的倉庫源渺贤。使用如下命令:

yum -y install epel-release

安裝完EPEL 源之后,我們就可以通過倉庫源安裝nginx了请毛,代碼如下:

yum -y install nginx

執(zhí)行完上面的命令之后,我們執(zhí)行nginx -v志鞍,會出現(xiàn)如下的信息:

NGINX安裝完成示意圖

接下來,我們啟動nginx方仿,并且把他設(shè)置為開機(jī)自啟動固棚。

systemctl start nginx

systemctl enable nginx

然后通過瀏覽器訪問我們服務(wù)器的公網(wǎng)地址,出現(xiàn)如下界面說明nginx安裝和啟動成功了仙蚜。

然后我們還需要為 php7-fpm 添加另外一個倉庫此洲。互聯(lián)網(wǎng)中有很個遠(yuǎn)程倉庫提供了 PHP 7 系列包鳍征,我在這里使用的是 webtatic黍翎。

添加 PHP7-FPM webtatic 倉庫:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

然后就是安裝 PHP7-FPM 以及 一些包。

yum -y install php71w-fpm php71w-cli php71w-gd php71w-mcrypt php71w-mysql php71w-pdo php71w-xml php71w-pear

php71w-mbstring php71w-mbstring php71w-json php71w-pecl-apcu php71w-pecl-apcu-devel

最后艳丛,從服務(wù)器終端里查看 PHP 的版本號匣掸,以便驗(yàn)證 PHP 是否正確安裝。

php -v

步驟 2 - 配置 PHP7-FPM

在這一個步驟中氮双,我們將配置 php-fpm 與 Nginx 協(xié)同運(yùn)行碰酝。Php7-fpm 將使用 nginx 用戶來運(yùn)行,并監(jiān)聽 9000 端口戴差。

使用 vim 編輯默認(rèn)的 php7-fpm 配置文件送爸。

vim /etc/php-fpm.d/www.conf

在第 8 行和第 10行,user 和 group 賦值為 nginx。

user = nginx

group = nginx

在第 22 行袭厂,確保 php-fpm 運(yùn)行在指定端口墨吓。

listen = 127.0.0.1:9000

取消第 366-370 行的注釋,啟用 php-fpm 的系統(tǒng)環(huán)境變量纹磺。

env[HOSTNAME] = $HOSTNAME

env[PATH] = /usr/local/bin:/usr/bin:/bin

env[TMP] = /tmp

env[TMPDIR] = /tmp

env[TEMP] = /tmp

保存文件并退出 vim 編輯器帖烘。

接下來我們編輯nginx.conf的配置文件,讓nginx能夠解析php文件

vim /etc/nginx/nginx.conf

然后在nginx.conf里面插入如下代碼,記住格式必須要一致橄杨,空格之類的不能多也不能少秘症,不然等下重啟nginx的時候會報錯。

location ~ \.php$ {

#root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

對齊后的格式如下圖:

然后啟動 php-fpm 和 Nginx式矫,并且將php-fpm設(shè)置為隨開機(jī)啟動的服務(wù)乡摹。

service nginx restart

systemctl start php-fpm

systemctl enable php-fpm

PHP7-FPM 配置完成。

然后在我們nginx目錄下創(chuàng)建phpinfo.php文件(博主的目錄為/usr/share/nginx/html)

vi /usr/share/nginx/html/phpinfo.php

接在在里面填寫如下信息


phpinfo();

然后訪問http://你的服務(wù)器公網(wǎng)ip/phpinfo.php采转,出現(xiàn)php的信息之后說明配置成功聪廉。

接下來,還要一步要做氏义,那就是設(shè)置下session有關(guān)的東西锄列。如果我們不把session擁有者設(shè)置為nginx,session不在同一個頁面的話就會出現(xiàn)問題(博主親身的辛酸經(jīng)歷啊)惯悠。我們需要再/var/lib/目錄下邻邮,創(chuàng)建文件夾,文件夾名字為session克婶,進(jìn)行如下命令:

mkdir -p /var/lib/php/session

chown nginx:nginx -R /var/lib/php/session

步驟 3 - 安裝和配置 MariaDB或者mysql

在這里我們提供安裝mariadb和mysql的筒严,如果不想安裝mariadb的,請拉下去看安裝mysql的部分情萤。

我這里使用 MariaDB 作為數(shù)據(jù)庫鸭蛙。可以直接使用 yum 命令從 CentOS 默認(rèn)遠(yuǎn)程倉庫中安裝 mariadb-server 包筋岛。

yum -y install mariadb mariadb-server

啟動 MariaDB娶视,并將其添加到隨系統(tǒng)啟動的服務(wù)中去。

systemctl start mariadb

systemctl enable mariadb

現(xiàn)在開始配置 MariaDB 的 root 用戶密碼睁宰。

mysql_secure_installation

輸入完之后肪获,會要求輸出現(xiàn)在的密碼,默認(rèn)安裝完之后密碼為空柒傻,直接回車孝赫。

鍵入 Y ,然后設(shè)置 MariaDB 的 root 密碼红符。

Set root password? [Y/n] Y

New password:

Re-enter new password:

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

這樣就設(shè)置好了密碼青柄,然后嘗試登陸下:

mysql -uroot -p

自此伐债,我們的linux下安裝php+mysql+nginx算是完成了。

安裝mysql:

已經(jīng)安裝了上面了的mariadb的致开,可以不安裝這個了峰锁,這兩個數(shù)據(jù)庫的用法差不多的,詳情請百度喇喉。

首先Centos7已經(jīng)不支持mysql祖今,因?yàn)槭召M(fèi)了你懂得。centos下yum暫時沒有mysql-server直接安裝包拣技;MariaDB是MySQL社區(qū)開發(fā)的分支,也是一個增強(qiáng)型的替代品耍目。CentOS7的yum源中默認(rèn)好像是沒有mysql的膏斤。為了解決這個問題,我們要先下載mysql的repo源邪驮。

1. 下載mysql的repo源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

2. 安裝mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el7-5.noarch.rpm

安裝這個包后莫辨,會獲得兩個mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo毅访。

3. 安裝mysql

yum install mysql-server

根據(jù)步驟安裝就可以了沮榜,不過安裝完成后,沒有密碼喻粹,需要重置密碼蟆融。重置密碼之前,首先要執(zhí)行以下操作:

chown -R openscanner:openscanner /var/lib/mysql

然后重啟服務(wù)器:

service mysqld restart

接下來登錄重置密碼:

mysql -uroot

mysql >use mysql;

mysql >update user set password=passworD("123456") where user='root';

mysql> flush privileges;

mysql> exit;

附:

在linux的搭建文件中有一段是安裝 PHP7-FPM 需要的一些包守呜。

yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json php70w-pecl-apcu php70w-pecl-apcu-devel

在此介紹一下各安裝包的作用:

PHP-CLI

CLI是命令行版本型酥。

FPM是作為Apache或者Nginx等服務(wù)器軟件處理PHP文件的擴(kuò)展。

PHP的默認(rèn)版本是不支持線程安全的查乒,這個線程安全問題可以去了解PHP擴(kuò)展開發(fā)方面的相關(guān)知識弥喉,這是因?yàn)镃語言方面的問題了。

cli和fpm是php的兩種運(yùn)行方式玛迄,而線程安全和非線程安全應(yīng)該才能說的上是版本由境。是否開啟線程安全可以在編譯PHP的時候進(jìn)行選擇的。

php_cli模式優(yōu)點(diǎn)

1. 使用多進(jìn)程, 子進(jìn)程結(jié)束以后, 內(nèi)核會負(fù)責(zé)回收資源

2. 使用多進(jìn)程,子進(jìn)程異常退出不會導(dǎo)致整個進(jìn)程Thread退出. 父進(jìn)程還有機(jī)會重建流程.

3. 一個常駐主進(jìn)程, 只負(fù)責(zé)任務(wù)分發(fā), 邏輯更清楚.

4.完全支持多線程

5.如上蓖议,可以實(shí)現(xiàn)定時任務(wù)

6.開發(fā)桌面應(yīng)用就是使用PHP-CLI和GTK包

7.linux下用php編寫shell腳本

例如swoole_server就只能用于php-cli環(huán)境

怎么運(yùn)行PHP CLI腳本

第一種方法是使用php -f /path/to/yourfile.php虏杰。調(diào)用PHP CLI解釋器,并給腳本傳遞參數(shù)拒担。這種方法首先要設(shè)置php解釋器的路徑嘹屯,Windows平臺在運(yùn)行CLI之前,需設(shè)置類似path c:\php的命令从撼,也失去了CLI腳本第一行的意義州弟,因此不建議使用該方法钧栖。

第二種方法是首先運(yùn)行chmod+x <要運(yùn)行的腳本文件名>(UNIX/Linux環(huán)境),將該P(yáng)HP文件置為可執(zhí)行權(quán)限婆翔,然后在CLI腳本頭部第一行加入聲明(類似于#! /usr/bin/php或PHP CLI解釋器位置)拯杠,接著在命令行直接執(zhí)行。這是CLI首選方法啃奴,建議采用

php-mcrypt:

mcrypt 是php里面重要的加密支持?jǐn)U展庫潭陪,linux環(huán)境下該庫在默認(rèn)情況下不開啟。window環(huán)境下,PHP>=5.3,默認(rèn)開啟mcrypt擴(kuò)展最蕾。

php-pear:

PEAR是PHP擴(kuò)展與應(yīng)用庫(the PHP Extension and Application Repository)的縮寫依溯。它是一個PHP擴(kuò)展及應(yīng)用的一個代碼倉庫,簡單地說瘟则,PEAR之于PHP就像是CPAN(Comprehensive Perl Archive Network)之于Perl黎炉。

PEAR的基本目標(biāo)是發(fā)展成為PHP擴(kuò)展和庫代碼的知識庫,而這個項(xiàng)目最有雄心的目標(biāo)則是試圖定義一種標(biāo)準(zhǔn)醋拧,這種標(biāo)準(zhǔn)將幫助開發(fā)者編寫可移植慷嗜、可重用的代碼。

Internet上已經(jīng)有關(guān)于該項(xiàng)目的一些文檔丹壕。例如庆械,一些初始的資料已經(jīng)可以在PHP正式手冊中找到,更多的資料即將加入菌赖。

php-mbstring:

mbstring庫 全稱是Multi-Byte String 即各種語言都有自己的編碼缭乘,他們的字節(jié)數(shù)是不一樣的,目前php內(nèi)部的編碼只支持ISO-8859-*, EUC-JP, UTF-8盏袄。

其他的編碼的語言是沒辦法在php程序上正確顯示的忿峻。解決的方法就是通過php的mbstring函數(shù)庫來解決其安裝是在編譯php的時候加上--enable-mbstring=?"="后面就是跟需要支持的語言,具體參數(shù)如下:

--enable-mbstring=cn for Simplified Chinese support, --enable-mbstring=tw for Traditional Chinese support, --enable-mbstring=kr for Korean support, --enable-mbstring=ru for Russian support, and --enable-mbstring=ja for Japanese support.

php-pecl-apcu:

類似于緩存,php-pecl-apcu會有效的提高php執(zhí)行速度辕羽。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逛尚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子刁愿,更是在濱河造成了極大的恐慌绰寞,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铣口,死亡現(xiàn)場離奇詭異滤钱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)脑题,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門件缸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人叔遂,你說我怎么就攤上這事他炊≌耍” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵痊末,是天一觀的道長蚕苇。 經(jīng)常有香客問我,道長凿叠,這世上最難降的妖魔是什么涩笤? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮盒件,結(jié)果婚禮上蹬碧,老公的妹妹穿的比我還像新娘。我一直安慰自己履恩,他們只是感情好锰茉,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著切心,像睡著了一般。 火紅的嫁衣襯著肌膚如雪片吊。 梳的紋絲不亂的頭發(fā)上绽昏,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機(jī)與錄音俏脊,去河邊找鬼全谤。 笑死,一個胖子當(dāng)著我的面吹牛爷贫,可吹牛的內(nèi)容都是我干的认然。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼漫萄,長吁一口氣:“原來是場噩夢啊……” “哼卷员!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起腾务,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤毕骡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后岩瘦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體未巫,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年启昧,在試婚紗的時候發(fā)現(xiàn)自己被綠了叙凡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡密末,死狀恐怖握爷,靈堂內(nèi)的尸體忽然破棺而出跛璧,到底是詐尸還是另有隱情,我是刑警寧澤饼拍,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布赡模,位于F島的核電站,受9級特大地震影響师抄,放射性物質(zhì)發(fā)生泄漏漓柑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一叨吮、第九天 我趴在偏房一處隱蔽的房頂上張望辆布。 院中可真熱鬧,春花似錦茶鉴、人聲如沸锋玲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惭蹂。三九已至,卻和暖如春割粮,著一層夾襖步出監(jiān)牢的瞬間盾碗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工舀瓢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留廷雅,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓京髓,卻偏偏與公主長得像航缀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子堰怨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

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