基于Centos7的LNMP环境搭建
- 目录
- 1. 前言
- 2. 虚拟机和Centos7配置
- 3. 检验防火墙状态
- 4. Nginx+PHP+Mysql环境安装
- 4.1安装nginx
- 4.2安装mysql
- 4.3安装PHP
- 5. Nginx+PHP+Mysql环境配置
- 5.1配置Nginx文件
- 5.2 配置Mysql
- 5.3配置PHP
- 5.4 测试与访问
- 6. 安装composer
- 6.1安装composer
- 6.2设置环境变量
- 6.3修改权限,否则执行会出错
- 6.4使用国内镜像
- 7. 安装thinkphp环境
- 7.1通过composer拉取
- 7.2项目迁移遇到的问题
- 7.2.1问题1:缓存写入失败
- 7.2.2问题2:让nginx支持TP5.0伪静态规则配置
- 8. 总结
1.前言
我的阿里云服务器到期了,趁着双十一活动,买了一台腾讯云服务器(腾讯云活动力度大),刚好也想对Centos7系统进行回顾,顺便将博客站点转移过来,通过本次转移,积累一点运维方面的经验,并对linux方面的知识进行回顾运用。
2.虚拟机和Centos7配置
使用的是腾讯云的服务器,配置环境为纯Centos7环境
操作系统:CentOS 7.6 64位
CPU:1核
内存:2GB
公网带宽:1Mbps
3.检验防火墙状态
运行getenforce命令查看SELinux的当前状态。
如果SELinux状态参数是Disabled, 则SELinux为关闭状态。
如果SELinux状态参数是Enforcing,则SELinux为开启状态。
4.Nginx+PHP+Mysql环境安装
4.1安装nginx
安装命令:
yum -y install nginx
查看版本:
nginx -v
4.2安装mysql
运行命令更新YUM源:
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
安装命令:
yum -y install mysql-community-server
查看版本:
mysql -V
4.3安装PHP
屏蔽baseurl:
cd /etc/yum.repos.d
vi ius.repo
找到baseurl这一行,在前面加#
更新yum源:
php高版本的yum源地址,有两部分,其中一部分是epel-release,另外一部分来自webtatic。如果跳过epel-release的话,安装webtatic的时候,会报错,所以要安装两部分。
yum install epel-release -y
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
安装PHP扩展包:
普通安装命令
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel
较全面安装命令
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xm
查看版本:
php -v
5. Nginx+PHP+Mysql环境配置
5.1配置Nginx文件
备份Nginx配置文件
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
在根目录创建网站目录
mkdir yjdata
修改Nginx配置文件,添加Nginx对PHP的支持
vim /etc/nginx/nginx.conf
按a进入编辑模式,在server大括号内,添加下列配置信息
location / {
index index.php index.html index.htm;
}
location ~ .php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
具体如下图所示
启动Nginx服务
systemctl start nginx
设置Nginx服务开机自启动
systemctl enable nginx
5.2 配置Mysql
启动MySQL服务
systemctl start mysqld
设置MySQL服务开机自启动
systemctl enable mysqld
查看/var/log/mysqld.log文件,获取并记录root用户的初始密码
grep 'temporary password' /var/log/mysqld.log
5.3配置PHP
新建phpinfo.php文件,用于展示phpinfo信息
vim /yjdata/phpinfo.php
添加以下信息:
<h1>Hello PHP, this is mtdgblog</h1>
<?php
echo phpinfo();
?>
启动PHP-FPM
systemctl start php-fpm
设置PHP-FPM开机自启动
systemctl enable php-fpm
5.4 测试与访问
打开任意浏览器,在地址栏输入http://域名/phpinfo.php。
6.安装composer
6.1安装composer
curl -sS https://getcomposer.org/installer | php
6.2设置环境变量
mv composer.phar /usr/local/bin/composer
6.3修改权限,否则执行会出错
chmod -R 777 /usr/local/bin/composer
6.4使用国内镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com
7.安装thinkphp环境
7.1通过composer拉取
创建.json文件
vim /yjdata/composer.json
编辑内容
"require": {
"php": ">=5.6.0",
"topthink/framework": "5.1.*",
"topthink/think-captcha": "^2.0"
}
通过composer install命令拉取
7.2项目迁移遇到的问题
7.2.1问题1:缓存写入失败
项目在本地环境正常运行,在linux服务器上提示thinkphp缓存写入失败,是因为没有给文件添加权限,你可以敲入以下命令:
chmod -R 777 yjdata
其中yjdata是我的项目文件夹名称,你也可以在项目文件内敲入:
chmod -R 777 Runtime/
7.2.2问题2:让nginx支持TP5.0伪静态规则配置
[[email protected]_0_17_centos ~]# vim /etc/nginx/nginx.conf
添加如下伪静态规则代码:
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
8.总结
本次LNMP安装和配置整体来说是比较成功的,通过这次安装,我成功独自搭建了LNMP环境,并对一些配置项有深刻的认识。