vagrant系列教程(三):vagrant搭建的php7環境(轉)


原文:http://blog.csdn.net/hel12he/article/details/51107236

前面已經把vagrant的基礎知識已經基本過了一遍 了,相信只要按着教程來,你已經搭建好了自己的基礎環境。接下來說一說如何搭建php7的開發環境。

申明一下,這里使用的box,就是前面演示的centos7 
地址奉上: 
https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

安裝nginx

首先需要跟新一些ngin的相關源。

$ rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

// 執行安裝過程
$ yum install nginx 

看到以下界面時,請稍等,如果需要輸入的地方,請直接按 y 然后回車。 
這里寫圖片描述

啟動nginx並設置為開機啟動

$ systemctl start nginx 
$ systemctl enable nginx

 

安裝epel與remi源

安裝epel,epel是Fedora小組維護的一個軟件倉庫項目,為RHEL/CentOS提供他們默認不提供的軟件包。安裝時一定需要注意一下自己系統的版本額。

$ rpm -ivh http://mirrors.opencas.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

remi源種包含最新的PHP相關信息,如:php7、MySQL等,因此為了便捷獲取php7的最新信息,也需要安裝一下這個源。

$ rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

 

iptables防火牆

因為以前經常使用iptables,對centos7自帶的firewalld防火牆不熟悉,因此我就將關閉centos7自帶的firewalld,啟用自己熟悉的iptables吧。

首先,關閉自帶的firewalld防火牆

$ systemctl stop firewalld.service 
$ systemctl disable firewalld.service #防止開機啟動

 

安裝iptables

$ yum install iptables-services

 

安裝進程如下圖所示 
這里寫圖片描述

啟動iptables防火牆

systemctl start iptables.service 
systemctl enable iptables.service #開機自動啟動

編輯防火牆配置文件

為了我們在自己的主機上能夠順利訪問,需要開啟以下端口, 
vim /etc/sysconfig/iptables 
編輯防火牆,設置80(nginx) 3306(mysql/mariadb) 6379(Redis)端口,外網可訪問 
這里寫圖片描述

PHP7.0的安裝

查看remi源中可安裝的php信息

$ yum list --enablerepo=remi --enablerepo=remi-php70 | grep php70

該列表會列出所有可以安裝的php模塊信息,從中安裝自己需要的模塊,下面安裝模塊,是我自己的一個模塊選擇情況。其中有一部分是必須的,有一部分是可選的。比如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 可以查看當前安裝的php版本信息。 
這里寫圖片描述

啟動php-fpm,因為nginx需要通過它來解析php程序

$ systemctl start php-fpm
$ systemctl enable php-fpm #設置開機自啟動

配置nginx可以訪問php

進入nginx的文件配置中心,

$ cd /etc/nginx/conf.d/
# 復制默認的配置文件 
$ cp default.conf php.conf 

首先先通過vim編輯default文件。將監聽端口改為8080, 因為后面我們自己的php.conf會用到80端口。 
這里寫圖片描述

現在來編輯復制的php.conf文件,可以直接復制以下內容,至於配置的含義,后面再開一篇文章來單獨講解吧。

server {
    listen       80;
    server_name  localhost;

    charset utf-8;
    root /vagrant/www;# 自己的項目目錄,也就是php項目所在目錄

    location / {
        # 請注意,一定要加index.php這項
        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;
    }
}

 

修改完文件后,必須要重新啟動nginx,才會使當前的配置生效。

$ systemctl reload nginx
  • 1
  • 1

測試訪問

在/vagrant/www下新建一個文件index.php

<?php
    phpinfo();

在瀏覽器中打開,訪問對應的ip,可以看到輸出的php信息 
這里寫圖片描述

注:如果在使用過程中,有新增加的php模塊,需要重新啟動php-fpm

systemctl reload php-fpm

Mariadb的安裝

這里很多同學可能第一次聽說mariadb,他呢是mysql的一個重要分子,或者可以理解為mysql的替代品,自從mysql被控制后,更新速度已經慢太多了。兩者的用法基本沒有區別,實際中有哪些坑,大家可以自己去踩一踩。哈哈,別說我不負責任。

# 安裝
$ yum install mariadb-server
# 啟動服務
$ systemctl start mariadb
# 開機啟動
$ systemctl enable mariadb

MariaDB的安全配置

MariaDB默認root密碼為空,我們需要設置一下,執行腳本:

$ sudo mysql_secure_installation

這個腳本會經過一些列的交互問答來進行MariaDB的安全設置。

首先提示輸入當前的root密碼:

Enter current password for root (enter for none): 
初始root密碼為空,我們直接敲回車進行下一步。

Set root password? [Y/n] 
設置root密碼,默認選項為Yes,我們直接回車,提示輸入密碼,在這里設置您的MariaDB的root賬戶密碼。

Remove anonymous users? [Y/n] 
是否移除匿名用戶,默認選項為Yes,建議按默認設置,回車繼續。

Disallow root login remotely? [Y/n] 
是否禁止root用戶遠程登錄?如果您只在本機內訪問MariaDB,建議按默認設置,回車繼續。 如果您還有其他雲主機需要使用root賬號訪問該數據庫,則需要選擇n。

Remove test database and access to it? [Y/n] 
是否刪除測試用的數據庫和權限? 建議按照默認設置,回車繼續。

Reload privilege tables now? [Y/n] 
是否重新加載權限表?因為我們上面更新了root的密碼,這里需要重新加載,回車。

完成后你會看到Success!的提示,MariaDB的安全設置已經完成。我們可以使用以下命令登錄MariaDB:

$ mysql -uroot -p

按提示輸入root密碼,就會進入MariaDB的交互界面,說明已經安裝成功。 
這里寫圖片描述

最后我們將MariaDB設置為開機啟動。

$ sudo systemctl enable mariadb

讓外網可以進行鏈接

mysql> grant all on *.* to 'root'@'%' identified by 'root';
mysql> flush privileges;

安裝composer

composer的大名,我就不想介紹了,如果你是一個phper,沒用過,我也就不怪你,畢竟但是他現在才剛過1.0版,但是如果聽都沒聽過,請面壁去……

安裝說明

$ php -r “readfile(‘https://getcomposer.org/installer‘);” > composer-setup.php

$ php composer-setup.php

$ php -r “unlink(‘composer-setup.php’);”

上述 3 條命令的作用依次是:

  1. 下載安裝腳本(composer-setup.php)到當前目錄。
  2. 執行安裝過程。
  3. 刪除安裝腳本 – composer-setup.php 。

全局安裝composer

全局安裝是將 Composer 安裝到系統環境變量 PATH 所包含的路徑下面,然后就能夠在命令行窗口中直接執行 composer 命令了。

Mac 或 Linux 系統:打開命令行窗口並執行如下命令將前面下載的 composer.phar 文件移動到 /usr/local/bin/ 目錄下面:

$ sudo mv composer.phar /usr/local/bin/composer

然后執行: 
composer -v 
這里寫圖片描述 
由於composer的包都在國外,這里設置一下composer的配置,讓其每次運行時,都使用國內的包

$ composer config -g repo.packagist composer https://packagist.phpcomposer.com

查看composer的配置文件 
vim /root/.composer/config.json 
這里寫圖片描述 
看到以上內容,表示配置成功!


至此,基本的php7環境搭建已經完成了。然后呢,下一次說一說用vagrant搭建redis吧。當然我不會僅僅只說redis的搭建額。到時候看啊吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM