在Linux上配置Laravel環境需要以下幾個步驟:
Laravel需要PHP 7.3或更高版本。首先,確保已經安裝了PHP??梢允褂靡韵旅畎惭bPHP及其擴展:
sudo apt-get update
sudo apt-get install php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
Laravel使用Composer作為包管理器??梢允褂靡韵旅畎惭bComposer:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Laravel可以通過Nginx或Apache服務器運行。這里以Nginx為例:
sudo apt-get install nginx
創建一個新的Nginx配置文件:
sudo nano /etc/nginx/sites-available/laravel
將以下內容粘貼到配置文件中,替換your_project_path
為你的Laravel項目路徑:
server {
listen 80;
server_name your_domain.com;
root /path/to/your_project_path/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
啟用配置文件:
sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled
重啟Nginx服務:
sudo systemctl restart nginx
使用Composer安裝Laravel:
cd /path/to/your_project_path
composer create-project --prefer-dist laravel/laravel your_project_name
設置Laravel項目的存儲和緩存目錄權限:
sudo chown -R www-data:www-data /path/to/your_project_path/storage
sudo chown -R www-data:www-data /path/to/your_project_path/bootstrap/cache
復制.env.example
文件并重命名為.env
:
cd /path/to/your_project_path
cp .env.example .env
使用文本編輯器打開.env
文件,設置數據庫連接信息:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_user
DB_PASSWORD=your_database_password
生成應用程序密鑰:
php artisan key:generate
使用以下命令啟動Laravel內置的開發服務器:
php artisan serve
現在,可以在瀏覽器中訪問http://your_domain.com
來查看Laravel項目。
以上步驟完成了在Linux上配置Laravel環境的過程。如果遇到問題,請檢查錯誤日志以獲取更多信息。