搭建一個 Laravel 開發環境(Linux, Nginx, MySQL and PHP)

更新於 發佈於 閱讀時間約 12 分鐘

事前準備

  • 安裝 VirtualBox 虛擬機(在 WIN10 上透過虛擬機安裝 CentOS7)

VirtualBox官網下載地址

  • 下載 CentOS7 映像檔

CentOS7下載地址

  • 安裝 Linux 流程可以參考鳥哥私房菜

從3.2.2開始看起就行,鳥哥私房菜安裝流程網址


安裝 Nginx

在 CentOS 中新建 yum 源並安裝 Nginx

Nginx 官網

raw-image

1.yum 源在 CentOS 已經默認存在,所以不需要再特別安裝,現在我們去到其目錄中新建且編輯 「nginx.repo」

vi /etc/yum.repos.d/nginx.repo

2.將上圖紅色區塊複製,貼至 「nginx.repo」 中,完畢後保存

raw-image

3.選擇主線 nginx 包

yum-config-manager --enable nginx-mainline

4.安裝 nginx

yum -y install nginx

5.測試 nignx 是否安裝成功

nginx -v


測試瀏覽器是否能訪問 VirtualBox 的 IP 地址

1.關閉防火牆(每次系統重啟防火牆都要重新關閉)

systemctl stop firewalld

又或者永久關閉

systemctl disable firewalld
測試環境可以這樣做,但是在生產環境下不要關閉

2.關閉 SELINUX

編輯 SELINUX 的 config文件

vi /etc/selinux/config

將其配置如下

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

重啟 ECS 實例

shutdown -r row

3.在外部的瀏覽器(指的是你現在使用的電腦瀏覽器)訪問 VirtualBox IP

啟動 nginx

systemctl start nginx

查看 nginx 行程狀態

ps -aux | grep nginx
raw-image

訪問 VirtualBox IP,看是否會有以下畫面

raw-image


安裝 PHP

使用 remi repository 安裝 PHP

阿里雲 remi repository

raw-image

1.安裝阿里雲 remi-release-7.rpm,因為我們是使用 CentOS 7

yum -y install https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm

2.可以查看目前倉庫中的 PHP 版本

yum repolist all | grep php
raw-image


開始安裝 PHP 8 及 PHP 8 擴展

1.切換 PHP remi repository

yum-config-manager --enable remi-php81

2.開始安裝

yum -y install php php-cli php-fpm php-mysqlnd php-gd php-curl php-xml php-json php-zip php-devel php-mbstring php-pear php-bcmath php-redis

3.執行 PHP 查看是否安裝成功

php -v
raw-image


配置 PHP-FPM

1.用 vi 打開配置文件 www.conf,以下配置步驟都在此配置文件中完成

vi /etc/php-fpm.d/www.conf

2. 將使用者及群組保持與 nginx 的一致

raw-image

3.使用 Unix socket 通訊(僅能用於 Nginx 與 PHP_FPM 在同一伺服器上)

raw-image

4.將 listen.owner, listen.group 使用者更改為 nginx

raw-image

5.設置環境變數

raw-image

設置完後保存

6.創建 /run/php-fpm/remi-php81 目錄,以供存放 sock 檔

mkdir -p /run/php-fpm/remi-php81

7.啟動 php-fpm

systemctl start php-fpm
systemctl enable php-fpm

8.查看 php-fpm 是否有運行

netstat -pl | grep php-fpm.sock


安裝 MySQL

使用 MySQL 官方 yum 源

1.安裝 yum 源

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

可以查看一下 Mysql yum 源

yum list | grep mysql-community

2.切換 mysql repository

yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community

再查看一次,看是否切換了

yum list | grep mysql-community

3.開始安裝 MySQL

yum -y install mysql-community-server mysql-community-client

4.啟動 MySQL

systemctl start mysqld
systemctl enable mysqld
raw-image


配置 MySQL

1.初始化密碼

grep 'temporary password' /var/log/mysqld.log
raw-image

2.登入 MySQL

mysql -u root -p #輸入暫存密碼

3.重設 root 密碼

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Pa$$w@rd0104';

