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

 

多php版本支持 借助install.sh

./install.sh mphp
选择另一个php版本进行安装

安装完成之后, 可以使用/etc/init.d/php-fpm8.2 {start|stop|force-quit|restart|reload|status|configtest}

 

 

[使用] 

复制代码
# 常用命令

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;
  }

 

 其他推荐:还有个OneinStack开源工具可以快速搭建PHP或Java运行环境,也可以尝试使用

 

其他扩展安装:

- swoole: https://www.cnblogs.com/xingxia/p/php_swoole.html

 

常见问题:

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

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

解决办法:在 /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/"
 
复制代码

 

posted @   X-Wolf  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
历史上的今天:
2022-10-09 Linux之新增硬盘,分区,挂载
 
点击右上角即可分享
微信分享提示
杭州
18:04发布
杭州
18:04发布
4°
西南风
2级
空气质量
相对湿度
87%
今天
多云 / 小雨
4°/13°
周三
多云 / 晴
8°/19°
周四
多云
11°/24°