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

# 之后就可以对这个文件进行删除或者修改操作了(一般会直接删除)
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运行环境,也可以尝试使用

常见问题:

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/"
 

LNMP一键安装的更多相关文章

  1. lnmp一键安装的卸载

    http://blog.csdn.net/lansetiankong12/article/details/48130507  如果是lnmp一键安装的 进入安装包目录 [root@www home]# ...

  2. shell-网上lnmp一键安装讲解

    shell-网上lnmp一键安装讲解 #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/b ...

  3. lnmp 一键安装

    系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin Server/Aliyun/Amazon/Mint Linux发行版 需要5GB以上硬盘剩 ...

  4. lnmp 一键安装配置

    l系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin Server/Aliyun/Amazon/Mint Linux发行版 需要5GB以上硬盘 ...

  5. centos lnmp一键安装

    安装 系统需求: 需要2 GB硬盘剩余空间 128M以上内存,OpenVZ的建议192MB以上(小内存请勿使用64位系统) Linux下区分大小写,输入命令时请注意! 安装步骤: 1.使用putty或 ...

  6. lnmp 一键安装详解

    1.使用putty或类似的SSH工具登陆VPS或服务器: 登陆后运行:screen -S lnmp 如果提示screen: command not found 命令不存在可以执行:yum instal ...

  7. lnmp一键安装的缺点???

    自己尝试几次在新的服务器上安装lnmp环境,每次都是一键安装,然后在/home/wwwroot/default目录下放对应的PHP文件就Ok了,很方便.其实也尝试过用命令行,就是很多命令的那种安装,中 ...

  8. LNMP 一键安装脚本

    这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa(Linux.Nginx/Tengine/OpenResty.MySQL/MariaDB/Percona.PHP), ...

  9. [svc]lnmp一键安装脚本(含有np与mysql分离)

    基于lanny一键安装包:(含lnmp所需软件及配置文件) 安装nginx: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliy ...

  10. lnmp一键安装 nginx

    官网: https://lnmp.org/install.html 1.下载完整版:http://soft.vpser.net/lnmp/lnmp1.5-full.tar.gz文件大小:715MB M ...

随机推荐

  1. 扩展KMP (ex_KMP)

    一些约定: 字符串下标从1开始 s[1,i]表示S的第一个到第i个字符组成的字符串 解决的题型: 给你两个字符串A,B(A.size()=n,B.size()=m),求p数组 p[i]表示最大的len ...

  2. A4纸尺寸

    A4纸尺寸 A4纸尺寸:210×297: A3纸尺寸:297×420: A2纸尺寸:420×594: A1纸尺寸:594×841: A0纸尺寸:841×1189: 备注:长(mm)×宽(mm) 单位: ...

  3. Qt连连看(一)需求分析

    虽然开发经验并不多,但是结合以往的一点实践项目和理论学习,自认为不管是开发什么工程项目,只要遵循软件工程的构建原则,如选择一个合理的架构体系,再掌握一门语言,利用数据结构组织数据,算法实现想法和功能, ...

  4. JAVAEE——maven安装

    一.安装本地Maven 注意:检查JAVA_HOME环境变量, maven本身就是java写的,所以要求必须先安装JDK,检查本机jak环境win+r后输入cmd,然后输入java -version, ...

  5. JAVAEE——MySQL安装

    一.下载MySQL(两种方式) 1.官网下载 官网下载地址:https://www.mysql.com/downloads   2.点击下载(版本:mysql-8.0.28-winx64) 链接:ht ...

  6. MaterialDesignInXamlToolkit 5.0 发布

    5.0.0 发布 这是一个重大版本更新,又许多破坏性变化 升级到5.0.0版本,请参考:https://www.cnblogs.com/sesametech-dotnet/p/18028565 变化 ...

  7. SimpleRAG-v1.0.3:增加文件对话功能

    Kimi上有一个功能,就是增加文件之后对话,比如我有如下一个私有文档: 会议主题:<如何使用C#提升工作效率> 参会人员:张三.李四.王五 时间:2024.9.26 14:00-16:00 ...

  8. Java以封装对象的方式读取CSV文件存储数据库

    依赖 <!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv --> <dependency& ...

  9. 为什么用 AWS CLI?因为我懒得点鼠标!

    在这篇博客中,我们一起深入探索 AWS CLI 的世界,从零开始,逐步构建在云端的家园.将介绍 AWS CLI 的基本功能和使用场景,如何创建 IAM 用户.VPC.子网.安全组.EC2 实例等,甚至 ...

  10. LeetCode 327. Count of Range Sum 区间和的个数

    给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper.区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 ...