CentOS7部署Laravel10 Apache启动失败及权限问题求助
问题排查与解决步骤
1. 修复.htaccess语法问题(已处理,补充规范生成方式)
你遇到的第一个错误是.htaccess首行存在未闭合的<<<<<<<标记,这属于Git合并冲突残留内容。既然已删除该文件,建议重新生成Laravel标准.htaccess:
在项目根目录执行:
cp public/.htaccess.example public/.htaccess
若没有.htaccess.example文件,直接创建以下内容的.htaccess文件:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
2. 解决Apache读取/home/centos/vhosts权限拒绝问题
即使目录权限设为755,仍可能因以下原因报错:
- 检查父目录权限:确保
/home/centos目录权限为755,否则Apache运行用户(通常为apache)无法进入该目录:chmod 755 /home/centos - 修复SELinux上下文:临时关闭SELinux(
setenforce 0)仅生效至重启,建议为目录配置正确的httpd上下文:semanage fcontext -a -t httpd_sys_content_t "/home/centos/vhosts(/.*)?" restorecon -Rv /home/centos/vhosts - 调整证书文件权限:证书文件设为644,密钥文件设为600(避免其他用户读取):
chmod 644 /home/centos/vhosts/*.csr /home/centos/vhosts/sslcert/CER\ -\ CRT\ Files/*.pem chmod 600 /home/centos/vhosts/*.key
3. 修正虚拟主机配置中的错误
你的配置存在两处关键问题:
3.1 80端口VirtualHost的Directory路径不匹配
第一个<VirtualHost *:80>块中,DocumentRoot指向/home/centos/www/mysite/public,但<Directory>路径写为/home/centos/www/casacoding/public,需修改为:
<Directory "/home/centos/www/mysite/public"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
3.2 SSL证书文件类型错误
SSLCertificateFile需指向颁发的证书文件(.crt/.pem),而非CSR签名请求文件(.csr)。替换为实际证书文件路径:
SSLCertificateFile "/home/centos/vhosts/mysite-com.crt" # 替换为你获取的正式证书路径
4. 验证配置并重启Apache
完成修改后先验证配置合法性:
httpd -t
若输出Syntax OK,再重启服务:
systemctl restart httpd
内容的提问来源于stack exchange,提问作者CasaCoding
相关产品推荐
相关产品推荐

