linux下手動(dòng)搭建php+mysql+nginx

轉(zhuǎn)載自:

https://www.cnblogs.com/yanqingxu/p/9248849.html

https://blog.csdn.net/wangliqiang1014/article/details/82906234

1步清、首先要更新yum源侄刽,不然是默認(rèn)的老版本宗收,一般都在5.6及以下旷痕,但是php7都出來好久了,性能提升50%以上低滩!

按照系統(tǒng)更新yum源召夹,我的是centos7,所以我運(yùn)行下面的代碼恕沫!

CentOS/RHEL 7.x:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmrpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

如果是centos6戳鹅,那么執(zhí)行以下代碼:

CentOS/RHEL 6.x:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpmrpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

安裝php

?然后就可以直接yum安裝php7.0了,可以安裝的拓展如下:

yum install php70w-common php70w-fpm php70w-opcache php70w-gd php70w-mysqlnd php70w-mbstring php70w-pecl-redis php70w-pecl-memcached php70w-devel

? 安裝 Nginx 和 PHP7-FPM

??在開始安裝 Nginx 和 php7-fpm 之前昏兆,我們要先添加 EPEL 包的倉(cāng)庫源。使用如下命令:

yum?-y?install?epel-release(上面更新yum包了這步就可以省略了)

??安裝完EPEL 源之后,我們就可以通過倉(cāng)庫源安裝nginx了爬虱,代碼如下:

yum?-y?install?nginx

??執(zhí)行完上面的命令之后執(zhí)行nginx -v隶债,會(huì)出現(xiàn)nignx版本信息

??接下來,啟動(dòng)nginx跑筝,并且把他設(shè)置為開機(jī)自啟動(dòng)死讹。

systemctl?start?nginx

systemctl?enable?nginx

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


??然后我們還需要為 php7-fpm 添加另外一個(gè)倉(cāng)庫赞警。互聯(lián)網(wǎng)中有很個(gè)遠(yuǎn)程倉(cāng)庫提供了 PHP 7 系列包虏两,我在這里使用的是 webtatic愧旦。

??添加 PHP7-FPM webtatic 倉(cāng)庫:

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 的版本號(hào)笤虫,以便驗(yàn)證 PHP 是否正確安裝。

php?-v

配置 PHP7-FPM

??在這一個(gè)步驟中祖凫,我們將配置 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的時(shí)候會(huì)報(bào)錯(cuò)秩彤。

??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;

??????? }

? 對(duì)齊后的格式如下圖:

? 然后啟動(dòng) php-fpm 和 Nginx叔扼,并且將php-fpm設(shè)置為隨開機(jī)啟動(dòng)的服務(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

接在在里面填寫如下信息

<?php

phpinfo();

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

接下來降盹,還要一步要做与柑,那就是設(shè)置下session有關(guān)的東西。如果我們不把session擁有者設(shè)置為nginx,session不在同一個(gè)頁面的話就會(huì)出現(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

安裝和配置 MariaDB或者mysql

在這里我們提供安裝mariadb和mysql的脯倚,如果不想安裝mariadb的,請(qǐng)拉下去看安裝mysql的部分嵌屎。

我這里使用 MariaDB 作為數(shù)據(jù)庫推正。可以直接使用?yum?命令從 CentOS 默認(rèn)遠(yuǎn)程倉(cāng)庫中安裝?mariadb-server?包宝惰。

yum?-y?install?mariadb?mariadb-server

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

systemctl?start?mariadb

systemctl?enable?mariadb

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

mysql_secure_installation

輸入完之后内贮,會(huì)要求輸出現(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的事富,可以不安裝這個(gè)了,這兩個(gè)數(shù)據(jù)庫的用法差不多的

??首先Centos7已經(jīng)不支持mysql乘陪,因?yàn)槭召M(fèi)了你懂得统台。centos下yum暫時(shí)沒有mysql-server直接安裝包;MariaDB是MySQL社區(qū)開發(fā)的分支啡邑,也是一個(gè)增強(qiáng)型的替代品贱勃。CentOS7的yum源中默認(rèn)好像是沒有mysql的。為了解決這個(gè)問題谤逼,我們要先下載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

安裝這個(gè)包后,會(huì)獲得兩個(gè)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(這一步可能會(huì)報(bào)錯(cuò), 我沒有操作成功)

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

service?mysqld?restart

接下來登錄重置密碼:

mysql?-uroot

mysql?>use?mysql;

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

mysql>?flush?privileges;

mysql>?exit;

mysql>select version();查詢版本

mysql 配置文件一般在 /etc/my.cnf

配置可以參考https://blog.csdn.net/zwlsuperman/article/details/81333890


安裝redis數(shù)據(jù)庫

yum?install?redis

安裝完畢后瓷马,使用下面的命令啟動(dòng)redis服務(wù)

# 啟動(dòng)redis

service redis start

# 停止redis

service redis stop

# 查看redis運(yùn)行狀態(tài)

service redis status

# 查看redis進(jìn)程

ps?-ef |?grep?redis

設(shè)置redis為開機(jī)自動(dòng)啟動(dòng)

service enable redis 或者 chkconfig redis on

詳細(xì)可參考:https://www.cnblogs.com/rslai/p/8249812.html


安裝php-redis擴(kuò)展

列出所有的可以安裝的 php 軟件包列表(安裝對(duì)應(yīng)PHP使用版本的redis)

yum list| grep php70w*

yum 安裝 redis 擴(kuò)展

yum -y install php70w-pecl-redis.x86_64

重啟 php-fpm

service php-fpm restart

附:


在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)版本是不支持線程安全的,這個(gè)線程安全問題可以去了解PHP擴(kuò)展開發(fā)方面的相關(guān)知識(shí)端盆,這是因?yàn)镃語言方面的問題了怀骤。

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


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

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

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

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

