首頁  >  文章  >  後端開發  >  CentOS7下Laravel部署並用nginx轉發

CentOS7下Laravel部署並用nginx轉發

不言
不言原創
2018-04-18 10:30:481907瀏覽

這篇文章介紹的內容是關於CentOS7下Laravel部署並用nginx轉發,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

本文章僅作為個人筆記

  • 建立php運行環境

    • 執行service php-fpm start啟動php-fpm服務,執行ps aux | grep php-fpm驗證是否成功安裝php-fpm服務。

    • 如果使用第二個方案安裝來源的,請使用下列腳本

      yum install php72-php-cli.x86_64 php72-php-common.x86_64 php72-php-fpm.x86_64 php72-php-devel.x86_64 php72-php-gd.x86_64 php72-php-intl.x86_64 php72-php-mbstring.x86_64 php72-php-pecl-mcrypt.x86_64 php72-php-mysqlnd.x86_64 php72-php-opcache.x86_64 php72-php-pdo.x86_64 php72-php-pear.noarch php72-php-xml.x86_64 -y
    • 有php來源

    • 也有可能有部分使用者無法存取這兩個文件,此時可以換用下面方式(7.2),因此後面的部分教程可能也會不一樣,需注意

      yum install epel-release -y
      rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    • php來源比較舊

    • #php:

    • 判斷是否有php的yum源:
      yum search php

    • 系統本身自帶php的yum來源,但是版本太舊,還是5.4的,為了安裝最新的來源這裡準備安裝新yum源。

    • 安裝php的yum來源:

      rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
      rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    • #此時再執行yum search php 會發現多出來更多選項

    • 安裝php及部分相關外掛(php-cli為shell相關,php-common為常用函數相關,php-devel為編譯相關,php-fpm為服務相關,php -gd為圖片處理相關,php-intl為國際化相關,php-mbstring為多字串處理相關,php-mcrypt為加密相關,php-mysqlnd為mysql相關,php-opcache為效能加速相關,php-pdo為資料物件相關,php-pear為php應用程式擴充相關,php-xml為xml相關)(這裡安裝php7.1)使用了第一種的請用第一個腳本:
      yum install php71w-cli.x86_64 php71w-common.x86_64 php71w-fpm.x86_64 php71w-devel.x86_64 php71w-gd.x86_64 php71w-intl.x864 php76868686_64 php11w-intl. 64 php71w-mysqlnd.x86_64 php71w-opcache .x86_64 php71w-pdo.x86_64 php71w-pear.noarch php71w-xml.x86_64 -y

    • 執行php –version查看php是否已安裝並設定完成。出現與截圖類似的版本資訊則表示安裝php配置完成,

    • #php版本

    • php -fpm測試

  • 安裝週邊服務(nginx/composer/git/mysql/redis)

    • 這幾個服務基本上可以在基本yum來源中安裝,如果沒有composer,可運行cd /tmp
      curl –sShttps://getcomposer.org/installer| php
      mv composer.phar/usr/local/ bin/composer  即可完成composer的安裝

  • 服務程式碼準備

    • 為了方便php服務的部署和更新,筆者使用git進行專案下載及更新。

    • 進入準備部署服務的資料夾,執行git clone git位址(範例:git clone root@www.temp.com:/git/php/markingphp)

    • #下載php程式碼

    • 此時專案權限為root,如果這樣運行php-fpm可能會權限不足,筆者這裡為了簡便及對php專案靜態資源nginx管理,將專案權限變更為nginx,將php-fpm的運行者權限改為nginx。

  • php及專案相關設定

    • #nginx錯誤日誌

    • #服務轉送失敗

    • 初始化mysql

    • 執行chown nginx:nginx - Rf 資料夾名稱(例:chown nginx:nginx -Rf markingphp)

    • #運行rpm -ql php17w-fpm.x86_64取得php-fpm安裝位址

    • 取得php-fpm安裝位址

    • 嘗試得知/etc/php-fpm.d/www.conf 為設定檔

    • php-fpm設定檔

      #
    • 更改user = apache与 group = pache 为 user = nginx group = nginx 如果有必要可以更改127.0.0.1:9000为想要的端口

    • 为了服务器信息安全及项目大小控制,git项目未上传项目配置与项目引用库,所以需要重新新建项目配置文件并配置

    • 项目结构

    • 配置文件

    • 运行 composer update -vvv 下载库

    • 下载库失败

    • 如果库下载失败,可能是库被墙的原因,更改composer.json添加国内源再运行即可。


    “repositories”: { 
       “packagist”: { 
          “type”: “composer”, 
          “url”: “https://packagist.phpcomposer.com” 
       } 
    }
    • 国内源

    • 再运行 php artisan serve 可测试当前项目库是否完整,出现如下说明项目库下载完成。

    • 尝试启动项目测试

    • 初始化项目mysql表(php artisan migrate:refresh)

    • 配置nginx以转发80端口服务到php-fpm的服务,
         

      server { 
          listen 80; 
          location / { 
             root /php/markingphp/public/; 
             index index.php index.html index.jsp; 
          } 
          location ~ .php{  
               root html;  
               fastcgi_pass 127.0.0.1:9000;  
               fastcgi_index index.php;  
               fastcgi_param SCRIPT_FILENAME
    document_root$fastcgi_script_name; 
              include fastcgi_params; 
         } 
       }
    • 运行curl localhost 判断服务是否正常转发。

    • 运行 vim /var/log/nginx/error.log 检查nginx的log会发现log提示权限不足,可是我们已经把文件权限付给了nginx。

    • 最终得知是因为selinux的缘故,此时只需运行 setenforce 0 即可关闭selinux(临时),再修改配置文件 /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,这样下次重启selinux依然是关闭的。再运行curl localhost 会发现服务已经可以正常服务了。


以上是CentOS7下Laravel部署並用nginx轉發的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn