LNMP搭建

本文详细介绍了如何在Linux上搭建LNMP环境,包括Linux、Nginx、MySQL和PHP的部署。重点讲述了在Nginx中配置PHP的步骤,以及在安装过程中遇到的错误及其解决方法,如libcurl和pthread相关问题的解决。最后提到了Nginx配置文件的两种方式,以及如何为网站目录设置权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LNMP部署

L=linux N=nginx m=mysql p=php
和lamp一样,只不过是apache换成了nginx唯一的区别就是,nginx是不绑定php的,所以在部署php的时候会比较麻烦。而apache天生就是和php联动的,所以很容易就部署成功。

mysql的部署

mysql本身的部署并没有什么区别,直接解压安装包之后进行编译然后二进制转换。
1)创建用户组和用户名
groupadd mysql 创建组名
useradd -M -s /sbin/nolgin mysql -g mysql 创建绑定用户名

2)进入安装包进行编译(需要进行cmake的编译)
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

3)make && make install二进制转换
4)cp support-files/my-default.cnf /etc/my.cnf 复制文件
5)/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ 初始化数据库
6)echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile 更改环境变量
7)刷新配置文件 source /etc/profile
8)cp support-files/mysql.server /etc/init.d/mysqld 复制文件从而便捷操作
9)chkconfig --add mysqld
service mysqld start 启动mysql

php部署

这是重中之重,由于php不能默认兼容nginx,所以要手动更改很多文件。首先需要下载依赖包:yum install -y apr apr-devel cyrus-sasl cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre zlib-devel
yum install -y libcurl-devel

1)进入php安装包
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm
其实与之前的并无太大区别,只不过取消了与apache的关联(也可以添加),而后进行make && make install进行二进制转换
在这里插入图片描述
——————————————————————————————

错误1:configure: error: Please reinstall the libcurl distribution -
easy.h should be in /include/curl/
解决办法:
yum install -y libcurl-devel
重新编译:make
错误2:/usr/bin/ld: TSRM/.libs/TSRM.o: undefined reference to symbol ‘pthread_sigmask@@GLIBC_2.2.5’/usr/lib64/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] 错误 1
解决办法:
vim Makefile
搜索-lcrypt在其后面加上 -lpthread
错误3:collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] 错误 1
解决办法:
make clean && make
问题到这里就可以编译成功进行安装了!
make install
2)cp php.ini-development /usr/local/php5/php.ini,将范本变成配置文件。
3)编写配置文件php.ini更改short_open_tag = On
4)cd /usr/local/php5/etc更改配置文件名字:mv php-fpm.conf.default php-fpm.conf
在这里插入图片描述

5)找到user关键词来更改所属内容为nginx
在这里插入图片描述

6) ln -s /usr/local/php5/bin/* /usr/local/bin/
ln -s /usr/local/php5/sbin/* /usr/local/sbin/ 将php文档中的bin和sbin软连接内容到 相应目录
7)输入php-fpm直接启动
8)进入nginx的配置文件进行修改

两种方式:

一:后续添加输入两段话句:
location ~ .php$ {
root html;
index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

    location = /{
     rewrite (.*) /index.php;
    }

这样的话,解析的页面就是直接进行动态源的分析,企业中最常用的就是这一种,因为在点击量较大的如今社会,会比较简化网页的跳转流程,从而提升网页跳转的速度。
在这里插入图片描述

二:直接追加index.php,然后再后续追加一段话。
在这里插入图片描述

如果是采用第二种方法,那么一切都是以静态网页源为先,这样的话如果是动态php网页,那么它的解析流程就是现在静态查询有没有php,如果有php的话,在跳转回动态来进行部署,一旦流量增大,那么会造成网页的卡顿。

9)进入网页部署的目录chown nginx:nginx ./*将网页动态文件包更改成nginx所属,否则有一些跳转的动态会没有权限

10)验证
在这里插入图片描述

备注

如果要制作虚拟主机,那么也是用这种格式来制作php网页,如果碰到圖片加载不出来的情况,首先要考虑配置文件是否写错。

alias的用法
alias主要是用来设置命令的别名,主要格式有 alias 你要设置的名字 =命令
这样的话直接输入该名字就可以使用命令

错误:
如果说显示libpng缺失,那么需要下载该软件
yum install -y libpng*

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值