如何在CentOS 8上安装Laravel PHP框架

时间:2019-04-29 03:17:12  来源:igfitidea点击:

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