在Linux上配置Laravel环境需要以下几个步骤:
Laravel需要PHP 7.3或更高版本。首先,确保已经安装了PHP。可以使用以下命令安装PHP及其扩展:
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作为包管理器。可以使用以下命令安装Composer:
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环境的过程。如果遇到问题,请检查错误日志以获取更多信息。