LNMP一键安装

简介: LNMP一键安装

PHP环境快捷搭建工具: https://lnmp.org/

[安装]

wget https://soft.lnmp.com/lnmp/lnmp2.1.tar.gz -O lnmp2.1.tar.gz && tar zxf lnmp2.1.tar.gz && cd lnmp2.1 && ./install.sh lnmp
自动进行安装,根据计算机的性能与带宽情况,预计再半个小时左右即可全部完成nginx+php+mysql

相关服务安装提供了./addons.sh, 例如安装redis服务

复制代码
./addons.sh install redis

安装完成之后,使用

/etc/init.d/redis start/restart/status
复制代码

[使用]

复制代码

常用命令

lnmp start
lnmp restart

php-fpm

lnmp php-fpm restart

nginx

lnmp nginx reload
lnmp nginx restart
复制代码

  1. 新增域名解析

复制代码
lnmp vhost add

注意: 过程中一般不开启php-pathinfo

查看已经添加的域名解析列表

lnmp vhost list
复制代码
一般使用这种方式添加的,在项目的根目录下会存在一个.user.ini文件,为了限制访问路径,但是无法进行修改, 如果想要修改的话,需要修改文件属性

执行命令:

chattr -i .user.ini

之后就可以对这个文件进行删除或者修改操作了(一般会直接删除)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
chattr
作用
用于改变 Linux 文件系统的文件属性,它允许用户设置文件的特殊属性,包括只读、不可修改、压缩等。
使用 chattr 命令时需要小心,特别是对系统文件的操作,以免造成系统不稳定或数据丢失。
描述
用法:chattr [-RV] [-+=aAcDisSu] files...
操作符 - 会将选择的属从文件的现有属性中移除。
操作符 + 会将选择的属性添加到文件的现有属性中。
操作符 = 会将文件的现有属性替换为选择的属性。
参数说明:
-R:以递归方式改变目录下所有文件的属性。
-V:输出更多的执行信息。
文件属性说明(只列出了常用的):
a:当需要对文件进行写入时,只能以 append mode 打开文件。
A:不更改文件的 atime (即文件被读取或者执行的时间)。
c:将文件压缩后存放。
D:以同步的方式将目录更改写入磁盘,保证目录被及时更新。
i:文件无法修改,无法删除,无法重命名,无法创建软连接,无法以写模式打开。
s:当文件被删除时,所使用的磁盘空间将被清0,保证文件被保密删除,无法恢复。
S:以同步的方式将文件更改写入磁盘,保证文件被及时更新。
u:允许用户请求取消删除文件,可防止文件的意外删除。   

2.php相关配置

配置文件路径:/user/local/php/etc/php.ini

开启错误
display_errors = On

[扩展安装]

1.yaf

复制代码
wget https://pecl.php.net/get/yaf-3.0.9.tgz
tar -zxvf yaf-3.0.9.tgz
cd yaf-3.0.9

phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
复制代码
添加配置

复制代码
vim /usr/local/php/etc/php.ini

添加yaf扩展, 在大概950行

extension=yaf

最后一行 -> 开启yaf的命名空间

[yaf]
yaf.use_namespace=On
复制代码
yaf框架使用参考文章:https://blog.csdn.net/xululu123/article/details/87354219

后台接口域名配置:

复制代码
server
{
listen 80;

    #listen [::]:80;
    server_name localhost;  # 外部使用本机IP访问
    index index.html index.htm index.php default.html default.htm default.php;
    root  /data/www/api/public;

    include rewrite/yaf.conf;
    #error_page   404   /404.html;

    # Deny access to PHP files in specific directory
    #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

    include enable-php.conf;  # 重点:一定要是这个

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }

    location ~ /.well-known {
        allow all;
    }

    location ~ /\.
    {
        deny all;
    }

    access_log  /home/wwwlogs/api.log;
}

复制代码
其中yaf.conf配置:

if (!-e $request_filename) {
rewrite ^/(.*) /index.php?$1 last;
}

配合vue前端代理配置

