在 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 的官方文档,或在相关社区寻求帮助。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>