LNMP环境搭建 Centos7+Nginx 1.6.2+Mysql 8 +PHP 7.3.8 新手上路 超详细(2019年8月上新)
前言:
本文章适合新手使用
如发现问题可以跟我一起交流
QQ:346886407
邮箱 13883586973@163.com
不喜勿喷 哈哈
希望大家可以一起进步
基础语法
rpm -qa * #检查是否安装某个软件 yum -y install * #yum安装软件 安装的软件必须在yum源里面否则无法安装 -y全部确认 tar -zxvf *.tar.gz #解压gz包 z:解压*.gz文件 x:从压缩的文件中提取文件 v:显示执行过程 f:选择文件 tar参考 https://www.cnblogs.com/ftl1012/p/9255795.html groupadd -r * #命令用于将新组加入系统-r:加入组ID号,低于499系统账号。 rpm -Uvh * #更新升级yum包 yum repolist all | grep mysql #查看可用的mysql版本以及禁用/启用情况 Vi /etc/yum.repos.d/mysql-community.repo #把里面的要用到的enabled改为1就可以了,其他的版本改为0 修改版本 ifconfig #查看内网ip curl ifconfig.me #查看公网ip
总体步骤(Nginx 1.6.2+Mysql 8 +PHP 7.3.8)
1.安装Nginx(源码安装)
1.1安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
1.2 安装依赖
方法一(yum安装)
yum -y install pcre-devel ##nginx的rewrite伪静态匹配规则用到正则,pcre就用来干这个
方法二(源码安装)
[root@renchao /]# cd /usr/local/src/ [root@renchao src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz [root@renchao src]# tar -zxvf pcre-8.35.tar.gz [root@renchao src]# cd pcre-8.35 [root@renchao pcre-8.35]# ./configure [root@renchao pcre-8.35]# make && make install [root@renchao pcre-8.35]# pcre-config --version 8.35 ##能看到这个证明安装成功
1.3下载及安装Nginx
[root@renchao src]# cd /usr/local/src/ [root@renchao src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz [root@renchao src]# tar -zxvf nginx-1.6.2.tar.gz [root@renchao src]# cd nginx-1.6.2 [root@renchao src]# ./configure && make && make install [root@renchao src]# useradd -s /sbin/nologin -M nginx ##创建Nginx用户
1.4修改配置文件
vim /usr/local/nginx/conf/nginx.conf user nginx; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; client_max_body_size 8M; client_body_buffer_size 128k; server { listen 80; server_name localhost; gzip on; gzip_min_length 1k; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png font/ttf font/otf image/svg+xml; gzip_vary on; gzip_disable "MSIE [1-6]\."; location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ { access_log off; expires 1h; } location ~* ^.+\.(css|js|txt|xml|swf|wav)$ { access_log off; expires 1h; } location ~* ^.+\.(html|htm)$ { expires 1h; } location ~* ^.+\.(eot|ttf|otf|woff|svg)$ { access_log off; expires max; } location / { add_header 'Access-Control-Allow-Origin' '*'; autoindex on; autoindex_localtime on; root html; index index.html index.htm; if (!-f $request_filename) { rewrite /(.*)$ /index.php/$1; } if (!-d $request_filename) { rewrite /(.*)$ /index.php/$1; } } location ~ \.php(.*)$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param PATH_INFO $1; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name; fastcgi_param PHP_VALUE "open_basedir=$document_root"; include fastcgi_params; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
1.5测试Nginx
vim /usr/local/nginx/html/index.html Hello!!人潮
通过ip地址访问(在启动Nginx之后)
1.6Nginx操作命令
/usr/local/nginx/sbin/ 4000 nginx ##启动Nginx /usr/local/nginx/sbin/nginx -s stop ##停止 /usr/local/nginx/sbin/nginx -s reload ##重启
1.7添加环境变量
echo 'export PATH=$PATH:/usr/local/nginx/sbin/' >> /etc/profile . /etc/profile
1.8加入系统应用
vim /etc/init.d/nginx #!/bin/bash function start() { /usr/local/nginx/sbin/nginx } function stop() { /usr/local/nginx/sbin/nginx -s stop } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage : start | stop | restart" ;; esac
1.9授权
chmod +x /etc/init.d/nginx ##给予执行权限 systemctl daemon-reload ##重新加载服务(我的理解)
最后 开启Nginx,访问ip就就可以看到(若是虚拟机直接ifconfig可以看到ip,云服务器 curl ifconfig.me 可以看到IP地址)
2.安装mysql(yum安装)
2.1更新yum库
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
2.1.1查看可用的mysql版本以及禁用/启用情况
[root@renchao /]# yum repolist all | grep mysql mysql-connectors-community/x86_64 MySQL Connectors Community enabled: 118 mysql-connectors-community-source MySQL Connectors Community - S disabled mysql-tools-community/x86_64 MySQL Tools Community enabled: 95 mysql-tools-community-source MySQL Tools Community - Source disable mysql-tools-preview/x86_64 MySQL Tools Preview disabled mysql-tools-preview-source MySQL Tools Preview - Source disabled mysql55-community/x86_64 MySQL 5.5 Community Server disabled mysql55-community-source MySQL 5.5 Community Server - S disabled mysql56-community/x86_64 MySQL 5.6 Community Server disabled mysql56-community-source MySQL 5.6 Community Server - S disabled mysql57-community/x86_64 MySQL 5.7 Community Server disabled mysql57-community-source MySQL 5.7 Community Server - S disabled mysql80-community/x86_64 MySQL 8.0 Community Server enabled: 129 mysql80-community-source MySQL 8.0 Community Server - S disabled
2.1.2开启你要安装的版本
修改源文件,禁用5.7,启用8.0
vim /etc/yum.repos.d/mysql-community.repo**
把里面的8.0 enabled改为1就可以了,其他的版本改为0
2.1.3修改完之后查看可用版本
yum repolist enabled | grep mysql (显示8.0即为成功)
2.2yum安装mysql
yum install -y mysql-community-server
2.3mysql命令
systemctl start mysqld ##启动mysql ###开机启动设置(下面两部) systemctl enable mysqld systemctl daemon-reload grep 'temporary password' /var/log/mysqld.log ##查看mysql初始随机密码 mysql -uroot -p #登录mysql,复制密码输入
2.4修改密码(mysql里面)
##改变mysql密码设置 mysql> set global validate_password.policy=0; #修改密码复杂度,默认为1,较为复杂 mysql> set global validate_password.length=1; ##修改root密码 mysql> ALTER USER 'root'@'localhost'' IDENTIFIED BY 'password';
2.5添加用户以及授权
mysql> CREATE USER `mysql`@`%` IDENTIFIED BY 'password';##添加用户 mysql> GRANT ALL ON *.* TO `mysql`@`%` WITH GRANT OPTION; ##用户授权 mysql> flush privileges; ##刷新权限 mysql> SET GLOBAL innodb_fast_shutdown = 1; ##允许远程连接 mysql> show databases; ##测试
3.安装php
3.1下载php
[root@renchao /]# cd /usr/local/src [root@renchao src]# wget https://www.php.net/distributions/php-7.3.8.tar.gz [root@renchao src]# tar -zxvf php-7.3.8.tar.gz
3.2编译
[root@renchao src]# cd php-7.3.8 [root@renchao php-7.3.8]# ./configure \ --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --enable-mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-iconv-dir \ --with-freetype-dir=/usr/local/freetype \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --enable-xml \ --disable-rpath \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --enable-mbregex \ --enable-mbstring \ --enable-intl \ --enable-pcntl \ --enable-ftp \ --with-gd \ --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
3.2.1 可能会出现的问题
error: Please reinstall the libzip distribution error: off_t undefined; check your library configuration
3.2.2 问题一解决方法(参考:https://blog.csdn.net/qq_39034363/article/details/90547741)
yum -y remove libzip ##删除之前安装的libzip ##从新安装 [root@renchao src]# wget https://libzip.org/download/libzip-1.5.1.tar.gz [root@renchao src]# tar -zxvf libzip-1.5.1.tar.gz [root@renchao src]# cd libzip-1.5.1 [root@renchao libzip-1.5.1]# mkdir build [root@renchao libzip-1.5.1]# cd build [root@renchao build]# cmake .. ##可能你没有安装cmake 或者yum安装了 提示版本低 解决方法见下 [root@renchao build]# make && make install
3.2.2.1 cmake的解决方法
[root@renchao src]# wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz [root@renchao src]# tar -xvf cmake-3.9.2.tar.gz [root@renchao src]# cd cmake-3.9.2 [root@renchao cmake-3.9.2]# ./configure [root@renchao cmake-3.9.2]# make && make install [root@renchao cmake-3.9.2]# hash -r [root@renchao cmake-3.9.2]# cmake --version
3.2.3问题二解决方法(参考:https://www.jianshu.com/p/f73cc37b1053)
vim /etc/ld.so.conf #加入内容 /usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64 ldconfig -v #生效
3.2.4解决了问题之后重新编译 (见3.2)
3.3安装
[root@renchao php-7.3.8]# make && make install
3.4配置
3.4.1 添加php-fpm到系统启动目录
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm systemctl daemon-reload
3.1.2创建配置文件
vim /usr/local/php/etc/php-fpm.conf [global] pid = /usr/local/php/var/run/php-fpm.pid error_log = /usr/local/php/var/log/php-fpm.log log_level = notice [nginx] listen = 127.0.0.1:9000 listen.backlog = -1 listen.allowed_clients = 127.0.0.1 listen.owner = nginx listen.group = nginx listen.mode = 0666 user = nginx group = nginx pm = dynamic pm.max_children = 20 pm.start_servers = 10 pm.min_spare_servers = 10 pm.max_spare_servers = 20 request_terminate_timeout = 100 request_slowlog_timeout = 0 slowlog = var/log/slow.log
3.1.3操作命令
##启动: systemctl start php-fpm ##停止: systemctl stop php-fpm ##重启: systemctl restart php-fpm ##开机启动: chkconfig php-fpm on ##添加环境变量 echo 'export PATH=$PATH:/usr/local/php/bin/' >> /etc/profile . /etc/profile
相关扩展
groupadd扩展
1.作用
groupadd命令用于将新组加入系统。
2.格式
groupadd -g gid] -r groupname
3.主要参数
-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:加入组ID号,低于499系统账号。
-f:加入已经有的组时,发展程序退出。
4.应用实例
建立一个新组,并设置组ID加入系统:
#groupadd -g 123 www
此时在/etc/passwd文件中产生一个组ID(GID)是123的项目。
useradd扩展
参考:https://blog.csdn.net/davil_dev/article/details/6942128
参考(如有侵权请联系删除)
总体参考 https://blog.51cto.com/12173069/2177926
Nginx安装参考 https://www.runoob.com/linux/nginx-install-setup.html
mysql安装参考 https://blog.csdn.net/qq_43317529/article/details/83039252
- 点赞
- 收藏
- 分享
- 文章举报
- 服务器 CentOS上yum安装Nginx服务
- Apache与Nginx虚拟主机设置(多域名和多端口的区别)
- Nginx与PHP的交互
- 搭建nginx+mysql+loganalyzer+rsyslog日志服务器
- nginx解析PHP程序报错的解决方案
- Centos6.5 通过yum安装nginx及配置
- 反向-代理 nginx for Mac 的配置以及使用
- nginx1.16编译安装config参数
- 阿里云 ubuntu nginx 发布 rails 项目
- linux下通过nginx部署前后分离的微服务项目
- nginx做域名转发和uri转发
- 【Nginx】最新版nginx安装
- nginx reload 命令报:nginx: [erro 4000 r] invalid PID number
- nginx 学习日志(一)
- Nginx 做负载均衡的几种轮询策略
- nginx,php默认配置填坑
- nginx原理及使用
- 超详细的Nginx vhost配置二级域名教程
- 关于php项目需要运行在nginx环境下如何进行本地共享开发
- linux部署nginx的经验