在 CentOS 系統上配置 Laravel 以連接到數據庫,通常涉及以下幾個步驟。以下內容將詳細介紹如何在 CentOS 上安裝必要的軟件、配置數據庫以及設置 Laravel 項目以正確連接到數據庫。
sudo yum update -y
EPEL 提供額外的軟件包,Remi 倉庫提供最新的 PHP 版本。
sudo yum install epel-release -y
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
根據需要的 PHP 版本啟用相應的 Remi 倉庫。例如,啟用 PHP 8.1:
sudo yum-config-manager --enable remi-php81
安裝 PHP 及 Laravel 所需的擴展,如 PDO、MBString、OpenSSL、Tokenizer、XML、Ctype 和 JSON。
sudo yum install php php-cli php-fpm php-mysqlnd php-pdo php-mbstring php-xml php-tokenizer php-ctype php-json -y
Composer 是 PHP 的依賴管理工具,Laravel 項目通常使用它來管理依賴。
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo yum install epel-release -y
sudo yum install nginx -y
啟動并啟用 Nginx 服務:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo yum install mysql-server -y
啟動并啟用 MySQL 服務:
sudo systemctl start mysqld
sudo systemctl enable mysqld
運行安全腳本以設置 root 密碼和其他安全選項:
sudo mysql_secure_installation
sudo mysql -u root -p
輸入之前設置的 root 密碼。
假設我們要為 Laravel 項目創建一個名為 laravel_db
的數據庫和一個用戶 laravel_user
,并授予相應的權限。
CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
注意:將
your_password
替換為您選擇的強密碼。
您可以使用 Git 將 Laravel 項目克隆到服務器上,或者通過其他方式上傳項目文件。
cd /var/www/html
git clone https://github.com/your-username/your-laravel-project.git
cd your-laravel-project
使用 Composer 安裝所有依賴項:
composer install
.env
文件復制 .env.example
文件并編輯為實際配置:
cp .env.example .env
nano .env
在 .env
文件中填寫數據庫連接信息:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=your_password
注意:確保
DB_HOST
設置為正確的數據庫服務器地址。如果數據庫和 Laravel 都在同一服務器上,通常設置為127.0.0.1
或localhost
。
如果尚未生成應用密鑰,可以使用以下命令生成:
php artisan key:generate
這將自動更新 .env
文件中的 APP_KEY
。
如果您的 Laravel 項目包含數據庫遷移,可以運行以下命令創建數據庫表:
php artisan migrate
以 Nginx 為例,配置服務器塊以指向 Laravel 項目的 public
目錄。
sudo nano /etc/nginx/conf.d/laravel.conf
添加以下配置:
server {
listen 80;
server_name your_domain.com; # 替換為您的域名或服務器 IP
root /var/www/html/your-laravel-project/public; # 替換為您的項目路徑
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; # 對于 CentOS 7
# fastcgi_pass 127.0.0.1:9000; # 對于 CentOS 8 或使用 TCP
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
sudo nginx -t
如果沒有錯誤,重啟 Nginx 以應用更改:
sudo systemctl restart nginx
確保 Laravel 的 storage
和 bootstrap/cache
目錄具有適當的權限,以便 Web 服務器可以寫入文件。
sudo chown -R nginx:nginx /var/www/html/your-laravel-project
sudo chmod -R 755 /var/www/html/your-laravel-project
sudo chmod -R 775 /var/www/html/your-laravel-project/storage
sudo chmod -R 775 /var/www/html/your-laravel-project/bootstrap/cache
注意:將
nginx:nginx
替換為您的 Web 服務器用戶和組。如果使用 Apache,則可能是apache:apache
。
訪問您的域名或服務器 IP 地址,應該會看到 Laravel 的歡迎頁面。如果遇到問題,請檢查以下內容:
Web 服務器錯誤日志:
/var/log/nginx/error.log
sudo tail -f /var/log/nginx/error.log
Laravel 日志:
Laravel 的日志文件位于 storage/logs/laravel.log
tail -f /var/www/html/your-laravel-project/storage/logs/laravel.log
數據庫連接:
確保數據庫服務器正在運行,并且 Laravel 的 .env
文件中的數據庫配置正確無誤。
使用 HTTPS:為了安全起見,建議為您的網站配置 SSL/TLS 證書??梢允褂?Let’s Encrypt 提供的免費證書。
防火墻設置:確保防火墻允許 HTTP(端口 80)和 HTTPS(端口 443)流量。
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
優化 PHP 配置:根據服務器的內存和性能,調整 php.ini
中的設置,例如 memory_limit
、upload_max_filesize
等。
通過以上步驟,您應該能夠在 CentOS 上成功配置 Laravel 項目并連接到數據庫。如果在過程中遇到任何問題,請參考 Laravel 和 CentOS 的官方文檔,或在相關社區尋求幫助。