复制代码
server
{
listen 8000;

    #listen [::]:80;
    server_name localhost; 外部IP访问
    index index.html index.htm index.php default.html default.htm default.php;
    root  /data/www/web/dist;

    include rewrite/other.conf;
    #error_page   404   /404.html;

    # Deny access to PHP files in specific directory
    #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

    #include enable-php.conf;
    location /api/ {
        #使用nginx代理,直接解决了域名共享和跨域的问题
        proxy_pass http://127.0.0.1:8001/;
    }



    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }

    location ~ /.well-known {
        allow all;
    }

    location ~ /\.
    {
        deny all;
    }

    access_log  /home/wwwlogs/web.log;
}

复制代码
静态资源支持:

location ~ ^/upload {
root /data/resources;
access_log off;
}

常见问题:

1.yaf项目访问的时候,出现错误: s not within the allowed path

问题原因:open_basedir是默认的动态访问目录,/home/wwwroot/项目目录名/public,从而php无法读取其他目录。

[kod.engineseawaterpumps.com)
[kod.forexautomatizado.com)
[kod.trinity-artworks.com)
[kod.aai69.com)
[kod.xmitmedia.com)
[kod.topoit.com)
[kod.4000086056.com)
解决办法:在 /usr/local/nginx/conf/ 目录在找到 fastcgi.conf,关于 open_basedir 默认的配置应该是

解决:

复制代码
修改nginx目录下的/usr/local/nginx/conf/fastcgi.conf

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"

将最后这一行注释掉即可或者指定你的项目所在目录

fastcgi_param PHP_ADMIN_VALUE "open_basedir=/data/www/:/tmp/:/proc/"

复制代码

相关文章
|
4月前
|
关系型数据库 Linux 应用服务中间件
linux服务器下LNMP安装与配置方法
通过遵循上述步骤,你已经在Linux服务器上成功配置了LNMP环境。这只是初步设置,根据你的实际需求,可能需要进一步的调整与优化。记得经常检查每个组件的默认配置文件,并根据需要进行调整以优化性能和安全性。
100 0
|
7月前
|
关系型数据库 应用服务中间件 Linux
linux 下安装 LNMP 最简单的安装方法
linux 下安装 LNMP 最简单的安装方法
87 0
|
运维 Linux 数据安全/隐私保护
宝塔手把手教学-Linux面板安装LNMP & worldpress个人博客
宝塔手把手教学-Linux面板安装LNMP & worldpress个人博客
184 1
|
缓存 Linux PHP
17.17 LNMP安装php扩展模块
我们已经知道 LNMP 一键安装包默认只安装了最基本的 Nginx+Mysql+PHP 环境,并没有安装扩展功能模块,如果需要安装扩展模块该怎么办?
256 0
17.17 LNMP安装php扩展模块
|
关系型数据库 MySQL Linux
一台新的Linux服务器什么都没安装,可以直接使用docker搭建LNMP环境吗?底层原理是什么?
一台新的Linux服务器什么都没安装,可以直接使用docker搭建LNMP环境吗?底层原理是什么?
220 0
|
tengine NoSQL 关系型数据库
ezhttp一键安装配置lnmp lamp lnamp(nginx apache php mysql)环境
ezhttp一键安装配置lnmp lamp lnamp(nginx apache php mysql)环境
135 0
ezhttp一键安装配置lnmp lamp lnamp(nginx apache php mysql)环境
|
关系型数据库 MySQL 应用服务中间件
LNMP架构——源码编译安装
1、编译安装nginx服务 2、编译安装mysql服务 3、编译安装php解析环境
LNMP架构——源码编译安装
|
关系型数据库 Shell C++
debian12/ubuntu24/22/20 shell 脚本自动编译web安装网站环境 nginx1.26.0 php7/8 mariadb1011
1.ubuntu 搭建 nginx199 php-fpm7/8 mariadb10.11 c++ cgi-bin 2.mysql 重置 root 密码,创建 或删除 mysql 子库和子用户 3. ubuntu 搭建 c++ cgi-bin 4.自动生成 wwwconf 子站点 5. 建议选择 ubuntu20.04 版本
490 0
|
Ubuntu 关系型数据库 MySQL
17.16 LNMP一键安装
本节介绍如何利用下载好的 LNMP 一键安装包在Linux系统上安装 LNMP 环境。
307 0
17.16 LNMP一键安装
|
关系型数据库 MySQL Linux
17.15 LNMP安装的前期准备
下面,我们就使用一键安装包来搭建 LNMP 环境。不过在安装之前还是要做一些准备工作的。
186 0
17.15 LNMP安装的前期准备