草庐IT

lnmp环境的搭建(源码)

曾经那些 2023-03-28 原文
LNMP环境由Linux+Nginx+Mysql+Php构成,作为一种成熟的网站架构,具有着方便,运行稳定的特点。


Linux:开源的操作系统,安全且高效。

Nginx:高性能的HTTP和反向代理服务器,不仅性能稳定且功能丰富,运维简单,处理静态文件速度快,消耗资源小。

Mysql:小型数据库,灵活性高,利于管理。

Php:动态编程语言,适用于web网页开发。


LNMP的搭建:


1.Nginx的安装:

a.上传所需要的软件包

想要安装nginx,需要先安装libevent

拆解软件包 tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/
[root@localhost nginx]# cd /usr/local/src/libevent-2.0.16-stable/
[root@localhost libevent-2.0.16-stable]# ./configure --prefix=/usr/local/libevent 指明安装路径
make && make install 编译安装

处理libevent的库文件
[root@localhost libevent]# vim /etc/ld.so.conf.d/libevent.conf 指明库文件位置
编辑文档里面填上 /usr/local/libevent/lib 即可

处理头文件
[root@localhost libevent]# ln -s /usr/local/libevent/include/ /usr/include/libevent 做 符号链接
b.安装pcre


两者安装上即可[root@localhost Server]# rpm -ivh pcre-devel-6.6-2.el5_1.7.i386.rpm

c.安装nginx
groupadd -r nginx 建组
useradd -r -g nginx -s /bin/nologin -M nginx 用户
拆包 [root@localhost nginx]# tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/
[root@localhost nginx-1.0.11] ./configure \ ( 默认安装在/usr/local/nginx目录下)
--conf-path=/etc/nginx/nginx.conf \ 配置文件的位置
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--with-pcre


make && make install //编译安装

d.控制脚本编写

[root@localhost nginx]# cd /etc/init.d/ linux中控制脚本所在目录

vim nginx

#!/bin/bash
prog=/usr/local/nginx/sbin/nginx
pidfile=/var/run/nginx/nginx.pid
lockfile=/var/lock/nginx.lock
start(){
[ -f $lockfile ] && echo "nginx is started" && exit
echo -n "nginx is starting......."
sleep 1
$prog && touch $lockfile && echo "ok" ||echo "file"
}
stop (){
[ ! -f $lockfile ] && echo "nginx is stoped" && exit
echo -n "nginx is stoping......"
sleep 1
$prog -s stop && rm -rf $lockfile && echo "ok" ||echo "file"
}
status(){
[ -f $pidfile ] && echo "the nginx server is runing...pid is `cat $pidfile`" ||echo "the nginx server is stoped"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "USAGE: start|stop|status|restart"
;;
esac

2.mysql的安装

tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local 拆解软件包

ln -s mysql-5.5.15-linux2.6-i686 mysql 做个链接 较 方便

查看mysql的安装文件

a.安装方法


[root@localhost mysql]# groupadd -r mysql //建立用户组
[root@localhost mysql]# useradd -r -g mysql mysql -s /sbin/nologin // 增加用户
[root@localhost mysql]# chown -R mysql:mysql . // 改变所属
[root@localhost mysql]# scripts/mysql_install_db --user=mysql //初始化mysql
[root@localhost mysql]# chown -R root .
[root@localhost mysql]# chown -R mysql data

[root@localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf // 配置文件

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld //可执行文件
[root@localhost mysql]# service mysqld start //启动mysql


b.设置bin文件
[root@localhost mysql]# vim /etc/profile

[root@localhost mysql]# . /etc/profile // 刷新环境变量


c.设置lib文件
[root@localhost mysql]# vim /etc/ld.so.conf.d/mysql.conf
加入/usr/local/mysql/lib 即可
[root@localhost mysql]# ldconfig //刷新
[root@localhost mysql]# ldconfig -pv |grep mysql //查询

d.设置 include文件
[root@localhost mysql]# ln -s /usr/local/mysql/include/ /usr/include/mysql 符号链接


3.php的安装

1. tar -zxvf php-5.4.13.tar.bz2 -C /usr/local/src/ 拆解软件包

2.安装选项

./configure \

--prefix=/usr/local/php \ //安装路径
--enable-fpm \
--enable-sockets \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--enable-xml \
--with-png-dir \
--with-png \
--with-jpeg-dir \
--with-zlib \
--with-freetype-dir \
--with-config-file-path=/etc/php \
--with-config-file-scan-dir=/etc/php5.d


3.编译安装

make && make install

4.bin文件的处理

[root@localhost php-5.4.13]# mkdir /etc/php /etc/php5.d
5..php.ini 文件
进入源码目录
cp php.ini-production /etc/php/php.ini
[root@localhost php-5.4.13]# cp php.ini-production /etc/php/php.ini
6. php-fpm的控制脚本

[root@localhost php-5.4.13]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-5.4.13]# chmod a+x /etc/init.d/php-fpm // 改变权限
7.产生php-fpm的配置文件
[root@localhost php-5.4.13]# cd /usr/local/php/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
8.启动php-fpm,并设置为开机启动
[root@localhost etc]# service php-fpm start
Starting php-fpm done
[root@localhost etc]# netstat -tulnp |grep fpm //查看端口
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 28270/php-fpm.conf)
[root@localhost etc]# chkconfig --add php-fpm //开机启动
[root@localhost etc]# chkconfig --list |grep php-fpm //查看开机启动

4.nginx+php 的结合

编辑配置文档
[root@localhost etc]# vim /etc/nginx/nginx.conf


