本篇文章介紹了vagrant搭建php7開(kāi)發(fā)環(huán)境的方法。其中涵蓋了nginx的安裝與配置,composer的安裝與配置,php7安裝及模塊安裝,以及centos7中防火墻的配置。
前面已經(jīng)把vagrant的基礎(chǔ)知識(shí)已經(jīng)基本過(guò)了一遍 了,相信只要按著教程來(lái),你已經(jīng)搭建好了自己的基礎(chǔ)環(huán)境。接下來(lái)說(shuō)一說(shuō)如何搭建php7的開(kāi)發(fā)環(huán)境。
申明一下,這里使用的box,就是前面演示的centos7
地址奉上:
https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
安裝nginx
首先需要跟新一些ngin的相關(guān)源。
$ rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm // 執(zhí)行安裝過(guò)程 $ yum install nginx
看到以下界面時(shí),請(qǐng)稍等,如果需要輸入的地方,請(qǐng)直接按 y 然后回車。
啟動(dòng)nginx并設(shè)置為開(kāi)機(jī)啟動(dòng)
$ systemctl start nginx $ systemctl enable nginx
安裝epel與remi源
安裝epel,epel是Fedora小組維護(hù)的一個(gè)軟件倉(cāng)庫(kù)項(xiàng)目,為RHEL/CentOS提供他們默認(rèn)不提供的軟件包。安裝時(shí)一定需要注意一下自己系統(tǒng)的版本額。
$ rpm -ivh http://mirrors.opencas.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
2016-10-22日修改:
最近發(fā)上面的源不能用了。請(qǐng)大家自己在這里找對(duì)應(yīng)的版本
http://dl.fedoraproject.org/pub/
過(guò)不了墻的請(qǐng)用國(guó)內(nèi)鏡像
http://mirrors.sohu.com/fedora-epel/7/x86_64/e/epel-release-7-8.noarch.rpm
remi源種包含最新的php相關(guān)信息,如:php7、mysql等,因此為了便捷獲取php7的最新信息,也需要安裝一下這個(gè)源。
$ rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
iptables防火墻
因?yàn)橐郧敖?jīng)常使用iptables,對(duì)centos7自帶的firewalld防火墻不熟悉,因此我就將關(guān)閉centos7自帶的firewalld,啟用自己熟悉的iptables吧。
首先,關(guān)閉自帶的firewalld防火墻
$ systemctl stop firewalld.service $ systemctl disable firewalld.service #防止開(kāi)機(jī)啟動(dòng)
安裝iptables
$ yum install iptables-services
安裝進(jìn)程如下圖所示
啟動(dòng)iptables防火墻
systemctl start iptables.service systemctl enable iptables.service #開(kāi)機(jī)自動(dòng)啟動(dòng)
編輯防火墻配置文件
為了我們?cè)谧约旱闹鳈C(jī)上能夠順利訪問(wèn),需要開(kāi)啟以下端口,
vim /etc/sysconfig/iptables
編輯防火墻,設(shè)置80(nginx) 3306(mysql/mariadb) 6379(redis)端口,外網(wǎng)可訪問(wèn)
PHP7.0的安裝
查看remi源中可安裝的php信息
$ yum list --enablerepo=remi --enablerepo=remi-php70 | grep php70
該列表會(huì)列出所有可以安裝的php模塊信息,從中安裝自己需要的模塊,下面安裝模塊,是我自己的一個(gè)模塊選擇情況。其中有一部分是必須的,有一部分是可選的。比如php-fpm就是必須的,如果你用的是nginx的話。
$ yum install --enablerepo=remi --enablerepo=remi-php70 php php-opcache php-pecl-apcu php-devel php-mbstring php-mcrypt php-mysqlnd php-pecl-xdebug php-pdo php-pear php-fpm php-cli php-xml php-bcmath php-process php-gd php-common php-json php-imap php-pecl-redis php-pecl-memcached php-pecl-mongodb
安裝完成后,輸入 php -v 可以查看當(dāng)前安裝的php版本信息。
啟動(dòng)php-fpm,因?yàn)閚ginx需要通過(guò)它來(lái)解析php程序
$ systemctl start php-fpm $ systemctl enable php-fpm #設(shè)置開(kāi)機(jī)自啟動(dòng)
配置nginx可以訪問(wèn)php
進(jìn)入nginx的文件配置中心,
$ cd /etc/nginx/conf.d/ # 復(fù)制默認(rèn)的配置文件 $ cp default.conf php.conf
首先先通過(guò)vim編輯default文件。將監(jiān)聽(tīng)端口改為8080, 因?yàn)楹竺嫖覀冏约旱膒hp.conf會(huì)用到80端口。
現(xiàn)在來(lái)編輯復(fù)制的php.conf文件,可以直接復(fù)制以下內(nèi)容,至于配置的含義,后面再開(kāi)一篇文章來(lái)單獨(dú)講解吧。
server { listen 80; server_name localhost; charset utf-8; root /vagrant/www;# 自己的項(xiàng)目目錄,也就是php項(xiàng)目所在目錄 location / { # 請(qǐng)注意,一定要加index.php這項(xiàng) index index.php index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; # 注意此處變量的不同 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
修改完文件后,必須要重新啟動(dòng)nginx,才會(huì)使當(dāng)前的配置生效。
$ systemctl reload nginx
測(cè)試訪問(wèn)
在/vagrant/www下新建一個(gè)文件index.php
<?php phpinfo();
在瀏覽器中打開(kāi),訪問(wèn)對(duì)應(yīng)的ip,可以看到輸出的php信息
注:如果在使用過(guò)程中,有新增加的php模塊,需要重新啟動(dòng)php-fpm
systemctl reload php-fpm
Mariadb的安裝
這里很多同學(xué)可能第一次聽(tīng)說(shuō)mariadb,他呢是mysql的一個(gè)重要分子,或者可以理解為mysql的替代品,自從mysql被控制后,更新速度已經(jīng)慢太多了。兩者的用法基本沒(méi)有區(qū)別,實(shí)際中有哪些坑,大家可以自己去踩一踩。哈哈,別說(shuō)我不負(fù)責(zé)任。
# 安裝 $ yum install mariadb-server # 啟動(dòng)服務(wù) $ systemctl start mariadb # 開(kāi)機(jī)啟動(dòng) $ systemctl enable mariadb
MariaDB的安全配置
MariaDB默認(rèn)root密碼為空,我們需要設(shè)置一下,執(zhí)行腳本:
$ sudo mysql_secure_installation
這個(gè)腳本會(huì)經(jīng)過(guò)一些列的交互問(wèn)答來(lái)進(jìn)行MariaDB的安全設(shè)置。
首先提示輸入當(dāng)前的root密碼:
Enter current password for root (enter for none):
初始root密碼為空,我們直接敲回車進(jìn)行下一步。
Set root password? [Y/n]
設(shè)置root密碼,默認(rèn)選項(xiàng)為Yes,我們直接回車,提示輸入密碼,在這里設(shè)置您的MariaDB的root賬戶密碼。
Remove anonymous users? [Y/n]
是否移除匿名用戶,默認(rèn)選項(xiàng)為Yes,建議按默認(rèn)設(shè)置,回車?yán)^續(xù)。
Disallow root login remotely? [Y/n]
是否禁止root用戶遠(yuǎn)程登錄?如果您只在本機(jī)內(nèi)訪問(wèn)MariaDB,建議按默認(rèn)設(shè)置,回車?yán)^續(xù)。 如果您還有其他云主機(jī)需要使用root賬號(hào)訪問(wèn)該數(shù)據(jù)庫(kù),則需要選擇n。
Remove test database and access to it? [Y/n]
是否刪除測(cè)試用的數(shù)據(jù)庫(kù)和權(quán)限? 建議按照默認(rèn)設(shè)置,回車?yán)^續(xù)。
Reload privilege tables now? [Y/n]
是否重新加載權(quán)限表?因?yàn)槲覀兩厦娓铝藃oot的密碼,這里需要重新加載,回車。
完成后你會(huì)看到Success!的提示,MariaDB的安全設(shè)置已經(jīng)完成。我們可以使用以下命令登錄MariaDB:
$ mysql -uroot -p
按提示輸入root密碼,就會(huì)進(jìn)入MariaDB的交互界面,說(shuō)明已經(jīng)安裝成功。
最后我們將MariaDB設(shè)置為開(kāi)機(jī)啟動(dòng)。
$ sudo systemctl enable mariadb
讓外網(wǎng)可以進(jìn)行鏈接
mysql> grant all on *.* to 'root'@'%' identified by 'root'; mysql> flush privileges;
安裝composer
composer的大名,我就不想介紹了,如果你是一個(gè)phper,沒(méi)用過(guò),我也就不怪你,畢竟但是他現(xiàn)在才剛過(guò)1.0版,但是如果聽(tīng)都沒(méi)聽(tīng)過(guò),請(qǐng)面壁去……
安裝說(shuō)明
$ php -r “readfile(‘https://getcomposer.org/installer‘);” > composer-setup.php $ php composer-setup.php $ php -r “unlink(‘composer-setup.php’);”
上述 3 條命令的作用依次是:
下載安裝腳本(composer-setup.php)到當(dāng)前目錄。
執(zhí)行安裝過(guò)程。
刪除安裝腳本 – composer-setup.php 。
全局安裝composer
全局安裝是將 Composer 安裝到系統(tǒng)環(huán)境變量 PATH 所包含的路徑下面,然后就能夠在命令行窗口中直接執(zhí)行 composer 命令了。
Mac 或 Linux 系統(tǒng):打開(kāi)命令行窗口并執(zhí)行如下命令將前面下載的 composer.phar 文件移動(dòng)到 /usr/local/bin/ 目錄下面:
$ sudo mv composer.phar /usr/local/bin/composer
然后執(zhí)行:
composer -v
由于composer的包都在國(guó)外,這里設(shè)置一下composer的配置,讓其每次運(yùn)行時(shí),都使用國(guó)內(nèi)的包
$ composer config -g repo.packagist composer https://packagist.phpcomposer.com
查看composer的配置文件
vim /root/.composer/config.json
看到以上內(nèi)容,表示配置成功!
推薦學(xué)習(xí):php視頻教程