关于Nginx的学习
一:使用场景
参考博客https://www.cnblogs.com/xiangzhong/p/11355414.html
其中比较重要的场景是反向代理,以及负载均衡、静态服务器
二:LNMP的安装
我们PHP的架构又Nginx+php以及Nginx+php+Apache,应该用那种,之前公司里面用的是Nginx+Apache,因为Nginx+php会出现502的问题。但是现在这个问题似乎以及解决了。
1、环境
Centos6.6
关闭SELinux和iptables防火墙
使用yum安装Nginx
php为5.6的版本
2、网络yum源
先将系统自带的yum配置文件/etc/yum.repos.d/移除或者删除,然后下载以下两个配置文件。因为/etc/yum.repos.d/是yum的源的配置文件,原理可以参照链接http://c.biancheng.net/view/2931.html。
官方基础:
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo wget http://mirrors.aliyun.com/repo/epel-6.repo
下载完成后,需要使用命令清除掉原有的yum缓存,使用新的配置文件建立缓存,原因:如果之前用的是光盘yum,会把光盘yum统一记录到yum索引文件中,所以要更新。
#清除掉原有缓存列表
#yum clean all
#建立新的缓存列表
#yum makemakemcache
#将所有能更新的软件更新(非必选)
#yum update
3.安装编译工具和依赖软件包
#yum -y install gcc* pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bisonlibxml2-devel libpng-devel
4、4.Nginx、MySQL、PHP三大软件的源码包
下载地址:
Nginx:http://nginx.org/en/download.html
MySQL:https://dev.mysql.com/downloads/mysql/
PHP:http://www.php.net/
版本选用:
#选用软件的稳定版即可
Nginx:1.12.*
#5.5以上版本需要1G以上的内存,否则无法安装
Mysql:5.5.*
#LAMP中我们使用的是php7,此次使用php5
PHP:5.6.*
注意:每次安装LNMP时,软件包的小版本都不一样,官方会对其大版本下的小版本进行覆盖式更新,本文内部分链接会失效,切记按照下载版本进行安装
5、关系系统自带的httpd和MySQL服务
为了防止rpm安装的软件和接下来安装的源码软件包冲突
# service httpd stop
# service mysqld stop
确定rpm包安装的httpd和mysqld不能开机自启动
#chkconfig httpd off
#chkconfig mysqld off
同样的,上述的服务可以用service httpd status进行查看
三:源码软件包安装
1、Nginx
1.1 下载Nginx源码包
进入/lnmp目录(若没有创建)
#cd /lnmp
#wget http://nginx.org/download/nginx-1.12.2.tar.gz
1.2创建用于运行Nginx的用户
该用户,是不可以终端登录的
#useradd -r -s /sbin/nologin nginx
1.3解压缩Nginx并安装
#tar -zxvf nginx-1.12.2.tar.gz
#cd nginx-1.12.2
#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
#make
#make install

使用/usr/local/nginx/sbin/nginx启动nginx
我们此时可以看到nginx的进程
同时可以在浏览器中看到nginx的页面
2、安装MySQL
下载:https://dev.mysql.com/downloads/mysql/
选择:MySQL Community Server 5.5 »
选择:Select Version: 按照自己要求选择
Select Operating System: Source Code
Select OS Version: Generic
Linux格式:mysql-N.N.NN.tar.gz
#cd /lnmp #wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz
#tar -zxvf mysql-5.5.62.tar.gz
2.1创建用于运行Mysql的用户
#useradd -r -s /sbin/nologin mysql
2.2解压缩Mysql并安装
#cd mysql-5.5.62
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1-DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
#make
#make install
#ln -s /usr/local/mysql/bin/* /usr/local/bin
2.3修改安装后的目录权限
#cd /usr/local/mysql #chown -R root . #chown -R mysql data
2.4生成Mysql配置文件
#cp -a /lnmp/mysql-5.5.62/support-files/my-medium.cnf /etc/my.cnf
2.5初始化,生成授权表
#一定要先切换到此目录下,然后再执行下一步。 #cd /usr/local/mysql #./scripts/mysql_install_db --user=mysql 初始化成功标志:两个ok
2.6生成Mysql的启动和自启动管理脚本
#cd /lnmp/mysql-5.5.62/support-files #cp -a mysql.server /etc/init.d/mysqld #chmod +x /etc/init.d/mysqld #chkconfig --add mysqld #chkconfig mysqld on #service mysqld start|stop|restart【这个不行不知道为什么,而下面使用safe方式安装的却可以】
/usr/local/mysql/bin/mysqld_safe --user=mysql &
2.7给mysql的root用户设置密码
#mysqladmin -uroot password 123456
三、安装PHP
3.1下载解压
#cd /lnmp #wget http://tw2.php.net/distributions/php-5.6.38.tar.gz
3.2安装
#cd php-5.6.38
#./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --with-gd --without-pear --enable-fpm #make #make install
报错提示:若遇到libpng.so not found .报错(老版本的PHP会出现此问题)
解决方案:#ln –s /usr/lib64/libpng.so /usr/lib
3.2生成php配置文件
#cp -a /lnmp/php-5.6.38/php.ini-production /usr/local/php/etc/php.ini
复制源码包内的配置文件到安装目录下,并改名即可
3.3创建软连接,使用php相关命令是更方便
ln -s /usr/local/php/bin/* /usr/local/bin/ ln -s /usr/local/php/sbin/* /usr/local/sbin/
四、配置Nginx和PHP建立联系
4.1nginx连接php需要启动php-fpm服务
#cd /usr/local/php/etc/ 生成php-fpm的配置文件,并修改指定参数【这个php-fpm是在安装PHP的时候进行指定的,否则就会不在php/etc/底下生成】 #cp -a php-fpm.conf.default php-fpm.conf
#vim php-fpm.conf
启动时开启的进程数、最少空闲进程数、最多空闲进程数(默认值,未修改)修改Nginx启动管理脚本:将php-fpm的注释取消掉即可
修改指定条目的参数:
pid = run/php-fpm.pid
user = nginx
group = nginx
pm.start_servers = 2
pm.min_spare_servers =1
pm.max_spare_servers=3
4.2 修改Nginx的配置文件,使其识别.php后缀的文件
#vim /usr/local/nginx/conf/nginx.conf 取消下列行的注释,并修改include选项的后缀为fastcgi.conf,并注意每一行结尾的分号和大括号 #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME/scripts$fastcgi_script_name; # include fastcgi_params;修改为fsatcgi.conf #}
进入编辑模式,:61,75/s/#/ /g 这个就可以实现
测试:重启Nginx服务,创建php测试文件,访问并查看是否解析
nginx的网站根目录在/usr/local/nginx/html/目录中。
注意我们修改nginx配置文件,需要重启,一定改要按照这样的步骤:
查看语法问题:/usr/local/nginx/sbin/nginx -t【这个和apache查看语法是一样的】
/user/local/nginx/sbin -s reload
也有人直接kill服务的。
同时要启动php-fpm
/usr/local/php/sbin/php-fpm[前面讲过它是一个进程管理器]
4.3测试php脚本
在/usr/local/nginx/html中新建index.php文件,输出内容,浏览器如图访问
我们到这就搭建完毕了。注意php-fpm是独立于nginx的一个服务,它也有自己的启动项/
当然我们可以把nginx的启动、MySQL、php-fpm、启动都放入启动项中。【前面有nginx、MySQL、php-fpm的启动命令】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】