5.测试


至此lnmp的环境已经搭建完成,由于php的速度较慢,我们可以对其加速。

6.php的加速(采用xcache)
xcache的使用
1.拆解压缩包
tar -zxvf xcache-2.0.1.tar.gz -C /usr/local/src/
2.[root@localhost ~]# cd /usr/local/src/xcache-2.0.1/
[root@localhost xcache-2.0.1]# phpize (位于/usr/local/php/bin/phpize)(和php的lib文件有关)
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
3 安装选项

./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

4.编译安装

make && make instal
5.编辑php,整合php和xcache
cp xcache.ini /etc/php5.d //拷贝文件
编辑 xache.ini 文件 指明安装的详细路径

6.xcache的管理
[root@localhost xcache-2.0.1]# cp -r admin/ /usr/local/nginx/html/ //拷贝admin目录到nginx的站点目录
[root@localhost xcache-2.0.1]# cd /usr/local/nginx/html/
[root@localhost html]# chmod a+rx admin/ //改变执行权限
[root@localhost html]# cd admin/
[root@localhost admin]# chmod o+r index.php //改变目录和文件的权限
[root@localhost admin]# cd /etc/php5.d/
[root@localhost php5.d]# vim xcache.ini 配置xcache.ini文件 输入帐号信息

密码采用md5的加密方法

7.测试php的加速


通过该界面可以很好的对php进行管理和加速



有关lnmp环境的搭建(源码)的更多相关文章

  1. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  2. UE4 源码阅读:从引擎启动到Receive Begin Play - 2

    一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame

  3. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  4. ruby-on-rails - ruby gem如何在rails环境下工作 - 2

    我试图在rails中了解rubygems是如何变得可以自动使用的,而不是在使用required的文件中gem? 最佳答案 这是通过bundler/setup完成的:http://bundler.io/v1.3/bundler_setup.html.它在您的config/boot.rb文件中是必需的。简而言之,它首先将环境变量设置为指向您的Gemfile:ENV['BUNDLE_GEMFILE']||=File.expand_path('../../Gemfile',__FILE__)然后它通过要求bundler/setup将所有ge

  5. ruby-on-rails - 我需要一个真正的 UNIX RoR 开发环境 - 2

    从一开始,我就是一个Windows高手。我从MS-DOS开始。我安装了Windows2.1以及此后的所有Windows。现在,我家里有10台不同的Windows机器在运行,从Windows7Ultimate到各种版本的WindowsServer。我还没有完成Windows8,也不想去那里。我在服务器和各种软件方面都有UNIX经验,但它并不是我的首选环境。但是,我想我正在转换。我试图假装使用Cygwin和MSYS在Windows下运行UNIX。我的目的是搭建一个开发环境。两者都让我失望了。我花了比开发更多的时间来解决一系列技术问题。这是NotAcceptable。到目前为止,我的Ruby

  6. ruby-on-rails - 如果特定语言环境中缺少翻译,如何配置 i18n 以使用 en 语言环境? - 2

    如果特定语言环境中缺少翻译,如何配置i18n以使用en语言环境翻译?当前已插入翻译缺失消息。我正在使用RoR3.1。 最佳答案 找到相似的question这里是答案:#application.rb#railswillfallbacktoconfig.i18n.default_localetranslationconfig.i18n.fallbacks=true#railswillfallbacktoen,nomatterwhatissetasconfig.i18n.default_localeconfig.i18n.fallback

  7. ruby-on-rails - 可移植 Ruby on Rails 环境 - 2

    我给自己买了一个新的8gigUSBkey,我正在寻找一个合适的解决方案来拥有一个可移植RoR环境来学习。我在谷歌上搜索了一下,发现了一些可能性,但我很想听听一些现实生活中的经历和意见。谢谢! 最佳答案 我喜欢InstantRails,非常容易使用,无需安装程序,也不会修改您的系统环境。 关于ruby-on-rails-可移植RubyonRails环境,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

  8. ruby-on-rails - 如何通过 URL 更改语言环境? - 2

    在我的双语Rails4应用程序中,我有一个像这样的LocalesController:classLocalesController用户可以通过此表单更改其语言环境:deflocale_switcherform_tagurl_for(:controller=>'locales',:action=>'change_locale'),:method=>'get',:id=>'locale_switcher'doselect_tag'set_locale',options_for_select(LANGUAGES,I18n.locale.to_s)end这有效。但是,目前用户无法通过URL更改

  9. ruby - 从 FaSTLane 将环境变量传递给 shell 脚本 - 2

    我在跑Fastlane(适用于iOS的持续构建工具)以执行用于解密文件的自定义shell脚本。这是命令。sh"./decrypt.shENV['ENCRYPTION_P12']"我想不出将环境变量传递给该脚本的方法。显然,如果我将密码硬编码到脚本中,它就可以正常工作。sh"./decrypt.shmypwd"有什么建议吗? 最佳答案 从直接Shell中扩展假设这里的sh是一个faSTLane命令,它以给定的参数作为脚本文本调用shell命令:#asafastlanedirectivesh'./decrypt.sh"$ENCRYPTI

  10. elasticsearch源码关于TransportSearchAction【阶段三】 - 2

    1.回顾.TransportServicepublicclassTransportServiceextendsAbstractLifecycleComponentTransportService:方法:1publicfinalTextendsTransportResponse>voidsendRequest(finalTransport.Connectionconnection,finalStringaction,finalTransportRequestrequest,finalTransportRequestOptionsoptions,TransportResponseHandlerT>

随机推荐