4.創建一個測試資料庫

CREATE DATABASE laravel;

MySQL 配置完成,按 \q + Enter 離開


安裝其他程式

開始安裝 Composer

Composer 下載網址

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php composer-setup.php

php -r "unlink('composer-setup.php');"

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

#運行 composer 命令
composer


安裝 Node.js + NPM + Yarn

#安裝 node.js npm
yum -y install nodejs npm

#安裝 yarn
npm install --global yarn

#查看 yarn 版本
yarn --version


為 Laravel 配置 Nginx

安裝 Laravel

1.創建 laravel 根目錄

mkdir -p /var/www/laravel

#切換至 /var/www/laravel
cd /var/www/laravel

2.使用 composer 安裝 laravel

composer create-project laravel/laravel .

3.更改根目錄的所有者及儲存庫的權限

chown -R nginx:root /var/www/laravel
chmod 755 -R /var/www/laravel/storage


配置 Nginx

1.在 conf.d 下創建一虛擬主機配置文件 laravel.conf

vi /etc/nginx/conf.d/laravel.conf

2.將以下代碼貼入 laravel.conf

server {
  listen 8080;

  # Log files for Debugging
  access_log /var/log/nginx/laravel-access.log;
  error_log /var/log/nginx/laravel-error.log;

  # The directory of web root
  root /var/www/laravel/public;
  index index.php index.html index.htm;

  # Your Domain Name
  server_name laravel.domain.test;

  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

  # PHP-FPM Configuration Nginx
  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/run/php-fpm/remi-php81/php-fpm.sock; # remi
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

location ~ /\.ht {
deny all;
  }
}

3.重啟 nginx

systemctl restart nginx

完成後開啟就可以看到 laravel 畫面了

raw-image




