linux lnmp yum安装,优化

本文详细介绍LNMP(Linux + Nginx + MySQL + PHP)环境的安装配置过程,包括安装Nginx、MySQL、PHP及其相关组件,配置Nginx支持PHP,以及通过调整配置实现服务器性能优化。

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

命令准备

创建目录

mkdir 目录名

chmod 777 目录名 变更权限

加入开机启动项服务

chkconfig --add php-fpm

chkconfig nginx on 

查找文件位置 经常用于查找yum安装后各种配置文件及启动程序所在位置

find|grep php-fpm

服务启动

service nginx
start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest

service nginx  start

service php-fpm start

查看进程

ps -ef | grep java

查看进程

kill -9 进程id

1.安装

添加nginx源

http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm 

wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm

rpm -qa | grep nginx 检查nginx 是否加入源路径


安装 php mysql nginx

yum install mysql mysql-server php php-mysql php-fpm nginx


php组件库 选择安装 如果找不到源地址,请查找小技巧里面的更新第三方源库

yum install php-cli php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy php-common php-devel


2.配置

2.1nginx 配置

配置文件位置 如果找不到相关配件,查找文件位置 命令
/etc/nginx/nginx.conf
/etc/nginx/conf.d/*.conf
 
多个站点放在conf.d目录,在nginx.conf用include语法包含
include /etc/nginx/conf.d/*.conf;


默认default.conf修改

server {
    listen       80;
    server_name  localhost;<span style="color:#ff0000;">#自定义域名配置</span>

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /home/www;<span style="color:#ff0000;">#自定义目录设置</span>
        index  index.html index.htm<span style="color:#ff0000;"> index.php</span>;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #<span style="color:#ff0000;">错误页处理</span>
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /home/www;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        #root           /home/www;
        #fastcgi_pass   127.0.0.1:9000;
	<span style="color:#ff0000;">fastcgi_pass  unix:/tmp/php-cgi.sock;#这种方式听说性能提升比较多</span>
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /home/www$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

类似

其他*.conf 可自定义添加

server
	{
		listen       80;
		server_name wx.vtz.cc;
		index index.html index.htm index.php;
		root  /home/wwwroot/weixin;

		location ~ .*\.(php|php5)?$
			{
				try_files $uri =404;
				fastcgi_pass  unix:/tmp/php-cgi.sock;
				fastcgi_index index.php;
				include fcgi.conf;
			}

		location /status {
			stub_status on;
			access_log   off;
		}

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

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

		access_log  /home/wwwlogs/weixin_access.log  access;
	}

2.2  php-fpm.conf配置  php-cgi.sock

php-fpm.conf  查找php-fpm.conf  修改
[www] 
#设置监听 修改项
#listen = 127.0.0.1:9000
listen = /tmp/php-cgi.sock

nginx.conf phpcgi配置

fastcgi_pass  unix:/tmp/php-cgi.sock;

3.添加服务自启动

nginx 服务
chkconfig --add nginx 
chkconfig nginx on
service nginx start

php-fpm
chkconfig --add php-fpm 
chkconfig php-fpm on
service php-fpm start

mysql
chkconfig --add mysqld 
chkconfig mysqld on
service mysqld start

默认root 密码空

小技能:

1.php开启错误提示

vim /etc/php5/fpm/php.ini

打开错误提示

display_errors = On

因为用到的四fpm与nginx配合,所以还需要修改php-fpm.conf文件

vim /etc/php5/fpm/php-fpm.conf

再最后添加 有可能在此配置文件里面 www.conf

php_flag[display_errors] = on

让后从新读取nginx配置

sudo service nginx reload

2.其他安装参考

  1. 配置CentOS 6.0 第三方yum源(CentOS默认的标准源里没有nginx软件包)
    1 yum install wget
    2 wget http://www.atomicorp.com/installers/atomic
    3 sh ./atomic
    4 yum update
  2. 安装开发包和库文件
    1 yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng
    2 libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel
    3 gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2
    4 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel
  3. 卸载已安装的apache、mysql、php
    1 yum remove httpd
    2 yum remove mysql
    3 yum remove php

  4. 安装nginx
    1 yum install nginx
    2 service nginx start
    3 chkconfig --levels 235 nginx on
  5. 安装mysql
    1 yum install mysql mysql-server mysql-devel
    2 service mysqld start
    3 chkconfig --levels 235 mysqld on
    4 mysqladmin -u root password "密码" <span></span>service mysqld restart
  6. 安装php
    1 yum install php lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap
    2 php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap
    3 php-tidy php-common php-devel php-fpm
    4  
    5 service php-fpm start
    6  
    7 chkconfig --levels 235 php-fpm on
  7. 配置nginx支持php
    1 mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
    2 cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
    3 vi /etc/nginx/nginx.conf
    在文件中加入 
    1 location ~ \.php$ {
    2             root           /usr/share/nginx/html;
    3             fastcgi_pass   127.0.0.1:9000;
    4             fastcgi_index  index.php;
    5             fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
    6             include        fastcgi_params;
    7 }
  8. 重启nginx php-fpm
    1 service nginx restart
    2 service php-fpm restart

3.服务器状况php函数组件探针


4.mysql 新建用户外网访问

insert into mysql.user(Host,User,Password) values("%","admin",password("1234"));
update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
grant all privileges on *.* to 'yourname'@'%' identified by 'youpasswd';   //密码为必填项
flush privileges;

5.linux svn搭建 版本库

1、 # yum install subversion
2、新建一个目录用于存储SVN所有文件
    # mkdir /home/svn
3、在上面创建的文件夹中为项目 project_1 创建一个版本仓库
      # svnadmin create /home/svn/project_1
      执行完这一步,/home/svn 中将存在project_1文件夹,这个项目的配置都在 /home/svn/project_1/conf 中

4、为项目配置权限
   (1)svnserve.conf 是主配置文件
        # vi /home/svn/project_1/conf/svnserve.conf
        anon-access=read          #匿名可读
        auth-access=write         #验证用户可读写
        password-db=passwd        #指向验证用户名密码的数据文件 passwd ,请看下文配置
        auth-db=authz             #指向验证用户的权限配置文件 authz ,请看下文配置
        注意:每一行前方不能有空格,否则会出现 Option expected 错误!
   (2)passwd 用户名密码配置文件 
        # vi /home/svn/project_1/conf/passwd
        [users]
        manager1=123456       #每一行都要是“用户名=密码”的格式
        manager2=123123 
        manager3=888888
   (3)authz 用户权限配置文件 
        # vi /home/svn/project_1/conf/authz
        [groups]
        managers=manager1,manager2         #定义群组 managers 包含 manager1 和 manager2 两个用户
        [/]
        @managers=rw                       #定义群组 managers 有读写权限
        manager3=r                         #定义 manager3 有读权限
        *=                                 #以上没有定义的用户都没有任何权限
4,启动和停止SVN服务
启动SVN服务:
[root@svn ~]# svnserve -d -r /data/svndata/
-d表示后台运行
-r 指定根目录是 /data/svndata/
停止SVN服务:
ps -aux |grep svn

6.lnmp linux 小内存优化

由于个人学习在阿里云买个最小配置云服务内存512 经过优化大概内存保持在200内,基本请求正常。未优化前,基本内存使用就剩7M,经常请求卡死。

进过以上配置之后 

7.压力测试

安装webbench

<span class="sh_preproc" style="color: rgb(160, 32, 240);">#wget</span> http<span class="sh_symbol">:</span><span class="sh_comment" style="color: rgb(255, 0, 0);">//home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz</span>
<span class="sh_preproc" style="color: rgb(160, 32, 240);">#tar</span> <span class="sh_usertype">zxvf</span><span class="sh_normal"> </span>webbench<span class="sh_number" style="color: rgb(255, 0, 255);">-1.5</span><span class="sh_symbol">.</span>tar<span class="sh_symbol">.</span>gz
<span class="sh_preproc" style="color: rgb(160, 32, 240);">#cd</span> webbench<span class="sh_number" style="color: rgb(255, 0, 255);">-1.5</span>
<span class="sh_preproc" style="color: rgb(160, 32, 240);">#make</span> <span class="sh_symbol">&&</span> make install

进行压力测试,并发200时。

<span class="sh_preproc" style="color: rgb(160, 32, 240);"># webbench</span> <span class="sh_symbol">-</span>c <span class="sh_number" style="color: rgb(255, 0, 255);">200</span> <span class="sh_symbol">-</span>t <span class="sh_number" style="color: rgb(255, 0, 255);">60</span> http<span class="sh_symbol">:</span><span class="sh_comment" style="color: rgb(255, 0, 0);">//xxx/index.php</span>

参数解释:-c为并发数,-t为时间(秒)


测试页 :php探针程序  http://download.youkuaiyun.com/detail/lihaiboas1/7071225 相对来说单页所耗资源还是中等
进行压力测试:200并发量
[root@AY140319152825219eb4Z /]# webbench -c 200 -t 60 http://xxxxx/tz.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://xxx/tz.php
200 clients, running 60 sec.

Speed=348424 pages/min, 1995776 bytes/sec.
Requests: 348424 susceed, 0 failed.
400并发量 请求已经崩溃了。不过个人站200并发页差不多足够了
[root@AY140319152825219eb4Z /]# webbench -c 400 -t 60 http://218.244.143.202/tz.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://xxx/tz.php
400 clients, running 60 sec.

Speed=337039 pages/min, 1934456 bytes/sec.
Requests: 336904 susceed, 135 failed.

所以以上优化搭配阿里云最低配置云服务器个人来说还是不错的。主要是云服务包月只要55块,在此感谢阿里云推出这么价廉的服务器。得以让我这种穷屌丝都能接触并学习linux服务器知识

<think>首先,用户的问题是:如何在Linux系统上使用yum安装并配置LNMPLinux, Nginx, MySQL, PHP)环境。我需要基于提供的引用信息来回答,但引用是站内的,我需要确保回答真实可靠。 关键点: - 使用yum安装:用户指定了使用yum包管理器。 - 组件:Linux(操作系统),Nginx(Web服务器),MySQL(数据库),PHP(脚本语言)。 - 配置:安装后需要配置它们协同工作。 从引用中提取相关信息: - 引用[1]:提到LNMP配置,包括安装包、配置步骤。 - 引用[2]:具体步骤,如调整yum源优先级,安装Nginx、PHP等。 - 引用[3]:提到安装依赖,但用户要求yum安装,不是源码安装。 - 引用[4]:安装依赖。 用户要求yum安装,所以我应该优先参考引用[2],因为它直接涉及yum安装。 步骤概述: 1. 准备系统:确保系统是Linux,如CentOS或RHEL,因为yum在这些系统上常用。 2. 调整yum源:引用[2]提到调整优先级,以确保从官方源安装Nginx。 3. 安装组件:使用yum安装Nginx、MySQL、PHP。 4. 配置:配置Nginx、PHP-FPM、MySQL。 5. 启动服务:启动并启用服务。 6. 测试:测试协同工作。 7. 部署应用:如WordPress。 回答结构: - 清晰、逐步解决问题。 - 使用中文。 - 遵守系统指令:行内数学用$...$,但这里可能不需要数学表达式。 - 生成相关问题。 逐步回答: 1. **准备系统**:确认系统是CentOS或类似发行版。安装epel-release(Extra Packages for Enterprise Linux)。 2. **调整yum源**:为Nginx添加官方仓库。 3. **安装LNMP组件**: - 安装Nginx - 安装MySQL(或MariaDB) - 安装PHP和PHP-FPM 4. **配置环境**: - 配置MySQL:设置root密码,创建数据库等。 - 配置PHP-FPM:调整设置。 - 配置Nginx:设置服务器块,处理PHP请求。 5. **启动服务**:启动并启用服务。 6. **测试协同**: - 测试Nginx和PHP:创建PHP测试文件。 - 测试MySQL和PHP:连接数据库。 7. **安全**:删除测试文件。 8. **部署应用**:如安装WordPress。 从引用[2]: - 安装yum-plugin-priorities:`yum install yum-plugin-priorities -y` - 配置nginx.repo:`vim /etc/yum.repos.d/nginx.repo`,添加内容。 - 然后安装Nginx:`yum install nginx -y` - 类似地,安装其他组件。 依赖:引用[4]提到安装依赖,如gcc等,但yum安装可能自动处理依赖。 完整步骤: - 安装epel-release:`yum install epel-release -y`(引用[1]提到安装国内的epel) - 添加Nginx官方仓库(引用[2]) - 安装Nginx、MySQL(MariaDB)、PHP: - MySQL:`yum install mariadb-server mariadb -y`(MariaDB是MySQL的替代) - PHP:`yum install php php-fpm php-mysql -y` - 启动服务:`systemctl start nginx`, `systemctl start mariadb`, `systemctl start php-fpm` - 启用开机启动:`systemctl enable nginx mariadb php-fpm` - 配置:设置MySQL安全(`mysql_secure_installation`),配置Nginx服务器块处理PHP。 测试: - 创建info.php文件:`echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php` - 访问http://server-ip/info.php - 测试MySQL连接:创建PHP脚本连接到数据库。 部署WordPress: - 下载WordPress,配置数据库。 引用末尾添加引用标识:例如[^1], [^2]。 生成相关问题: - 基于LNMP配置,如优化性能、常见问题、安全加固等。 最终回答结构: 1. 介绍步骤。 2. 详细命令。 3. 测试。 4. 部署示例。 5. 相关问题。</think>### 如何在Linux系统上使用yum安装并配置LNMP环境 LNMPLinux, Nginx, MySQL, PHP)是一种常见的Web服务栈,适用于部署动态网站(如WordPress)。以下步骤基于CentOS或RHEL系统(推荐CentOS 7/8),使用`yum`包管理器完成安装和配置。整个过程包括安装依赖、调整yum源、安装组件、配置服务、测试协同及安全处理。所有命令均以root用户执行。 --- ### 步骤1: 准备系统和安装依赖 在安装LNMP前,确保系统更新并安装必要依赖(如编译工具和库文件)。参考引用[4],安装基础依赖: ```bash yum update -y # 更新系统 yum install -y epel-release # 安装EPEL仓库(提供额外软件包)[^1] yum install -y gcc gcc-c++ make autoconf libtool pcre-devel zlib-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel # 安装依赖库[^4] ``` --- ### 步骤2: 调整yum源优先级(确保Nginx来自官方源) 为避免yum源冲突(如使用非官方Nginx包),添加Nginx官方仓库并设置高优先级。参考引用[2]: ```bash yum install -y yum-plugin-priorities # 安装优先级插件[^2] # 创建Nginx官方仓库文件 cat > /etc/yum.repos.d/nginx.repo <<EOF [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/ gpgcheck=0 enabled=1 priority=1 # 设置高优先级[^2] EOF ``` --- ### 步骤3: 使用yum安装LNMP组件 安装Nginx、MySQL(MariaDB替代)、PHP及PHP-FPM: ```bash yum install -y nginx mariadb-server mariadb php php-fpm php-mysql php-gd php-curl # 安装核心组件[^1][^2] # 验证安装 nginx -v # 查看Nginx版本 php -v # 查看PHP版本 mysql --version # 查看MySQL版本 ``` --- ### 步骤4: 配置LNMP环境 #### (1) 配置MySQL/MariaDB 初始化数据库并设置root密码: ```bash systemctl start mariadb # 启动服务 systemctl enable mariadb # 开机自启 mysql_secure_installation # 运行安全脚本,设置root密码并删除测试数据库[^1] # 示例:输入密码后,按提示选择Y(删除匿名用户、禁止远程root登录等) ``` #### (2) 配置PHP-FPM 编辑PHP-FPM配置文件,确保与Nginx协同: ```bash vim /etc/php-fpm.d/www.conf # 修改以下参数 # 将用户和组改为nginx user = nginx group = nginx # 确保监听方式为socket(默认值) listen = /run/php-fpm/www.sock # 保存后启动服务 systemctl start php-fpm systemctl enable php-fpm ``` #### (3) 配置Nginx 创建服务器块(server block)处理PHP请求: ```bash vim /etc/nginx/conf.d/default.conf # 编辑默认配置 # 添加以下内容到server块内 location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass unix:/run/php-fpm/www.sock; # 使用socket连接PHP-FPM[^1] fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; include fastcgi_params; } # 测试配置并重启 nginx -t # 检查语法 systemctl start nginx systemctl enable nginx ``` --- ### 步骤5: 测试LNMP协同工作 #### (1) 测试Nginx与PHP 创建PHP信息文件并访问: ```bash echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php # 创建测试文件 chown -R nginx:nginx /usr/share/nginx/html # 设置权限 systemctl restart nginx php-fpm # 重启服务 ``` - 浏览器访问 `http://服务器IP/info.php`,显示PHP信息页面表示成功[^1]。 #### (2) 测试MySQL与PHP 创建PHP脚本测试数据库连接: ```bash cat > /usr/share/nginx/html/db_test.php <<EOF <?php \$conn = new mysqli("localhost", "root", "你的MySQL密码"); if (\$conn->connect_error) { die("连接失败: " . \$conn->connect_error); } else { echo "成功连接MySQL!"; } ?> EOF ``` - 访问 `http://服务器IP/db_test.php`,显示“成功连接MySQL!”表示协同正常[^1]。 #### (3) 删除测试文件(安全加固) ```bash rm -f /usr/share/nginx/html/info.php /usr/share/nginx/html/db_test.php # 删除测试文件,避免泄露信息[^1] ``` --- ### 步骤6: 部署应用(以WordPress为例) 1. **下载WordPress**: ```bash wget https://wordpress.org/latest.tar.gz -P /tmp tar -zxvf /tmp/latest.tar.gz -C /usr/share/nginx/html/ chown -R nginx:nginx /usr/share/nginx/html/wordpress ``` 2. **创建数据库和用户**: ```bash mysql -u root -p # 在MySQL提示符下执行: CREATE DATABASE wordpress_db; CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '你的密码'; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` 3. **配置WordPress**: - 浏览器访问 `http://服务器IP/wordpress`,按向导输入数据库信息(数据库名:`wordpress_db`,用户名:`wp_user`)。 --- ### 常见问题解决 - **Nginx无法解析PHP**:检查`fastcgi_pass`路径是否匹配PHP-FPM的socket文件位置(默认`/run/php-fpm/www.sock`)。 - **权限问题**:确保`/usr/share/nginx/html`目录所有者是`nginx:nginx`。 - **服务启动失败**:使用`journalctl -u nginx` 或 `journalctl -u php-fpm` 查看日志。 通过以上步骤,您已使用yum成功搭建LNMP环境。此配置适合生产环境,但需定期更新和维护[^1][^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值