在CentOS系统中部署Laravel项目需要经过以下几个步骤:
首先,确保你的CentOS系统已经安装了以下软件:
你可以使用以下命令来安装这些软件:
sudo yum install epel-release
sudo yum install php php-mysqlnd php-pdo php-mbstring php-xml php-pear php-bcmath php-gd php-mcrypt php-zip
sudo yum install nginx
sudo yum install mariadb-server mariadb
如果你的Laravel项目需要使用Node.js进行前端构建,你需要安装Node.js和NPM:
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum install -y nodejs
启动并启用MySQL或PostgreSQL服务:
sudo systemctl start mariadb
sudo systemctl enable mariadb
创建一个新的数据库和用户,并授权访问:
CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
编辑/etc/php.ini
文件,根据Laravel的要求调整以下设置:
memory_limit = 128M
upload_max_filesize = 10M
post_max_size = 10M
max_execution_time = 180
date.timezone = UTC
将你的Laravel项目上传到服务器,可以使用SCP、SFTP或其他文件传输方法。然后,在项目根目录下运行以下命令来安装依赖:
composer install
如果需要使用Node.js构建前端资源,请运行:
npm install
npm run production
配置Nginx或Apache以指向Laravel项目的public
目录。这是一个Nginx配置示例:
server {
listen 80;
server_name your_domain.com;
root /path/to/your/laravel_project/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-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
确保Laravel项目的storage
和bootstrap/cache
目录具有可写权限:
sudo chown -R nginx:nginx /path/to/your/laravel_project
sudo chmod -R 755 /path/to/your/laravel_project
sudo chmod -R 775 /path/to/your/laravel_project/storage
sudo chmod -R 775 /path/to/your/laravel_project/bootstrap/cache
最后,重启Nginx或Apache以应用更改:
sudo systemctl restart nginx
现在,你的Laravel项目应该已经在CentOS上成功部署并可以访问了。