留言
avatar-img
留言分享你的想法!
avatar-img
yuanchin的沙龍
6會員
5內容數
yuanchin的沙龍的其他內容
2023/03/14
這篇文章主要介紹 TCP 可靠性傳輸服務、連接管理、流量控制及擁塞控制等...
Thumbnail
2023/03/14
這篇文章主要介紹 TCP 可靠性傳輸服務、連接管理、流量控制及擁塞控制等...
Thumbnail
2022/08/30
這篇文章主要介紹什麼是阻塞、什麼是非阻塞,以及它們之間的區別。也介紹了同步及異步是什麼東西......
Thumbnail
2022/08/30
這篇文章主要介紹什麼是阻塞、什麼是非阻塞,以及它們之間的區別。也介紹了同步及異步是什麼東西......
Thumbnail
2022/07/27
為什麼要對任務進行排班呢?這篇文章將會告訴你,在作業系統當中,是如何利用排班演算法來處理交互式與非交互式任務,以及如何提升CPU使用率!
Thumbnail
2022/07/27
為什麼要對任務進行排班呢?這篇文章將會告訴你,在作業系統當中,是如何利用排班演算法來處理交互式與非交互式任務,以及如何提升CPU使用率!
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
先說,我並非專業人士~ 只是分享建立的過程與經驗,不要問我問題~ 我可能、應該無法解答,哈哈哈。 另,這只是一份 草稿? 操作簡述~ 容我不很詳細的抓畫面了! 我之後 "應該" 會拍影片說明整個過程,真的有拍的話,再補上影片網址。
Thumbnail
先說,我並非專業人士~ 只是分享建立的過程與經驗,不要問我問題~ 我可能、應該無法解答,哈哈哈。 另,這只是一份 草稿? 操作簡述~ 容我不很詳細的抓畫面了! 我之後 "應該" 會拍影片說明整個過程,真的有拍的話,再補上影片網址。
Thumbnail
最近我在使用NextCloud遇到了一個問題,就是點進去應用程式商店頁面後,無法顯示常用的行事曆、任務、專案管理這些應用程式來安裝。 這是因爲使用紅帽系的發行版都會預設安裝SELinux軟體來提高系統安全性,所以因爲權限關係會擋住NextCloud執行,所以這個問題其實只要做相關SELinux配置
Thumbnail
最近我在使用NextCloud遇到了一個問題,就是點進去應用程式商店頁面後,無法顯示常用的行事曆、任務、專案管理這些應用程式來安裝。 這是因爲使用紅帽系的發行版都會預設安裝SELinux軟體來提高系統安全性,所以因爲權限關係會擋住NextCloud執行,所以這個問題其實只要做相關SELinux配置
Thumbnail
ModSecurity 是普遍應用之 公開網頁程式防火牆 ( 可 搭配 OWASP (Open Web Application Security Project) 維護的免費核心規則集 Core Rule Set CRS 初始設計 為 Apache HTTP Server 之模組 後續發展成 htt
Thumbnail
ModSecurity 是普遍應用之 公開網頁程式防火牆 ( 可 搭配 OWASP (Open Web Application Security Project) 維護的免費核心規則集 Core Rule Set CRS 初始設計 為 Apache HTTP Server 之模組 後續發展成 htt
Thumbnail
之前我已經成功在fedora架設nextcloud了,不過現在還無法讓其他台電腦連到NextCloud所以這部份需要設定的有 firewall(防火牆) Apache HTTP服務器的NextCloud網站設定文件 NextCloud配置文件。 請防火牆開放80port 顯示系統內建服務名稱
Thumbnail
之前我已經成功在fedora架設nextcloud了,不過現在還無法讓其他台電腦連到NextCloud所以這部份需要設定的有 firewall(防火牆) Apache HTTP服務器的NextCloud網站設定文件 NextCloud配置文件。 請防火牆開放80port 顯示系統內建服務名稱
Thumbnail
打包網頁 在部署網站之前,我們要先來打包我們的網頁前端專案 為什麼要打包呢?什麼是打包呢?這有點像是編譯,如果你寫過 C 應該講到這裡就理解為什麼要這樣做了 在網頁開發中網頁內容最原始就是直接用 html 下去寫,但一個成熟的開發者會善用框架來開發,不論是用 vue 或 react,樣式的部分也會從
Thumbnail
打包網頁 在部署網站之前,我們要先來打包我們的網頁前端專案 為什麼要打包呢?什麼是打包呢?這有點像是編譯,如果你寫過 C 應該講到這裡就理解為什麼要這樣做了 在網頁開發中網頁內容最原始就是直接用 html 下去寫,但一個成熟的開發者會善用框架來開發,不論是用 vue 或 react,樣式的部分也會從
Thumbnail
Development environment of Laravel. Nginx, php, mysql and centos 7
Thumbnail
Development environment of Laravel. Nginx, php, mysql and centos 7
Thumbnail
網路隨便估狗都有一堆大神教學文,不過還是紀錄一下自己安裝的步驟 (2021.11.7)身為一個linux和資料庫菜雞只能乖乖腳踏實地一步一步來 準備好環境 (廢話) 1. 先準備好環境 (廢話) 我是用virtualbox起一個CentOS7的虛擬機詳細以參考以下網址,有非常詳盡的步驟
Thumbnail
網路隨便估狗都有一堆大神教學文,不過還是紀錄一下自己安裝的步驟 (2021.11.7)身為一個linux和資料庫菜雞只能乖乖腳踏實地一步一步來 準備好環境 (廢話) 1. 先準備好環境 (廢話) 我是用virtualbox起一個CentOS7的虛擬機詳細以參考以下網址,有非常詳盡的步驟
Thumbnail
Environment: GCP Linux version: CentOS 7 Laradock的初衷原是為了將Laravel環境容器化,但隨著時間的演進,慢慢包含了各種常用的工具了,如php-fpm, apache, nginx, mysql, phpmyadmin, redis等等這些常用的東
Thumbnail
Environment: GCP Linux version: CentOS 7 Laradock的初衷原是為了將Laravel環境容器化,但隨著時間的演進,慢慢包含了各種常用的工具了,如php-fpm, apache, nginx, mysql, phpmyadmin, redis等等這些常用的東
Thumbnail
本筆記紀錄如何在Linux(CentOS 8)安裝Nginx, MySQL, PHP環境。...
Thumbnail
本筆記紀錄如何在Linux(CentOS 8)安裝Nginx, MySQL, PHP環境。...
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News