CentOS 上搭建 PHP7 開(kāi)發(fā)測(cè)試環(huán)境
最近公司增加了一臺(tái)測(cè)試用的服務(wù)器,當(dāng)然因?yàn)橹皇菧y(cè)試用,所以決定所有東西都裝到一個(gè)服務(wù)器上,用來(lái)我們自己擼代碼,發(fā)測(cè)試版功能,做點(diǎn)小實(shí)驗(yàn)神碼的,等等等等……反正就是方便用吧,所以自己來(lái)試了下搭建一臺(tái)完全的 LAMP 開(kāi)發(fā)/測(cè)試環(huán)境,當(dāng)然同樣踩到了無(wú)數(shù)的坑。
準(zhǔn)備開(kāi)始吧!
Step.1 準(zhǔn)備服務(wù)器
那第一步,我們先搞個(gè)服務(wù)器吧,搞啥服務(wù)器呢,既然是測(cè)試用那就搞點(diǎn)不要錢的,或者方便的吧,這里就推薦大家試試用 AWS 或者自己機(jī)器上搭建虛擬機(jī),比如 Vagrant 這樣的開(kāi)發(fā)平臺(tái)也是可以的,這里,我們就用 AWS 了,反正可以免費(fèi)一年, AWS 的優(yōu)點(diǎn)是訪問(wèn)國(guó)外網(wǎng)站超快,缺點(diǎn)自然是國(guó)內(nèi)訪問(wèn)超慢,當(dāng)然大家用啥都可以的啦,這里假設(shè)我們已經(jīng)有一臺(tái) CentOS 7 的服務(wù)器了,并且假設(shè)你可以遠(yuǎn)程鏈接到這臺(tái)服務(wù)器(比如 ssh )。
Setp.2 安裝配置 LAMP
首先我們安裝 Apache
安裝 Apache 很簡(jiǎn)單,只需要通過(guò) yum 安裝就可以了。
yum install httpd
安裝完成后,使用 systemctl 命令啟動(dòng),并設(shè)置為開(kāi)機(jī)自動(dòng)啟動(dòng)。
systemctl start httpd.service systemctl enable httpd.service
出現(xiàn)問(wèn)題時(shí)可以通過(guò) systemctl status 來(lái)查看服務(wù)是否正確的啟動(dòng)了,也可以到 /var/log/httpd 路徑下看訪問(wèn)日志和錯(cuò)誤日志來(lái)排查問(wèn)題。
新的 CentOS 已經(jīng)裝了 FirewallD 了,所以如果裝了這個(gè),我們還需要告訴 FirewallD 打開(kāi)防火墻。
firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload
接下來(lái)裝 MySQL
首先,我們要知道的是, MySQL 沒(méi)有在 CentOS 7 的軟件源庫(kù)里面, CentOS 7 里面有對(duì)應(yīng)的替代品 MariaDB ,因?yàn)辇敋す臼召?gòu)了 MySQL ,大家怕萬(wàn)一將來(lái) MySQL 閉源了,那不都跪了,于是就開(kāi)了個(gè)分支自己開(kāi)始做起 MariaDB 來(lái)了,這里我們還是手工添加 MySQL 的軟件源來(lái)安裝 MySQL 保證還是那個(gè)味道。
首先添加 MySQL 的軟件源。
yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
接下來(lái)安裝 MySQL 的客戶端和服務(wù)端。
yum install mysql-server mysql-client
安裝完成后,使用 mysql_secure_installation 來(lái)完成 MySQL 的安裝配置。
同樣需要為 MySQL 配置防火墻。
firewall-cmd --permanent --zone=public --add-service=mysql firewall-cmd --reload
接下來(lái)我們安裝 PHP 7
跟 MySQL 類似,目前發(fā)行包的軟件源里面是不包含 PHP 7 ,只包含了 PHP 5.x ,所以為了安裝 PHP 7 我們同樣需要添加 PHP 7 的軟件源,根據(jù)這幾天的實(shí)驗(yàn)情況看, Remi 的 PHP 7 的軟件包和插件比較完善,所以我們就先添加 Remi 的軟件源。
yum install scl-utils yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
添加完成軟件源后,我們就可以安裝 PHP 7 和各種常用的包了。
yum install php70 php70-php-mysqlnd php70-php-curl php70-php-simplexml yum install php70-php-devel php70-php-gd php70-php-json php70-php-mcrypt yum install php70-php-mbstring php70-php-opcache php70-php-pear yum install php70-php-pecl-apcu php70-php-pecl-geoip php70-php-pecl-imagick yum install php70-php-pecl-json-post php70-php-pecl-memcache php70-php-pecl-memcached yum install php70-php-pecl-xmldiff php70-php-pecl-zip php70-php-pspell php70-php-soap yum install php70-php-tidy php70-php-xml php70-php-xmlrpc
接下來(lái)呢,這里其實(shí)還沒(méi)裝完,因?yàn)樽畛跷沂菫榱松?jí)服務(wù)器 PHP 5.x 而裝的 PHP 7 ,所以如果你的服務(wù)器已經(jīng)裝了 PHP 5.x 需要簡(jiǎn)單的升級(jí)下,那么在這里安裝完成 PHP 7 的軟件包以后刪除 PHP 5.x 然后在安裝 php70-php 這個(gè)包。
yum remove php php-common
然后
yum install php70-php
之后修改配置文件重啟 Apache 就可以了,要注意的是, PHP 7 的配置文件放到了 /etc/opt/remi/php70 路徑下, PHP 7 的相關(guān)文件放到了 /opt/remi/php70/root/lib64/php 路徑下。
好,這樣,我們一個(gè)帶著 PHP 7 的服務(wù)器就裝好了,大家可以在上面自由玩耍享受 PHP 7 帶來(lái)的性能。
Setp.3 安裝 SASL 和 Memcached
首先 Memcached 大家都知道是什么東西了,那么我來(lái)說(shuō)說(shuō) SASL 是什么鬼。 SASL 全稱 Simple Authentication and Security Layer 用來(lái)做安全機(jī)制驗(yàn)證的,說(shuō)簡(jiǎn)單點(diǎn),就是用這個(gè)東西,我們可以讓我們的 Memcached 在訪問(wèn)前需要驗(yàn)證下用戶名密碼,另外 Memcached 的 Binary 接口比需要使用 SASL 驗(yàn)證,否則就會(huì)輸出 Writing an error: Unknown command 的錯(cuò)誤(然而在 PHP 5.x 下,卻正常。。。所以這個(gè)問(wèn)題研究了好會(huì)兒)。
我們先安裝 SASL 。
yum install cyrus-sasl-plain yum install cyrus-sasl-devel yum install cyrus-sasl yum install cyrus-sasl-lib yum install cyrus-sasl-gssapi yum install cyrus-sasl-md5
安裝完成后,通過(guò) systemctl start saslauthd.service 命令啟動(dòng)這個(gè)服務(wù),接下來(lái),我們需要?jiǎng)?chuàng)建一個(gè)用戶通過(guò) SASL 驗(yàn)證來(lái)訪問(wèn) Memcached 。
首先我們要修改 SASL 的配置來(lái)使用當(dāng)前 /etc/shadow 中的用戶賬戶以及密碼來(lái)進(jìn)行驗(yàn)證,所以我們修改 /etc/sysconfig/saslauthd 中的 MECH=shadow 告訴 SASL 使用系統(tǒng)的賬戶密碼來(lái)驗(yàn)證,修改完后通過(guò) systemctl restart saslauthd.service 重啟 SASL 的進(jìn)程。
可以通過(guò)下面的命令來(lái)驗(yàn)證用戶是否可以正確的被驗(yàn)證了。
/usr/sbin/testsaslauthd -u username -p password
成功將會(huì)顯示 0: OK “Success.” ,要注意的是這里的 username 和 password 是需要能夠正常登錄系統(tǒng)的用戶名和密碼,也就是需要記錄在 /etc/shadow 文件中。
接下來(lái)我們安裝 Memcached 需要的 libevent 。
yum install libevent libevent-devel
再接下來(lái),我們需要通過(guò)源代碼編譯安裝 Memcached ,因?yàn)槟J(rèn)在 yum 中的 Memcached 是沒(méi)有開(kāi)啟 SASL 驗(yàn)證。
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz tar zxvf memcached-1.4.15.tgz cd memcached-1.4.15 ./configure --enable-sasl --with-php-config=/opt/remi/php70/root/bin/php-config make make install
這樣我們的 Memcached 也編譯并安裝完成了,接下來(lái)為 Memcached 的服務(wù)添加 SASL 驗(yàn)證和防火墻規(guī)則。
saslpasswd2 -a memcached -c [用來(lái)訪問(wèn) memcached 用戶] firewall-cmd --permanent --zone=public --add-port=11211/tcp firewall-cmd --reload
接下來(lái)我們啟動(dòng) Memcached 。
/usr/local/bin/memcached -d -u [用來(lái)訪問(wèn) memcached 的用戶] -p 11211 -m 512 -c 1024 -S
上面參數(shù)中 -S 就是告訴 memcached 需要開(kāi)啟 SASL 驗(yàn)證。
Step.End
到此,開(kāi)發(fā)環(huán)境的配置就結(jié)束了,大家愉快的玩耍吧,歡迎擲磚>_<
- CentOS 7下部署php7.1和開(kāi)啟MySQL擴(kuò)展的方法教程
- yum命令安裝php7和相關(guān)擴(kuò)展
- PHP7安裝Redis擴(kuò)展教程【Linux與Windows平臺(tái)】
- linux平臺(tái)編譯安裝PHP7并安裝Redis擴(kuò)展與Swoole擴(kuò)展實(shí)例教程
- PHP擴(kuò)展遷移為PHP7擴(kuò)展兼容性問(wèn)題記錄
- php7安裝yar擴(kuò)展的方法詳解
- php7安裝mongoDB擴(kuò)展的方法分析
- PHP7擴(kuò)展開(kāi)發(fā)教程之Hello World實(shí)現(xiàn)方法示例
- 在Mac上編譯安裝PHP7的開(kāi)發(fā)環(huán)境
- PHP7擴(kuò)展開(kāi)發(fā)之hello word實(shí)現(xiàn)方法詳解
相關(guān)文章
使用composer命令加載vendor中的第三方類庫(kù) 的方法
這篇文章主要介紹了使用composer命令加載vendor中的第三方類庫(kù)的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07Laravel學(xué)習(xí)教程之model validation的使用示例
這篇文章主要給大家介紹了關(guān)于Laravel學(xué)習(xí)教程之model validation使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-10-10php實(shí)現(xiàn)的任意進(jìn)制互轉(zhuǎn)類分享
這篇文章主要介紹了php實(shí)現(xiàn)的任意進(jìn)制互轉(zhuǎn)類分享,本文直接給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-07-07php微信公眾號(hào)開(kāi)發(fā)之翻頁(yè)查詢
這篇文章主要為大家詳細(xì)介紹了php微信公眾號(hào)開(kāi)發(fā)之翻頁(yè)查詢功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10輕松掌握php設(shè)計(jì)模式之訪問(wèn)者模式
這篇文章主要幫助大家輕松掌握php設(shè)計(jì)模式之訪問(wèn)者模式,感興趣的小伙伴們可以參考一下2016-09-09Thinkphp 框架擴(kuò)展之驅(qū)動(dòng)擴(kuò)展實(shí)例分析
這篇文章主要介紹了Thinkphp 框架擴(kuò)展之驅(qū)動(dòng)擴(kuò)展,結(jié)合實(shí)例形式分析了Thinkphp 框架驅(qū)動(dòng)擴(kuò)展相關(guān)原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04ThinkPHP實(shí)現(xiàn)非標(biāo)準(zhǔn)名稱數(shù)據(jù)表快速創(chuàng)建模型的方法
這篇文章主要介紹了ThinkPHP實(shí)現(xiàn)非標(biāo)準(zhǔn)名稱數(shù)據(jù)表快速創(chuàng)建模型的方法,對(duì)于采用ThinkPHP操作非標(biāo)準(zhǔn)名稱數(shù)據(jù)表的情況非常實(shí)用,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11