4.完全支持多線程

5.如上,可以實(shí)現(xiàn)定時(shí)任務(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平臺(tái)在運(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)的縮寫杆煞。它是一個(gè)PHP擴(kuò)展及應(yīng)用的一個(gè)代碼倉(cāng)庫,簡(jiǎn)單地說曲稼,PEAR之于PHP就像是CPAN(Comprehensive Perl Archive Network)之于Perl索绪。

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

??Internet上已經(jīng)有關(guān)于該項(xiàng)目的一些文檔窄坦。例如唤反,一些初始的資料已經(jīng)可以在PHP正式手冊(cè)中找到凳寺,更多的資料即將加入。


php-mbstring:

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

??其他的編碼的語言是沒辦法在php程序上正確顯示的盏阶。解決的方法就是通過php的mbstring函數(shù)庫來解決其安裝是在編譯php的時(shí)候加上--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會(huì)有效的提高php執(zhí)行速度。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末名斟,一起剝皮案震驚了整個(gè)濱河市脑慧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌砰盐,老刑警劉巖闷袒,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異岩梳,居然都是意外死亡囊骤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門冀值,熙熙樓的掌柜王于貴愁眉苦臉地迎上來也物,“玉大人,你說我怎么就攤上這事池摧〗钩” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵作彤,是天一觀的道長(zhǎng)膘魄。 經(jīng)常有香客問我,道長(zhǎng)竭讳,這世上最難降的妖魔是什么创葡? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮绢慢,結(jié)果婚禮上灿渴,老公的妹妹穿的比我還像新娘。我一直安慰自己胰舆,他們只是感情好骚露,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缚窿,像睡著了一般棘幸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上倦零,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天误续,我揣著相機(jī)與錄音吨悍,去河邊找鬼。 笑死蹋嵌,一個(gè)胖子當(dāng)著我的面吹牛育瓜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播栽烂,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼躏仇,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了愕鼓?” 一聲冷哼從身側(cè)響起钙态,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菇晃,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚓挤,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡磺送,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了灿意。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片估灿。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖缤剧,靈堂內(nèi)的尸體忽然破棺而出馅袁,到底是詐尸還是另有隱情,我是刑警寧澤荒辕,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布汗销,位于F島的核電站,受9級(jí)特大地震影響抵窒,放射性物質(zhì)發(fā)生泄漏弛针。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一李皇、第九天 我趴在偏房一處隱蔽的房頂上張望削茁。 院中可真熱鬧,春花似錦掉房、人聲如沸茧跋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瘾杭。三九已至,卻和暖如春捍岳,著一層夾襖步出監(jiān)牢的瞬間富寿,已是汗流浹背睬隶。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留页徐,地道東北人苏潜。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像变勇,于是被迫代替她去往敵國(guó)和親恤左。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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