如何在CentOS 8上安装Laravel PHP框架
Laravel是一个开源的、知名的、现代的基于php的web框架。
在CentOS 8中安装LNMP技术栈
LNMP技术栈包括 Linux, Nginx, MariaDB / MySQL, 和 PHP
安装LNMP技术栈
# dnf update # dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd
启动 PHP-PFM, Nginx , MariaDB服务
### 启动服务 # systemctl start php-fpm nginx mariadb ### 设置开机自启动 # systemctl enable php-fpm nginx mariadb ### 查看服务状态 # systemctl status php-fpm nginx mariadb
进行数据库安全设置
安装完后,首次使用数据库,需要进行安全设置。
# mysql_secure_installation
执行后,会提示一系列问题:
Enter current password for root (enter for none): 回车
输入root的当前密码,因为首次安装,尚未设置,所以直接回车。
Set a root password? [Y/n] y
是否设置密码
Remove anonymous users? [Y/n] y
删除匿名用户?
Disallow root login remotely? [Y/n] y
禁止root远程登录?
Remove test database and access to it? [Y/n] y
删除test数据库,并禁止访问?
Reload privilege tables now? [Y/n] y
是否重新加载权限表
为web服务配置防火墙
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --zone=public --permanent --add-service=https # firewall-cmd --reload
测试
浏览器打开 http://服务器ip地址
可以看到nginx欢迎页面
设置PHP-FPM和Nginx
PHP-FPM将处理来自Nginx的请求。
在 /etc/php-fpm.d/www.conf中修改监听地址。默认是监听在一个Unix套接字上。这个套接字(文件)是由Nginx 写入的
同时还需要设置正确的权限:
listen = /run/php-fpm/www.sock listen.owner = nginx listen.group = nginx listen.mode = 066
为了防止恶意用户使用其他扩展来执行PHP代码, 取消下面参数的注释并将其值设置为0。
; cgi.fix_pathinfo=1 cgi.fix_pathinfo=0
在 /etc/php-fpm.d/www.conf文件中,取消下列参数的注释。
security.limit_extensions = .php .php3 .php4 .php5 .php7
设置PHP应用的系统时区
修改文件 /etc/php.ini
date.timezone = Asia/Chongqing
安装Composer和Laravel PHP框架
# curl -sS https://getcomposer.org/installer | php # mv composer.phar /usr/local/bin/composer # chmod +x /usr/local/bin/composer
安装Laravel文件和依赖项
Laravel文件将保存到 /var/www/html/mysite.com
# cd /var/www/html/ # composer create-project --prefer-dist laravel/laravel mysite.com
修改Laravel文件和目录的权限
# chown -R :nginx /var/www/html/mysite.com/storage/ # chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/ # chmod -R 0777 /var/www/html/mysite.com/storage/ # chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/
如果系统启用了SELinux ,还需要执行下面的命令
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?' # restorecon -Rv '/var/www/html/mysite.com'
配置Nginx服务器
可以在 /etc/nginx/conf.d/目录下为 Laravel站点创建一个新配置文件。
一个server块表示一个主机。
/etc/nginx/conf.d/mysite.com.conf:
server { listen 80; server_name mysite.com; root /var/www/html/mysite.com/public; index index.php; charset utf-8; gzip on; gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php { include fastcgi.conf; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php-fpm/www.sock; } location ~ /\.ht { deny all; } }
检查nginx配置语法,没有问题后启动nginx服务
# nginx -t # systemctl restart php-fpm # systemctl restart Nginx
测试
本地做一个解析 :修改文件 C:\Windows\System32\drivers\etc\hosts
127.0.0.1 localhost 服务器ip地址: mysite.com
使用浏览器打开Laravel网站 http://mysite.com
。