LNMP环境搭建(centOS 7.6 +Nginx 1.17+ Mysql8.0 + PHP7.4)
最近想弄个腾讯云来玩玩linux 毕竟便宜嘛 (99 块一年 是centOS7.6系统的)
实操之前先弄个虚拟机嘛, 也是centOS7.6.
linux 下 建议重大操作之前先建立 快照 防止数据出错 可以回滚系统
安装之前先看看三个必备的包有没有装 一个是wget 一个是gcc 还有一个是make
查看是否已安装wget: rpm 虽然是 Red-Hat Package Manager 红帽子的东西,但是也成了行业的标准 几乎所有linux都配备了rpm 作为底层的包 如 yum 一样
rpm -qa wget
没有的话 就
yum -y install wget -y 的意思是安装过程默认同意, 没有 -y 就需要输入y 去多确认一次
输入 rpm -qa wget 查看是否已经有安装成功了.
同理 rpm -qa gcc
yum -y install gcc gcc-gcc++
npm -qa make
yum -y install gcc automake autoconf libtool make
安装完毕了, 这里新建一个快照1.0版本, 因为下面的 安装有可能会出错 , 做个备份随时回滚.
一 安装 nginx
cd /usr/local/src
一般来说 安装文件在 /usr/local 目录下 下载的资源包放在 /usr/local/src 下
安装nginx依赖包
nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法:
yum -y install pcre pcre-devel
nginx的各种模块中需要使用gzip压缩:
yum -y install zlib zlib-devel
安全套接字层密码库:
yum -y install openssl openssl-devel
wget http://nginx.org/download/nginx-1.17.0.tar.gz
解压
tar -xvzf nginx-1.17.0.tar.gz
进入nginx 文件
cd nginx-1.17.0/
检查环境
./configure --prefix=/usr/local/nginx
make && make install
创建并设置nginx运行账号:
groupadd nginx
useradd -M -g nginx -s /sbin/nologin nginx
cd /usr/local/nginx/conf
vim nginx.conf,按i 进行编辑 ,设置user参数如下:
user nginx nginx 按 esc 输入: wq 保存并退出
设置nginx为系统服务
vim /lib/systemd/system/nginx.service
文件内容:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
设置nginx开机自启动
systemctl enable nginx.service
开启nginx服务:
systemctl start nginx.service
查看nginx是否启动成功:
ps aux | grep nginx
在虚拟机浏览器中访问测试:
http://localhost
ip addr 或者 ifconfig 查看虚拟机的ip地址
外部访问不了虚拟机的情况 防火墙没有放开80端口
关闭防火墙 systemctl stop firewalld.service
或者
查看所有开启的端口
firewall-cmd --list-ports
注:启动防火墙后,默认没有开启任何端口,需要手动开启端口
防火墙开启端口访问
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效
二 . 安装Mysql
卸载已有mysql
查看是否已安装mysql:
rpm -qa mysql
有则卸载:
rpm -e mysql // 普通删除模式
rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
查看是否存在mariadb:
rpm -qa | grep mariadb
存在则卸载:
rpm -e mariadb
find / -name mysql 把出现的目录全部删除
配置mysql8.0安装源
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
安装mysql
yum -y --enablerepo=mysql80-community install mysql-community-server
看到complet(完毕)就是安装完啦, 接下来就是准备启动mysql服务
先把3306 的端口 也放开一下,方便外边的软件链接 firewall-cmd --zone=public --add-port=3306/tcp --permanent 然后重启防火墙 firewall-cmd --reload
启动mysql服务 service mysqld start 显示 Redirecting to /bin/systemctl status mysqld.service 可以看到mysql已经在运行中了
安装完mysql之后,会生成一个临时的密码让root用户登录
grep "A temporary password" /var/log/mysqld.log
登陆mysql mysql -uroot -p xxxxxx
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';
update user set host='%' where user='root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '12345';
三 安装PHP
安装php依赖包
yum -y install libxml2 libxml2-devel sqlite-devel libcurl libcurl-devel libicu-devel
cd /usr/local/src
wget http://cn2.php.net/distributions/php-7.4.4.tar.gz
tar -zxvf php-7.4.4.tar.gz
cd php-7.4.4
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-pdo --with-iconv-dir --enable-gd --with-freetype --with-jpeg --with--webp --with-libxml --enable-xml --enable-session --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-pcntl --enable-ftp --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --enable-maintainer-zts --with-xsl --enable-tokenizer
make && make install
把PHP配置文件拷贝到安装目录下
cp /usr/local/src/php-7.4.4/php.ini-development /usr/local/php/php.ini
另外在PHP安装目录内把两个配置文件拷贝
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
配置php.ini “cgi.fix_pathinfo=0”
启动php-fpm服务:
/usr/local/php/sbin/php-fpm
netstat -tln | grep 9000 查看9000端口是否已经生效
创建并设置php-fpm运行账号
groupadd www-data
useradd -M -g www-data -s /sbin/nologin www-data
vim www.conf
搜索“user”设置运行账号:
user=www-data
group=www-data
设置php-fpm为系统服务:
vim /etc/systemd/system/php-fpm.service
文件内容:
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
PrivateTmp=True
[Install]
WantedBy=multi-user.target
设置php-fpm服务开机自启动:
systemctl enable php-fpm.service
启动php-fpm:
systemctl start php-fpm.service
编辑nginx配置文件/usr/local/nginx/conf/nginx.conf 在location 加入 index.php
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重启nginx